The stages of building software.
WHAT THE STAGES ARE
Understanding what is needed Designing a solution Building it Verifying it Releasing it Operating and maintaining it Eventually retiring it
WHAT VARIES BETWEEN APPROACHES
Whether the stages happen once in sequence, or repeatedly in small cycles.
WHAT SEQUENTIAL APPROACHES ASSUME
That requirements can be established fully before building.
WHERE THAT HOLDS
Where the problem is well understood, regulated, or physically constrained.
WHERE IT DOES NOT
Most software, where requirements become clear through use.
WHAT ITERATIVE APPROACHES DO
Repeat the whole cycle in short increments, delivering working software each time.
WHAT THAT PROVIDES
Feedback while correction is cheap Value delivered earlier Risk surfaced sooner
WHAT IT REQUIRES
Ability to release frequently Willingness to change direction Users available to give feedback
WHAT NEITHER APPROACH REMOVES
The need to understand the problem.
WHAT THE LAST STAGE IS
Retirement, which is planned in almost no project and eventually forced on everyone.