What the SDLC Actually Describes
The Software Development Life Cycle (SDLC) is the sequence of phases a piece of software passes through from idea to retirement. Every software methodology — Waterfall, Scrum, Kanban, or anything else — is really just a different way of arranging and repeating the same underlying phases. Understanding the SDLC phases first makes it much easier to understand why Agile frameworks are structured the way they are, because Agile does not eliminate these phases, it compresses and repeats them.
| Phase | Core Question | Typical Output |
|---|---|---|
| Requirements | What problem are we solving, and for whom? | User stories, acceptance criteria, or a requirements spec |
| Design | How will the system be structured? | Architecture diagrams, API contracts, data models |
| Implementation | Build the thing | Working code, commits, pull requests |
| Testing | Does it work, and does it break anything else? | Passing test suites, bug reports, QA sign-off |
| Deployment | How does this reach real users safely? | Release to staging/production, rollout plan |
| Maintenance | How do we keep it working and improve it? | Bug fixes, patches, monitoring, incremental features |
In a traditional model, these six phases run once, in order, for an entire project. In Agile, the same six phases still happen — they just happen inside every sprint, for a small slice of the product, over and over. The phases are not the difference between Waterfall and Agile; the cadence and feedback loop are.
Waterfall: The Original Model, and Why It Still Exists
The Waterfall model runs the SDLC phases sequentially and completely: all requirements are gathered and frozen, then all design happens, then all implementation, then all testing, then deployment. Each phase has a formal gate — sign-off from stakeholders — before the next phase begins. The underlying assumption is that you can fully understand what needs to be built before you start building it, and that changing your mind later is expensive enough that it is worth spending significant time getting the plan right upfront.
That assumption is often wrong for consumer software, where user needs are discovered by shipping something and watching how people actually use it. But the assumption is often correct for safety-critical firmware, aerospace and medical device software subject to regulatory certification, and fixed-price contracts where the deliverable is legally specified before work begins. In those contexts, the cost of a late-stage design change (re-certifying hardware, renegotiating a signed contract) genuinely outweighs the cost of upfront planning rigor. Waterfall did not become popular by accident — it is the correct model when uncertainty is low and the cost of change is high.
Why Agile Emerged
Agile emerged in the early 2000s as a direct reaction to Waterfall's most common failure mode in software: teams would spend months writing requirements and design documents, and by the time working software finally reached a real user (often a year or more after the project started), the requirements were already stale, the market had moved, or the spec had simply been wrong. The Agile Manifesto (2001) codified a different priority ordering — not a rejection of planning or documentation, but a statement of what to value more when the two are in tension:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
The practical consequence: instead of running the SDLC once across an entire multi-month project, Agile teams run a miniature version of it every one to four weeks, shipping a small, working increment each time, and using real feedback from that increment to decide what to build next. This shrinks the feedback loop from "months" to "weeks," which matters enormously whenever requirements are genuinely uncertain — which, for most product software, they are.
Scrum in Practice
Scrum is the most widely adopted Agile framework, and it works by timeboxing the SDLC into fixed-length iterations called sprints, typically one or two weeks long. A functioning Scrum team has three defined roles:
- Product Owner (PO) — owns the product backlog (the prioritized list of everything that could be built), decides what gets built next based on business value, and is the single point of authority on requirements so the team is not pulled in conflicting directions by multiple stakeholders.
- Scrum Master (SM) — protects the team's process, removes blockers, facilitates ceremonies, and coaches the team and organization on Agile practice. A good Scrum Master is not a project manager assigning tasks; they are a servant-leader whose job is to make the team more effective, including by pushing back on outside interruptions mid-sprint.
- Development Team — the engineers (and often designers, QA) who actually build the increment. Cross-functional and self-organizing: the team decides how to do the work, not just executes orders.
The sprint itself is structured around four ceremonies:
- Sprint Planning — at the start of the sprint, the team pulls items from the top of the backlog, discusses what "done" means for each, and commits to a sprint goal.
- Daily Standup — a 15-minute daily sync where each team member answers: what did I do yesterday, what will I do today, what's blocking me. It is a peer coordination tool, not a status report to a manager.
- Sprint Review — at the end of the sprint, the team demonstrates the working increment to stakeholders and gathers feedback, which flows back into the backlog.
- Sprint Retrospective — the team reflects on how it worked together (not what it built) and commits to one or two concrete process changes for the next sprint.
The backlog itself is a living, continuously re-prioritized list — it is never "finished," and items near the top should be well-refined (clear acceptance criteria) while items further down can remain vague until they approach the top.
Kanban vs. Scrum
Kanban takes a different approach to the same underlying goal: continuous flow instead of fixed-length timeboxes. Work items move through columns on a board (e.g., Backlog → In Progress → Review → Done), and the defining mechanic is a Work-In-Progress (WIP) limit on each column — a hard cap on how many items can be "in progress" simultaneously. When a column is full, no new work enters it until something moves out, which forces the team to finish work rather than start new work, directly addressing the common dysfunction of everyone having five things "80% done" and nothing actually shippable.
Kanban has no sprints, no fixed-length iterations, and no mandatory ceremonies beyond a regular cadence review. It suits teams with unpredictable, interrupt-driven work — support queues, SRE/on-call teams, maintenance-heavy products — where committing to a fixed two-week scope doesn't match reality, because priorities shift daily. Scrum suits teams building substantial new features where a two-week planning horizon and a stable sprint goal add real value by giving the team focused, uninterrupted delivery time.
Comparing the Major Agile Frameworks
| Framework | Scale | Cadence | Best Fit |
|---|---|---|---|
| Scrum | Single team (5–9 people) | Fixed sprints (1–4 weeks) | Feature teams building a product with a clear PO and a backlog of discrete, plannable work |
| Kanban | Single team, any size | Continuous flow, no fixed iterations | Support, ops, maintenance, or any interrupt-driven work with unpredictable priorities |
| SAFe (Scaled Agile Framework) | Multiple teams / whole organization (50+ people) | Program Increments (8–12 weeks, containing several sprints) | Large enterprises needing to coordinate dozens of teams against a shared roadmap, often with compliance overhead |
| Extreme Programming (XP) | Single team | Short iterations (1–2 weeks), similar to Scrum | Teams that want Scrum's cadence plus strict engineering discipline: pair programming, TDD, continuous integration, simple design |
SAFe adds an organizational layer above Scrum/Kanban teams — Agile Release Trains, Program Increment planning, and dedicated coordination roles — specifically to solve the problem of getting many independent Scrum teams pointed at the same larger goal without them stepping on each other's dependencies. It is heavier by design and is really only justified once an organization has enough teams that ad hoc cross-team coordination has become the bottleneck; smaller organizations that adopt SAFe prematurely tend to drown in its process overhead.
Common Pitfalls When Adopting Agile
Most Agile adoption failures are not framework failures — they are the same handful of mistakes recurring across organizations:
- Cargo-culting the ceremonies without the mindset. Running standups, retros, and sprint planning as scheduled meetings while the underlying culture stays command-and-control (managers assigning tasks, no real authority for the team to push back on scope) produces all of the meeting overhead and none of the benefit.
- Story-point misuse. Converting points into hours, using velocity to compare teams, or tying points to performance reviews destroys the tool's only real purpose: helping one stable team forecast its own capacity.
- "Water-scrum-fall." Teams run sprints for development but still require a full upfront requirements-and-design phase before the first sprint and a separate, lengthy QA/release phase after the last one — getting the overhead of both models and the benefits of neither.
- An absentee or overloaded Product Owner. If the PO isn't available to clarify requirements or make prioritization calls during the sprint, the team either stalls or guesses — both erode trust in the process.
- Retrospectives with no follow-through. If the same issues get raised sprint after sprint with no visible change, the team correctly concludes the ceremony is theater and stops taking it seriously.
- Treating the sprint as sacred against all evidence. Refusing to ever adjust scope mid-sprint is sometimes right (protecting focus) and sometimes just dogma — if a genuine production incident or blocking dependency appears, pretending the sprint plan is unchangeable is not agility, it's a new kind of rigidity.
Choosing the Right Process for Your Team
There is no universally "best" methodology — there is only a better or worse fit for a given team's uncertainty level, regulatory context, and organizational scale. A small startup team building a product with unclear requirements benefits enormously from Scrum's short feedback loop. A support or SRE team with unpredictable, interrupt-driven work will fight Kanban's flow model less than Scrum's fixed sprints. A 200-engineer organization building a coordinated platform may genuinely need SAFe's cross-team scaffolding. And a team writing certified avionics firmware may correctly conclude that Waterfall's phase gates match their regulatory reality better than any Agile framework. The mistake is picking a methodology because it's fashionable rather than because its assumptions match your actual constraints.
In practice, most real organizations run a hybrid rather than a textbook-pure implementation of any single framework. A product team might run Scrum for feature delivery while a platform team supporting them runs Kanban for infrastructure requests, and both feed into a lightweight, quarterly roadmap review that borrows SAFe's idea of a shared Program Increment without adopting its full role structure. This is not a failure to "do Agile correctly" — a framework is a tool for solving a coordination problem, and a team that adapts the tool to its actual constraints, while preserving the core discipline of short feedback loops and regular reflection, is doing exactly what the Agile Manifesto's authors intended. The frameworks are means, not ends; the end is shipping the right thing, discovered and corrected quickly, with a team that can sustain the pace.