top of page

Agile vs Waterfall in Plain English: How Teams Actually Organize Work

Shawn West
Feb 18
10 min read

Updated: 2 days ago

If you've been near a software team for more than a week, you've heard "agile" said like a compliment and "waterfall" said like an apology. One is supposed to be modern and fast; the other, slow and old-fashioned. That framing is almost useless, because it treats a practical choice as a moral one.


Strip the reputation away and both are answers to a single, unglamorous question: in what order do you do the work? Do you plan the whole thing up front and then build it, or do you build a little, look at what you learned, and adjust? That's the real difference. Everything else — sprints, Gantt charts, standups — is detail hanging off that one decision.


To keep this concrete, we'll carry one example the whole way through: a small team building a mobile app for booking haircuts. Same app, same team, two different orders of work.


Takeaway: Agile and waterfall aren't good and bad. They're two orders of doing the work, and the honest question is which order fits what you're building.



Waterfall: do it all, in order, once


Waterfall gets its name from the picture people drew of it — work flowing downhill through fixed stages, one into the next: requirements → design → build → test → release. You finish each stage before the next begins. You gather every requirement, then design the whole product, then build all of it, then test all of it, then ship.


The appeal is real. If you know exactly what you need, planning it all up front is efficient and calming. You get one big plan, a schedule, and a clear picture of "done." This is how we build houses and bridges, and for good reason — you can't pour the foundation twice.


The catch is baked into the shape: you don't find out whether you got it right until near the end. For the haircut app, the team spends weeks nailing down requirements, more weeks on design, then builds the whole thing, and only during testing — step four of five — do real users touch it. If the plan was right, you look brilliant. If it was wrong, you've already built on top of the wrong assumption.


Takeaway: Waterfall bets everything on the plan being correct, and you don't collect on that bet — win or lose — until late.


Agile: do a little, repeatedly, and adjust


Agile starts from a different hunch: for most software, you won't know exactly what you need until you've built some of it and watched people use it. So instead of planning the whole product up front, you build it in small slices. Each slice is a working piece you can actually release, and what you learn from one slice steers the next.


For the haircut app, an agile team doesn't try to build everything first. They build one thin, complete thing — "book a basic appointment with one barber" — get it working end to end, and put it in front of real users in a short cycle (often called a sprint, usually a week or two). Then they look: what did people do, what confused them, what did they ask for? That answer shapes what gets built next.


The strength is that being wrong is cheap and early. You're never more than a slice or two away from course-correcting. The cost is that agile can feel less predictable up front — you're deliberately not committing to the whole plan, because the whole plan is the thing you're not yet sure about. If you want the rhythm of how one common agile approach runs those cycles, Scrum explained without the jargon walks through it plainly.


Takeaway: Agile trades the comfort of a full up-front plan for the ability to find out you're wrong while it's still cheap to fix.


The same surprise, run through both


Descriptions only get you so far. The difference shows up the moment reality interrupts the plan — so let's give both teams the identical interruption and watch what happens.


(Developed example — a simple scenario.)


Both teams are building the haircut app. Halfway through, the same discovery lands: talking to salons, they learn that a big chunk of demand is group bookings — a wedding party, a family before a holiday, four friends who want back-to-back chairs. The app was designed around one person booking one chair. Group booking touches the calendar, the pricing, the barber-assignment logic, and the confirmation screen. It is not a small tweak.


The waterfall team is deep in the build stage. Requirements were signed off two months ago; the design assumes one appointment, one customer, one chair. Adding group booking now means reopening requirements that were supposed to be settled, reworking the design, changing code that other finished features already depend on, and re-testing the parts that change. Because everything was planned to fit together as one locked picture, pulling on this one thread tugs half the sweater. It's doable, but it's expensive, it's slow, and it arrives as bad news against a schedule everyone already committed to. The surprise costs the most precisely because the plan was thorough.


