Three Steps to Deal with Technical Debt

  • Post author:
  • Post category:
    software

A Startup accrues technical debt at a breathtaking pace. It is inevitable, expected, and painful to watch for even the most pragmatic engineers. If you’re building a fresh product or a business from scratch, you write new code. There is no way to ship code for the first time without incurring technical debt. If technical debt defers work that ought to be done today for a later time, a Startup compromises tomorrow for today, every day. 

Startups and Tech Debt

For a successful startup, work deferment is a double-edged sword. If what you’re building sells, all the debt you have racked up will have to be paid. The same tradeoffs that got you where you are become the reason why your product velocity stalls and you can’t build features fast enough. 

If not addressed head-on, compounding tech debt can torpedo growth. Competitors that were distant in your rearview mirror pull up right beside you. Better heeled and unencumbered by the past, they are more responsive to the market and surpass you. 

A little more about Tech Debt

Mature tech organizations plan for tech debt. Like Apple and Google, the big companies dedicate entire product cycles to ‘clean up’ work needed after a major release. If a business is a marathon, these companies are routinely running four-minute miles and have perfected the process of peak performance. They are great at managing ventilatory thresholds. A startup that’s at the cusp of major growth barely knows its first ventilatory threshold, let alone know how to handle it. 

What follows are suggestions on becoming a high-performing technical organization that knows how to manage technical debt. It is a path to get to where you’re managing chaos rather than fighting it. 

Step 1: Decide when to pay

Not all tech debt needs to get paid, and not all debt needs to be paid right away. The best time to solve for tech debt is immediately following a funding activity. The company is still working through absorbing new capital and new blood. This is an excellent time to prioritize paying down the debt while the product, marketing, and sales teams fine-tune the GTM strategy. 

Conversely, the absolute worst time to have a push to pay down tech debt is when a funding activity is on the horizon. You need to show growth and momentum. It is not the time to take a break. Even Ward Cunningham suggests as much. For him, it makes sense to “pile debt” if a liquidity event is on the horizon. But then he ponders if that’s just another version of bait & switch.

Not if you communicate it clearly. 

Step 2: Communicate the nature and impact

Talk about tech debt with your engineers, marketers, salespeople, investors, and customers. This is hard because you are communicating a dense topic to a broad audience. The key is to treat each audience segment differently and anticipate their questions.

Create an internal FAQ for yourself that you think each group will have, and answer it in a way that makes sense for them. Empathy is at the core of all communication, and anticipating the questions that may arise is a sure way to show it. 

The purist Engineer, for example, prizes elegance and, in their zeal for the cool, may despise cleaning up old code. Obsessed with building their own grand cathedral, they’ll advocate for starting from scratch. Explain to them why that’s both unrealistic and unfair. Yes, refactoring, rewriting, and reengineering code is part of paying down tech debt, but it cannot answer all maladies. Software, like life, requires a pragmatic approach that balances the old with the new. Give them a copy of The Phoenix Project and see if they still feel the same.

By investing in your Startup, your investors have taken a contrarian bet by investing in you. They will support you as long as you make a clear case for return on equity. Yet, they’ve invested in a growth story, not a cleanup tale. They might feel punked if you suddenly show all this R&D effort going into cleaning up the mess of the past. The key is to be transparent and show how soon you can show returns and when you will know the plan is succeeding. 

Step 3: Automate the Mundane

Build a moat around your engineers. Treat your engineers, like Amazon, as alchemists who need the time and space to solve the problem they solve. This may sound counterintuitive to all the advice given to keeping engineers close to the operations. Still, engineers’ time on ops issues should be inversely proportional to the technical debt. 

Hire around developers. Beef up your QA, DevOps, and other ancillary operations groups. Usually, a Startup hires in these groups last. Yet, these ops groups provide and manage developers’ feedback loop to improve the product. 

Your QA teams can automate deployments and testing to speed up feedback. Your DevOps teams can not only make provisioning simpler, but they can also create smoke tests that ensure changes don’t break existing functionality. A full-time NOC team can help reduce the sting of downtime by constant monitoring of production systems. 

You are throwing people (and money) at the problem, but your developers are your most expensive line item. You’re giving them the runway to resolve and pay down the tech debt. This approach allows you to catch up and get to the point where you can spend a certain percentage of time each sprint to pay down debt, just like the big players. 

Finally

The unsaid requirements of the technical leader are gumption, judgment, and intuition.

You need to speak candidly about tech debt and why product delivery won’t be as fast as some may like. This requires gumption.

You need to know when to pay the debt and when to push the team a little harder. This requires judgment. 

Few aspects of managing push a technical leader more than when communicating to a non-technical audience why a technical debt must be paid, and telling their engineers when paying it should be deferred. This requires intuition. 

To display gumption, judgment, and intuition—well, that’s just leadership. 

Do you have more ways to deal with tech debt? Join the conversation on LinkedInTwitterInstagram, or Substack.