3 Punkte von GN⁺ 2024-10-01 | 1 Kommentare | Auf WhatsApp teilen

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::string in 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

 
GN⁺ 2024-10-01
Hacker-News-Kommentare
  • Interfaces sind eines der wichtigsten Elemente im Design und sollten sorgfältig bedacht werden

    • Ein schönes Interface lässt sich mit genügend Zeit leicht verbessern, der umgekehrte Fall ist selten
  • Founders Debt sind Schulden, die Gründer eingehen, um schnell gute Technologie bereitzustellen

    • Auch die Gründungsdokumente vieler Länder fallen in diese Kategorie
  • Es ist überraschend, dass dieser Beitrag von einem Engineering Manager geschrieben wurde

    • Es gibt keine intern beförderten Manager, stattdessen werden sie eher extern eingestellt
  • Eine Taxonomie technischer Schulden wird diskutiert

  • Aus technischer Sicht ein großartiger Artikel

    • „Nomenklatur“ könnte der passendere Ausdruck sein
    • Jedes Beispiel regt stark zum Nachdenken an
  • „Contagion“ wird verwendet, um technische Schulden zu erklären

    • Eine großartige Erklärung
  • Technische Schulden werden als Code oder Daten definiert, für die zukünftige Entwickler die Kosten tragen müssen

    • Wenn man Schulden verursacht, sollte man den unmittelbaren Bedarf und die zukünftigen Kosten ausgewogen gegeneinander abwägen
    • Es besteht eine krankhafte Abneigung gegen Schulden
  • „Lokale Schulden“ würde ich in allgemeinen Situationen nicht als technische Schulden bezeichnen

    • Irgendwo wird es immer Unordnung geben, und es ist üblich, diese zu kapseln
  • Es gibt Erfahrung aus der Arbeit in mehreren Startups

    • Gründer verwechseln oft die Idee mit dem tatsächlich Umgesetzten und dem, was tatsächlich funktioniert
  • Manchmal werden technische Schulden absichtlich für kurzfristige Vorteile in Kauf genommen

    • Auch dieser Vorteil sollte als eine weitere Achse berücksichtigt werden