Train your weaknesses

Some teams are all about quality. They deliver software without bugs. Since that’s their main strength, they’ll work hard to improve that. How can we catch defects earlier? How can we make it even better?

Other teams have doubled down on CI/CD. They can release quickly. They’ll look at improvement through that lens. Deploying daily is not enough. They want to move to a full-automatic test-and-rollback-Facebook-style scenario.

The skills of the team are the skills of the product. And people love to get better at what they’re good at.

About a year ago, in what definitely isn’t a midlife crisis, I started rock climbing. It’s an all-round sport that’s part fitness, part technique. Like most men, I relied largely on my natural bonus: arm strength. By pulling up on rocks, my arms got stronger and for a while, that felt like progress. But then you notice little girls climbing 3 grades higher than you.

To become a well-rounded climber, you need to improve the things that you’re bad at. Training on flexibility, footwork, balance, dynamic moves,… You need to train your weaknesses, not your strengths. That’s where the low-hanging fruits are.

So back to software teams. What good is a team that delivers high-quality products at the speed of a lazy snail? What good is a super-secure product that is so slow nobody uses it?

Self-Assessment

Pick some key attributes that are important for your product. I’ll propose a few for this thought experiment, but make sure to pick the ones that are relevant to you.

  • Speed of delivery (how fast can we ship new features?)
  • Quality (does it do what our users expect?)
  • Performance (is it snappy to work with?)
  • Cost (what’s the monthly AWS bill?)

Have your team rate themselves on each of these attributes with a score between 1 and 10. A well-rounded team looks like this:

  • Speed of delivery (6)
  • Quality (7)
  • Performance (6)
  • Cost (5)

More likely than not, you’ll run into not-so-rounded teams:

  • Speed of delivery (8)
  • Quality (6)
  • Performance (6)
  • Cost (5)

These teams will probably try to get even faster! It’s what they’re good at. Yet the low-hanging fruit is obviously in cost reduction. If they train their weakness, they will improve much faster.

Whenever you see a beautifully designed product that’s full of bugs, you know you have a team that’s not well-rounded. The blazingly fast app with horrible UX. The minimalistic site with the tacky copy.

So, have your team make an assessment of your product and see if you’re well-rounded. Chances are, you’re not. Pick the area where you lag and try to improve just that.

And let me know how it went.