Most agile methods recommend iterations. These can be fixed length iterations, or regular releases. Along with iterations agile includes regularly timed planning meetings. For instance in Scrum, iterations are called Sprints. These sprints can last from 1 to 4 weeks. When the iteration is complete, teams demonstrate the features they have completed in their planning meetings. This allows the customers to see working software, which may lead to new features that they want. This also allows customers to confirm that they have features that are useful.
Since the planning meetings happen often, customers have more chances to make changes based on feedback from these planning meetings, and feedback from the market. If a competitor comes out with a new feature in the middle of the project, the customer can add that feature to the backlog, and get that feature into production before you release.
Development is more predictable
Most departments outside of IT, and especially those business departments driven by accounting and sales crave predictability. Agile development allows teams to deliver their software to business more predictably.
Agile methods ensure more predictable delivery by breaking requirements down into smaller chunks. Many methods use stories to represent the requirements. Other methods use Minimum Marketable Features or MMF's which are then broken down into stories and tasks.
Most teams will estimate stories or MMF's using something like points which allow the teams to give an estimated effort. If estimated effort is larger, or seem really large, these items must be split into smaller stories or MMF's or refined.
By using consistent methods to estimate stories, this drives consistency in the requirements. Stories that are too vague, or too large, can be split to more manageable features, which allows teams to work on requirements in more of a rhythm. The team can then use tools such as burn down charts, velocity charts or cumulative flow diagrams to determine their delivery rate.
Teams that find their development rhythm help those stakeholders feel confidence in promising delivery dates. The more the team delivers consistently, the more these stakeholders rely on the team, and make them part of the whole organization.
Transparency of the teams progress on a daily basis helps upper management in the trust category. Also, with transparency, risks can be handled more quickly and directly, than when things are hidden in reports, or in tools.
Multiple methods allow agile teams to be transparent with people outside of the IT department. Daily stand up meetings allow the marketing, sales, product owners and anyone with a stake in the project to monitor progress daily. While these stakeholders may not always be in the daily stand up, they can listen in once or twice a week to see what stories the team is working on, and if there is anything blocking the team.
The demonstrations of the software before each planning meeting, show those same stakeholders what the team can actually deliver if the project was finished on that day. Agile teams can be in team rooms with Big Visible Charts. Those team rooms keep the charts updated each day, so a stroll into that room would show a plethora of information. What stories the team is working on. What velocity the team is working on. How many features are in the backlog. Some teams also have methods to show what business value stream the team is working on.
Deliver More Value
Using many of the methods mentioned above, agile teams tend to deliver more valuable software than comparable waterfall projects. This does not mean that agile teams deliver more features than waterfall projects. But the tight feedback loops allow these teams to focus on features that are valuable to organization closer to the end of the project, as priorities change.
For instance, in a project for a health care software maker, the team starts out with a backlog of 50 stories. Within those stories, there are some stories that discuss allowing customers to track where their claim is in the process, including where in the mail it is. Those stories are kept in the backlog and not prioritized as the release date gets closer.
Three sprints away from the release date, a new government regulation is passed that affects this project. The product owner can now keep opt to keep the first story group in the backlog, until the government regulation stories are complete. The customer tracking stories may need to go into the backlog for another release, or they can decide to extend the release date to get those stories in. Either way, the team was able to deliver immediate value quickly to the business, by having a way to change what features they are working on quickly.
Agile methods also allow teams and projects to be more sustainable. First agile methods emphasize a sustainable development pace over the hills and valleys of death march development. Death march development, refers to development at the end of a release, when the team realizes that they are not going to be able to deliver what the requirements by the time committed to.
In waterfall environments, the manager calls an all hands meeting, tells the team they need to work overtime, at night and on weekends so they can meet that deadline. The team does all that work, but still fails to deliver what the customer wanted, resulting in some more overtime. When that is finished, team members take vacation, look for other jobs, and generally are not satisfied with their work.
Agile methods show the velocity of the team, and allow the team to adjust to what can actually be delivered on time. By allowing this, the entire team can continue developing at a predictable pace. As the team matures, that pace should increase. So keeping those team members around can increase the bottom line, by allowing the team to deliver higher quality more rapidly.
The ideas articulated above are some good reasons to experiment with using agile methods in your shop. There are more reasons and more resources that can help in the decision. To get started, research what method you are interested in. Then consider attending a course, or bringing in a coach experienced in that flavor of agile to help your team get started. Doing so, should help your organization become better at delivering high quality fast!