You may have heard of the “Iron Cross”. Have you heard of the “Iron Triangle”?

  • Quality (Deliver what’s expected. And account for all of the exceptional scenarios flows)
  • Scope (How much stuff is delivered)
  • Resources (Time, brains, tools, dollars, etc.)

Pick any two, and the third is a variable.

Inevitably, we will want “Quality” to be maxed out. So, we can only focus on “Scope” or “Resources.” If we want a larger scope of work completed, we need to increase the resources. Alternatively, if resources are fixed, we must accept and define how much scope of work we can realistically complete.

I often read contracts and hear promises that commit to delivering a specific quantity of features by a particular date.

Hopefully, the estimations and budgeting were accurate and included a sufficient buffer to address surprise obstacles and unexpected delays. If not, quality often becomes the variable that gets compromised—and this is frequently done in secrecy.


Question to ask your team:

  • Which parts of the application fail to properly handle rare exception cases?
  • Among these exception cases, which have the highest potential for damage? Examples: causing inconsistent or invalid data, lost revenue, or customer complaints.
  • If you had a full month to focus solely on improving the quality of the codebase, where would you prioritize your efforts? How would these improvements enhance the codebase quality? (This question can help uncover hidden issues within the application that the team may not openly discuss, and not everyone might be aware of).