- The concept behind the Iron Triangle is that you have three choices: Make a product quickly, cheaply or well.
- Understanding the relationship between the lean method and the Iron Triangle leads to the concept that anything that isn't of value to the customer is considered waste.
- Focusing on values and eliminating assumptions are key to the development of a valuable product.
There's an old saying in software development that goes something like, "Fast, good or cheap – pick two." Known as the Project Management Triangle, Triple Constraint or Iron Triangle, this concept will be familiar to anyone who has ever felt the pressure of weighing the opposing forces of quality, speed and cost against each other.
Having spent my entire professional life as a software engineer, architect, director or CTO in companies of various sizes, I have felt these pains directly in many ways. Until recently, I have always accepted this principle as a fact of life – like death and taxes, as they say. But in 2011, I was introduced to a concept known as "lean" that changed the way I thought about things. I found myself asking, "Fast, good or cheap – can I have all three?" I now believe the answer is yes.
The Iron Triangle
The concept of the Iron Triangle has emerged over time out of the following thinking:
- Develop something quickly and of high quality, but it will be very costly to do.
- Develop something quickly and cheaply, but it will not be of high quality.
- Develop something of high quality and low cost, but it will take a long time.
A few problems emerge pretty quickly when you take a look at these statements. The first is around the definition of "good," the concept of quality. The triangle assumes that "fast" and "cheap" is an option, when in truth, delivering a project where the result is low quality is almost never an actual option. Whether releasing a product to market, completing a project for a client or delivering on an internal company project, quality is just about a universally expected requirement.
The second issue is known as the Mythical Man-Month or Brooks' law, which states, "Adding manpower to a late software project makes it later." While Brooks' law refers specifically to software development, its concept applies to many other types of projects. Often simplified by the metaphor "too many cooks in the kitchen," the basic concept is that when you add more people to a problem, the additional communication overhead and complexity of project interrelationships often have a negative effect on the timeline as a whole. That pretty much eliminates the combination of "good" and "fast" being a reality. What we're left with is "good" and "cheap," but that means the project is going to take a long time. Thanks to the Lean concept, though, that doesn't have to be the case.
What is an example of the Iron Triangle?
The constraints are thought to be "iron" because you are unable to change one constraint without impacting the others. For instance, when referring to the Iron Triangle in regards to an area such as constraints in project management for a software development team, the constraints of consist of the scope of the work that is to be done, such as the functions and features needed to deliver a working product; the resources, which include the team members and the budget for delivering and executing the product; and time, which is when the team will be able to market and release the product.
The goal of the Iron Triangle is to provide a product team with the necessary information to make trade-offs that ultimately help the business. For instance, if the team has a fixed scope, they may be halfway through the project and realize they are unable to meet the release date, so the variables (options) they have are time (accepting a later release date) or resources (add more people to work on the project, which ultimately increases costs).
The lean startup method
Lean, or the lean startup method, is a process for delivering products and businesses developed by Eric Ries in 2008. Chronicled in his 2011 book, The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses, it is based on concepts borrowed from lean manufacturing as developed by Japanese automakers in the 1980s. The lean startup method extols the concept that anything which does not deliver value to the end user is waste. This waste is combated by creating testable and measurable hypotheses and then measuring them against honest and meaningful key performance indicators, or KPIs.
The first step is to build a minimum viable product, or MVP, the simplest version of a product that can test your hypothesis and deliver the maximum amount of validated learning. Following the initial MVP, the next step is to iterate over and over using tools like split testing and the predetermined KPIs to make adjustments to that product with one of two outcomes: Either refine it to excellence, or determine failure and make a pivot.
Applying the lean process
Armed with what we've learned about the shortcomings of the Iron Triangle, we can deliver a project that is "fast," "cheap" and "good" by applying the concepts of the lean process. When we apply the lean process, we keep teams small, because we know that too many "cooks" is just going to make communication more difficult and limit our flexibility deal with changing market demands. Because we're building an MVP, we don't make big investments. We're testing our hypothesis, so we don't want to spend money or other resources that would turn out to be waste if we're wrong. Keeping teams small and limiting our investment in the MVP let us keep the project "cheap." We're also building an MVP because we want to gain validated learning as soon as possible and deliver something of value to the end user.
By focusing on those values, and limiting what could become a bloated scope full of assumptions and untested hypotheses, we're able to build "fast." When we limit ourselves to the MVP, we get to market quickly with something of value. Once the initial MVP is released, we can continue to follow on the lean principles, using validated learning and KPIs to make decisions on what's working and what's not, and iterate quickly. The repetitive iteration and meaningful measurements will guide us toward the goal of delivering a project that is "good."
And there you have it: fast, good and cheap all in one project!