Understanding the Concept of Technical Debt
Framed by Ward Cunningham, “technical debt” is described as an obligation done by a software company when it selects a convenient design or construction methodology which adds to complexity and is more expensive in the long time period. The word is important to interact technically and renders a strong metaphor for describing the idea to non-tech people.
Image Source: Pixabay
So, what is tech debt?
While the previous definition helps, it truly doesn’t describe the resource of tech debt. There are majorly two debts:
- Unintentional- Such kind of debt is because of a poor job. For instance: a design methodology proves to be error prone or poor code is been produced by a developer. In several cases, such debts are incurred unknowingly. For instance: your organization gets a business which has a lot technical debt which wasn’t identified till it has been acquired. Such debt can be initiated when a team fails to deliver the right efforts and inadvertently leads to more debt.
- Intentional- A company goes for a conscious decision to augment their present rather than their future. For instance: the simple thinking that if the release isn’t done on time, there wouldn’t be another release. So, eventually it would be that there is hardly any time to reconcile the two databases and thus there has to be some clue coded required.
Or, there are codes written by a contractor which doesn’t abide by the coding standards. Well, that could be cleaned later
Or, the team didn’t get time to write the unit test for coding written 2 months back for the project. Oh, it could be done after the release.
One needs to realize that all systems have tech debt. But, the major aim is to lower the unintentional tech debt by keeping the processes in place to acknowledge and ignore the major debt source. The effect of unintentional tech debt is just like being shocked by the heavy bills at the end of the month with hefty interest rates and extra charges.
Short Term and Long Term Debt
Companies experience short term as well as long term debt. In the fiscal world, short term debt is about situation like distance between receivable and payroll. Such debt occurs when you owe money and you don’t have enough to pay. The tech debt is somewhat similar. Short term tech debt is the debt which is done reactively and strategically, basically as a late stage measure to manage a particular release ready.
Organizations are ready to take such debt proactively and tactically- while making an investment in capital equipment like office building or a new factory. Speaking about long term debts, they aren’t required by the company. They basically bring a loss and major fall to the company just like holding arrears of credit card bills. Just like you need to consolidate credit card debt, you also need to find the right consolidation program for your tech debt.
While short term debts are paid off quickly, it is the long term technology debt which is carried on for years.