Was misst eine Bewertung technischer Schulden?
Ward Cunningham prägte die Metapher der technischen Schulden in seinem Erfahrungsbericht auf der OOPSLA 1992. Darin schrieb er: „Code zum ersten Mal auszuliefern ist, als würde man Schulden aufnehmen.“ Ein paar Schulden können Sie schneller machen. Problematisch wird es, wenn sie nicht zurückgezahlt werden und jede Stunde, die Sie damit verbringen, nicht ganz richtigen Code zu umgehen, zu Zinsen wird. Code-Scanner messen den Code. Diese Bewertung misst, womit das Team im Alltag lebt: ob Sie die Schulden sehen, wie stark sie die Auslieferung bremsen, wie gesund sich Code und Systeme anfühlen und ob Sie sie abbauen. Alle bewerten jede Aussage für sich, anschließend nehmen Sie die niedrigsten Werte mit in eine Retrospektive und einigen sich darauf, was zuerst behoben wird.
Abmessungen
Sichtbarkeit
Ob das Team weiß, wo seine Schulden liegen, und sie als echte Arbeit behandelt.
Bekannte Hotspots
Wir wissen, welche Teile unseres Systems die meisten Schulden tragen.
Zusammen mit anderer Arbeit erfasst
Schulden werden im selben Backlog erfasst wie Features und Bugs.
Bekannte Kosten
Wir können erklären, was uns unsere größten Schulden an Zeit oder Risiko kosten.
Auswirkungen auf die Auslieferung
Wie stark Schulden die Arbeit bremsen, die das Team ausliefern möchte.
Feature-Tempo
Schulden bremsen die Features, an denen wir arbeiten, nur selten aus.
Sichere Änderungen
Eine Änderung an einem Teil unseres Systems macht selten einen anderen, unabhängigen Teil kaputt.
Schnelle, zuverlässige Builds
Unsere Builds und Tests sind schnell und zuverlässig.
Zustand von Code und Systemen
Wie leicht sich heute mit Code, Systemen und Abhängigkeiten arbeiten lässt.
Leicht änderbar
Der Großteil unseres Codes ist leicht zu verstehen und zu ändern.
Aktuelle Abhängigkeiten
Unsere Abhängigkeiten und Plattformen sind einigermaßen aktuell.
Tests ermöglichen Refactoring
Unsere Tests geben uns die Sicherheit, Refactorings vorzunehmen.
Schuldenabbau
Ob das Team stetige, abgestimmte Fortschritte beim Abbau von Schulden macht.
Fest eingeplante Zeit
Wir planen regelmäßig Zeit für den Abbau von Schulden ein.
Bewusste Schulden dokumentiert
Wenn wir bewusst Schulden aufnehmen, dokumentieren wir sie zusammen mit einem Plan zur Rückzahlung.
Gemeinsame Prioritäten
Produkt und Engineering sind sich einig, wie die Zeit zwischen Features und Schulden aufgeteilt wird.
Wann sollte dieser Gesundheitscheck durchgeführt werden?
- Wenn Features länger dauern, als sie sollten, und das Team immer wieder auf die Codebasis verweist.
- Vor der Quartals- oder Roadmap-Planung, um festzulegen, wie viel Zeit in den Abbau von Schulden fließt.
- Nach einem großen Kraftakt oder einer harten Deadline, um die genommenen Abkürzungen festzuhalten, bevor sie in Vergessenheit geraten.
Tipps und Tricks
- Lesen Sie zuerst die Gruppe mit den niedrigsten Werten. Geringe Sichtbarkeit bedeutet, dass Sie vor allem anderen eine Liste Ihrer Schulden brauchen. Hohe Sichtbarkeit bei geringem Abbau deutet auf ein Planungsproblem hin, nicht auf ein Codeproblem.
- Beziehen Sie Ihre Produktmanagerin oder Ihren Produktmanager in die Diskussion ein, auch wenn nur Entwickler bewerten. Wie die Zeit zwischen Features und Schulden aufgeteilt wird, ist eine gemeinsame Entscheidung.
- Kombinieren Sie die Werte mit Daten, die Sie bereits haben, etwa Build-Zeiten, die Anzahl instabiler Tests oder Ursachen von Incidents. Die Bewertung zeigt, wo es wehtut; die Daten zeigen, wie sehr.
- Führen Sie sie zusammen mit der Selbstbewertung der DORA-Metriken, der DevOps-Reifegradbewertung oder dem Reifegradmodell für Engineering Excellence durch, um zu sehen, wie Schulden mit Auslieferung und Engineering-Praxis zusammenhängen.
- Wiederholen Sie die Bewertung jedes Quartal. Steigende Werte bei den Aussagen zum Schuldenabbau sind das früheste Zeichen dafür, dass Ihr Plan funktioniert.
Häufig gestellte Fragen
Wie misst man technische Schulden?
Welche vier Arten technischer Schulden gibt es?
Wie viel Zeit sollten wir in technische Schulden investieren?
Wie erklärt man technische Schulden gegenüber Produktmanagern?
Was ist ein Beispiel für technische Schulden?
Wer hat den Begriff technische Schulden geprägt?
Based on Ward Cunningham, 'The WyCash Portfolio Management System,' OOPSLA '92 Experience Report (1992).