I am often asked by my students “When is Agile NOT Totally Appropriate?”.
Here’s a good example…
My wife and I are in the process of purchasing a new home that is now under construction. This is the second new construction home we’ve bought in our lifetime. The first time we built a new construction home, the builder did not allow much customization at all – there were very few choices that the builder allowed making in the house. He gave us a price for the house and we had only a few minor choices to make. It was clearly a traditional, plan-driven project management approach – changes were very limited and there was a very disciplined and well-documented process for managing any changes.
The builder that we’re currently working with is not that way – there are several different floor plans to choose from and almost anything can be customized. For example, my neighbor wanted a 3-car garage instead of a 2-car garage and that was no problem (he had to pay for it of course). Aside from customizations, there are also many detailed decisions that need to be made to select light fixtures, plumbing fixtures, floor tiles, cabinets, countertops, etc.
This is definitely more of an Agile approach that is adaptive to customer needs but there’s definitely a downside of allowing this level of customization without some level of control. This particular builder has at least 20 houses in various stages of construction and all of them have some level of customization; so the builder has a lot of balls in the air at the same time and some problems have become apparent:
- The first problem we experienced was when the foundation for the house was poured and we found that the floor plan was a mirror image of what we were expecting
- Recently we did a walk-through of the house to see how it was coming along and we found several things that didn’t match what we thought we had agreed to with the builder
- There was a window in the sunroom where there was supposed to be a sliding door
- There was a door to a hallway where there should have been just an entranceway with no door
- My next-door neighbors had problems with cabinets in their kitchen not fitting in as they expected them to fit
This is a perfect example of the need to blend Agile and traditional plan-driven project management practices in the right proportions to fit the situation. This builder has been very responsive to customer needs for customization; however, there is still a need for a more disciplined approach to stakeholder management and change control normally found in a traditional, plan-driven project management approach to manage all these detailed decisions and changes. The builder corrected all of these problems but I’m sure that there was a cost involved in making those corrections that could have been avoided by doing it right the first time.
Another key point is that it is also not a binary and mutually-exclusive choice between a totally uncontrolled “Agile” approach and a rigidly planned and controlled “Waterfall” approach as many people seem to think. It is very possible to blend a level of flexibility and adaptability to be responsive to customer needs and changes and still have a sufficient level of control to manage the project effectively. It takes more skill to do that but it definitely can be done. Having the right processes, systems, and tools to support that approach is also essential. In this particular situation, there were some obvious problems:
- There was a contract defining what the builder will deliver; however, there have been multiple revisions of the contract still in circulation that have not been well-controlled so it is difficult to determine what has been agreed to and what has not been agreed to
- The process for making changes was not well-defined and was somewhat loose. Many changes were often based on an email conversation or, even worse, on a simple hallway conversation that was not well-documented at all
The key lesson to be learned from this is that you need to fit the approach and the methodology to the nature of the situation rather than force-fitting all projects to either a pure “Agile” or pure “Waterfall” approach. And, sometimes that requires blending Agile and traditional, plan-driven project management principles and practices in the right proportion to fit the situation.