The Agile approach to software development is incremental and iterative. It helps improve the quality of the software being developed and keeps the team focused on delivering business value. All Agile project management methodologies (Scrum, Kanban, XP, and others) focus on frequently and consistently delivering high-quality, working software. This minimizes project overhead and increases business value.
With Agile, software projects become more predictable and have faster and more accurate ROI. Other benefits are adaptability to changing business needs, transparency between software developers and stakeholders, and delivering quality and valuable software.
1. Predictability
Agile creates predictability by assigning all work to sprints. Before a sprint begins, the team comes together and agrees on which user stories will be worked on. This fixes the scope of the sprint.
- Constraining scope is the first step in creating predictability. Once the sprint begins, additional stories cannot be added to the sprint. They are placed in the product backlog and have to wait to be worked on in a subsequent sprint.
- But how does the team know how many stories can be added to a sprint? This is done by knowing the team’s velocity, a quantitative number that reflects how many story points the team has been able to complete in past sprints. Let’s say a team’s velocity is 20 which means that in prior sprints they have completed a combination of stories whose total story points add up to 20. Since velocity is calculated from the team’s work in prior sprints, it’s a highly predictive metric of future velocity.
- A third factor that leads to predictability is knowing when a story is done. To help the team know what the definition of done is for each story, the story owner adds a specific list of features and constraints called Acceptance Criteria. These are conditions that a story must satisfy to be accepted as “Done” by a product owner, an end-user, or any other stakeholder. Each condition is tested and must pass. When all of the Acceptance Criteria passes the story can be considered “Done.”
Having good Acceptance Criteria is critical to the proper sizing of stories during the sprint planning. This allows developers, QA specialists, and other team members to ask questions and understand the scope of work needed. The more complete the Acceptance Criteria are the more accurate the story sizing will be.
Predictability is one of the major benefits of Agile. Constraining scope, knowing a team’s velocity, and having solid criteria for knowing when a story is done create the framework for predictability.
2. Faster and Accurate Return on Investment
Predictability leads to more accurate return on investment calculations. The cost of each story can be calculated by dividing the cost of a team’s resources by their velocity and then multiplying that by the story’s story points. This granularity of understanding the cost of each story will improve decision-making about the priority of features and which features are critical for the business and which ones are nice to have.
All sprints deliver working software, and therefore working software is delivered after the first sprint. While the functionality may be minimal, features will be added quickly in the successive sprints. This means that a functional, ‘ready to market’ product can be ready after a few sprints.
With the focus squarely on the features that deliver the most business value, implementing Agile will improve a company’s ROI.
Note: for an excellent breakdown of a few real-world ROI calculations, see the Business Value of Agile Methods by Dr. David F. Rico (an itinerant technical leader for software process and quality improvement).
3. Adaptability to Changing Business Needs
Once a sprint is in progress, the product owner works on getting the next group of stories ready for the next sprint. The product owner and stakeholders work on grooming the backlog by adding new stories and re-prioritizing existing stories. This ensures that the most business-critical features are at the top and less important ones at the bottom of the backlog. When the next sprint starts, the entire team has confidence that they are working on the features that will deliver the most value to the business.
4. Transparency
Transparency is another one of Agile’s main benefits. Everyone is involved in the software development process and works together to plan, develop, and report on all aspects of the project. Nothing is done in a silo. Everyone in the team knows what the others are working on. From daily standups to sprint planning, to sprint demos and sprint retrospectives, everyone is involved and has a role in creating valuable software.
Tim Brizard (author of Broken Agile: Stories From the Trenches), discusses this in his article The Importance of Transparency Value in Agile where he shows the correlation between trust and transparency between the development team and the product owner.
5. Quality
In Agile, there are a number of things that contribute to the overall quality of the software. But one thing for sure is that quality must be built in from the outset. As W. Edwards Deming (widely acknowledged as the leading management thinker in the field of quality) said “Quality cannot be inspected in the product or service; it must be built into it.” Continuous testing is part of the sprint cycle because a story can’t be marked as done without being tested. Integration testing is also done throughout the sprint to ensure that new features work in the context of the whole and don’t break previous work. These best practices help to ensure that the quality is built-in.
- The product owner is continually grooming the backlog so that the stories that are most relevant and deliver the most value are moved to the top.
- Sprint retrospectives help the team continuously improve all aspects of the software development process.
- With software developed in rapid incremental sprints, releases quickly build upon previous functionality, and continuous testing ensures that software quality is maintained.
The Benefits of Agile Throughout Your Organization
Predictability, faster and accurate ROI, business value, transparency, and quality are 5 of the top advantages of moving to Agile. If you need help transitioning to Agile or you’d like to maximize these benefits in your existing Agile process, contact us.
If you need help jumpstarting any part of your Agile process, contact us. Large organizations have found that Nisum gives them a competitive edge through lean and Agile coaching. They’re using Nisum to build change management systems that address key organizational challenges related to team efficiency.