I was discussing the natural progression of projects with an experienced friend. Here are the real project stages:
- Planning (have an idea)
- Estimation – always wildly optimistic
- Design – this stage may be done while implementing
- Implementation – project starts to overrun
- Private discussion with customer introduces a few trivial changes
- Design is finally written down – this stage may be omitted if time pressing
- Changes are discovered to double the project time and budget
- Project starts over-running severely
- Features start being cut, but are replaced by new features
- Project now massively over-running
- Features cut again
- Project released in beta
- Steady set of bug fixes
- Blame assigned
- Testing carried out – this stage can be omitted if customers desperate
- Innocent punished
Obviously this is different from the Design – evaluate – implement – evaluate – test – evaluate cycle that I learnt during my MSc, but I fear that even that included the two vital stages: assignment of blame and punishment of the innocent.
The easiest technique for blame assignment is, of course, to blame the absent. They are safely out of the way, and it will not harm them. Second is to blame the customer and the boss. This does not damage the team. Finally, blame may be placed on whoever appears most vulnerable to it. This has no relation to responsibility