Engineering deep-divesAll articles

Software Development Methodologies: Agile, Waterfall & More

Agile, Waterfall, Scrum, Kanban — the methodology you pick shapes how your software actually gets built. Here's how the main software development methodologies compare, and how to choose one that fits your team and project.

Occasional field notes on building software — no spam

Idealogic — software development methodologies compared

A software development methodology is the system a team uses to plan, build, and ship software — how work gets broken down, who decides what comes next, and how often you stop to check you're still building the right thing. The main software development methodologies are Waterfall, Agile, and the two most common ways to run Agile, Scrum and Kanban. The one-line answer to "which fits when": Waterfall when scope is locked and can't move, Agile when you expect to learn and adjust as you go, which is most product work.

This guide compares the methodologies that actually show up on real projects — how each one works, where it genuinely fits, and the honest tradeoff each carries. No methodology is a winner across the board, and anyone who tells you otherwise is selling something.

What a software development methodology is

A methodology answers a simple question: how does work move from "we have an idea" to "it's running in production"? It sets the cadence — plan everything first and build once, or build a little, learn, and adjust? It defines who owns priorities. And it shapes the feedback loop, the part that matters most, because the gap between deciding something and finding out whether you were right is where projects quietly go wrong.

People treat these software development models as rigid systems with rulebooks. They're more like defaults — a starting shape you bend to fit your team, your client, and the risk you're carrying. A regulated bank build and a two-person startup app shouldn't run the same way, and pretending otherwise is how good methodologies get a bad name. The label matters less than whether the cadence matches the work.

The main methodologies compared

Here's the honest comparison up front, before the per-method detail. The thing to watch in this table isn't "which row is best" — it's the main tradeoff column, because every methodology buys you something and charges you for it.

MethodologyHow it worksBest forMain tradeoff
WaterfallFixed phases run in order — requirements, design, build, test, release — each finished before the next startsLocked scope: regulated, contract-bound, or hardware-tied projectsLate feedback — you find out at the end if you got the requirements wrong
AgileBuild in short, repeated loops; ship a small increment, get feedback, adjust directionProduct work where requirements will change as you learnNeeds an engaged client and discipline, or it drifts into chaos
ScrumAgile run in fixed-length sprints with set roles and planning ceremoniesTeams that want a steady rhythm and predictable planning windowsCeremony overhead, and cargo-cult Scrum that's all ritual, no value
KanbanAgile as continuous flow, with limits on how much work is in progress at onceSteady streams of work — support, ops, shifting prioritiesLess long-range predictability; harder to forecast a fixed date
SpiralRisk-driven loops; each cycle tackles the biggest remaining risk, prototype then buildLarge, high-risk projects where unknowns need retiring earlyHeavyweight — overkill for anything small or low-risk

A couple of notes that don't fit in a table. Scrum and Kanban aren't alternatives to Agile — they're both ways of doing Agile, which trips people up constantly. And Spiral is the one most teams will never touch; it's a serious approach for big systems with real technical unknowns, included here mostly so you recognize it when a defense or aerospace RFP mentions it.

A horizontal axis running from rigid and plan-up-front on the left to flexible and adapt-as-you-go on the right. Waterfall sits at the rigid end, then Spiral, then Scrum, then Kanban toward the flexible end. A dashed bracket marks Scrum and Kanban as both living on the Agile half of the line, with a note that Scrum batches work into sprints while Kanban keeps it flowing.
One axis under every methodology — they differ in how much they plan up front versus adapt as they go

Waterfall

Waterfall runs the project as a sequence: nail the requirements, design the whole thing, build it, test it, then release. Each phase finishes before the next begins, like water flowing down a set of steps — hence the name. It gets a bad rap in product circles, and a lot of that reputation is deserved, but not all of it.

Here's the fair take. Waterfall fails badly when requirements turn out to be wrong, because you don't discover the mistake until testing — and by then the cost of changing course is brutal. That's the core risk, and it's real. But when scope genuinely can't move — a fixed-price government contract, a build pinned to a hardware release, a regulated flow where the requirements are the law — front-loading the planning is responsible, not a relic. The mistake isn't using Waterfall; it's using it on a product whose requirements were always going to change.

Agile

Agile flips the order. Instead of planning everything up front, you build in short loops — ship a small slice, put it in front of someone, learn, and adjust the plan. It's not a process you can install; it's a set of values about favoring working software and feedback over big up-front documents. That vagueness is a feature and a curse: it's why Agile adapts to almost any product team, and also why "we're Agile" can mean anything from genuine discipline to a daily standup bolted onto chaos.

The honest caveat is that Agile asks a lot of the client. It only works if someone on the business side stays engaged enough to react to each increment and help re-prioritize. Hand a team a fixed spec and then vanish for three months, and you've got the worst of both worlds — Agile's looser planning without Agile's feedback. We lean Agile for most custom software development precisely because product requirements almost always move once real users show up.

Most teams that say they "do Agile" are doing daily standups and calling it a day. Agile isn't the ceremonies — it's whether feedback actually changes what you build next. If the plan never moves, you're running Waterfall in two-week costumes.

Scrum

Scrum is the most popular way to run Agile, and it adds structure to Agile's looseness. Work is batched into sprints — fixed windows, usually one to four weeks — and the team commits to a chunk of work per sprint. There are defined roles (product owner, scrum master, the team) and a set of ceremonies: planning, daily standup, review, retrospective. Done well, that rhythm is genuinely useful — it gives everyone a predictable cadence and a regular moment to course-correct.

