Advantage #10: Early Warning of Problems
The traditional project planning process is supposed to help us identify when a project cannot be successful before the work begins. But in reality, the number of unknowns often makes it impossible to make such dire predictions with any certainty. This is just as true with Agile projects as with any other. But Agile projects have an advantage in that there is a ready-made barometer built into the process that will provide early warning of impending doom.
Again, it is the iterative development pattern that provides this warning. After the team has laid out a project roadmap based on their best assumptions about technical issues and the rate at which they can work, they immediately begin producing working software.
After a few weeks, the first iteration is complete, and they deliver software. If it is significantly less than anticipated, an early flicker of red begins to show. After a second iteration delivers less than promised, the red light is clearly visible. If they continue for a third iteration and again deliver under plan, the red light is flashing and the siren is blaring.
Less than halfway through a small project (less than 10% of the way through a big one), everyone knows without doubt that the original project constraints (timeline or budget) or assumptions were out of line with what is possible. This early warning provides plenty of time to renegotiate expectation(s), re-adjust plans, or cancel a doomed project before any more time or money is wasted. Agility doesn’t guarantee success. But failure is clear much sooner that with other approaches.
Advantage #11: Meaningful Milestones
As we discussed in Advantage #5, Agile projects have milestones much more often than most traditional projects. In addition to being more numerous, Agile projects’ milestones are also more meaningful.
Consider the types of milestones traditional projects rely upon: requirements sign-off, critical design review, code complete, testing complete, customer acceptance. Most of these milestones only have meaning to people who understand the software development process. And those of us who fall into that category (if we are honest with ourselves) recognize that (with the exception of the final one) these “milestones” are artificial measures of progress. They are nothing more than indications that we have done certain work that should have taken us a step closer to successful project completion.
Contrast that with the milestones on Agile projects: customer acceptance, customer acceptance, customer acceptance.
Customer Acceptance… At the end of each iteration of work (every few weeks), the project produces actual working software that the customer can evaluate and either accept or not. (And if the customer has been engaged with the developers as they did the work, why would it not be acceptable?) And if these milestones are missed — we addressed that in Advantage #10, above.
What more meaningful milestone can you have than to deliver what the customer asked for and having them accept it?
Advantage #12: Management Visibility
Managing software projects can be frustrating. There is a tremendous amount of activity going on that we hope is driving toward success, but surprises and unexpected problems and changes often spring from nowhere to foil the best of plans. The reason for these unhappy surprises lies in the artificiality of our measures of progress, as discussed above in Advantage #11.
Agile projects provide tremendous visibility and transparency to any manager who understands what he or she is seeing. Understating is an important part of this because Agile projects look quite different from traditional projects! With appropriate tutoring, a Manager will be able to see:
- The project’s roadmap and what it means
- Changes to that roadmap and their implications
- Early indications of customer satisfaction (see Advantage #1)
- Early warning of problems (see Advantage #11)
- Impact of changing the project’s budget or schedule
With this level of visibility, managers will actually be able to manage software projects, as opposed to hoping for the best.
What? Your Agile Projects Don’t Look Like This?
If what you see on the “Agile” projects in your organization doesn’t look like what is described in this paper, you are not alone. Too many teams claim to be using an “Agile” approach, when they are merely throwing off the chains of discipline.
As was so well said by Kent Beck (the author of Extreme Programming Explained and creator of Extreme Programming — XP), “Agility requires iron discipline!” Get your team the help they need to start actually operating in an Agile way, and you will not only start realizing the twelve Advantages discussed here, but your developers will thank you as well!
Excerpted and available for download from Global Knowledge White Paper: 12 Advantages of Agile Software Development