Why You Should Pay Off Your Tech Debt

nvisia is an award-winning software development partner driving competitive edge for clients.

We don’t sell software.

We’re not a software company.

If you depend on one or more systems to run your business day to day, you’re a software company. Every business uses software in some shape or form, from credit card processing to the massive rules engines that run most businesses. Even if all you have is a humble spreadsheet that tracks anything with a formula, you’re a software company. Someone in your organization probably wrote that, and now it’s a critical piece of your processes. There are many hidden systems that will eventually need to be reckoned with, even at the best run company on earth. All these systems can accrue tech debt, even your Excel worksheet. If you have outsourced all of your software systems, you still have to make sure your vendors are dealing with tech debt. Failing to handle your tech debt can have a critical impact on the growth, stability, and security of your business.

Growth

Everything is working, give me new features.

I want that new shiny, or my sale won’t go through.

Businesses change over time, sometimes radically, sometimes in subtle ways. The constant is changing technology. Maybe your only change was from Lotus 1-2-3 (look it up) to Excel. Maybe it was from brick and mortar to an e-commerce site. Those changes were very most likely painful, but hopefully before your time. So, we’re all good now, as long as nothing ever changes again... But you want it to change: the next big thing, the incremental adjustment that will drive business your way, that one little tweak that improves your margin by 1000%. These changes that you need to grow are what can be blocked by tech debt.

If your sale depends on a new technology, and you haven’t kept your systems up to date, you probably will not get it quickly, cheaply, or on time. You can only pick two, as the saying goes. You could also fake it until you make it, playing for time with something that works well enough. That may be fine for the sale, but what about the customer? Or those who must support the product?

Imagine you sell your product online through a website, have it shipped to the customer, and process payment on your site. Here you have order entry, fulfillment and shipping, invoicing and payment. These are all systems that need to be maintained and kept free of tech debt in order to set you up for growth.

Let’s say you want to add an AI chat bot to the website that will answer questions, up-sell, and generally make life easier. You can outsource the development, which hopefully is quick and on time, but if your website is built on an out-of-date technology stacks, that outsourcer will likely charge a premium. You may be able to do it more cheaply in-house if you have the tools and personnel to work with, but it will still have to integrate with the out-of-date stack and probably take more time in development..

Perhaps you want to add a new subscription model to your offerings. You ask your invoicing and payment vendor to add that feature to your system, but their own tech debt makes it harder to deliver quickly, cheaply and on time. You can always fake it in the old system and find something that’s close enough to work for now...now you’re adding even more tech debt for later.

Well, then we’ll just yank out the fulfillment and shipping system and replace it with something newer, faster, stronger. Here you may discover no one knows quite how the old system works, how it integrates with the other two systems, and if you can even migrate the data. Even if you can buy a new system cheaply, integration and customization are expensive, especially if you must reverse engineer how the current system works. No system goes in out-of-the-box, every business is different, even in the same industries.

Stability

My system runs just fine, it’s up most of the time.

System availability is just one part of stability. Institutional stability is having personnel that know the systems and processes that keep everything running.

System availability is achieved by keeping software up to date, patching critical systems, maintaining hardware, and monitoring. Much of this can and should be automated, with policies and procedures in place to keep things clear.

Keeping continuity within your IT organization is required. Good documentation can only go so far, and unfortunately, there is not a lot of good documentation. People will always come and go and there should be a succession plan in place. This applies to leadership and to technicians, engineers, etc.

On the software side of the house, keeping up to date with technological changes is key. This does not mean chasing every new thing, but instead making sure the software you use is still in support by the vendor. If you rely on frameworks or third-party services, those should be monitored for updates, patches, and end of support notices.

Security

We haven’t been hacked, we’re good.

Security goes beyond the obvious “don’t get hacked/malwared/ransomwared.” It includes making sure your systems meet regulatory requirements and industry standards. These may not seem to be related to tech debt, but the actual implementation of these regulations and standards is usually done in a software system.

One example: in 2020 the security standard for encrypting web communications was being updated. This required changes on web servers so browsers could communicate securely with that server. A small change, unless your web server was so out of date that it did not support the new standard. Deferring this change could be costly if your web site was no longer accessible from the major browsers.

But I don’t want to be a software company...

This is still a viable option; due diligence must be done to ensure your vendors are addressing their tech debt. Some things to keep an eye on:

  • Has the vendor updated their product recently?
  • Are they addressing security issues in a timely manner?
  • How fast do they respond to support and feature requests?
  • Stability is not stagnation, even the vendor’s business is changing.

In the end, you are still impacted by tech debt, you’ve just outsourced the problem to someone else.

Fine, I’m a software company.

IT, be it hardware or software, is still mostly treated as a cost center, not as a partner to drive growth. The reality of the world is technology drives everything. If your business is selling services supported by technology, it is even more important to treat IT as a partner.

Plant maintenance is a vital part of building a product. If a critical machine breaks down, products are delayed. If you don’t update those machines for new products, those products aren’t made. The same goes for critical software systems. If website is down, no sales. If payment processing is down, no money. The problems outlined here are all symptomatic of technical debt. If you maintain your systems, they will take care of you in the future. Just as manufacturers keep the machines that make the products maintained, software systems need the same care.

Maintenance can seem to be never ending. There’s a new version of this framework every two years, there’s another security patch. Another way of looking at this is: the ecosystem is changing and adapting to new challenges. It’s up to you to take advantage of those changes, in partnership with your IT groups.

Related Articles