Death By Tech Debt
In the effort to commit code and ship product, it is all too common that even the most talented developers and product owners will make classic mistakes. Deadlines and constraints make people do things we otherwise wouldn’t do. Some times that’s good — others times it’ll kill you.
This is the story how how tech debt can become the slow cancer that consumes an organization.
Debt Is Efficient
When young organizations need to commit code and get a release underway, they often do so by working with sub-optimal code for the purposes of achieving a milestone. In turn, they owe a “debt” by running with software that they know requires improvement. But this debt is no different than others.
When organizations are getting underway or need to scale, they must often times require access to capital through a loan or other debt instrument. This capital allows them to grow — but it must be repaid.
Debt Is Corrosive
One of the special properties of debt is its ability to linger and quietly erode the foundations of companies. Just like taking out a loan that cannot be repaid, taking out tech debt without a plan to pay the principal immediately leaves developers only able to address interest for years to come.
Code that can be considered “tech debt” is dangerous because it is often also a platform on which other functions and features are built. That means that dependencies built into those higher-level functions and features are contingent on an underlying code base that developers know must be significantly overhauled. Like a house built on sand, the foundation cannot support the structure itself.
Tech Debt Threatens The Company
In nearly every board meeting that I have been in, members of the board discuss the financial health of the company. They focus on profit and loss, capitalization, and the debt to income ratio. This strategic focus on financial health must be matched by the focus on technical health as well.
If you want to see a company go down under faster than Qantas Airways, look to companies with significant cloud infrastructure deployments. These systems offer incredible functionality — but there is a cost.
With under-optimized code in place, companies pay a premium each month for services that they should otherwise not have had to pay for. Instead of addressing the tech debt, many firms choose to try and bring on new customers, accidentally compounding the underlying problem. While the short-term boost in revenue helps the health of the company, the long tail of tech debt will catch up soon enough.
Tech Debt Threatens The Product
Products built on the foundation of tech debt are too often difficult to maintain and scale. And while the product is released, the cost to revamp it may be significant. Moreover, its lack of proper architecture and capability may threaten its functionality and stability. This, and other problems, can lead to customer dissatisfaction and ultimately the failure of the product.
From death by 1,000 updates to buggy code that crashed applications, tech debt often interrupts the customer experience. While developers may believe that they are doing the right thing by getting code committed and product turned up, they are actually setting themselves up for failure. It is likely better for developers and product owners to slow things down, take a more agile approach, and understand the consequences of their decisions more intently.
Tech Debt Threatens Security
If you think that the only impact of tech debt is in the realm of customer experience and operations, you are mistaken.
Long-term tech debt is an indicator of poor software development lifecycle practices. While not a perfect 1-for-1 translation, developers who scramble to commit code often do so while also creating serious security vulnerabilities. From language security to application security vulnerabilities, developers who build code quickly without the proper understanding of the general IT concerns likely have little to no focus on security. Even when addressing their tech debt, the sheer workload can make it hard to address security in any meaningful way for some time.
I’d put real money on the following: an application built out of tech debt is more likely exploitable than one without.
The reality is that tech debt makes it hard to convince customers and investors to trust the company or the development team. If for no other reason other than trust, development teams must focus on reconciling this reality with their internal best practices.
Developer Debt Management
The The National Foundation for Credit Counseling defines Debt Management Programs as:
…a systematic way to pay down your outstanding debt through monthly payments to your credit counseling agency, who will then distribute these funds to your creditors. By participating in this debt management program you may benefit from reduced or waived finance charges, fees, and fewer collection calls.
Sound familiar to you too? I guess we’ve both been going to the same agile development meetings then. (I won’t tell if you don’t.)
Product managers and developers need to take control back over their code and infrastructure. They must be proactive in addressing tech debt so as to avoid the perils that come with it.
The Agile Alliance put together this thoughtful post on technical debt. In that post they discuss how and when developers and product owners should pay back their technical debt. While perhaps not perfect, this is a really great way of thinking about technical debt management.
In an effort to evangelize on methods to overcome technical debt, I’ve included a link to a wonderful post by the Agile Alliance entitled Project Management and Technical Debt. It’s worth considering.
I’ve used those strategies to overcome technical debt myself. But don’t take my word for it. Listen to world class motivational speaker Tony Robbins. (I’m actually kidding…but it’s pretty amusing how well this works.)
“Setting goals is the first step in turning the invisible into the visible.”
“If you do what you’ve always done, you’ll get what you’ve always gotten.”
Don’t let Tony Robbins be better at addressing tech debt than you.
— Alex Kreilein
I write about technology, cybersecurity, startups, and the human experience. I am also a Managing Partner with the SecureSet Accelerator. If you are building exciting cybersecurity or enabling technology products, come Join Us for an immersive experience where we bring customers into iterative product builds and drive rapid market traction!