As a project manager for many years I’ve leveraged a range techniques and approaches that have helped me manage a wide range of green-field software development, COTS (Custom Off-the-Shelf), and Hardware implementations. Most of my website is focused on successfully enabling technology to support business value and managing how this happens is covered throughout. However, here are some brief perspectives that guide a lot of how I view and manage projects.
Project Management
Project management begins with the emphasis on liveness; that is conferred by agile methods, especially SCRUM and XP. These techniques emphasize collaboration and ‘just enough’ structure to meet end-user requirements. However, these techniques were not intended to replace or ignore the many other aspects that affect projects such as budgeting, resourcing, communication and the remaining elements of the Project Management Institute’s Project Management Book of Knowledge.
I can imagine that many agilists reading this might be recoiling at the thought of the high ceremony, document-centric and waterfall nature that many armed with a PMP certification possess. From my experience this is more of a reflection of the personalities of the people who have earned these certifications (and granted these personalities tend to gravitate to this area). One reason I suspect is that as a project manager there is an underlying desire to ‘control’ the project and its easy to use the PMBOK (and RUP for that matter) to justify this approach. However, I also firmly believe that effective project managers understand the Agile Manifesto Principle of ‘Individals and Interactions over Processes and Tools’, these PM’s enable their teams so they can control the processes (not abandon them) and that they respect and support their team members to increase their effectiveness.
Iterative Development
The biggest change that I experienced in managing projects came when I managed my first iterative development project. The term Iterative Development has many characteristics (some of which you can find in an article I wrote called Hallmarks of Iterative Development) but chief amongst them is their consistent and ‘time-boxed’ duration (you can learn more about selecting the right iteration length here), rapid feedback, demonstration of business value at the completion of each iteration, and an emphasis on high risk and architecturally significant work first. I’ve run iterative projects using small teams, large teams, geographically dispersed teams and with a wide range of techniques (Walls of Wonder, Kanbans, and Commercial software). All of these shapes and sizes have different benefits and challenges but what I can say is that without using the Iterative development techniques mentioned none of these projects would have been successful.