Similar to financial debt, technical debt isn’t automatically bad. Well managed tech debt can bring your company great benefits. Basically, technical debt is the result of development teams who push to rush a project in a knowingly imperfect manner to achieve a deadline. It’s the result of a company choosing speed over quality. It can also sometimes be referred to as design debt or code debt. There are three basic kinds of tech debt: Intentional, Unintentional, and Unavoidable.
1. Intentional Technical Debt
When, for whatever reason, your company, department, or manager makes a decision to push for speed over quality, that’s considered intentional tech debt. This should be done with a complete understanding of the consequences of that decision, including risks and costs. When doing this, make sure that you are aware of and document the corners that were cut to achieve the deadline.
Ideally, your company should be planning to return to rectify any compromises you made once the time is right. In a sense, you should make sure to “pay back” the technical debt that accumulates. If you don’t keep track of the corners you cut, that will be much less likely to happen. This could cost your company in the long run as flawed projects and software roll-outs increase.
2. Unintentional Technical Debt
Unintentional debt is usually the result of errors that are left in unintentionally. A tech team can feel rushed and thus miss something in the coding, as opposed to consciously deciding to choose speed over quality. This kind of technical debt could also be the result of an inexperienced team, bad project management or poor communication between the IT department and the person or people requesting the project.
One of the worst aspects of technical debt is the fact that companies are often unaware it even exists. The errors are not discovered until they cause a problem. At that point, there are corrections that need to be made frequently—not only on the original software, but on other affected processes down the line. It may also take time to locate the broken code.
3. Unavoidable Technical Debt
This inevitable kind of tech debt is the result of fast-changing technology. You can build software without any errors, but when improvements in technology come about, your code becomes obsolete. Industry-specific changes could also create technical debt. Basically, any changes that affect the value of your tech are unavoidable technical debt.
Good and Bad Reasons for Technical Debt
Good tech debt comes when the result outweighs the potential damage. You were able to get a product into the hands of your customer that does the function desired, even if it’s not perfect. This happens frequently in the case of phones, computers, computer software etc. How often do you see updates and new versions being released just a month or so after a new product? That is a company paying back the tech debt they incurred to get the product out faster.
Conversely, bad tech debt is when you consciously decide to work or focus on something that’s less important or valuable to the company and neglect the overall mission or high value product. It’s easy to do in the tech world. There are constantly new and exciting innovations to be distracted by.
Make sure you are taking the time to weigh any decision where you might incur technical debt. Are you doing this for the right reasons? Will it benefit your company and/or your customer in the long run? Is it easily fixable once the product has rolled out?
There are many other questions to ask. If you’d like to get a better understanding of technical debt and how it affects your company connect with Aspirant, one of Pittsburgh’s premiere technology consulting firms. Or fill out the form and we'll connect you with the right team member.
Phil is Aspirant's Managing Director of the App Development & Integration practice with a focus on providing enterprise-grade solutions. His 30 years of experience have given him the opportunity to work across many markets, industries, and applications. Phil is leading a team of skilled web and mobile developers building strategic solutions for our customers.