Agile vs Waterfall: Which Development Methodology Is Right for You?
The debate that misses the point
The agile versus waterfall debate has been running in the software industry for two decades and has produced more heat than light. Agile practitioners can be evangelical about their approach to the point of dismissing legitimate waterfall use cases. Waterfall advocates can be rigid about process in situations where flexibility would serve everyone better.
The honest answer is that neither methodology is universally superior. The right approach depends on the nature of the project, the client's organisation, and the kind of software being built. This post is an attempt to give a clear-eyed view of both, without ideological allegiance to either.
What waterfall actually is
Waterfall development follows a sequential process: requirements are gathered completely, then design is completed, then development begins, then testing happens, then the product is deployed. Each phase gates the next — you do not start design until requirements are finalised, you do not start development until design is complete.
The name comes from the flow: requirements cascade into design which cascades into development, one-way, like water falling.
Waterfall developed in manufacturing and engineering contexts where this model works well because physical manufacturing processes are genuinely sequential — you cannot test a bridge until it is built, and you cannot build a bridge until the design is complete.
What agile actually is
Agile is an umbrella term for iterative development approaches that prioritise working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan.
In practice, agile usually means some variant of: work happens in short cycles (sprints, typically 1–2 weeks), each cycle produces working software, priorities can be adjusted between cycles, and the product evolves based on feedback from real users.
Scrum, Kanban, and Extreme Programming (XP) are all flavours of agile methodology.
When waterfall works well
Waterfall works well when requirements are genuinely fixed and well-understood at the start. This is rarer than it sounds — requirements that seem fixed often turn out to be more ambiguous under scrutiny — but it does occur:
- Software with very specific regulatory requirements where the specification is defined by the regulation
- Government or public sector projects with fixed contractual requirements and defined deliverables
- Projects where the client's procurement and governance processes require complete specification upfront
- System migrations where the source system is the specification — you are rebuilding something that exists
The danger of applying waterfall to projects where requirements are not actually fixed is that you discover the problems late — during testing or after delivery — when they are expensive to fix.
When agile works well
Agile works well when requirements are expected to evolve — because the market is uncertain, because users will provide feedback that changes priorities, or because the solution to a complex problem becomes clearer as you work on it. It also works well when speed to market matters — getting a working product in front of users early, even if incomplete, has more value than waiting months for a complete but potentially wrong solution.
- New product development where market fit is uncertain
- SaaS products where user feedback will drive feature prioritisation
- Complex problems where the solution is not fully known at the start
- Projects where a working MVP is more valuable than a delayed complete product
The hybrid reality
Most real software projects use a hybrid: a relatively detailed upfront planning and architecture phase, followed by iterative delivery. This is sometimes called "wagile" — a term that sounds pejorative but describes a sensible approach for many enterprise software projects.
The planning phase establishes architecture, major design decisions, and a prioritised backlog. The delivery phase is iterative — features are built and demonstrated in short cycles, with the ability to adjust priorities between cycles. Major requirements do not change mid-sprint, but the backlog can be reordered based on what is learned from each delivery.
What to look for in an agency's methodology
When evaluating a development agency, the methodology they use matters less than the outcomes it produces. Ask them to explain:
- How often will you see working software during the project?
- How are changes to requirements handled?
- How do they communicate when something is going to be late or is not working as expected?
- What documentation do they produce as part of the process?
An agency that can answer these questions clearly — regardless of whether they call themselves agile, waterfall, or something else — is more likely to manage your project well than one that is ideological about methodology but vague about practice.