Agile Software Development: Is It Dead or Can It Be Revived?
Agile software development is a term that managers tend to love and developers increasingly tend to hate — so much so that more than a few folks have proclaimed agile to be “dead.”
But whether agile is really past its prime — let alone dead — remains an open question. Here’s some perspective on the state of agile software development, why some developers have come to believe it’s flawed, and how to make it better.
What Is Agile?
As you likely know if you’re well-versed in software development buzzwords, agile is an approach to software development that emphasizes incremental and continuous change. It’s the opposite of waterfall-style development, which involves releasing application updates in large chunks on an irregular basis.
The grand idea behind agile is that complex software projects run more efficiently when teams break them up into easily managed pieces. In addition, agile advocates argue that this method benefits users because application updates appear on a rolling basis — so instead of waiting months or years for a new release that introduces valuable features, customers get regular updates.
The History and Present State of Agile
Agile started to become popular more than two decades ago when a group of developers introduced the Agile Manifesto, an articulation of agile software development practices and benefits.
Since then, agile has arguably been the single most influential software development trend of the twenty-first century. Agile serves as the foundation for other trendy practices, like DevOps. Anyone who doesn’t practice some form of agile development today — or at least claim to do so — is often seen as backwards.
That said, there’s decent reason to believe that agile’s heyday may finally be over. Although recent survey data suggests that north of 70% of companies use agile currently, a growing chorus of developers and industry observers is now criticizing agile.
“I hate Agile development because it’s been coopted by business management,” one developer writes on Reddit. “Agile sucks for software development and I’m tired of pretending it doesn’t,” another states on Hacker News. Another Redditor writes, “I fell in love with Agile” early on but has now come to oppose it.
To be sure, it’s hard to draw firm conclusions based on qualitative evidence like this. But it seems fair to conclude that more than a few folks are pushing back against agile. We may not be seeing a full-scale revolt against agile yet, but it’s not crazy to imagine something like that happening.
Why People Hate Agile
Why, exactly, do so many folks seem to dislike — and in some cases loathe — agile software development? There’s no simple answer, but common themes include:
- Lack of specificity: A lot of complaints about agile emphasize that the concept is too high-level. As a result, actually implementing agile practices can be confusing because it’s rarely clear exactly how to put agile into practice. Plus, the practices tend to vary significantly from one organization to another.
- Unrealistic expectations: Some agile critics suggest that the concept leads to unrealistic expectations — particularly from managers who think that as long as a development team embraces agile, it should be able to release features very quickly. In reality, even the best-planned agile practices can’t guarantee that software projects will always stick to intended timelines.
- Misuse of the term “agile”: In some cases, developers complain that team leads or managers slap the “agile” label on software projects even though few practices actually align with the agile concept. In other words, the term has ended up being used very broadly, in ways that make it hard to define what even counts as agile.
- Excessive meetings and structure: Developers sometimes also complain that agile leads to overly complex or high-touch development practices. For instance, it’s common to require regular “stand-ups” — short meetings where team members explain what they’re working on — as part of agile practices. While there’s an argument to be made that stand-ups are valuable for driving collaboration, some developers view them as formalities that get in the way of productive work.
In short, much of the hostility toward agile seems to stem from developers who view it as a concept that reduces productivity and makes their lives more complicated.
How to Fix Agile Development
One way of responding to criticisms like these is to declare agile dead — which, as mentioned above, more than a few people have now done.
But that’s a challenging position to take because it’s not at all clear what would replace agile. No one seems to want to go back to the days of waterfall development, but no one has suggested other real alternatives to agile. Plus, retreating from agile would also imply retreating from related practices like DevOps, and it’s hard to see folks going along with that idea, either.
Instead, a better approach might be to shore up agile practices. Exactly how to do that is up for debate, but one key step might be to define more clearly what agile means. Perhaps we need a new “Agile Manifesto” — or an addendum to the original one — that includes concrete examples of what counts as agile. That would make it a lot easier to put agile into practice and make agile consistent across organizations.
Making developer experience a more prominent focus within agile might also help. Historically, the main goal of agile has been to increase software delivery speed and efficiency, not necessarily make developers’ lives easier. But given the other types of investments that businesses are making in developer experience — like platform engineering — introducing agile practices that not only ensure smooth software delivery, but also keep developers happy and productive, might increase buy-in for agile concepts among developers in the trenches.
Conclusion: Revivifying Agile
It seems premature to declare agile dead. But there are clear signs that it’s not in great health. Unless the development community wants to return wholesale to the days of waterfall — which I don’t think anyone does — now is the time to rethink the state of agile and fix the problems that have made it so unpopular with a growing crowd of practitioners.
About the author
Christopher Tozzi is a technology analyst with subject matter expertise in cloud computing, application development, open source software, virtualization, containers and more. He also lectures at a major university in the Albany, New York, area. His book, “For Fun and Profit: A History of the Free and Open Source Software Revolution,” was published by MIT Press.link