Agile and Waterfall Living in Harmony
“Out of clutter, find simplicity.” Albert Einstein
“Everything harmonizes with me, which is harmonious to thee, o Universe. Nothing for me is too early or too late, which is in due time for thee.” Marcus Aurelius
I find it fascinating how people become attached to things. Old cars, t-shirts and boats are examples we are all familiar with. Several years ago, I was involved in a procurement focusing on a large data warehouse we were developing. I began the process by talking to Subject Matter Experts, and I quickly found that the experts tended to cluster around their favorite vendor. They had become familiar and comfortable with a specific application and were now devoted acolytes for their chosen technical solution.
I couldn’t risk allowing an expert’s personal opinion to skew the selection. I solved the problem by gathering technical requirements and holding a “bakeoff” where each vendor came in and demonstrated how their product measured up to the quantitative performance parameters as determined by those experts. That allowed me to remove bias from the selection process.
I also see this tendency to become attached to a specific technical solution in my work in data analytics. I see experts master a piece of technology or become used to a certain process, and they want to use that regardless of the problem they are solving. To combat that, I point out that people have many tools in their toolbox at home. You don’t “love” your hammer more than your screwdriver or choose to use your hammer when you want to turn a bolt because it is your favorite. I view all hardware, software and processes the same way – they are to be used when they are the best fit for the job.
Over the past couple of weeks, I’ve attempted to make amusing observations about this phenomenon by pitting “waterfaller’s” against “agilites”. While the posts were intended to be humorous, they reflected actual comments that you can find in any venue where projects are discussed. While I intentionally made the two groups hostile to each other, I think that is a false view of the world.
There are times when you have a predictive project. You know exactly what you want to accomplish and you can describe the end state with clarity and certainty. A great example is building a house. You tell the contractor exactly what you want, they estimate the cost and schedule. Absent unforeseen circumstances, you expect to get exactly what you agreed to, delivered on a certain date for an agreed upon price. This is the perfect fact pattern for a waterfall project plan.
The beauty of waterfall is that you can tailor the project plan to meet the needs of the stakeholders. While the PMBOK® has many different processes, tools and techniques, you don’t need to use them all and you can adjust the level of effort in different areas. If you are building a house for an individual, how elaborate does your communication management plan need to be?
Then there are times when you need to follow an adaptive model. You know at a high level what you want, but exactly what it looks like or how it functions is not completely determined. An example of this is a retail website. The stakeholders can describe that they want a modern layout, that it needs to rank well on the various search engines and that it needs to have an order fulfilment and inventory control function. Exactly how the site will look and function isn’t known at the beginning of the project because the stakeholder isn’t certain what they want. They do, however, want to shape the project as it is developed.
Given this fact pattern, you should use an agile approach. This is the best approach because you are uncertain about the final requirements, but have a highly engaged stakeholder who can help you make decisions in real time about the product. You do not want that if you are a contractor building a house! It makes perfect sense to determine the stakeholder’s priorities and begin developing working functionality for them to comment on, delivering highest value functionality first and building on it in later iterations.
As with Waterfall, you don’t need to use all the Agile tools and techniques unless they are called for! You tailor the project plan to meet the fact pattern presented by the project.
There should be no competition between Agile and Waterfall any more than there should be conflict between your wrench and your screwdriver. They are specific processes suited for a specific fact pattern, and it is important that you take the time to understand the nature of the project. This allows you to make an intelligent, fact-based decision about which general process is best for your project, then tailor the plan to make it as efficient as possible.
It is also important that you help your organizations leadership understand that there isn’t a best approach, but each project should be analyzed to determine the right approach. As anyone who has tried to tighten a bolt with a screwdriver can attest to.
I am writing this in a beautiful European city famous for a large tower and great food. This time when I landed I was met with the longest customs line I have ever seen! And trust me when I say that is quite a feat. I am still mystified how you can have such a line when you know exactly when and how many people are arriving. This is a pet peeve of mine because I know a little about queuing theory, and this doesn't even require that! This just requires looking at the flight manifests and adjusting staffing. I promise this is my last rant on this topic. Or at least until the next time I travel internationally....