In the arena of software development, agile seems to be taking over the world. Research from 2020 showed that 71% of companies are doing (or trying to do) agile! The opposing Waterfall approach seems to be going the way of the dinosaur, i.e. going extinct. This article will explain why agile is winning, and what that means for you.
Agile is an alternative approach to software development, that was created in opposition to the traditional “Waterfall” approach. Agile is based on the ideas (values and principles) in the agile manifesto.
These emphasise small cross-functional teams, working collaboratively (business and tech people working together). Instead of one or two big releases, agile recommends many small releases, to get feedback and course-correct as needed. Instead of specialists working in big stages with phase gates (“Build phase”, “Test phase”, etc.), agile teams concurrently do all the work needed to get a small set of features to Done.
There are a number of advantages that an agile approach has over the traditional Waterfall approach.
Agile has an overwhelming focus on customer relationships and customer value. One of the agile values says we value “customer collaboration over contract negotiation”. One of the agile principles says that “business people and developers must work together daily throughout the project”.
The Waterfall approach usually focuses on pleasing stakeholders, not customers. The primary focus is usually on hitting project milestones and targets, not actually delivering value and making customers happy.
Customers are of course what drives and enables all business. By focusing on customer value and getting technology people to work with the business instead of against it, agile approaches are able to realise more business value.
Most organizations stuck in the old ways have component or specialist based teams. They might have a big team of software developers, a big team of testers, and so on.
People from these teams are thrown at tasks for a project for a few months or years, then shuffled around on to another project. There is no team that has all the skills required to complete a piece of work. Handovers and bottlenecks are commonplace.
In an agile context, organisations form cross-functional teams. That means a small “squad” of people who have everything they need to continuously deliver a small increment of value.
What that actually means varies from place to place, but might be a combination of software developers, testers, business analysts, possibly UX designers, and so on.
Cross-functional teams, by definition, do not encounter bottlenecks or handovers. They can design, build, test and release software by themselves. Owning the value-stream end-to-end means less waste, less constraints, more learning and more value.
Agile is all about early delivery of value. Rather than spending months (or sometimes years!) working on something before delivering it and getting feedback, agile focuses on getting something in front of customers as soon as possible. It does this by making smaller earlier releases, and prioritising flow of work over maximising of effort.
Early delivery of value has a number of advantages, including:
These advantages place agile in a significantly stronger position over the waterfall approach, where value is delayed until the end.
The agile approach also is good at mitigating risk when doing software delivery. It does this via the following methods:
Waterfall projects suffer by pushing out all their risks into a big lump right near the end of the project, by which time it is often too late to mitigate or course-correct.
It is becoming increasingly clear that agile is winning, at least in the software delivery world.
More and more enterprise organisations are moving to an agile approach to building software, or at least something approaching or resembling an agile approach. Pretty much all startups are operating with agile principles. And DevOps (which is closely related to agile) is definitely increasing its footprint.
Organisations that aren’t outsourcing all their technology work have to at least understand if not invest in some kind of agile journey.
Above you can see the main reasons why agile is winning – it provides a strong customer focus, it enables cross-functional teams, delivers value early, and reduces a number of risks.
There are some other more subtle reasons why agile is winning, however.
Agile makes for happier people
Agile is founded on Lean principles, one of which is “respect for people”. Rather than seeing people as generic “resources”, cogs in a machine to be shuffled around between random projects, agile focuses on people’s individuality and ideas. People are listened to, and have a chance to speak their thoughts in retrospectives.
Getting people invested in projects, from the very beginning, and letting them speak up and suggests improvements, leads to better morale, productivity and retention.
Agile begets agile
Agile has many passionate advocates and champions. These people like to share the word and evangelize their beliefs. While this has a danger of sometimes becoming somewhat cult-like, it has the benefit of increasing buy-in, participation and sharing. The more agile succeeds, the more it shares and spreads itself, which in turn increases its market-share and success stories, and so on.
It’s quite simple. If you work in software delivery, you should be getting on board the agile train. Otherwise, you will simply be left behind. For some types of work, like infrastructure upgrades or data centre migrations, the old PMBOK ways will work fine.
But for more innovative software build work, agile is a better fit and is the direction the world is moving in.
I hope I have shown you the reasons why agile is winning and will continue to win. Do you agree or disagree? Please share your thoughts in the comments below!