Mastering the Tightrope Walk: Navigating Technical Debt and New Feature Development

Andrew Savala
Bootcamp
Published in
6 min readJun 28, 2023

--

Picture yourself walking a high wire, balancing stakeholder expectations on one side and the stability of your product on the other. It’s a thrilling, terrifying act that every Product Manager knows all too well. Today, we’re going to delve into that tightrope act: juggling technical debt and new feature development. We’ll look into what technical debt is, why new features are vital to your product’s life, and practical tips to keep your balance. Ready to step out onto the wire? Let’s start by defining our nemesis: technical debt.

Demystifying Technical Debt

Technical debt, a term coined by Agile Manifesto signatory Ward Cunningham, is the software development equivalent of choosing the short, easy hiking trail now, knowing you’ll have to scramble up a steep slope later. It’s the cost of rework that’s built into the quick-and-dirty solutions we sometimes have to choose.

There are two flavors of technical debt:

  • Intentional debt is when we knowingly cut corners to meet deadlines or other pressures.
  • Unintentional debt sneaks in when we make unknowingly sub-optimal decisions due to a lack of knowledge, changing requirements, or simply because hindsight is 20/20.

Technical debt, like its financial counterpart, accrues interest. The longer you ignore it, the more it costs in bug fixes, decreased productivity, slower feature rollouts, and increased code complexity.

The Lifeblood of Your Product: New Features

New features are what keep your product alive and kicking. They draw in customers, retain them, and keep your product from becoming a relic. Without a steady stream of new features, your product could fade into obscurity.

So why not pour all our resources into churning out new features? Here’s the catch: the relentless pursuit of new features can lead to a veritable Mount Everest of technical debt. The real art lies in balancing the creation of new features with managing technical debt, which is exactly what we’re going to unpack in this article.

Gauging When to Tackle Technical Debt

Imagine your technical debt as a leaky faucet. A few drips here and there might not be a big deal. But what happens when those drips become a steady stream, or worse, a gushing leak? Here are some key questions to help you assess whether your technical debt is becoming a problem:

  • Are your system’s performance and stability up to scratch?
  • Are security vulnerabilities creeping in?
  • Is your development speed dwindling?
  • Are bugs popping up like weeds?
  • Is the morale of your team dipping?
  • Is your code turning into a tangled mess?
  • Are testing and deployment becoming a nightmare?
  • Is your system struggling to scale?
  • Are customers grumbling about issues that could be traced back to your technical debt?

These questions will help you gauge the current impact of your technical debt but remember to also consider its future impact. Like a loan left unpaid, the cost of technical debt tends to snowball over time.

Deciding When to Add New Features

Choosing to add new features over paying off technical debt isn’t just a flip of the coin — it’s a strategic decision that should be driven by factors like:

  • Market demand for a new feature
  • The potential revenue impact of the feature
  • Impact on user experience
  • Regulatory requirements
  • The current impact of technical debt on system performance, stability, security, and development speed
  • The stage of your product or startup

While new features might take priority in these situations, remember to keep a close eye on your technical debt or risk it growing into a mountain that slows down development, introduces more bugs, and lowers the quality of your code over time. It’s a juggling act, and the balls you’re juggling are the specific context and goals of your project.

Tips and Tricks for Striking the Balance

Now that we’ve explored the what and why, let’s delve into the how. Here are some tried-and-true strategies for keeping your balance between technical debt and new features:

  • Make Data-Driven Decisions: Let your key metrics guide you. If user analytics suggest a new feature could significantly enhance user experience or drive growth, it might be time to prioritize that feature. If your system performance metrics are screaming about the impact of technical debt, it’s time to tackle that debt.
  • Engage Your Developers: Your developers know the innards of your codebase. Regularly check in with them to understand the extent and impact of technical debt and brainstorm strategies to address it. If your development is outsourced or your developers lack the experience, then a fractional CTO can provide similar insight on technical debt.
  • Prioritize User Impact: Always keep the end user in mind. If a new feature would significantly benefit users, it may be worth prioritizing. On the flip side, if technical debt is leading to bugs or poor performance affecting user experience, it’s time to address it.
  • Adopt a Consistent Prioritization Framework: Use a structured method for prioritizing technical debt and new features. This could be a simple decision matrix or a more complex method like RICE scoring (Reach, Impact, Confidence, Effort) or the Cost of Delay Divided by Duration (CD3) method.
  • Dedicate Regular Time for Technical Debt: Consider allotting a certain percentage of each sprint to address technical debt. This ensures that technical debt gets the attention it deserves.
  • Maintain a Backlog of Technical Debt: Just like you’d keep track of new feature requests, keep a record of your known technical debt. This will ensure it doesn’t get swept under the rug and can be addressed when the time is right.
  • Consider Long-Term Impact: Don’t get swept up in the short-term gains and overlook the long-term impact of technical debt. It can slow down future development and make adding new features more challenging.
  • Communicate with Stakeholders Effectively: Make sure your stakeholders understand the importance of addressing technical debt. If they comprehend the implications, they’re more likely to back efforts to tackle it.

In the high-wire act of product management, balancing technical debt and new feature development is crucial for the long-term health and success of your product.

Bridging the Communication Gap

As a Product Manager, it’s your job to communicate the impact of technical debt to stakeholders. You’re the bridge between the technical and business sides of your product. Here are some strategies to make that communication more effective:

  • Use Analogies: Make the abstract concept of technical debt tangible. Compare it to something they’re familiar with, like financial debt. Just like unpaid loans accrue interest over time, technical debt can slow down future development and increase costs if not addressed.
  • Highlight the Business Impact: Show how technical debt can affect business outcomes. This could include slower time to market, increased maintenance costs, unstable products leading to customer dissatisfaction, and a reduced capacity to innovate.
  • Quantify the Impact: If you can, show the numbers. Highlight how much extra time is spent on maintenance due to technical debt, or how much it slows down new feature development.
  • Show Real Examples: Use past experiences to illustrate the impact of technical debt on your product or similar products. This makes the effects of technical debt more concrete for stakeholders.
  • Propose a Strategy: Don’t just present the problem, propose a solution. This could include dedicating a portion of development time to addressing technical debt, using a specific methodology to decide which debts to tackle first, or a combination of strategies.
  • Provide Regular Updates: Technical debt isn’t a one-and-done issue; it’s ongoing. Keep stakeholders in the loop about the state of your technical debt and how it’s being managed. This will help them understand that it’s a normal part of software development that needs regular attention.
  • Use Visual Aids: A picture is worth a thousand words, especially when explaining complex ideas. Use graphs, charts, or diagrams to illustrate the impact of technical debt.

The goal isn’t to scare your stakeholders but to help them understand that managing technical debt is crucial for the success of your product.

Striking the right balance between technical debt and new features is like walking a tightrope. It requires careful consideration, consistent effort, and clear communication. But with these strategies in your toolkit, you’ll be able to maintain your balance and ensure the long-term success of your product.

--

--