I’ve worked with a lot of teams who have tried to adopt Agile and failed. Why does agile fail? There are many reasons why this happens, but I tend to see clients struggle for 2 main reasons:
- Lack of Focus on Technical Practices
- No Agile Experience on the Team
In this 2-part blog series (click here for Part 2), I’ll share some insights into the issues that may be occurring for you.
Reason #1: Lack of Focus on Technical Practices
The vast majority of companies I work with that try to adopt Agile are really trying to adopt Scrum. For many companies, Agile equals Scrum, but as some of you know, the Scrum framework doesn’t include any guidance on technical practices.
The Waterfall Approach
Let’s step back for a moment and look at what happens on countless Waterfall projects.
- The team goes through an extensive requirements gathering phase and captures everything possible to avoid rework later.
- Then there is a lengthy design phase where software architects come in and design an elegant architecture to handle the very detailed requirements. And to be fair, a lot of them do an excellent job at this task.
- As development gets under way, problems are revealed. Edge cases that were never considered are discovered. Requirements that don’t make sense are found. Additional capabilities need to be developed.
None of these things were accounted for in the original design phase. Rather than re-visiting the architecture it is contorted into doing things that weren’t originally envisioned, features are added and technical debt grows. Despite this, the development team usually manages to make things work and eventually gets to feature-complete.
Then, the users get their hands on the software and all hell breaks loose. The software doesn’t meet the business needs, requirements were misunderstood and the design doesn’t satisfy the business needs. A lot of rework is required, racking up massive amounts of technical debt.
Then the software goes into maintenance mode. The original developers move onto greener pastures and the new developers don’t understand the original design.
Eventually, things get really bad. Progress on new features slows to a crawl and the software becomes fragile. People are afraid to touch large areas of the code-base.
After maybe 5 years (if they’re lucky) the team starts considering a total re-write.
This time we’ll get things right, they say. Inevitably, the same story repeats itself and the endless cycle of 5-year rewrites continues.
The “Agile” Approach
What happens when these same teams attempt to adopt Agile/Scrum?
Rather than spending a lot of time gathering extensive requirements up-front, just enough are gathered to get started. Just enough architecture activities are done, and development begins.
Rather than developing in isolation for a year only to discover missing requirements, with Agile, requirements that were never considered in the original (brief) architecture are introduced at each 3-week sprint.
Hacks are made and technical debt accumulates MUCH more quickly due to the rapidly changing nature of requirements on an Agile project.
Instead of the 5-year rewrite cycle on Waterfall projects, the Agile code-base can often deteriorate within 1 year. Sometimes before the 1st major release is even made, the code-base gets to the point where teams have to throw it away and start over.
This process of code-rot and technical debt accumulation is only accelerated on Agile projects if nothing is done to aggressively address it.
The solution is that in order for teams to be successful adopting Agile, they must adopt more mature technical practices in tandem with the Agile work management practices.
Imaginet is your trusted technology partner who turns your business innovation ideas into reality. 20+ years | 1200+ satisfied customers | 2500+ successful engagements. Primary services include Web Application Development, Mobile App Development, and SharePoint consulting services, with additional specialties in Power BI & Business Intelligence, Office 365, Azure, Visual Studio, TFS, & VSTS, Skype for Business, and more. Located in the United States (Dallas, TX) and Canada (Winnipeg, MB) with services offered worldwide. Contact us today at email@example.com or 1-800-989-6022.