Even though I prefer agile methods, I do believe I need some knowledge of at least one dominant project management methodology. During my christmas holiday, I read Prince2: A no nonsense management guide (amazon, bol). As far as the book goes, it is exactly what I hoped it would be. Fast-paced, concise, and above all, honest. In 100 pages, it shows you all the described processes and artifacts, the way they link together, and the pitfalls.
In two lines?
Prince2 is an interlinking framework of processes, artifacts and mechanisms that allow managing any project. It has provisions for the entire lifecycle of the project, allows hierarchical composition of projects, and has mechanisms in place for the 'real world' things that happen to projects, such as overruns and uncertain requirements.
What about it?
The main things that struck me is how well thought-out Prince2 actually is. It covers the lifecycle of the project form inception to dismantling, in 40 activities, gathered into 7 processes. All those parts fit together like clockwork: if one process produces a document, another process has a way of receiving and assessing it. In terms of correctness, it's a geek's dream.
Then again, there are some parts of the method that I find intriguing.
- There is a focus on work, and not on results; the results (features, documents, stuff) are considered to be a logical corollary of the work being done.
- The method is very linear: first, we define, then, we make, then, we test, then, we deliver. There are mechanisms for feedback and rework, but those are exceptions.
- The method assumes a very hierarchical makeup of any product, and implicitly states that it is possible to create a decomposition first-time-right.
I believe the all-encompassing nature and complexity of the method stops people from thinking about the process, creates a false sense of security, and causes blind following of the process "because that's way we're supposed to". This is aggravated by the large number of handoffs and negotiations.
This provides all kinds of nooks and crannies to hide the raw reality. While the project mandates, tolerances and work packages are intended to increase predictability, they also provide fortifications to hide one's responsibilities behind.
I can see the appeal of Prince2, since it does a better job of relating to the business than agile methods generally do. I can also see the way some would prefer a method that stacks black boxes on top of each other to achieve a product; it does take some gut to stand out in the storm, saying "here I am, you are free to look at everything I do and question it, and I will not be defensive".
Still, I do believe software should be built by people who take responsibility, are critical of their own process, and above all, are not afraid.