Klassifizierung technischer Schulden (2018)
(technology.riotgames.com)Klassifizierung technischer Schulden
Einführung
- Bill "LtRandolph" Clark ist Engineering Manager des Champions-Teams von LoL und interessiert sich intensiv für technische Schulden.
- Technische Schulden werden als Code oder Daten definiert, die zukünftigen Entwicklerinnen und Entwicklern Kosten verursachen.
- Dieser Artikel stellt verschiedene Arten technischer Schulden vor, die bei Riot erlebt wurden, sowie das intern verwendete Modell.
Metriken
Zur Bewertung technischer Schulden werden drei Hauptachsen verwendet: Auswirkung, Behebungskosten und Ansteckungsfähigkeit.
Auswirkung
- Die Auswirkungen technischer Schulden auf Spieler und Entwickler.
- Bugs, fehlende Funktionen, unerwartetes Verhalten usw.
Behebungskosten
- Die Zeit und das Risiko, die nötig sind, um technische Schulden zu beheben.
- Ein einfacher Fehler kann in wenigen Minuten behoben werden, tief verwurzelte Probleme können jedoch Wochen oder Monate dauern.
Ansteckungsfähigkeit
- Wie stark sich technische Schulden ausbreiten können.
- Sie beeinflusst die Interaktion mit anderen Systemen, das Kopieren von Daten und die Implementierung neuer Funktionen.
Arten von Schulden
Lokale Schulden
- Probleme treten nur innerhalb des Systems auf und haben keine Auswirkungen nach außen.
- Beispiel: Jarvans Cataclysm.
Cataclysm-Metriken
- Auswirkung: 1 / 5
- Behebungskosten: 2 / 5
- Ansteckungsfähigkeit: 1 / 5
MacGyver-Schulden
- Wenn zwei widersprüchliche Systeme als Behelfslösung miteinander verbunden werden.
- Beispiel:
std::stringin C++ und Riots Klasse AString.
std::string vs AString-Metriken
- Auswirkung: 2 / 5
- Behebungskosten: 3 / 5
- Ansteckungsfähigkeit: -2 / 5
Fundamentalschulden
- Wenn tief im System verankerte Annahmen Auswirkungen auf das gesamte System haben.
- Beispiel: die Verwendung der Skriptsprache lua in LoL.
BlockBuilder-Lua-Metriken
- Auswirkung: 4 / 5
- Behebungskosten: 4 / 5
- Ansteckungsfähigkeit: 4 / 5
Datenschulden
- Wenn sich auf anderen Arten technischer Schulden so viel Inhalt angesammelt hat, dass Änderungen schwierig und riskant werden.
- Beispiel: ein Bug in den Parameternamen der BlockBuilder-Skriptsprache.
Metriken des Bugs bei Parameternamen
- Auswirkung: 2 / 5
- Behebungskosten: 2 / 5
- Ansteckungsfähigkeit: 4 / 5
Zusammenfassung
- Bei der Bewertung technischer Schulden sollten Auswirkung, Behebungskosten und Ansteckungsfähigkeit berücksichtigt werden.
- Ansteckungsfähigkeit zeigt, wie wahrscheinlich es ist, dass sich technische Schulden ausbreiten; wird sie ignoriert, kann das zu großen Problemen führen.
- Technische Schulden lassen sich in vier Typen einteilen: lokale Schulden, MacGyver-Schulden, Fundamentalschulden und Datenschulden.
Zusammenfassung von GN⁺
- Dieser Artikel hilft Entwicklerinnen und Entwicklern, bessere Entscheidungen zu treffen, indem er die Arten technischer Schulden und Methoden zu ihrer Bewertung erklärt.
- Er betont die Ansteckungsfähigkeit technischer Schulden und unterstreicht, wie wichtig es ist, Probleme frühzeitig zu lösen.
- Andere Projekte mit ähnlichen Funktionen sind Dota 2 und Overwatch.
1 Kommentare
Hacker-News-Kommentare
Interfaces sind eines der wichtigsten Elemente im Design und sollten sorgfältig bedacht werden
Founders Debt sind Schulden, die Gründer eingehen, um schnell gute Technologie bereitzustellen
Es ist überraschend, dass dieser Beitrag von einem Engineering Manager geschrieben wurde
Eine Taxonomie technischer Schulden wird diskutiert
Aus technischer Sicht ein großartiger Artikel
„Contagion“ wird verwendet, um technische Schulden zu erklären
Technische Schulden werden als Code oder Daten definiert, für die zukünftige Entwickler die Kosten tragen müssen
„Lokale Schulden“ würde ich in allgemeinen Situationen nicht als technische Schulden bezeichnen
Es gibt Erfahrung aus der Arbeit in mehreren Startups
Manchmal werden technische Schulden absichtlich für kurzfristige Vorteile in Kauf genommen