/tɛk dɛt/

Tech debt is a concept that describes the growing effort required to maintain a structural and functional integrity of a code in a dynamic product environment. Tech debt usually occurs naturally and in all organizations, even though it could also be caused by poorly written code, and the organizations need to invest additional effort to maintain or reduce the amount of such debt. An increasing amount of technical debt leads to slower development and higher likelihood of malfunctions. 

It is also said to be comparable to monetary debt because if it is not repaid it makes it harder to implement changes later on.

There are 3 types of debt tech:

  1. An important thing to note is that tech debt does not occur only due to compromises developers make on the quality of the code, but also due to constant changes in the requirements or in the development of the system. When new features cannot be added quickly or easily and it affects the overall design then we call this accidental or unavoidable tech debt.
  2. There is a right way to write the code and the fast to write the code. Development teams, especially in startups, sometimes opt for the fast way in order to beat the competition. This is called the deliberate debt as it is a result of a well thought through decision. 
  3. The third one excludes all the external influences and is tied directly to developers' competences. Lack of skills or experience with different systems can lead to writing a bad code. 

Tech debt can happen to any company, no matter the size. It is responsible for cash and non-cash costs likewise. Cash costs imply the cost of hiring additional staff to get the work done (e.g. to build new features) and non-cash costs refer to making improvements and adapting to the changes in the market. 

Tech debt needs to be addressed in a timely manner, preferably early on in the project, otherwise it can lead to serious consequences for your business.