Technical Debt
"# TODO: Fix code..." - 12 years ago
Wat is Technical Debt (TD)?
- Korte termijnsoplossingen
- Quickfix / Fix later
- Slordigheid

Kenmerken
- Onzichtbaar
- Kosten moeilijk in te schatten
- Kunnen erger worden in de toekomst
- Soms met deadline
Categorieën (4/15)
- 
Design debt
	- Coupling
- Code complexity
 
- 
Architecture debt
	- Modularity
 
- 
Documentation debt
	- Ontbreekt
- Incompleet
- Outdated
 
- 
Test debt
	- Geen tests
- Skips
 
Categorieën (8/15)
- 
Code debt
	- Slechte naming schemes
- Bad practices
 
- 
Defect debt
	- Known bugs
 
- 
Requirements debt
	- Verkeerde implementatie
- Deels geimplementeerd
 
- 
Infrastructure debt
	- Updates/upgrades
 
Categorieën (12/15)
- 
People debt
	- Kennisdeling
- Toegang tot resources
 
- 
Test automation debt
	- Opzetten CI
 
- 
Process debt
	- Inefficienties
- Outdated
 
- 
Build debt
	- Deploy
- Dependencies resolven
 
Categorieën (15/15)
- 
Service debt
	- Deprecated API
 
- 
Usability debt
	- "adjust later"
 
- 
Versioning debt
	- Merge conflicts
 
Categorieën (16/16)
- 
Service debt
	- Deprecated API
 
- 
Usability debt
	- "adjust later"
 
- 
Versioning debt
	- Merge conflicts
 
- 
Integrity debt
	- Verkeerde waardes in DB
- Legacy columns
 
Wat is de waarde van de TD?
- Exact de waarde bepalen is niet mogelijk
- Kijken naar de debt analogie...
Debt
- Beginschuld
- Rente
- Aflossingsdatum
Debt
Totale schuld = beginschuld * rente ^ (tijd tot aflossing)
Debt (uitbreiding)
Totale schuld = beginschuld * rente ^ (tijd tot aflossing)
+ kans op nieuwe TDs * totale schuld nieuwe TDs
Debt (uitbreiding)
Totale schuld = beginschuld * rente ^ (tijd tot aflossing)
+ kans op nieuwe TDs * totale schuld nieuwe TDs

Dus altijd voorkomen?
- Nee, later aflossen kan soms handig zijn
- Hangt af van de situatie
- Vermijd:
	- hoge schulden
- schulden met veel rente
- schulden die nieuwe schulden genereren
 
Kunnen we TD automatisch opsporen?
- Papers zeggen nee, maar...
	- "Smelly code" geeft hints
- Self-admitted techical debt (SATD) geeft overzicht
 
Idee:
- Bijhouden SATDs via format:
	- # TODO (<priority>): ...
 
- Integratie met Jira
	- Aanmaken wanneer comment is toegevoegd in git
- Done wanneer comment is verwijderd in git
- Committer, datum, comment, file in description
 
To be continued... (maybe)
Vragen?

Technical Debt
By mjorden
Technical Debt
- 413
 
   
   
  