Agile is an iterative approach to software and project management that delivers work in small increments, gathers feedback, and adapts the plan continuously instead of committing to a single fixed design upfront.
The idea
Agile favors short cycles of planning, building, and reviewing over one long upfront plan. Teams ship small increments of working output, inspect the result, and adjust the next cycle based on what they learned — prioritizing responding to change over rigidly following a plan.
When to use it
- Requirements are likely to change or aren’t fully known upfront
- Fast feedback from users or stakeholders is available and valuable
- The work can be broken into small, independently shippable increments
How to apply it
- Break the work into small, prioritized increments.
- Work in short, fixed-length cycles (iterations or sprints).
- Review the result with stakeholders after each cycle.
- Adjust priorities and the plan based on what was learned.
Watch out for
Without discipline, “agile” can become an excuse to skip planning entirely, producing a string of disconnected increments with no coherent direction. It also assumes stakeholders are actually available for frequent feedback, which isn’t always true.
Related models
- Scrum — one specific framework for running agile iterations.
- Waterfall — the sequential, upfront-planning approach agile reacts against.
- Kaizen — continuous incremental improvement, a related philosophy.
Sources
The Agile Manifesto (2001), written by a group of software practitioners including Kent Beck and Martin Fowler.