Tuesday, February 28, 2006

Which Project Management Approach Is Best?

I've been studying the Guide to the Project Management Body of Knowledge (PMBOK) lately, in preparation for the Project Management Institute's Certified Associate in Project Management credential (CAPM®) . I had recently read Craig Larman's book Agile and Iterative Development: A Manager's Guide. Reading about so many benefits of being agile and incremental in project approach, I would have said my project management preference was agile.

Now that I'm reading the PMBOK, I'm finding that there is a lot of value in the process-heavy PMI PMBOK. I say process heavy because, for starters, there are over 20 process steps in the Planning Process - one of five core processes. Each of those process steps can have several input and output artifacts. The value I'm finding is that, per the PMI's decades of effort towards a comprehensive project management guide, if I know their framework I shouldn't miss any steps in the next project I work on. I say framework because the PMBOK itself says that the steps are optional, and should serve indeed only as a guide. So, take what works and leave the rest.

One fear I have is that perhaps some say 'go agile' partly because it is easier to digest and understand in your head. But if someone doesn't understand all the possible steps they should take, they will miss the times when some extra process step would have saved the project at a critical juncture. Like any software framework, the PMBOK is a structure, guide and set of optional tools, but the benefit is in knowing what it is and therefore what you can apply where. Agile, in part, means low ceremony and therefore just enough process and documentation to deliver a quality product that meets the customer's needs and expectations. In my opinion, Agile and the PMI are not mutually exclusive. Not only that, it seems apparent that smaller, less defined, lower risk projects would benefit from an agile approach, while a large, multi-disciplinary, high-risk project woould be best suited following the PMBOK's process tightly. And odd as it sounds, I'm studying the PMBOK while starting my second agile project management book (Agile Project Management : Creating Innovative Products).

Perhaps its human nature, but I'm finding some tendency to polarize. I've worked with developers who felt that client-server was old and bad, and that, web development was the obvious direction to go, but there's a right time and scenario for each. I think people like precut answers, and veer away from answers like "well, that depends.."

So, what project mgmt approach is the best? Well, that depends...