The Iron Triangle in Software Delivery: Why the Perfect Is the Enemy of the Good
I. Introduction
This article discusses an important aspect of product management: the consequences of building the right product, the best product, or the lowest costs and delivery times. Let’s first start with a hypothetical story that sets the scene.
Satire is a literary device or genre that uses humour, irony, exaggeration, or ridicule to criticize and comment on society, individuals, or institutions. It often employs wit and sarcasm to expose and highlight its target’s flaws, absurdities, or contradictions.
A Pizza Too Big
Senior Pizza Chef: Good evening, welcome to Delicious Pizza; how may I assist you today?
Customer: Hi there, I’d like to order a large pepperoni pizza for takeout, please.
Senior Pizza Chef: Absolutely, coming right up.
Thirty minutes pass while the customer patiently awaits his pizza. His stomach rumbling from hunger, he sees the chef coming forward with a frown. “Surely, it can’t be that bad,” the customer says to himself, trying to avoid panic. He has been working hard today and had to skip lunch. He is famished.
Senior Pizza Chef: Just to let you know, we’ve had a slight hiccup. The pizza is larger than the takeaway box; we can’t make it fit!
Customer: It doesn’t sound so bad. Would it be possible to cut the pizza in half and put each in a box?
Senior Pizza Chef (politely pondering for a few seconds): I am afraid that’s impossible. We can only deliver pizzas that fit into our standard boxes. What if we prepare another one for you, this time ensuring it’s got the correct size?
Customer: Hmm, that sounds like a lot of work. I’m really hungry right now.
The manager, listening to the discussion from a few feet away, steps forward, looks at her employee and says: “The customer appears to be in a hurry. Why not take up his suggestion on packing the pizza in two boxes before it gets cold?”
Senior Pizza Chef: I’m afraid that’s not feasible as that would make our pizza service suboptimal. I thought it would be best to review the recipe and find the root cause of the oversized pizza before baking him a new one that fits just right!
Manager (bewildered by the proposition): Can you make that happen in the next 10 minutes?
Senior Pizza Chef (incredulous): Oh no! I need at least two days. The recipe needs to be revised, and the updated recipe needs to be tested, verified, and approved by our designated quality assurance team. Modifying the ingredients can impact taste, quality, and customer satisfaction, so it must be done carefully.
Manager (unsure if her subordinate is serious): Are you saying we must close the place until the new recipe is ready?!
Senior Pizza Chef (astounded by his manager’s lack of understanding): Naturally. There are no resources to do the baking and work on the new recipe simultaneously. It’s unavoidable.
While the manager and her senior chef debated the solutions available, the incredulous and famished customer decided to check the place next door.
II. Series Agenda
Before we continue, you might also be interested in the similar topics of time management:
III. The Dynamics of Product Management Negotiations
While this discussion is unlikely to ever happen in a pizza place, it is all too common in software development organisations. What does this tell us about software teams, software development, and software development organisations? Here are some tentative thoughts.
2.1 Organisation Size and Siloing
Organisations have grown so large that the need for the division of labour and worker specialization has become the norm. In most software organisations of a certain size, there are distinct structures, roles, and teams for sales, engineering, research and development, and product management. Each department has its structure, rules, culture, and priorities. Siloing creates differences that, at some point, might become unmanageable.
2.2 Conflicting Priorities
Of all the problem-generating team characteristics listed above, priority setting is the most serious. For developers, building the thing right (quality) comes first. For sales, it is customer satisfaction (short time to market, customer satisfaction, and competitive prices). For product managers and senior management, it’s low development and maintenance costs.
These differences often lead to departmental or individual feuds, and resolving these differences depends more on who has more power than what is right for the business. This leaves us with two questions:
To answer the first question, we must understand the Iron Triangle of Project Management. The second question can be answered by understanding technical debt and how to manage it efficiently.
IV. The Iron Triangle of Project Management
The Iron Triangle, also known as the Project Management Triangle or the Triple Constraint, is a concept commonly applied in project management, including software delivery. It comprises three interconnected elements: scope, time, and cost. These elements are interdependent, meaning any change to one element will affect one or both elements. The Iron Triangle concept helps project managers and teams understand the trade-offs and constraints inherent in any project. Here’s a brief overview of each component:
The Iron Triangle implies that changing one element is challenging without affecting the others. For example, if the scope of a software project increases, it may require more time and resources to complete, thus affecting both the timeline and cost. Similarly, if there’s a need to accelerate the project timeline, it may require either reducing the scope or increasing resources, which can impact costs.
the iron triangle and process improvement
The Iron Triangle applies only to optimal processes.
It is important to note that the Iron Triangle only applies when the production processes have been optimized, and there is genuinely no way to reduce time or cost without compromising quality.
In some cases, this might not be true, and a process improvement exercise might help reduce time and cost without reducing quality.
However, when the improvement ceiling is hit, the Iron Triangle begins to apply and compromises must be made if features are to be delivered in a timely manner.
Understanding the Iron Triangle helps project managers make informed decisions and manage stakeholders’ expectations by balancing scope, time, and cost throughout the project lifecycle. It also underscores the importance of prioritization, risk management, and effective communication in software delivery projects.
Tips and Tricks
V. Effective Product Management under the Iron Triangle
While eliminating the constraints imposed by the Project Management Triangle is impossible, organisations can build processes that efficiently manage deliveries under these constraints. Here are some ideas on how to do this.
Negotiating Priorities
The best scenario would be to have a process that caters for every situation so that tough negotiations on priorities can be avoided. However, such a universal process may not exist, and each department must defend its priorities through calm negotiations. The key is appreciating that while the priorities may differ, the objectives (increased sales, improved customer satisfaction, and higher value proposition) must be the same across the departments.
Accepting Design and Technology Limitations
Sales teams and product managers must accept the limitations of the product’s current design, architecture, and technology. This means that the customer cannot have every feature they desire at a reasonable cost or time. The boundaries of what can be achieved are often blurry and will depend on the specific context. For example, you might accept to build a new module at a high cost if it allows you to add a strategic customer to your client base.
