The risks of Agile software development: Overcoming feature creep
Ellen Gottesdiener, founder of EBG Consulting offers insights on managing feature creep, the biggest pitfall of Agile software development.
What is the most common risk of Agile software development?
The biggest risk of any technology project is creeping user requirements. Feature creep, also known as scope creep, is common in most software projects, regardless of methodology or domain, and I don't see this issue going away any time soon.
There are several consequences to software project scope creep: projects going over budget, being delivered late or being canceled. I remember a recent software project where the team had bought an industrial-strength Agile tool and was implementing SOA. It looked like they were doing everything they should be doing, exemplary things like parenting and baking apple pie, but they weren't.
The product manager had a vision that he had never tested with the market. If he and his team were really doing "Agile," they would have created a prototype and tested it with the customers early on, within the first month of development planning. Instead, the project went over budget and had to be cancelled. The recovery cost them about $5 million.
Sometimes we at EBG Consulting drop into software development teams like this one, teams that have been working for some time but have not paused to evaluate the project as it progressed. A couple years ago, I helped a software and services company do some product roadmapping. Unfortunately, the company didn't update the plan for two years, as the world and their competitors changed. They had lost clarity around what the project's value was, what the vision was going to be and what the stakeholders had to gain. Even mature teams fall into that trap. They don't pause to reevaluate and then have to play catchup.
Agile development is a balancing act.
It is important not to confuse scope creep with intentional technical debt. In Agile projects, some teams will purposely incur debt because delivering to the market can trump the quality or completeness of the solution. Developers have to get something out there because the competition has some functionality that their product lacks.
That said, developers must plan to prevent scope creep even when they incur intentional technical debt. With a strategy in place, such as a schedule for polishing later, the team can move forward with realistic and relevant goals. Agile development is a balancing act that the product champion or product owner, using Scrum vernacular, has to manage. The product owner has to build trust in the team -- which includes users and business-side members -- and be honest about the errors or shortcomings of the release and the time it will take to clean up debt. However, if too many iterations are spent on cleanup, the project will get a smell, which means that technical practices, like testing and continuous integration, are being neglected.
Teamwork is so important in Agile. Remember the $5 million disaster I mentioned. That was a situation where the product management team took intentional technical debt too far. They passed this practice on to the technology group, turning the technical people into order takers. In that case, we did a workshop for all project participants -- CIO, head of products, technology group leader and users. We showed them what the roadmap looked like and explained the rationale behind it. We discussed all the work that we had helped them accomplish around the product vision and themes. We identified the key players in a project. Afterward, the product managers said, "We've never worked like this before." We just beamed. That was exactly what they needed to realize. Agile is about engaging with the whole team and treating the members like partners. It is the first step to getting rid of feature creep.