Technical debt is the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer. That leads to the safe assumption that every software project has already incurred some technical debt, which will subsequently increase the risk and cost of change for an existing or adding a new feature. This is usually remedied by timely refactoring the code as it may take more than 6 months for adding simple functionality/feature.
Why do we have technical debt ?
There are many types of technical debt, and many reasons for it, which we will briefly describe – the main reason is that we can’t foresee the following:
– software architecture of our mobile application or web server in the context of every new feature;
– customer requirements sometimes expect to implement a specific new functionality which requires us to restructure the old functionality in order to develop the new feature;
– the need for isolation of a given functionality for the purpose of easy software development in the future;
– the need to integrate new technologies which will help us improve development speed.
In summary we reduce the development time and cost of every new feature by improving software understandability, changeability, extensibility, reusability, and reliability!