Table of Contents
Agile
Agile is a family of software development approaches emphasising iterative delivery, frequent customer collaboration, and adapting to changing requirements. Examples include Extreme programming, Scrum, and Kanban.
Software projects fail when requirements are locked in upfront but users discover what they actually need only after seeing working software. Traditional waterfall divides projects into sequential phases (requirements, design, implementation, testing, deployment), which cannot adapt when reality diverges from the initial plan.
Agile builds software in short cycles, releasing working versions to users for feedback, then incorporating what was learned into the next iteration. This allows teams to pivot when requirements change and reduces the risk of building the wrong thing.
This contrasts waterfall (plan everything upfront, build it all, then deploy) with agile (plan one iteration, build it, release for feedback, repeat).
Waterfall (high risk): Requirements → Design → Build → Test → Deploy → (oops, wrong thing) Agile (low risk): Iteration 1: Slice → Build → Test → Release → User Feedback Iteration 2: Learn → Pivot → Build → Test → Release → Feedback Iteration 3: Adjust → Build → Test → Release → Done
