This year has seen the continued increase in adoption rate of agile development techniques in our industry. In my experience, teams that have used agile practices on their projects has said “they would never go back” to previous plan-driven and overly ceremonious processes. Software development has never been more interesting for those of us who enjoy the dynamic and collaborate approaches that agile advocates. When I was a developer working on waterfall projects years ago, I swore that I would never be a project manager. I had no interest in pursuing that career path, no matter how much it paid. It seemed that PMs were always miserable. Their days were spent running status meetings, hiring and firing, performance reviews, arguing with users on scope issues, writing up change requests, and updating elaborate project plans in Microsoft Project. Boring! These days, running agile iterative projects is so much more fun, and I love project management. I coach PMs to “get out from behind the desk” and work with their teams. Project Management is better termed “project leadership” as we are not directing teams and assigning team members tasks in a command and control style. Rather, we are more like a conductor of an orchestra, guiding the team as they collectively work with the goal of delivering shippable, working software at the end of each iteration.
Project Leadership on agile project is more challenging than Project Management on waterfall projects. As a PM on a waterfall project, I only have to worry about one discipline at a time. For instance, I may be in a 3 month requirements definition phase of the project. All we do every day is write requirements. Boring, but easy to manage. Then, when the requirements are signed off, we spend a few months doing analysis specifications (whatever they are), and so on. While it is easy to manage these projects, it is difficult to be actually successful. The risks related to deferring critical aspects of the project such as testing, integration and customer feedback inevitably result in grief later on.
Despite a large body of empirical evidence to suggest that large scale, plan-driven, waterfall projects do not work, many if not most organizations still fund and manage their projects in a waterfall fashion. There is still huge resistance at the management levels to abandon large scale plan-driven projects. Project Management Offices tend to treat software development projects like any other project and demand detailed plans and estimates.
Recent ideas from the agile camp such as “Lean Thinking” offer some very interesting ideas for delivering value to stakeholders much quicker and more frequently than other approaches. Years ago I wrote about breaking large projects in corporate environments into smaller projects and treating them like regular releases. See the article “Effective governance practices for Iteration Software Development” for more information on this approach. I have helped companies adopt this approach and the effects have been dramatic.
I believe that 2010 will be another year of increased adoption rates of agile practices. However, until management has the courage to apply some of these techniques on their projects, there will always be friction between management and those practitioners that understand the flawed approaches of plan-driven development and wish to adopt these wonderful agile ideas.