Stakeholder negotiation
This course treats technical debt as something that can be negotiated. It starts from Ward Cunningham's original meaning: a gap between what the code says and what you now know, with interest attached. It covers Martin Fowler's four quadrants, the argument forms that hold up with a sceptic, and the habits that lose a discussion. It then classifies the debt in this application by quadrant and interest rate. It also looks at negotiating when the counterparty is future you or the partners, and ends with a challenge to rank debt by payback time.
What you'll learn
- ✓Telling debt apart from bugs and preferences by checking for an ongoing cost
- ✓Classifying debt with Martin Fowler's four quadrants
- ✓Building arguments from numbers, named failure mechanisms, triggers and reversibility claims
- ✓Sorting a debt inventory by interest rate instead of irritation
- ✓Recognizing ways to lose: rewrites, bundling, catastrophizing, all or nothing and repetition
- ✓Using a commitment device when there is no stakeholder to persuade
What technical debt actually means
The metaphor has been stretched until it covers everything anybody dislikes about a codebase. Recovering the original meaning is what turns it into something negotiable instead of a complaint.
Read the full lesson free →Curriculum
7 lessonsWhat technical debt actually means
Recovers Ward Cunningham's meaning of debt as a gap with interest, and separates it from bugs and preferences.
The four quadrants
Explains Martin Fowler's grid of deliberate or inadvertent and prudent or reckless debt, and why it helps negotiation.
Arguments that survive
Shows which arguments persuade a sceptic: numbers, named failure mechanisms, triggers, reversibility claims and a fair account of the alternative.
The debt in this application
Classifies this application's debt, including Disk storage and Accept-Language, by quadrant and by interest rate.
How to lose the argument
Lists ways to lose a debt argument, from asking for a rewrite to repeating a rejected case.
Negotiating with no stakeholder
Covers negotiating when the counterparty is future you or the partners, using a commitment device written in advance.
Putting it together
Summarizes the course and sets a challenge: implement prioritize_debt to rank debt items by payback time.