The agile team has shipped "book one appointment" and is deciding what the next slice is. Group booking becomes a candidate slice like any other: they weigh it against everything else and, given the demand, likely pick it up next. The work is real — group booking is genuinely more complex — but there's no signed-off master plan to reopen, because there was never a master plan, only the next slice. They design this slice around what they now know, build it, and release it. The surprise is just Tuesday.


Notice what the example does not claim. Agile didn't make group booking simple; the feature is hard either way. What changed is the cost of learning about it late. Waterfall concentrates that cost because it front-loads all the decisions; agile spreads it out because it keeps decisions open until it has to make them. A release itself is real work in both worlds — shipping is never free — but agile pays for change in small installments instead of one large bill.


Takeaway: The gap between the two approaches isn't how hard a feature is. It's how much a late surprise costs — and waterfall's thoroughness is exactly what makes surprises expensive.


Side by side


Here's the whole comparison on one page:


Dimension

Waterfall

Agile

Planning

The whole product, up front, before building

A little at a time; plan the next slice, not the whole thing

When you learn you're wrong

Late — usually during testing, near the end

Early — after each small slice ships

Cost of change

High; late changes ripple through a locked plan

Lower; you're always a slice or two from adjusting

Best when

Requirements are clear, stable, and expensive to get wrong

Requirements are uncertain and you expect to learn as you go


Read that last row twice, because it's the actual decision — not "which one is better," but "which fits my situation."


Takeaway: Neither column is the winner. The right choice depends entirely on how sure you are of the requirements.


The one question that picks the approach


You don't choose between these by taste or fashion. You choose by answering one plain question:


How sure are we that the requirements are right — and how expensive is it to be wrong?


That's it. That's the whole decision, and it's a discovery question, not a dogma. Work through it honestly:


  • If the requirements are genuinely clear and stable — a legal deadline, a fixed spec, a system that must match rules you don't control — planning up front is a strength, not a sin. Waterfall's predictability is exactly what you want.

  • If you're honestly unsure what users need, or you expect to learn a lot by watching them — which is most consumer and business software, the haircut app included — then building in slices and adjusting protects you from committing hard to a guess.


Most teams overestimate how sure they are. The group-booking surprise is the norm, not the exception; new information almost always shows up mid-project. Asking this question early is a small dose of the same discovery work that keeps whole projects out of the ditch — the same instinct behind what quality management actually is: find out what "right" means before you spend a fortune building the wrong thing.


Takeaway: Don't argue agile vs waterfall in the abstract. Ask how sure you are of the requirements and how costly it is to be wrong — the honest answer points at the approach.


An honest warning: "agile" is often done badly


Agile has a reputation problem it partly earned. Because it sounds modern, plenty of teams say "we're agile" while doing something that helps no one — standups that are really status meetings, a mountain of tickets and no working software, "sprints" that are just deadlines with a trendier name, or endless small changes with no one deciding what "finished" means.


That last one matters most, and it's where agile most often quietly fails: if you build in slices but never agree on what a good, complete slice looks like, "we'll adjust later" becomes an excuse to never finish anything properly. The fix isn't more meetings — it's a shared, written bar for done. That's exactly what a Definition of Done gives a team: the agreement that keeps "iterate" from decaying into "never actually finish."


And waterfall done well — clear requirements, careful design, honest testing — beats agile done badly every time. The label on the wall doesn't build good software. The habits underneath it do.


Takeaway: Calling your process "agile" changes nothing. Small slices only help if each slice has a real bar for done and someone owning the priorities.


Most real teams live in the middle


Here's the part the debate usually skips: hardly anyone runs pure waterfall or pure agile. Real teams borrow from both. They'll do enough up-front planning to know where they're headed and roughly what it costs, then build in slices so they can adjust as they learn. A team might plan a whole quarter loosely (a waterfall instinct) while working in two-week cycles inside it (an agile one).


That's not cheating. It's the sensible response to the real question. Some parts of a project have stable, well-understood requirements and deserve up-front planning; other parts are genuinely uncertain and deserve to be figured out by building. A good team applies the right order of work to each part instead of picking one label and forcing everything through it.


When a mix fits, and when it's a warning sign


