Select Page

The ReleaseTEAM Blog: Here's what you need to know...

Tackling Technical Debt Redux: a Deeper Dive

Strategically Acquiring Technical Debt

What is technical debt?

The term “technical debt” was coined to describe the costs of taking coding and design shortcuts to create functional software in the short term. With technical debt, you may ship your software faster now, but you will need to fix code that is more difficult to read, modify, extend, or maintain later. While all technical debt has a cost, improving product and business outcomes is sometimes necessary.

Types of technical debt

There are four main types of technical debt: acquired technical debt, unintentional technical debt, short-term technical debt, and long-term technical debt.

Both acquired, and unintentional technical debt can accumulate without any strategic decision. Short-term and long-term technical debts occur when the team and organization knowingly decide taking on technical debt is more beneficial than harmful.

Incurring tech debt for new opportunities

The benefits and costs of taking on technical debt should be part of the decision-making process, along with a clear plan on when to address the technical debt after release. This kind of intentional technical debt can be beneficial to organizations.

Short-Term Technical Debt

Business leaders and development teams may consciously decide to take shortcuts or do things the “wrong” way to ship a product more quickly.

Companies choose to take on short-term technical debt when they create a minimum viable product (MVP). An MVP has enough features to test a product idea with early adopters, allowing your team to receive user feedback quickly. With an MVP, development teams want to avoid over-engineering the solution, as this results in wasted engineering hours for a product that is still proving product-market-fit. Once your team has collected feedback, it can iterate or even discard ideas that don’t work to begin testing the next idea. For MVPs that evolve into full products, teams must fix the early technical debt to plan for scalability and easier code maintenance.

Another reason companies incur short-term technical debt is to reduce the time to market for a feature or product. While shorter times to market are usually a good thing, consider the factors driving this decision.

  • Are you attempting to beat a competitor to market?
  • Will the accelerated product positively or negatively affect user sentiment–it’s difficult to overcome a terrible user experience even if your product is first to market.

Long-Term Technical Debt

Long-term technical debt delays developmental costs and efforts. For example, a team could build a single-platform app now while planning to support additional platforms after the organization raises the next round of funding. This type of technical debt decision sounds similar to MVP releases but instead is a fully developed product for the chosen platform.

As a result of developing for a single platform, the development team may need to recode some services or functions to work efficiently across platforms when additional funding is received.

Paying down technical debt

Fixing past technical debt can help reduce the cost of developing and maintaining your products, allowing you more time to focus on new features. However, not all technical debt work has the same return on investment.

First, it’s difficult to pay down technical debt that you don’t know you have or that your team doesn’t understand the rationale for why it was initially incurred. If you choose to incur debt for short or long-term strategic reasons, be sure to track it so that future planning can accurately evaluate whether and when to fix it.

When technical debt breaks the system, is a barrier to business needs such as scalability, or is a barrier to highly needed feature requests, fixing the tech debt will be a higher priority. Predictably, scheduling time for tech debt work will minimize the buildup of urgent, high-priority fixes. This strategy may appear to take time away from roadmap work, but your team will recover the time through easier code expansion and maintenance.

If the technical debt does not have an identifiable business justification or is a nice-to-have, deprioritize this work in favor of more valuable work. Examples may include replacing an older technology or language that works well to meet a preference or simply because the challenge is interesting.

Knowing when to incur or fix technical debt is an art and a science. There are multiple books written to help organizations balance how they manage technical debt (for example, Managing Technical Debt: Reducing Friction in Software Development).

ReleaseTEAM can assist in paying down your technical debt directly, through consulting or staff augmentation, or in avoiding future tech debt by implementing the right tools and practices for your organization.

Join Our Mailing List

Please enable JavaScript in your browser to complete this form.
Name
=

Corporate HQ

1499 W. 120th Ave
Suite 110
Westminster, CO 80234
720-887-0489

Massachusetts

1257 Worcester Rd.
Suite 108
Framingham, MA 01701
866-887-0489

Canada

PMB# 604
1-110 Cumberland St.
Toronto, ON M5R 3V5
866-887-0489