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:

  • Are these problems fundamental, or are they symptoms of deeper organisational issues?
  • Are there other ways of solving those problems besides leveraging power differentials?

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:

  • Scope
  • Scope refers to the project’s features, functionalities, and requirements. It defines what needs to be delivered to meet the project objectives.
  • Changes in scope can have significant implications on time and cost. Adding more features or functionalities often requires more time and resources, potentially increasing costs.
  • Time:
  • Time represents the duration or timeline for completing the project. It includes deadlines, milestones, and project schedules.
  • Time constraints can impact the project’s scope and cost. Shortening the timeline may require reducing the scope or increasing resources, which can lead to higher costs.
  • Cost:
  • Cost refers to the budget or resources allocated to the project. It includes financial resources, human resources, and other assets necessary for project completion.
  • Cost constraints influence both the project’s scope and timeline. Increasing the scope or shortening the timeline may require additional resources, thus increasing costs.

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.