The Iron Triangle - Cost, Quality, and Time
There are many names for a problem that organizations, executives, and teams face every day. For the purpose of this article, we'll refer to it as The Iron Triangle. There are three constraints that typically exist during a project or deliverable - Cost, Quality, and Time. Everyone who has ever worked on any type of project has knowingly or unknowingly been impacted by these constraints.
Cost is commonly evaluated at its most basic form - "How much money will it require to do accomplish something?" This can be broken down into capital expense, operational expense and much more. That is an article for a later date, but it is important to not lose sight of expenses like salary and asking questions such as:
How much money will it cost in salary to build and destroy something?
How much money will it cost in salary to maintain something?
How much money will it cost in salary to replace something?
Do we know what we are impacting by allocating our teams and people elsewhere?
Cost is entirely focused on financial constraints and is directly related and bound to Time and Quality. Each of these corners of the Iron Triangle impact the other. It is good practice to start a project with a known budget, an identified acceptable monthly/quarterly/annual spend is, understood flexibility and risk tolerance, and having an idea of what the hard-stops and limits are.
Where can we cut corners? Where can we absolutely not cut corners? Where can we incur technical debt and where can we not? Projects have a life of their own and will change and evolve over time. What may have been acceptable during a project kickoff may be realized as a significant Production risk now. Recognizing that the importance of each of these constraints may morph over time, it is imperative to discuss Quality before and at the beginning of a project. Determining what is an acceptable level of Quality is crucial because Time and/or Cost will be impacted. A debate or conversation of Quality may lead a team into a spiral of creating and incurring technical debt, ultimately settling for a lower quality solution to a problem. This is a potentially dangerous strategy similar to payday loans or kick-the-can-down-the-road syndrome. Eventually, the team might run out of roadway.
The constraint of time is simple. Will this task or objective be completed before, after, or on some given date. What are the risks that impact a delivery date and by how much? If Time is not a concern, the best solutions can be proposed, built and deployed. That's a fantasy, though. When low Cost and high Quality are desired, projects tend to sit lower in priority or require much more time to complete.
So, how does this break down? Typically it results in choosing two:
Cost and Time - Do it quickly and cheaply, risking low quality.
Cost and Quality - Do it cheaply with high quality, risking priority or taking more time.
Time and Quality - Do it quickly with high quality, risking high costs.
These do not need to have hard lines drawn around them, though. Here are some points of focus for ensuring a great project delivery:
Have early, frequent, and recurring conversations about risks, milestones, budgets, and overall total impressions and expectations with business customers, executives, and stakeholders.
Identify attainable and agreed-to project success criteria as early as possible. This will help round out each of the three constraints.
Be honest and forthright about progress and hinderances.
Be willing to ask hard questions and be willing to give answers to hard questions.
Be able to know where to draw the line and communicate where there is a deliverable that cannot be met and do this as early as possible. Understanding the goal and having a mutual understanding helps everyone be happy and successful.
Identify and work with the project sponsor early and often. Everyone has different perspectives on what is deemed to be successful. It's essential to know and work with the person or team who is accountable for determining what is successful and what is not successful.
Be able to identify when a person or a team has gone too far down the rabbit's hole and have a plan for reorienting.
Work together to get a unified understanding on the required level of effort, importance and urgency or a work item.
Recognize and remember that perfection does not exist. Projects and people change. Be somewhat flexible.