Beginner · DevOps culture and the SDLC · topic 2 of 53 · 30 min
The SDLC: waterfall, agile, Scrum and Kanban
Explanation
What is the SDLC?
SDLC stands for software development life cycle. It is the list of phases that turn an idea into working software and then keep it working. Every team goes through these phases, even if they do not use the names.
| Phase | Question it answers | Example output |
|---|---|---|
| Requirements | What should we build, and for whom? | A list of user needs, a feature request |
| Design | How will it work? | Screens, database tables, an architecture diagram |
| Build | Write the code | Source code in Git |
| Test | Does it work, and is it safe? | Test results, a bug list |
| Release | Put it in users’ hands | A new app version or website deployment |
| Operate and maintain | Keep it running and improve it | Monitoring, bug fixes, updates |
Waterfall: one phase after another
In the waterfall model, each phase finishes completely before the next one starts, like water falling down steps. Requirements are written and signed off, then design, then months of coding, then testing, then one big release.
Waterfall works when requirements are fixed and well understood, for example some government contracts or safety systems. Its weakness is late feedback. Users see the product only at the end, maybe a year later. If the requirements were wrong, a lot of work is wasted, and changes late in the project are expensive.
Agile: short cycles and early feedback
Agile is a family of methods that build software in short cycles, often one to four weeks. Each cycle goes through all the phases on a small piece of work and ends with something working that users can see. The Agile Manifesto (2001) values individuals and interactions, working software, customer collaboration and responding to change.
Scrum in brief
Scrum is the most popular agile method. Work happens in sprints: fixed time boxes of one month or less, often two weeks. The Scrum Guide names three accountabilities (roles):
- Product Owner: decides what is most valuable and orders the product backlog (the to-do list of features).
- Scrum Master: helps the team follow Scrum and removes blockers.
- Developers: everyone who builds the product increment, including testers and designers.
Scrum has five events (ceremonies): the Sprint itself, Sprint Planning (choose the work), the Daily Scrum (a 15-minute daily check-in), the Sprint Review (show the result to stakeholders) and the Sprint Retrospective (discuss how to work better).
Many teams estimate work in story points, a relative size such as 1, 2, 3, 5 or 8. Velocity is the number of story points a team finishes in a sprint. Averaging recent velocity helps forecast how many sprints a backlog will take. Story points and velocity are common practice but are not part of the official Scrum Guide.
Kanban in brief
Kanban comes from Toyota factories. Work items are cards on a board with columns such as To do, Doing, Review and Done. There are no fixed sprints: work flows continuously. The key rule is a WIP limit (work in progress limit): a maximum number of cards allowed in a column. If Review has a limit of 2 and already holds 2 cards, nobody starts new work; they help finish reviews first. This exposes bottlenecks and shortens the time each item takes.
User stories and the definition of done
A user story describes a need from the user’s point of view: "As a passenger, I want to download my ticket as a PDF, so that I can show it without internet." Acceptance criteria list the conditions that must be true for that story, for example "the PDF shows the PNR number".
The definition of done is a checklist that applies to every story: code reviewed, automated tests pass, deployed to staging, documentation updated. In a DevOps team, "done" often means "running in production and monitored", not just "code written".
Where DevOps fits
Agile made the build and test phases fast. But many agile teams still waited weeks for an operations team to release their work. DevOps extends agile thinking to the last phases, release and operate, through automation and shared ownership. Agile asks "are we building the right thing in small steps?" DevOps adds "can we ship each small step safely, and learn from how it runs?"
Need help?
Stuck on a word or an idea? Search this course, or every course, and jump straight to the explanation or a worked question.
Try:
Watch the lesson
The SDLC: waterfall, agile, Scrum and Kanban · 1/7
The software development life cycle, or SDLC, is the path from an idea to software that runs and keeps running.
Prefer a video by a teacher? Find free videos on “sdlc waterfall vs agile scrum kanban explained” on YouTube ↗
In real life: Sprint planning for a railway booking feature
A team in Bengaluru builds a ticket-booking app. Their last three sprints finished 21, 18 and 24 story points, so average velocity is 21. The product owner has a backlog of 100 points for a new "download e-ticket as PDF" release. 100 divided by 21 is about 4.8, so the team forecasts 5 two-week sprints and tells stakeholders "about ten weeks", not an exact date. On their Kanban-style board, the Review column has a WIP limit of 2, which stops pull requests from piling up unreviewed.
import math
velocities = [21, 18, 24]
average = sum(velocities) / len(velocities)
backlog = 100
print(average, math.ceil(backlog / average))Practice (0/3 done)
A team builds for 9 months and shows the product to users only at the end. Which model is this?
Write two functions. velocity(points) returns the average story points of the finished sprints in the list, rounded to 1 decimal place (return 0 for an empty list). sprints_needed(points, backlog) returns how many whole sprints the backlog needs at that average velocity (round UP with math.ceil). If the velocity is 0, return None because no forecast is possible.
A Kanban board is an object like { todo: ["A", "B"], doing: ["C", "D", "E"], review: ["F"] }. WIP limits are an object like { doing: 2, review: 2 }. Write wipViolations(board, limits) that returns the names of the columns that hold MORE cards than their limit, in the order the columns appear in limits. Columns without a limit have no maximum, and a limited column missing from the board counts as empty.
Quick quiz
Read more (free)
Related help
Before this, learn
This topic builds on these. If something here feels new, open them first.
Related topics
- Core DevOps practices and the DORA metricsDevOps culture and the SDLC · same module
- The DevOps toolchain and your learning roadmapDevOps culture and the SDLC · same module
- Requirements and user storiesFull-Stack Development · Planning an app
- Capstone project briefFull-Stack Development · Capstone, portfolio and getting work
- Design project: an online storeSQL and Databases · Schema design and normalisation
- Designing the data modelFull-Stack Development · Planning an app
Questions people ask about this
Open a question to see the answer and why. The first ones are this topic's own quiz, so try the quiz above before you peek.
In Scrum, who orders the product backlog by value?
Answer: The Product Owner
The Product Owner is accountable for ordering the product backlog.
What does a WIP limit on a Kanban column do?
Answer: Caps how many items can be in that column at once
A work in progress limit caps the cards in a column so the team finishes work before starting more.
What is the main weakness of the waterfall model?
Answer: Users give feedback only at the end, so mistakes are found late
Waterfall delays feedback until the end, which makes wrong requirements expensive.
Which is a well-formed user story?
Answer: As a passenger, I want to download my ticket as a PDF, so that I can show it offline
A user story says who wants something, what they want and why.
How does DevOps relate to agile?
Answer: DevOps extends agile ideas into release and operations
Agile sped up building; DevOps carries the same small-step thinking through release and running in production.
Which stage comes right after "deploy" in the DevOps infinity loop?Related
Answer: Operate
The order is plan, code, build, test, release, deploy, operate, monitor.
Which of these is a correctly written user story?Related
Answer: As a student, I want to search my notes, so that I can find a formula quickly
A user story names the role, the need and the reason. The other options are tasks or design details.
In trunk-based development, how long do branches usually live?Related
Answer: Hours, or a day or two
Short-lived branches merged often keep everyone close to trunk and avoid painful merges.
What is a definition of done?Related
Answer: A fixed list of checks every feature must pass before it counts as finished
It turns "almost done" into a clear yes or no: live, tested, validated, safe and clear.
Pass the quiz (60% or more) or mark this topic as done when you are ready.
Your progress is saved on this device only.
Next steps
- 2 more topics in “DevOps culture and the SDLC” before its exam: Core DevOps practices and the DORA metrics, The DevOps toolchain and your learning roadmap.
- Module 1 exam: DevOps culture and the SDLC · 13 questions · 20 min, without help. 4 topics of this module still to finish first.
- Then the next module, Linux for DevOps. 53 topics left in the course before the final exam.