I occasionally get asked to describe agile project failures and struggles. I haven’t formally studied root causes of failure but have worked with enough struggling agile teams to gain a qualitative sense of these causes. Agile struggles are commonly caused by non-agile behaviors masked behind agile trappings and terminology. Failure to collaborate is a common problem. People tend to revert to the asynchronous communication (e-mail and written documents); and “throw-it-over-the-wall” habits with which they’ve grown familiar.
Two of the Agile Manifesto’s core values are focused on collaboration – one between team member and the other with customers. Another one focuses on responding to change. Fundamentally responding to change requires collaboration and the continuous realignment of expectations between developers, customers, and stakeholders. Despite the apparent focus on budgets and schedules, projects are generally declared successful when the results meet the expectations of stakeholders and customers – even if those expectations have changed dramatically during the course of the project. Organizations with agile in their DNA facilitate interactions among team members, and collaboration with customers.
I also occasionally get asked what kinds of projects are not suitable for an agile approach. After much thought, I’ve concluded that I would use Agile on every project, small or large, as long as I had the committed participation of stakeholders, customers, and developers. Not long ago I was asked to coach an agile data warehousing group in a large company. They had recently adopted an agile approach, but were struggling to be effective. During the assessment phase of my coaching process I asked the team technical leaders to describe their collaboration with end users. I learned that the users were too busy to be involved in planning, story prioritization, and new feature review and acceptance. The same was true for many of the business experts and stakeholders, so I advised the team to halt the project. A project that isn’t worth the involvement of users and stakeholders is not worth doing – time is better spent on other endeavors. It is essential to effectively involve everyone in the project community, and to ensure that their time is well-spent.
On a positive note, the most gratifying and successful agile projects I have experienced or witnessed have active project community involvement. The strong bond of trust that develops between users, team members, and stakeholders on such projects is a wonderful side effect of successful agile projects. Since success breeds more success, these bonds carry forward to other future projects.