DEV Community

Mathieu Ferment
Mathieu Ferment

Posted on

Time or features? A false project dilemna

The Scope Triangle

As a developer you have probably seen this figure before:

Scope Triangle

This is the Scope Triangle, which highlights the relationship when building a (software) project between time, scope and cost. I'm not going to explain it, I'm sure you saw it before (and if you did not here is the Wikipedia page 😉).

One of the statements we get from this figure is "The Scope Triangle means choosing two fixed constraints and adjusting the third". It sound wise, but does it really work?

Following the above statement, you've probably heard or even said something like this before: 'Do you want it fast or do you want it good?' or 'Pick two: speed, quality, or cost.'

Unfortunately things are rarely this simple. Actually all three constraints are flexible to some extent. This is why, when developers ask their boss to choose between two, they often hear... 'Both.' 😅 And it's frustrating! But it reflects how decisions are often made in software companies. Here is why.

The house buying dilemma

Imagine a couple looking to buy their first home. They meet with a real estate agent and explain their priorities:

  • Budget: "The most important thing is that we don’t overspend"
  • Quality: "But we also want a nice and cosy house"
  • Timing: "And of course, we want to move in quickly"

At first, the agent shows them houses within their budget. But these houses are small, outdated, or in inconvenient locations. They realize that sticking to their budget means giving up on quality and location.

So they adjust their expectations: "Actually, house quality is the most important." The agent then shows them nicer homes but they're far more expensive than expected. Now they’re stuck again. If they prioritize quality, they either need to spend more or wait longer to save up.

Eventually, they reach a conclusion: what they really want is a reasonable compromise. None of the constraints is truly fixed, but at the same none of the constraints can altered too much. They’re willing to increase their budget slightly if they find a house that meets most of their expectations, and they’re willing to adjust their quality expectations if it means staying within their means. They don’t want to fully sacrifice one item: budget, quality, or timing ; they just search for the right balance.

Same goes for scope, time, and cost

Same applies for software development works. A customer might say, "We have a strict deadline and we need to deliver 100% of the features" . This can sound unrealistic and you could be tempted to say "please choose one" but the truth is, the customer is looking for the best possible compromise.

Instead of forcing a choice between two constraints, developers should focus on understanding priorities and finding the right balance. The deadline might actually be pushed a little, or the features could be delivered in 2 batches? If you can demonstrate that the outcome will be good, you will be able to get some flexibility from the customer. But remember: he won't fully sacrifice one.

Back to the Scope Triangle

"The Scope Triangle means choosing two fixed constraints and adjusting the third" - well actually no. In my opinion the triangle shows something else: the three constraints are equally important for the customer or the boss. Nobody sane will sacrifice completely one. Everybody will be willing to find the right adjustment, the right cursor, which provides the best outcome. So try to understand what the outcome should look like for your customer/boss and you'll know what you can change.

Top comments (0)