Technical Debt
Definition

Types of Technical Debt

Common Examples

Managing Technical Debt

Communicating to Business

When to Take On Debt
// Strategic debt can be appropriate
// GOOD: Time-boxed, tracked, small scope
/**
* TODO: Replace with proper caching layer.
* Tech Debt Ticket: TECH-123
* This in-memory cache is temporary for MVP launch.
* Must replace before scaling past 100 users.
*/
private Map<String, User> userCache = new ConcurrentHashMap<>();
// GOOD: Documented trade-off
/**
* Using simple linear search for now.
* Acceptable for current data size (<1000 items).
* If data grows, implement binary search or use database index.
*/
public Item findItem(String id) {
return items.stream()
.filter(i -> i.getId().equals(id))
.findFirst()
.orElse(null);
}
// BAD: Reckless, no documentation
public void processOrder(Order o) {
// Quick hack, will fix later
if (o.t == 1) doA();
else if (o.t == 2) doB();
// ... 500 more lines of spaghetti
}
// Decision Framework:
// Take debt IF:
// - Business need is clear and time-sensitive
// - Scope and risk are understood
// - Payment plan exists (when we'll fix it)
// - It's tracked and visible
Tips & Tricks
