How To Convince Upper Management To Finally Care About Technical Debt

Because it’s in their interest, too.

· 6 min read
A fast red sports car.

What does the fastest car and strongest person in the world have in common?

Many things: 

  • They’re top performers
  • They’re respective feats of engineering and training
  • Lots of thought and preparation went into each
  • And when they’re at their best, they leave their competition in the dust

They also have another important thing in common: if you don’t give them the food, fuel, mechanics, trainers, exercises, parts, and so on, they can’t even become their best selves, let alone perform that way.

So, what does the fastest car and strongest man in the world have to do with you tackling technical debt? 

Probably also many things, but we’ll focus on you requiring resources to tackle technical debt at your best. Put another way, what happens if you don’t have the necessary engineers, time, tools, or support from upper management? The same thing that happens when the fastest car and strongest man in the world don’t have what they need.

The trouble, of course, is getting those resources. And it won’t be easy.

Know that resistance is inevitable

If you ever go to Serbia and visit one of our engineering HQs, you won’t soon forget the amount of cigarette smoke inside every nearby bar and cafe. 

The country has one of the highest smoking rates in the world. The government tried to make smoking indoors illegal, but it backfired. Locals stopped visiting non-smoking places, so business owners protested the regulations because otherwise, they’d have to close.

Banning smoking in public places wasn’t a bad idea. But people wanted to keep smoking anyway, whether because they didn’t think it was that bad, they were in denial, or some other reason.

However, this issue isn’t unique to Serbia. All around the world, you can tell people to: 

  • Exercise more
  • Watch less TV
  • Or reduce their sugar intake

But they’ll resist. Again, for different reasons, but they will. It’s natural.

Advocating to prioritize technical debt is no exception to this rule. The business side of your company will push back against your requests for resources. 

At least in this case, understanding why and what to do isn’t difficult. 

Remember, the business side likely isn’t comprised of technical people with experience addressing technical debt. They’re focused on: 

  • The business
  • Sales
  • Marketing
  • Profits
  • Sustainability
  • And so on

This is a good thing because someone has to. But when you bring a problem to them and ask for precious resources that eat into their goals, they’re going to push back until you can prove to them the value of prioritizing this issue.

You may not feel prepared to make this argument, but you have a foot in the technical and non-technical worlds. To be a good engineering manager (EM), you have to know how tech and companies work. 

There’s no one better to make the case.

Talk about the plane, not the hyperloop

When you took on the EM role, did you have any prior manager experience? 

Many don’t, and it’s a huge learning curve. If you were one of them, you know how difficult it was (and may still be) transitioning from technical tasks to those oriented around people. 

Now, you’re going to have to transition again, this time to the business side. Not fully, of course. You’re still an EM in name, duty, and spirit, but when you need to advocate for prioritizing technical debt, your best bet is to leave as much of that behind and think in terms of business values and language. 

Your audience, the people who control your destiny, are doing the same.

Engineers want to build cool things – it’s part of what makes them so great at what they do. Folks on the business side like cool things but want them to be:

  • Feasible
  • Within budget
  • And profitable

It’s like negotiating between people who want to build an undersea hyperloop to get from New York to Lisbon and those who want to build a plane. The hyperloop is cooler, but the plane is more practical. 

When advocating for technical debt, use language to show the business side how not addressing technical debt will impact the plane they’re after.

Talk about value, not money

As strange as this may sound, this issue doesn’t actually come down to money. 

Take a million dollars, for example – is that a lot of money, or isn’t it? It depends on how you look at it. 

If you asked me to pay a million dollars for a new car, I’d say it’s a lot of money. But if we spent one million dollars to cure cancer, I’d say it’s not much money at all. 

In other words, the cost isn’t as important as what you get for your money. 

If someone feels like the cost outweighs the benefits, then a purchase won’t feel justified. So, you have to make the case for why it’s worth allocating resources to addressing technical debt because you’re essentially asking folks to make a purchase.

This requires making two points:

  • Negative things you prevent
  • Positive things you cause

More importantly, don’t just explain what those negative things are – show how bad they would be if allowed to begin or continue. Similarly, don’t just explain the positive things you’ll cause – show how beneficial they would be if they began or continued.

For example, say you have a piece of technical debt that can affect your document storage. It might not seem like a huge deal to your superiors as it hasn’t caused a crisis yet. 

So, you have to draw attention to what happens if a bug erases your documents (or a mistake deletes a very important account!). For example, your company could lose millions of dollars because you’ll become non-compliant and breach various laws. Compared to that possibility, it feels like nothing to spend a couple weeks and a few thousand dollars addressing and preventing this problem. 

Make your case with the three easily trackable metrics

Make your case with numbers whenever possible. To do this, you’ll have to: 

  • Identify relevant metrics to track
  • Properly interpret them
  • And describe them

This may sound daunting if you’ve never done this before. But there are three trackable metrics that, if you build your case around them, will lend your arguments credibility without falling back on purely technical reasons.

Team velocity

How quickly does your team deliver features? To find out, calculate how many developer hours it takes on average to deliver one. 

For example, let’s say your team takes about 100 hours to do so. Certain kinds of technical debt are going to affect that number. If you identify a piece of technical debt that, if resolved, reduces this rate, and if you can back it up with data, then you have a solid argument for moving forward. 

So, if you can argue you can get your rate down to 80 hours, that means: 

  • Your features reach the market 20% faster
  • The team can react to changes faster
  • And they’re more cost-efficient

This sounds very attractive to sales managers and executive management.

Defect rate

At what rate do new features or engineers create bugs? Like with team velocity, track how many bugs are produced in total so you can create an accurate baseline.

For example, maybe you discover each feature generates ten bugs. If so, you can make a case for addressing the technical debt that will reduce this number. Even reducing it from ten to eight gives you a good foundation upon which to build your argument. In this case, the value does come from the money saved on the refactoring and QA testing you won’t have to do.

Turnover rate

As you may well know, having a lot of technical debt can make your code base: 

  • A mess
  • Outdated
  • Or hard to navigate 

If people are leaving or it’s hard to hire, consider if these issues are affecting developer experience, the overall satisfaction level at work, and even your company’s reputation. 

When using this as a reason in your arguments to the business side, talk about the costs these problems cause. For example, if someone leaves six months after you hire them, that’s six months of wasted engineering salary (not to mention the costs of hiring and firing them). Ultimately, the company would save more money by hiring and retaining better talent for longer.

The short version: talk with them, not at them

At some point in your career, you’re going to encounter resistance when you ask to allocate resources to address technical debt. Often, this resistance comes from the business side of the company, so you need to know how to engage with them in their language.

Here are some tips:

  • Resistance comes from ignorance: Business and sales colleagues don’t always know why technical requirements are there. Don’t take it personally, and know their resistance is natural.
  • Put on your business cap: You need to think like the business side, think about what they value, and so on.
  • Think in terms of value, not cost: Money is not the issue – it’s whether or not the amount of money provides the value it should.
  • Track metrics: Bring numbers to the conversation, like team velocity, defect rate, and turnover rate (again, to highlight effects to the business).

Remember, your business-minded colleagues are (hopefully) not hostile. Most of the time, they just don’t get it. You’re doing them a favor by helping them understand these processes. And succeeding and rewarding their trust at least once makes everything easier in the future.


Want more tips on leading effective software engineering teams?

Join my newsletter if you’ve found this content useful


Originally published on Medium.com


Content in this blog post by Alex Ponomarev is licensed under CC BY 4.0.