In 2010 Dr. Dobbs IT Project Success Rate survey put success rates for agile/iterative projects at around 60% . What about the 40% of projects that Fail? Why did they fail and What can we do to avoid the causes of failure? Based on my experience and industry experts suggestions, we have identified 5 reasons for Agile projects failure, they are:
1. Unreal expectations from Management
Management buy-in and reasonable expectations should be anticipated; unfortunately, that is not always the case. Management’s false hopes concerning agile could pull the plug on your efforts before true savings can be realized.
2. Product Owner
It doesn’t matter if you are following Scrum, doing your own Kanban style project or something else; if you want your project to succeed, you need someone who can set its direction and make decisions about the product being developed.
3. Feature Evolution
One of the key values that Agile development brings to the software development world is iteration. The key to iterating is to develop a product a little bit at time. It would be accurate to describe the process of iterating on a product as evolution of a product
Features should not be built in a single sprint or iteration. Instead, features should be evolved and grow over time. A feature shouldn’t be pushed into a single sprint or iteration and then be done. A feature should start out small and develop and evolve over time as feedback is received and customers or the product owner tries it out.
4. Smaller User stories
The main reason why this is so important is because it prevents procrastination. Procrastination usually occurs when either we dread some large task that will be difficult or we don’t know what to do next. If you can break a big project up into small parts, it will seem easier to accomplish and will have clear steps of progression.
5. Definition of Done
It is very important to have explicit unambiguous done criteria for any backlogs being worked on by an Agile development team. This means that the product owner should be defining some level of acceptance testing. It doesn’t matter if the tests are manual tests or fully automated tests, what matters is that some criteria is defined by which the team can evaluate whether they have achieved their goal or not. Not having done criteria is demotivating and results in the finger pointing game of why the correct thing was not built.
6. Team Synergy
Teams are strange organisms, especially Agile teams. There are many dynamics that affect how teams act and interact. There are many ways to foster a healthy team and many ways to create unhealthy teams. A healthy motivated team has synergy, a unhealthy gaunt team can be less effective than all of its members are on their own. The key to having a healthy motivated team, is letting them be mostly autonomous. I’m not saying teams shouldn’t have accountability. But if you want to run a software project in an Agile way, you have to let teams self organize and self manage to some degree.
7. Organizational Culture
Sometimes projects fail long before they are started. If you have bad practices or a culture of mediocrity, Agile will not help you succeed.
Here is a video by Matt Wynne, explaining other reasons why Agile Project Fail