Manage It! Notes
Software Project Life Cycles, and how they manage or don’t manage risk
Lifecycle Type –
Serial – Waterfall, phase-gate. Often unsuccessful. Requirements change and/ or things take longer than expected and the whole project gets pushed back.
Iterative – Spiral, evolutionary prototyping. Manages technical risk. Allows for evolving requirements.
Incremental – Design to schedule, staged delivery. You’ll have something to release that’s tested. But at the cost of feature set.
Iterative / Incremental – Agile (Scrum, XP). You’ll have something to release with many features, but not necessarily tested well.
Ad hoc – Code and Fix. Usually unsuccessful. Unmanaged projects use this method by default. It’s what any project devolves into without discipline.
No life cycle fully addresses a product’s architectural risks—that is the risk that the architecture your project team has selected will be sufficient for your needs. Until the code that represents the architecture is written and integrated, it’s impossible to tell whether the architecture works. I’ve worked with many project teams who chose a serial (water- fall or phase-gate) life cycle because they were convinced that the serial life cycle addressed the architectural risks. Unfortunately, it does not. And because final integration and testing occur last in a waterfall life cycle, the waterfall or stage-gate is actually the riskiest for managing architectural risks.