Done badly, it's the source of every Agile horror story you've heard. Cargo-cult Scrum is when a team performs the rituals — the standups, the story points, the ceremonies — without the thing they're supposed to enable, which is shipping working software and adjusting on feedback. If your retrospectives never change anything and your standups are status reports to a manager, you've got the costume without the practice. Scrum's a good fit when a team wants a planning rhythm; it's a bad fit when the overhead outweighs a small team that could just talk.

Kanban

Kanban drops the sprint boundary entirely. Instead of batching work into fixed windows, work flows continuously across a board — to do, in progress, done — and the key rule is a limit on how much can be in progress at once. That work-in-progress cap is the whole trick: it stops the team from starting ten things and finishing none, and it surfaces bottlenecks fast because the board visibly clogs where work is stuck.

What I like about Kanban is how little ceremony it demands — no sprint planning, no commitment ritual, just a steady pull of the next most important thing. That makes it a natural fit for work that arrives unpredictably: support, operations, maintenance, or any team whose priorities shift day to day. The tradeoff is predictability. Without sprints, it's harder to point at a calendar and promise a feature by a date, so Kanban suits flow over forecasting. Plenty of teams blend the two — Scrum's planning cadence with Kanban's WIP limits — and that hybrid is more common than either pure form.

Agile vs Waterfall: the real difference

The real difference between Agile and Waterfall isn't speed or modernity — it's when you find out you were wrong. Waterfall front-loads all the deciding and defers all the learning to the end. Agile spreads the learning across the whole build, in small doses, so a wrong assumption costs you a sprint instead of a project. That's the entire debate in one sentence.

So the Agile vs Waterfall choice comes down to one question: how much do you expect to learn mid-build? If the answer is "a lot" — a new product, an unproven market, a problem nobody's solved your way before — Agile's tight feedback loop is worth its overhead. If it's "almost nothing, the scope is locked and contractual," Waterfall's up-front planning stops being a liability and becomes the efficient choice. The trap is picking by fashion. Agile is the default in product circles now, so teams sometimes force it onto fixed-scope work where Waterfall would've been cleaner, then wonder why the "sprints" feel like theater.

How to choose a methodology

Start with how stable your requirements really are, because that single variable decides more than any other. If the scope is genuinely locked — by a contract, a regulator, a hard external deadline — lean toward Waterfall or a structured hybrid, because there's less to gain from constant re-planning. If you expect to learn and change direction as real users react, which is true of most product development, go Agile and pick your flavor from there.

Within Agile, the Scrum-or-Kanban call is mostly about how work arrives. Choose Scrum when your team benefits from a planning rhythm and you can roughly batch work into sprints — it's a strong default for feature-driven product builds. Choose Kanban when work comes as an unpredictable stream and priorities shift daily, like support or ops, where committing to a fixed sprint scope would just be a fiction. A few other things weigh in: team size (tiny teams need less ceremony), regulation (some industries mandate documented phases), and how the client wants to contract. For data-heavy fintech builds, the compliance side often pushes toward more structure than a pure startup app would need.

The honest part nobody puts on a slide: most real teams run a hybrid and tune it as they go. They'll borrow Scrum's planning cadence, Kanban's WIP limits, and a phase of Waterfall-style up-front design where the stakes demand it. That's not a failure to commit — it's the methodology serving the work rather than the other way around. For the wider picture of how a real engagement runs end to end, our product development process guide walks it, and the software development life cycle piece covers the phases every methodology has to move through. You can see how the whole engineering side fits together on our web development hub.

Picking a methodology is the easy part — running it well is the work
Build with a senior team

Frequently asked questions

  • The ones you'll actually run into are Waterfall, Agile, Scrum, Kanban, and a few risk-driven hybrids like Spiral. Waterfall plans everything up front and builds in one pass. Agile is an umbrella idea — build in short loops and adapt — and Scrum and Kanban are the two most common ways to do Agile in practice. Scrum batches work into fixed sprints; Kanban keeps a steady flow with limits on how much is in progress. Most teams today run some flavor of Agile, with Waterfall reserved for projects where the scope genuinely can't move.

  • Agile is an approach to building software in short, repeated cycles, where you ship something small, get feedback, and adjust — rather than planning the whole thing up front and finding out at the end whether you were right. It's a set of values, not a fixed recipe, which is why Scrum and Kanban both count as Agile. The core bet is that you'll learn more from a working increment in users' hands than from a longer planning document.

  • Neither is better in the abstract — they fit different problems. Agile wins when requirements will change as you learn, which covers most product work. Waterfall wins when scope is genuinely fixed and locked by a contract, regulation, or hardware dependency, so up-front planning pays off instead of going stale. The real question isn't which is fashionable; it's how much you expect to learn mid-build. High uncertainty favors Agile, locked scope favors Waterfall.

  • Both are Agile, but they organize work differently. Scrum batches work into fixed-length sprints, usually one to four weeks, with set roles and ceremonies, and you commit to a chunk of work per sprint. Kanban drops the sprint boundary — work flows continuously, you cap how many items are in progress at once, and you optimize for throughput rather than a sprint commitment. Scrum suits teams that want rhythm and predictable planning; Kanban suits steady streams of work like support or ops where priorities shift daily.

  • Start with how stable your requirements are, not which methodology is popular. If scope is locked and won't move, Waterfall's up-front planning earns its keep. If you expect to learn and change direction as real users react, go Agile — then pick Scrum if your team wants a planning rhythm, or Kanban if work arrives as an unpredictable stream. Team size, regulation, and how your client wants to contract all weigh in too. The honest version is that most teams run a hybrid and adjust it as they go, which is fine — the methodology is a tool, not a religion.