Previous month:
August 2013
Next month:
December 2013

Agile Requirements Uncertainty

Requirements
<I wrote this article first for ProjectManagement.com here as part of their Requirements series>

Agile approaches are often used on projects where the end goals are not fully known or may change during the life of the project. This seems unusual to my engineering PM friends who manage the fabrication of facilities. To them, not knowing what it is you are supposed to be building or letting things change along the way is a sign of poor scope definition, requirements gathering, and change control. I hear quips from them along the lines of: “You guys need some rigor and decent specifications, maybe then you could build IT systems that work and don’t go over budget!”

They are right of course, for their domain of defined repeatable projects; first establishing a well formed scope definition and complete specification is the way to go. However, many IT projects are not defined, repeatable endeavors, but instead design explorations into unchartered territory for that organization. The mix of technology has not been used that way before. Sponsors have a vision of the end state, but not a lot of specific detail. No matter how much upfront work is done there seems a host of unknown issues that surface during the journey to the destination. Build/ feedback cycles with adaptive plans and progressive elaboration of requirements is the way to deal with these inevitable uncertainties.

These intangible, unprecedented, emergent, evolving characteristics of IT projects are difficult to explain, but need to be understood. They impact how we plan and execute today’s knowledge worker projects as well as how we should manage requirements. When the specifications are clear such as “A kitchen reno with new counter tops and appliances” then simple, signed off requirements can work well. Yet when things are more vague such as “A winter vacation to someplace warm” remaining flexible to changes and new ideas can be valuable.

Let’s look at some of the differences between plan driven, traditional practices for requirements management and those used in agile methods:

Requirements table

Learning and applying traditional methods of requirements management is easy, it is akin to a shopping list approach. We ask questions like “Did you get milk?”, “Did you get the bread?”, “What else do we need?” Changes may be declined or accommodated. “Billy wants some chocolate!” too bad, tell him he can’t have any, or “Oh, I remember we need light bulbs!” We can then ask do we have enough money for light bulbs, do we have time to go find them, etc. It is all pretty much second nature.

Agile requirements management on the other hand is less intuitive. The constant reprioritization, comparison of new ideas with remaining features, and focus on business value has more balls in the air. Like packing a backpack for a multi day camping trip we are always weighing up the benefit verses the size / weight penalty of bringing something along while keeping an eye on an ever changing weather forecast. There is more re-evaluation, more substitutions, more “Do you really need it?” type questions.

Traditional requirements management has a more satisfying progression of closure – Feature A is in the signed off spec, so we are doing it! This is like saying it was on the shopping list so we will buy it. The fact that it may then sit in a cupboard and never be used is a separate discussion. Agile requirements management lacks this reassuring closure since all remaining items are up for reprioritization or substitution until the completion of the project. Our shopping list is being changed as we walk around the store and that makes some people uncomfortable. However, fewer items should go unused.

In the end it comes down to trading off certainty against flexibility and value optimization within your purchasing decision. If you know you want a vacation at the Hotel Del Coronado in San Diego and that ticks all your boxes then you can lock down the requirements early, book it and be done with it. If you are not sure if the twins will be joining you for a vacation and are looking for the best value 4 star hotel; you will want to keep your options open longer and have some flexibility to best satisfy your purchasing needs.


Mike Griffiths Receives “PMI-SAC Fellow” Award

Fellowship AwardOn November 12, 2013 Mike was presented with a PMI-SAC Fellow award at the PMI-SAC Awards Gala. The Fellow Award recognizes and honours members who have made sustained and significant contributions to the project management profession and the Institute for more than a decade.

Mike was recognized for his work developing agile project management techniques and promoting agile project management including:

Mike is very grateful to receive this award and hopes to be active in the next 10 years of project management promotion and development.


Overdue Update and Designing the Pontiac Aztek

PDCI have had a busy autumn and it has been too long since I posted here. I did some consulting in Europe and attended the PMI Global Congress in New Orleans to present on “21st Century Risk Management” with Dennis Stevens.

More recently our local PMI Chapter won the “Chapter of the Year” award and held their excellent Professional Development Conference that I gave a couple of presentations at. The first on “PMO Evolution: Frameworks for Integrating Lean, Agile and Traditional Projects” and one on “Surviving Agile Projects” aimed at traditional project managers transitioning to manage their first agile project.

The consulting and conference interactions led to a number of ideas for application on agile projects that I will be sharing here in upcoming posts. At our local PMI conference in Calgary last week Bob Lutz, Retired Vice Chairman of General Motors Corporation gave a great talk on design and project management.

He was discussing the importance of defined, repeatable process for efficient, high quality production. Strict compliance and rigorous process controls certainly help improve the manufacturing process. What was interesting was his cautions about applying defined, repeatable processes to design work. He said it flat out does not work and can lead to terrible products.

Bob recounted how upon rejoining General Motors in 2001 he asked Who the hell designed the Pontiac Aztek?(which appears on many Top 10 worst car design lists and is generally slammed from a design perspective – although liked by some loyal owners.) The Pontiac engineers were very defensive claiming that in fact the design of the Aztek was one of the best executed vehicle design projects that had run, hitting each of its targets and assessment milestones during the process. Lutz went on to say while some processes need rigour, design processes need collaboration, feedback and frequent verification to ensure we are on the right track.

As we execute our projects I think there is great value in determining if we are designing something or manufacturing something. The creation of software solutions is like car design, we are trying to understand the problem space and create candidate prototypes for evaluation and evolution towards the best available solution. This requires collaboration, feedback and frequent verification.

Other projects like upgrading servers and training 500 people are more defined, repeatable activities that can benefit from well defined process and strict controls. Most projects I have worked on have elements of both work types mixed together. An important skill for project managers is to know when to employ strict process and when to encourage less structured collaboration where designs evolve based on build-feedback cycles.

I really enjoyed Bob’s talk; he is an engaging speaker who tells things as he sees them and I look forward to reading his latest book “Icons and Idiots”. Over the coming weeks and months I intend to post here more frequently and continue the dialog on the smart application of process and pragmatism.