Does A Mess Constitute Technical Debt?
Out Of Date Warning
Languages change. Perspectives are different. Ideas move on. This article was published on October 19, 2009 which is more than two years ago. It may be out of date. You should verify that technical information in this article is still current before relying upon it for your own purposes.
A blog post over at Object Mentor argues that technical debt and a mess are not necessarily the same thing. This well written blog post discusses the difference, and asserts that taking out technical debt is like taking out a mortgage: that you increase your discipline, rather than decreasing your financial discipline. The same should be true of technical debt, then.
I would tend to agree that a mess does not constitute technical debt. A mess is just a mess, most of the time. Writing poor code or having a project filled with messy solutions doesn’t incur technical debt; it pushes you towards technical bankruptcy.
However, messes are not always simply messes. Sometimes you have the choice between doing it quickly and doing it well.. This isn’t an optimal situation; however, it is an intentional design choice on your part. Writing a hack incurs technical debt, and hacks are almost always ugly. If you had time to write it correctly, you would write it cleanly, and it would incur less technical debt.
Technical debt accrues based off of your own choices. Just like how you don’t accidentally get into debt with finance, you can’t accidentally accrue technical debt. Technical debt is a choice, requiring you to decide between two options. Implementing a messy solution is a choice as well; doing so will only increase your technical debt, in much the same way that adding closing costs to the overall mortgage amount will increase your debt.
The accrual of technical debt is a necessity, especially when deadlines are considered and people have to make quick decisions. But technical debt is a choice; you do not accrue it accidentally.
Write better object
oriented PHP today.
A brand new book on object oriented PHP that will leave you an object oriented master.Learn more about the book »