This is a short presentation on Technical Debt. Technical debt is a term that was coined by Ward Cunningham in 1992 to explain the accidental complexity that is a side-effects of “going faster” in the development work on a large code base.
Technical debt is a way to talk about the extra design and coding work that a developer or team “owes” to the product after making a “quick and dirty” coding fix. When developers work quickly and make too many expeditious fixes, the code base becomes increasingly more difficult to understand. The cost of adding new features increases drastically over time. Developers “pay back the technical debt” when they do some rework - “cleaning up the code” to restore a simpler and more elegant design.
Technical debt is one of the primary reasons for developers to do periodic refactoring of their code base. Refactoring is a step-by-step process to safely improve the structure of code without changing its behavior.
There are several things we can do to mitigate technical debt. These are all techniques that improve code quality, readability, and modifiability of the code base.