Member-only story
What Is Technical Debt and Why Is It So Painful?
Technical debt is code that keeps on taking

Technical debt is existing code resisting new code
Technical debt is low-quality code, so you can be pretty sure that the developers who created have all left the project, according to the current development team :-)
Like actual debt, technical debt is a cost from the past, which you have to pay for in the future. It’s a hidden bill from the previous developers on the project that has to be paid when any developers interact with the code.
Technical debt is created by software projects choosing speed over quality. To make fast progress and tied to the belief that developing quality code takes longer.
Quality code seems longer because writing unit tests and code reviews feel like it takes longer. It finds bugs/problems in the dev environment, which saves time. The quality versus fast development debate is usually based on feeling, allowing either side to support their belief with opinion rather than facts.
Technical debt is the bogeyman of software development. Like global warming, there isn’t a single thing you can point to and says that’s global warming or that area of code is technical debt.
Development teams are not sure what caused it (once it's in) but know once it’s there it increases complexity and slows down development.
Technical debt has many causes, which makes it difficult to stop it from being created, and even harder to remove after its creation.
Technical debt is difficult to measure in the same way the quality or development team productivity is difficult to measure. Developers know technical debt or quality code when they see it, but it’s hard to define.
What is technical debt?
Let's start with Wikipedia definition
Technical debt (also known as design debt or code debt, but can be also related to other technical endeavors) is a concept in software development that reflects the implied cost of additional rework…