I hear a lot of discussion about “Technical Debt” on the Internet. I recently ran across a blog1) that talked about broadening the scope to include other forms of software debt. I believe that the other areas of software debt are just as important as technical debt.
Technical Debt: taking short cuts, folding under pressure, deferring work, duplication – the copy-and-paste problem.
Quality Debt: not enough attention to quality, not enough tests, not taking responsibility for fixing bugs.
Configuration Management Debt: mistakes and inefficient practices in version management, build, deployment and release practices.
Design Debt: under-designing and over-designing – expect to get the design right the third time.
Platform Experience Debt: not sharing information, over-specialization