The Challenge for every organization is to choose correct process for their projects execution .
Organizational teams rush toward project to meet deadline. Team members goes into deep pressure , while working as they have pressure directly or indirectly from every layer of hierarchy . Without plan and process it is very sure that team will collide and work will get affected .
Many organizations for their bagged projects select traditional approach like Waterfall Model and start rushing toward project deadline . Their is nothing wrong with waterfall model, but uncertainity of project success is higher due to less and non-consistent interaction with client/customer . We will describe more about waterfall model while comparing with other better methodologies later in this blog.
Organizations need a process/practice for projects so that they can mantain balance between work and workers life style .
As needed AgileMethodology was introduced to overcome issues of Waterfall model . Agile could be used by any kind of organization but it is very popular in Software Development.
What is Agile ?
The term Agile ability to create , accept changes ,transparent and collabration to team in order to succeed in an uncertain/unruly environment.
Agile Methodology a optimized approach toward Project Management . Agile way believe in continuous interative delivery in modules of Projects instead of one shot delivery as in waterfall and so Project failure probability is very low.
Agile Methodology believe in less documentation .
What is Agile Software Development?
Agile Software Development is an umbrella term for a set of methods and theories followed by values and principals expressed in the Agile Manifesto.
Agile Methodology can be implemented by various frameworks like : Scrum,KanBan
Agile Manifesto and Principles
This combined collection of values and principles was expressed in the Agile Manifesto and the corresponding twelve Principles.
Agile Menifesto reads:
“We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
Individualsandinteractions over processes and tools , Working software over comprehensive documentation,Customer collaboration over contract negotiation
Responding to change over following a plan.”
THE 12 AGILE PRINCIPLES:
Agile Principles shows character of:
01. Early and continuous software delivery makes client satisfied–
When Clients/Customers get frequent deliverables they becomes happier rather than waiting for final product after a long duration .
02. Never say no and welcome changing requirements throughout the development process This Agile principle make sure to avoid delays when a requirement or feature request changes.
03. Continuous delivery of working software – Scrum assure with this principle since the team follows software sprints or iterations that ensure regular delivery of working software.
04. Collaboration among all Project stakeholders and developers throughout the project – Transparent and Correct decisions are made when the business and technical team are aligned.
05. Supportive and motivated people build Project and come to a success – Motivated teams are more likely to deliver their best work than unhappy teams.
06. Face-to-face communication and interactions make process faster and effective – It is very natural face-to-face process is always transparent and trusted .
07. Working software is the key and primary measure of progress – Delivering working software to the customer is the lively factor that measures progress.
08. Agile processes promote sustainable developement and stackholders to maintain constant/consistent development pace – Teams itself establish a repeatable and consistent speed at which they can deliver functional software, and they repeat it with each sprint.
09. Attention to technical excellence continuosly and design enhances agility – The correct set of indiviual skills and good design solutions ensures the team can maintain the pace, consistently improve the product, and sustain changes.
10.Simplicity – technic of maximize the amount of work not done is essential .Agile developers focus on high value activities with higher priority .
11.The best architectures, requirements, and designs get developed from Self-organizing teams – Self-organized skilled and motivated team takes work ownership , do transparent communication with other team members and share ideas that deliver quality products.
12. At regular interval team discuss , reflects on how to become more effectivethen tune and adopt/adjust behviour accordingly – Introspection , self-improvement, process improvement, advancing skills, tools and techniques help team members work more efficiently.
Well we knew all about Agile, Its Menifesto and Principles . Now very important need is how we can get Agile in practice, So there are various frameworks which have their ways/patterns (Scrum , Kanban , XP etc.) to implement Agile .
Scrum is very popular framework in Software Development to implement Agile .
Scrum is a lightweight simple framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.
Scrum is fundamentally based on epiricism:
- All Scrum Artifacts should be trasparent to stackholders
- All Roles are Empowered to do their job right .
- In Scrum, Process is constantly adjusted (if needed) based on the short or continuous feedback loops.
- All Scrum meeting allows collaboration and opportunities for inspection and adaptation.
- Is based on experiments. Suitable when output isn’t well defined.
- Steps in process are adjusted based on the feedback from the experiments.
- Transparency,Inspection,Adapation are three legs of the Empirical Process . All stackholders must accept these three.
Scrum is Iterative and Incremental:
Incremental Development is to build a small increment of a full fledges product. Each increment adds a value to software .
Iterative Development is to build something, get some feedback , then refine to make better , keep doing that until product us good enough to use .
The Scrum Values
All the stuffs performed in scrum require a set of values as the foundation for the team’s processes and interactions . By following these core values ,the team makes them more progressive , productive and instrumental.
As we work together , we should express how we are doing,what conerns we are facing so that they can be addressed.
While working as a team , we feel supported , motivated and have more resources as our own backup. This gives us courage and motivation to undertake tough challanges.
Commitment to something being dedicated to a cause, activity.Committing yourself to the team and Sprint Goal. In Scrum commitment is need toward team, process and ourselves.
Focus :Focus toward customer,product quality , goal makes process smoother and self-motivated .
Respect: Respect others suggestion even while they are not useful and discuss in healthy manner . Never demoralize someone in team , as in Scrum credit or loss goes to group itself .
Scrum Framework :
Scrum is very simple process Framework.
In Software Development stackholders are key to success . Every Process , framework have certain Roles to be played . In traditional Project Management approach , PM,Team Leader, Developers , Testers,Designers,Clients are key Roles.
Scrum Master is servant leader for Scrum team and process champion. Scrum Master ensure team adheres to Scrum theory and Rules .
Scrum Master facilitates all team meeting as needed and requested . Scrum Master must be great listener .
-- Teaches Scrum to the team and organization.
-- Responsible for building the product fast by eliminating the waste.
-- Ensure good and healthy environment among Scrum Team.
-- Helps Product Owner prioritze the work .
-- Helps Product Owner to understand the product planning , need and dependencies of tasks
-- Coach Agile principles to team .
-- Identifies impediments those are blocking progress and resolve them as quickly as possible .
An Effective Scrum Master
Scrum Master must be servant leader who facilitate the group who are meeting to common goal and auch Scrum Master known as ‘Facilitator’.
Facilitator does not stand in front of group and lecture like a traditional Project Manager. Facilitator is unbiased member of learning process.
Scrum Master facilitate Scrum ceremonies/meetings on agreed agendas.
Helps in resource plannings and motivate resources . Assist group to brainstorm and problem solving.
The Product Owner is a the only person who has responsibility to maximize the value of the product and work of team .
-- Creates the Product vision .
-- Creates and Manage Product Backlog with stackholders in Sprint Review meeting .
-- Attends Scrum meetings :
Sprint Planning , Sprint Review, Sprint Retrostpective
-- Support team Estimate by clarifying questions .
-- Responsible for deciding whether to release the product increment at the end of sprint .
-- Make and Manage release plan and track the release .
-- Responsible to set task priority in Product Backlog .
The Development team is group of self-organized and motivated skilled professionals who work to deliver a potential , functional product increment at the end of Sprint. Size of Scrum developement is 3 to 9. Teams less than 3 are too small to call Team and bigger than 9 is too big to self organize.
Development Teams are Self Organizing teams are proven to be hyper productive. A self-organizing team knows how to do their work.
--What backlog Items to be finished in a given Sprint ?
--Work allocation and capacity planning, either by using tools or technics .
Development Teams are Cross-funcational contains all the skills required to deliver product increments. Team may consists designer,developer,tester,database developer etc. to have less dependency on third party help.
Team have a common goal of delivering the products increments .
Product Backlog is an ordered list of all the tasks/items they are essential to complete the Product. Product Owner is responsible for Product backlog including content,ordering/prioritizing etc. Items/Tasks listed in Product Backlog are called ‘Product Backlog Items(PBI)’ .
Each PBI would have :
Description: Details of Items .
Value:What business value particular item would have.
Estimate: Efforts/Estimate to built this item.
Order: Priority should be assigned in a list to the item .
The heart of Scrum is a Sprint, a time-box of sprint is 1-4 weeks . A new Sprint immediately starts after the completion or conclusion of the previous Sprint.
Sprint consists of:
--Sprint Planning (Time-Box : 4 hours for 2 Weeks Sprint)
--Daily Scrum (Daily 15 Minutes)
--Sprint Review (Time-Box : 2 hours for 2 Weeks Sprint)
--Sprint Retrospective (Time-Box : 1.5-2 hours for 2 Weeks Sprint)
During Sprint Scrum team work on selected stories based on priority set by PO . After every Sprint a deliverable module added to product based on Product Owners feedback and Sprint Review,Sprint Retrospective happens for further deliverables and improvements.
Product Increment is another very much valued Scrum Artifact . It is a sum of all the Product backlogs completed after Sprint and all previous Sprint . This sum must be in working and deliverable condition and match definition of DONE .
So By this way Scrum work and without long waiting Product Owner/Client gets deliverable and get satisfaction.
So we learn all about Agile way and its popular framework Srum Process . Now lets look quick difference between Traditional and Agile way:
Scrum Vs Traditional Waterfall
Changes during progress are not easily welcome as finishing one phase leads to another
Changes are always welcome and makes client satisfaction .
It has a leadership style of working
In Scrum unlike Project Manager , Scrum Master is servant leader .Scrum allows free flow of communication, anyone can present their ideas within the team .
Pre-planning is done to carry out the various phases
This is more flexible as compared to traditional model, as it can change it's work flow based on any new request for modifications
Customer is involved only in the initial phases of requirements gathering
Product Owner involvement is crucial for this model to prove its mettle
The project plan is prepared before commencing the process of system development
Project work is delivered to the client in small deliverable modules. As soon as one module is prepared, a demonstration is given to the client, so as to confirm the work progress in a right direction .
Project Manager owns accountability and responsiblity .
Scrum is based on concept of shared ownership, i.e, every team member is equally responsible for their individual contribution
Believes in one-time delivery of the product and it make failure chances higher
Relies on iterative and incremental delivery of the product makes client satisfied .
Documentation amount is very high
Very very less documentation require .
Project Manager is dominating Role in this approach
Scrum Master is always good listener and servant leader .
Both Agile/Scrum and Traditional/Waterfall approaches are essential for software development process . However, while choosing an suitable model for software development, we needs to identify the scope and requirements of the project to be developed. Agile with different and modern approach has upper hand .
Organizations are suffering with deadline issues of Projects and human resources are very pressurized with traditional/waterfall model , so switching toward Agile and verious surveys found Agile way as more successful approach .
Teams , clients ,Organizations are happier with Agile approach due to iterative and incremental deliveries . Masters in Agile approach are more servant than watchman type Managing style.
Agile provides transparent , motivative and healthy enviroment.
Less Documenting style in Agile made Team and clients lives much easier .
Thus Agile with Scrum framework significantly boost Project Management Process and help Stackholders with regular updates .
Agile conquer deficiencies that are with the traditional approach , but at the same time each model's pros and cons must be compared before reaching to any consensus.