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
- 361