When to make the tradeoff between speed and quality

Brandon Chu’s excellent article “Product Management Mental Models for Everyone” includes a section titled “Confidence determines Speed vs. Quality.” that I’d love to write a bit about here. Having the right priorities is really important for us to create and deliver quality software, so it’s important we make sure we are making the right tradeoffs.

Brandon’s article posits there are two things one needs to consider: 1) one’s confidence in the importance of the problem and 2) one’s confidence in the correctness of the chosen solution.

The three possible situations are:

  1. Confidence in the problem’s importance is low
  2. Confidence in both the problem and the proposed solution is high
  3. Confidence in the problem is high, but confidence in the current best solution is low

Low confidence in the problem

Focus on speeding up, talking to customers, running experiments, and quickly building confidence. Spend just a few days (if possible) to quickly become enough of an expert about the problem space to be able to gauge how important the perceived problem is. Either the problem is important, and should be solved, or it is not.

High confidence in both the problem and the proposed solution

Focus on quality, don’t take shortcuts, and do a thorough job.

We know exactly what we need to do, so let’s do it right the first time.

It’s easy to think “we are confident so we should run fast.” However, one has the opportunity to be thorough without worrying about possibly having to pivot later. One knows the problem is important and the solution is correct: so get it right and get it out to your customers.

If you feel like you don’t have time to do it right, then you either don’t think your proposed solution is correct or you aren’t confident the problem is important enough to warrant this kind of attention.

High confidence in the problem, but low confidence in the solution

Balance speed and quality, quickly iterate, and build up confidence to eventually arrive at a high quality solution. Focus on learning while doing. Try to move more confidently over time, being able to trade a little speed for quality as things progress.

It can be paralyzing to choose between competing solutions. “How do we know which is right?” The wrong thing to do would be to slow down, debate the solutions, and stop moving forward. We have a way to know things: do experiments.

And sure, not everything is easy or possible to test. In that case: start to research and build up knowledge so you can make as educated a bet as possible. Then be honest with yourself and others, “we are making the best bet we can possibly make – let’s do it.”

Either know which solution is right or make a justifiable bet.

Building up confidence

Confidence is cumulative. Being able to “build up” confidence is a super important skill for an individual or organization to practice. Working confidently through a number problems is a reinforcing loop, building confidence up each time and helping one work quicker or with higher quality over time. There are studies about how one’s confidence in and accuracy about past decisions influences future decisions.

To gain confidence it’s important to prioritize having as many confidence-building events as quickly as possible. That’s the primary reason we must go faster when we are less confident: we need to quickly practice being confident over many small events so we can be super confident later and work at a higher quality level over a longer timeframe.

So make a list of super small “wins” you and your team can achieve, hit them, and then start to push out further. You can do it.