Everyone is going crazy about Agile in technology world, but can someone explain in simple words what is it all about and how it helps. In this blog, we have tried to explain what REALLY Agile/ Scrum methodology is at its core.
Traditionally organizations have been applying ‘Waterfall’ methodology for software development, where the various phases like Analysis, Planning, Development, Testing, Deployment and Maintenance are executed in a sequential manner. In this model, there is very little room to accommodate changes once the requirements are ‘Signed off’! The major limitation of this model is lack of flexibility with respect to changes in business scenario as well as functional requirements. Due to some of these challenges, Agile Project Management methodology evolved which embraces change and supports early and frequent delivery of working software to the customer.
Agile Manifesto covers core values and guiding principles behind the Agile methodology.
Values mentioned in Agile Manifesto:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Manifesto says, the items on the right (like documentation, following a plan etc.) are important but they would not provide much value if the items on the left are not delivered correctly. For example, if the project has lot of defects or issues then having extensive documentation may not add value. If we just follow processes and tools, but do not have meaningful interaction amongst the project stakeholders then we will not get the desired result. The teams planning to follow Agile should ensure that they understand the core values and principles of Agile methodology.
Many organizations across the globe are now using Agile methodology and the team as well as customers are benefiting with the early and continuous development of the software. Agile is an umbrella term and consists of multiple methodologies like Scrum, XP, Lean, Kanban etc. Scrum methodology for project management is gaining wider momentum. It was formalized over a decade ago by Ken Schwaber and Dr. Jeff Sutherland, and it’s now being used by many large and small companies. Many teams using Scrum have reported significant improvements, and in some cases complete transformations, in both productivity and morale of the team.
In Agile, requirements are broken down in smaller components (called as user stories) so that they can be taken up and completed during small iterations. These user stories are listed together, prioritized according to business value and with rough estimates, which is called as Product Backlog. Product Backlog is a list of everything that could ever be of value to the business for the team to produce. It is ranked in order of priority. Product Owner can make any changes they want only before the start of a Sprint Planning Meeting. Items in the product backlog can be added, changed, removed, and reordered by the product owner.
Roles in Scrum
- Product Owner
Product Owner is typically a customer representative or a person who can continuously interact with the customer and take requirement related decisions on behalf of the customer. He is responsible for the overall project vision and goals. He works on what the team should produce and turns it into a prioritized requirements list (the Product Backlog). Product Owner will participate actively in Sprint (i.e. Iteration in Scrum) Planning and Sprint Review meetings; conduct acceptance testing of the requirements and is available to team throughout the Sprint. (S)He determines release plan and communicates it to upper management and with the customer.
In Scrum, it is recommended that the team size should be 7 (+ or – 2) people. If it has large number people then it can be split in multiple small teams for better communication and coordination of work. It is recommended that the team remains stable for the duration of the release, so that team can deliver the work with constant pace. If the team members are co-located then they would get maximum advantage, but Scrum works well with globally distributed teams as well. The team should be Cross-functional i.e. the team members from different sub-groups or departments should possess all the skills necessary to produce an increment of potentially shippable product. Team should take tasks based on their skills, not just official “role”. The team in Agile works as Self-managing team which means it manages the Scrum rhythm on its own and is more empowered.
The person playing role of a ScrumMaster ensures that Scrum methodology is properly implemented by the team and (s)he does everything in his/her power to help the team achieve success and remove any impediments faced by the team members. ScrumMaster guides the team’s use of Scrum and ensures that the team is following Scrum with its core values and principles. He also facilitates Scrum meetings and ensures that the team is delivering as per the constant pace and as per customer/business priorities. There is no formal role of ‘Project Manager’ in Scrum methodology, the Project Manager works with Servant Leadership principles, applies participatory decision making methods and supports the team to achieve its full potential.
Ceremonies in Scrum
Scrum methodology defines different meetings like Sprint Planning, Sprint Demo, Retrospection, Daily Standup meeting to ensure that all the team members (including customer) are on the same page as well as to review the progress and any roadblocks.
- Sprint Planning
Sprint planning meeting is to ensure how much work can be signed up by the team members for the upcoming Iteration i.e. Sprint. It takes place before the start of every Sprint. Team decides how much Product Backlog it will commit to complete by the end of the Sprint, and comes up with a plan and list of tasks for how to achieve it. The work commitment made during the sprint planning should be shared among the team and team should be able to achieve the commitment without sacrificing quality and sustainable pace. This meeting is attended by Team, Product Owner, ScrumMaster, Stakeholders and may require 1-2 hours for each week of Sprint duration, based on the total duration of the sprint.
- Daily Standup Meeting
The daily meeting is a quick meeting for the team members to share their updates with the fellow team members. It helps to bring all the team members on the same page about other team member’s assignments as well as dependencies. The team members can help their peers to resolve dependencies and also to check that the team can complete its commitment as planned. The meeting happens on every weekday and the whole team attends this meeting. The meeting is supposed to be for maximum 15 minutes and it is recommended that everyone stands during this meeting, so that it can be restricted to 15 minutes and does not become a prolonged status meeting. If any detailed conversation is required, it can be taken up after the meeting.
Everyone shares 3 things only to each other:
- What was I able to accomplish since last meeting
- What will I try to accomplish by next meeting
- What is blocking me
- Sprint Review/Demo Meeting
Purpose of the Sprint Review meeting is to demo what the team has built in the last iteration and to generate feedback, which the Product Owner can incorporate in the Product Backlog. This meeting is attended by Team, Product Owner, ScrumMaster, functional managers, and any other stakeholders. It is a demo of what’s been built, not a presentation about what’s been built. No PowerPoint allowed! It usually lasts for 1-2 hours.
- Sprint Retrospection Meeting
The objective of Sprint Retrospection meeting is to identify the areas of improvement in the team’s processing, tools or methodology so that team can improve its productivity in the subsequent sprint. It is typically 1-2 hour meeting following by each Sprint Demo. It is attended by Product Owner, Team, and ScrumMaster. The objective is to identify what’s working and what could work better and take necessary actions accordingly in the subsequent sprint.
Scrum methodology recommends Inspect & Adapt mechanism, where the team and the customer together inspect the potential shippable product delivered at end of each iteration and make small changes as required for the business benefit. Agile methodology is primarily focused on providing more value to the customer and end users of the product or service. Hence, if Agile methodology is properly followed, it would definitely result into customer and end user satisfaction and motivated team as well!
More details about Agile/Scrum methodology, various tools/techniques and inputs on successful adoption will follow in our subsequent blogs, keep following!