A mix is the right answer when one project contains parts that differ in how sure you can be about them. Go back to the haircut app. The booking screens are pure guesswork until real customers use them, so they belong in slices. Taking card payments is different. Card handling has to meet the payment industry's security standard (PCI DSS) whatever your users think, so the rules are known before you start and getting them wrong is expensive. That part deserves up-front planning even on the most agile team. One app, two orders of work, each applied where it fits.


Mixes also show up for outside reasons. A client who pays a fixed price for a fixed scope will want a plan up front, even if the team works in sprints underneath it. Regulated products, such as medical devices or software that runs aircraft, have to produce formal design and verification records at set points, so those checkpoints are fixed while the work between them can still be iterative.


There is a version of the mix that is a warning sign. Back in 2011 the research firm Forrester gave it a name, "water-Scrum-fall," after finding it was how most organizations actually adopted agile: a big up-front plan agreed between the business and IT, sprints in the middle, and a slow, infrequent release at the end. The sprints look agile, but nobody can change the plan and nothing reaches users until the end, so you get waterfall's late surprises with agile's meetings on top. The test is simple: if what you learn in a sprint can't change what gets built next, you aren't mixing the two approaches. You're running waterfall in short pieces.


Six questions to pick the mix


The one question from earlier (how sure are we, and how costly is being wrong?) picks the default. These six pick the mix, part by part. Ask them about each major piece of the project, not the project as a whole:


Question

Points toward planning up front

Points toward small slices

How stable are the requirements?

Fixed by law, a standard or a contract

Expected to change once people use it

How costly is it to deliver the wrong thing?

Very: hard to undo, or someone is harmed

Recoverable: you can change it next week

Can you reach real users during the work?

Not until launch

Yes, every week or two

What does the contract say?

Fixed price for fixed scope

Paying for time, or for outcomes

What does regulation require?

Formal records at set checkpoints

Nothing beyond normal good practice

What can this team actually do well?

Long-range planning, careful sign-offs

Short cycles, frequent releases


Run the haircut app through it. The booking flow gets "slices" on every row but the last, so it's built in slices. Payments get "up front" on stability, cost of being wrong and regulation, so the payment rules are planned and agreed before anyone builds the checkout. The salon-owner dashboard is a toss-up, which usually means: plan its scope loosely, then build it in slices. That's a mix chosen on purpose, rather than an agile label with a waterfall project hiding underneath it.


The last row matters more than it looks. A team that has never shipped every two weeks won't start doing it because the table says so, and a team with no habit of written sign-off will skip it under deadline pressure. Pick the mix the team can actually run, then improve from there.


Takeaway: You don't have to pick a team jersey. Plan up front where you're sure, build in slices where you're not, and let the requirements decide which is which.


What to do next


Next time someone frames a project as agile-versus-waterfall, don't argue about which is cooler. Ask the group one question out loud: how sure are we that we know what to build, and how expensive is it if we're wrong? If the honest answer is "very sure, and very expensive to redo," lean toward planning more up front. If it's "we'll learn a lot as we go," lean toward small slices you can adjust. Then pick the mix that fits — and make sure whichever way you go, you've agreed on what "done" means so the work actually finishes.


Sources


This article is a composite explanation written for beginners. The haircut-app walkthrough is a simple illustrative scenario, not a documented case, and is labeled as such where it appears. The descriptions of waterfall (sequential, plan-up-front) and agile (iterative, adjust-as-you-learn) reflect the common, widely taught meanings of these terms as used across the software industry; no proprietary framework or manifesto is quoted.


  • West, D., "Water-Scrum-Fall Is The Reality Of Agile For Most Organizations Today," Forrester Research trend report (July 2011). https://www.forrester.com/report/water-scrum-fall-is-the-reality-of-agile-for-most-organizations-today/RES60109

  • PCI Security Standards Council, Payment Card Industry Data Security Standard (PCI DSS) v4.0.1 (2024). https://www.pcisecuritystandards.org/document_library/


Keep learning. This article is part of the Start Here path in the ShiftQuality Learning Center.

bottom of page