
“Du weißt, ’s ist aller Los: Was lebt, muss sterben!”
Wartung und Wartbarkeit
Wartung wird definiert als “Durchführung von Arbeiten an einer technischen Anlage o. Ä., die der Erhaltung ihrer Funktionsfähigkeit dienen.” Wartbarkeit beschreibt die Leichtigkeit, mit der Systemänderungen implementiert werden können. Wartung sollte beginnen, wenn das zweite Feature hinzugefügt wird – nicht erst nach Erreichen der ersten Meilensteine.
Softwareprojekte starten typischerweise mit großem Schwung in Richtung Projektziele, wobei Wartungsaspekte in den Hintergrund treten. Doch im Laufe der Zeit akkumuliert sich Komplexität.
Big Ball of Mud
Die Herausforderung bei der Sichtbarkeit von Softwarequalität: “Wieviel muss man aufräumen, damit man wieder vernünftig arbeiten kann?” Die Metapher der Schreinerwerkstatt illustriert, wann Aufräumen notwendig wird.
Small Ball of Mud
Der Ansatz, die richtigen Fragen über erwartete Aufwandsniveaus für neue Features zu stellen und transparente Schätzmethoden zu verwenden, um Kostenmultiplikationsfaktoren zu identifizieren.
Multiplikator
Wenn Aufwandsfaktoren das 2-fache der Basis-Erwartungen übersteigen, werden Refactoring-Verhandlungen gerechtfertigt, die die Berechnung von ROI und zukünftigen Kosteneinsparungen ermöglichen.
Alte Fehler, neue Fehler
Zehn Faktoren, die die Systemgesundheit negativ beeinflussen:
- Unzureichende Technologie-Schulung
- Fehlende Code-Reviews
- Mangelnde Testabdeckung
- Unklare Architektur-Richtlinien
- Wachsender Zeitdruck
- Fehlende Dokumentation
- Inkonsistente Coding-Standards
- Veraltete Abhängigkeiten
- Fehlende Automatisierung
- Steigender Deadline-Druck
Natürliche Softwareentwicklung
Softwareprojekte werden als Organismen betrachtet, bei denen unkontrolliertes Wachstum Krankheit signalisiert. Die Pinguin-Analogie illustriert die Kompromisse bei der Spezialisierung – optimale Anpassung an eine Umgebung kann die Flexibilität in anderen Bereichen einschränken.
