A Hacker's Guide to Project Management, Second Edition

It s easier to do a job if you understand what you have to do, why, and in what sequence.
In an attempt to make the job of software development easier to understand, control and repeat successfully, people have invented a variety of methods , or processes based around a basic life-cycle which suggests a sequence for the main development activities.
Many methods use a variation on the basic Waterfall life-cycle, in which early stages define the requirements for the system. A design stage creates a physical design to meet these requirements, and subsequent stages build, test and deliver that solution. The rest of this book follows a similar structure.
The waterfall life cycle can serve as a structure for most commercial systems development. However, waterfall methods have their limitations, which you need to understand.
Other methods take a different approach, recognising that many of the development activities happen alongside one another. They aim to reduce risk by delivering the system a bit at a time (incrementally), repeating some processes over and over again for each increment (iteration). Some are quite formal, while others employ a lot less modelling and documentation.
This chapter looks at the basic waterfall life-cycle, and a method based on it. It also discusses the major alternatives, and common techniques such as prototyping. I compare the methods, and provide some guidance on where each is best used, so you can decide how to structure your development activities.
The diagram...