Identifying technical debt is important
When it comes to obstacles that keep scaleups from growing, the most common culprit we see is technical debt — the tradeoffs in tech quality companies make to deliver a product. As a startup begins to scale, these tradeoffs start to show up in different ways. Often, the code is starting to make development tasks slower and engineers are becoming frustrated because the code was not written perfectly. Or it may be that you now have out-of-date libraries or frameworks, so the team can’t make needed upgrades or take advantage of new innovations, and your system has become vulnerable. Your tech debt could have shown up in the form of sub-optimal tooling, inadequate testing or too many manual processes. But whatever form the tech debt might take, these tradeoffs and their effects become more evident until they’re impossible to overlook.
It’s easy to understand how startups take on too much tech debt. And in fact, a certain amount of tech debt is inevitable and acceptable. As a startup, you’re in a sink or swim phase, so making concessions to deliver a product is expected. When getting to market first and achieving product/market fit is a priority, it makes sense to make some sacrifices. Engineers often know they’re delivering a feature that isn’t optimal, but they're usually up against tight deadlines and on overworked teams, so perfecting the code isn’t always possible.
Then, during the initial stages of growth, investment is often prioritized in other ways, like hiring. While we agree that hiring is one of the most important things for growing a startup, the impact of that technical debt can greatly magnify as your teams grow. New teams are unfamiliar with the workarounds and any shortcuts taken in the beginning with the intention of cleaning up later may be forgotten.
There are signs that a company’s tech debt has tipped the balance of acceptable and is actually holding them back. We’ll point out the five most common signs we see when tech debt is hitting a critical level. While not exhaustive, these are helpful indicators to watch out for, so you can address tech debt before it causes major setbacks further down the road.
1. Engineering satisfaction
If you’re only going to pay attention to one of the five signs in this blog, let this be it: listen to your engineering team. Pay close attention to your developers and their complaints. They’ll know when the problems impact them the most because they deal with them daily. Whether they’re unable to onboard new team members due to access issues or whether they are doing manual deployments long after they should be, engineering will be able to gauge the friction these issues are causing to the business.
2. Long value lead time
As a startup, look at the overall time it takes to deliver user value. Value lead time refers to the time it takes for an idea to be developed, deployed to production and then rolled out to users. An increase in this metric often indicates that tech debt is getting in the way of efficient processes. It might be that code quality is causing development to be slow. It could also be friction in the developer experience. Or it could be that the tech debt produces bugs and outages that distract developers from their main tasks. All of these add up to a longer value lead time.
3. Impact to end user
Is it taking a long time to onboard new users? Or maybe your call center is experiencing an uptick in customer complaints? Quality issues trickling down to the customer are a clear sign that your technology needs to be addressed. However, sometimes the impact may not be obvious. It might be that salespeople are explaining away the problems, call center staff are helping users or developers are quickly fixing any issues. Or just simply the users are abandoning the product for alternatives. The key takeaway is always to be aware of what your users are going through.
4. Ability to onboard new devs
Your initial development team might have become used to taking shortcuts for all the reasons mentioned above. However, as you start hiring new developers, they can become frustrated with the tech issues that the launch team was willing to ignore. If it’s taking a long time for new developers to get up to speed and become productive, or if there are complaints from more recent hires, too much tech debt is often the culprit.
5. Degraded non-functional measures
Tech debt commonly comes in the form of run-time infrastructure costs, lower performance and availability or data freshness. While these are widely called non-functional requirements, we like to call them cross-functional, as they have a clear impact on the customer experience. Observability is most important here, and while we might not be seeing problems that affect the customer, we can monitor how the systems respond to an increase in traffic, customers and data. This view will allow us to predict how it might scale, how fast we grow and whether we need to prioritize some technical debt.
Take a closer look at your product roadmap to pinpoint where improvements are needed. Shortcuts here can undermine future product development and the life of the business, so it’s essential to keep an eye on these.
How can you get out of tech debt?
There is no one perfect formula for resolving tech debt. Each company will handle tech debt based on the strategy and the company culture. But there are some standards that everyone can employ to mitigate tech debt before a crisis.
Much of what it takes to resolve tech debt comes down to transparency about the problems you need to solve, trust in your teams and communication and alignment between teams. It’s important that business teams share business context with engineering teams. Teams should also be able to monitor data on business performance and customer feedback, so that they can track metrics and make their own decisions. Your tech teams will make better decisions about resolving tech debt when fully informed about the problems and their impact. Close collaboration between product and engineering is also critical in building consensus about what’s important, so competing interests don’t inhibit progress. You can read more about technical debt solutions at martinfower.com.
Leveraging technical debt is an important part of scaling. Prudent technical debt practices are a core capability of our Digital Scaleup Studio.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.