Technical debt refers to additional work created by taking shortcuts when developing software to meet deadlines. This can include poorly designed code that is hard to maintain. Technical debt is like financial debt, where the shortcut saves time initially but adds interest in the form of extra work later on when the code needs changes. It can be caused by time pressure, suboptimal code, or deliberate decisions to prioritize speed of delivery over quality. Technical debt should be addressed gradually over time through refactoring rather than trying to fix all issues at once.
2. Definition
Technical debt is the coding one must do later because a shortcut was taken in
order to deliver the software now.
Referred as implied additional cost of rework after choosing a
"quick"/"easy" implementation instead of a better approach.
Common occurrences of this happen to address a problem short term but can’t
scale or adjust in the long term.
Consequent costs are usually time and money to refactor, re-work or clean up the
dirty practice.
💳💸⏲
3. Analogy with Financial Debt
Technical Debt is a simile that was used for the first time in 1992 by Ward Cunningham
• “Neglecting the design is like borrowing money
• Refactoring, it's like paying off the principal debt
• Developing slower because of this debt is
like paying interest on the loan.
• Every minute spent on not-quite-right code counts
as interest on that debt.”
4. Common Causes
Time Pressure
Suboptimal code
On purpose with cost in mind “Done on
time is better than late but perfect”
😫🤕⌚
5. Types of technical Debt based on cause
Reckless Prudent
Deliberate
"We don't have time for
design"
"We must ship now and deal
with consequences (later)"
Inadvertent "What's Layering?"
"Now we know how we should
have done it"
6. Approaches in Dealing with Technical Debt
Better done sooner than later
However, addressing must be done in small steps frequently
Having a large backlog of work due to technical debt should not be
addressed all in one go
Team effort regardless of whose code resulted in technical debt