Agile and Scrum
Building software in short cycles, showing results often and adjusting as you learn.
Agile is a family of ways to organize software work around short cycles and constant feedback, instead of one big plan carried out over a year. It was named in 2001 by a group of developers who wrote the Agile Manifesto, which values working software, collaboration with the customer and responding to change over heavy documentation and rigid contracts. The older style it reacted against is often called waterfall: specify everything, then build everything, then test everything, then deliver.
Scrum is the most widely used way of putting Agile into practice. Work is done in sprints, fixed periods of up to a month, very often two weeks. All pending work lives in a prioritized list called the product backlog. At the start of a sprint the team picks what it can finish; every day it holds a short meeting, the daily scrum or stand-up; at the end it shows what it built in a sprint review and discusses how to work better in a retrospective.
Scrum defines three roles: the product owner, who decides what matters most; the Scrum Master, who helps the team follow the process and removes obstacles; and the developers, who do the work. Kanban is a lighter alternative without sprints: tasks move across a board from "to do" to "done", with a limit on how many can be in progress at once. In practice many teams mix both, and "agile" sometimes ends up meaning just "lots of meetings", which misses the point.
Keep in mind
- Agile is a set of values; Scrum is one concrete way to apply them.
- Scrum works in sprints of up to a month, often two weeks.
- Each sprint should end with something working that people can see and use.
- Kanban drops sprints and limits how much work is in progress.