Technische Schulden
Die Problematik der Technischen Schulden lässt sich auf die zentrale Frage reduzieren:
Wie leicht kann der Code mit neuen Features erweitert werden?
Kennen Sie die Technischen Schulden Ihrer Software? Sprechen Sie uns gerne an!
Die wirklich problematischen Technischen Schulden im Fokus – durch DETANGLE®!
Technische Schulden in einer Software sind deshalb nicht alle gleich zu bewerten. Nicht alle müssen mit der gleichen Priorität abgebaut werden. Die Entwickler sollten zuerst die Technischen Schulden vornehmen, für deren Abbau das beste Aufwand-/Nutzenverhältnis vorliegt. Mit der Cape of Good Code Analyse läßt sich sowohl der Aufwand als auch der Nutzen abschätzen. Dieses Vorgehen schont die knappen Entwicklungsressourcen und liefert dennoch einen signifikante Qualitätsverbesserung in der Softwarebasis und lässt genügend Entwicklerkapazität übrig, um weiterhin neue Features zu entwickeln und termingerecht auf den Markt zu bringen.
Technische Schulden mit neuen KPIs erkennen
Cape of Good Code leitet aus den Analyseergebnissen des DETANGLE® Scans diverse innovative Kennzahlen zur Lokation und Dimension der Technischen Schulden in der Software ab. Die folgenden wichtigen DETANGLE® KPIs bilden den Startpunkt, um die “Zinskosten” als Folge der Technischen Schulden zu messen:
- Maintenance Effort Ratio: Es zeigt den Anteil des Wartungsaufwands im Verhältnis zum gesamten Entwicklungsaufwand. Ein normales Verhältnis wäre ein Aufwandsanteil für Wartungsarbeiten von maximal 20%. Dieser Wert stellt sicher, dass noch genügend Entwicklungskapazität für wertschöpfende Entwicklungen wie neue Features vorhanden sind. Liegt der Wartungsanteil über 20% und ist der Trend womöglich schon seit einiger Zeit steigend, sollten die Technischen Schulden dringend mit DETANGLE® analysiert, lokalisiert und anschließend abgebaut werden.
- Feature Effort Effectiveness Index: Dieses KPI zeigt, ob das Hinzufügen neuer Features mehr Entwicklerkapazität absorbiert, als man budgetieren würde. Technische Schulden bewirken, dass es schwieriger und aufwändiger wird, bestehenden Code zu ändern und neue Features hinzuzufügen.
Abbildung 1: Technische Schulden in Relation zu Wartungkosten im Software Life Cycle
Bei regelmäßiger Analyse sind beide genannten KPIs aussagekräftige Frühindikatoren, ob sich im Code Technische Schulden in kritischer Weise verdichten.
Mit dem Überschreiten kritischer Schwellenwerte können die KPIs der Systemebene auf einzelne Code-Bereiche heruntergebrochen werden. Damit wird es möglich, mit geringen Aufwand, die wirklich riskanten Hotspots des Codes zu identifizieren. Diese können anschließend zur Identifikation der grundlegenden Ursachen einer Detailanalyse unterzogen werden, um maßgeschneiderte Gegenmaßnahmen zu empfehlen.
Folgende Abbildung zeigt im linken Teilbild die wichtigsten Problemquellen für eine instabile Funktionalität, schlechte Performance und problematische Weiterentwicklung von Software auf. Im rechten Teilbild werden die bereits erwähnten und weitere KPIs aufgelistet, um die kritischen Codebereiche aufzudecken und auf ihre Problemursachen zu untersuchen.
Abbildung 2: Ursachen für Technische Schulden und deren Messung mit DETANGLE®
Lassen Sie uns über Ihre Technischen Schulden sprechen
Gemeinsam bringen wir Transparenz in die Technischen Schulden Ihrer Software. Sprechen Sie mich an!
Für eine gute Software ist die Architekturqualität oftmals relevanter als die Codequalität.
Die ist insbesondere dann der Fall, wenn es sich um eine qualitativ hochwertige Software mit der Erwartung eines langen Lebenszyklusses handelt. Unsere DETANGLE® Metriken zur Architektur-Qualität korrelieren eindeutig mit dem Auftreten von hohem Wartungsaufwand und sind damit ein wirkungsvoller Indikator für Architektur-Defizite und sich daraus ergebende Probleme in der Weiterentwicklung der Software.
Für die weitere Untersuchung von Code-Qualitätsmetriken (wie die kognitive Komplexität, Code-Duplikationen, potenzielle Bugs oder Sicherheitsschwachstellen ) werden bewährte statische Code-Analyse-Tools wie Sonarqube in die DETANGLE® -Plattform integriert.
Die Stärke der DETANGLE® Analyse ist, dass Technischen Schulden nachvollziehbar als “unnötiger” Zusatzaufwand quantifiziert werden. Damit erhält zum Beispiel der Projektleiter die Fakten, um zeitig über das Refactoring der Code Hotspots zum Abbau der “Zinskosten” der Technischen Schulden zu entscheiden.
Was sind die Voraussetzungen für eine Analyse der Technischen Schulden mit DETANGLE®?
Eine Grundvoraussetzung für eine effiziente Analyse der Technischen Schulden ist der Einsatz eines Code-Repository zur Versionsverwaltung (wie z.B. Git) in der Softwareentwicklung. In diesem werden einzelne Änderungs-Schritte der Quellcode-Entwicklung durch die Entwicklerteams gespeichert. Es funktioniert somit als eine Art historisches -Gedächtnis der Codestände. DETANGLE unterstützt sowohl in-house gehostete Repositories als auch alle gängigen Online-Dienste, wie z.B. GitHub, GitLab und Bitbucket.
Zusätzlich werden Informationen aus einem Bug-/Issue-Tracker (wie z.B. Jira oder AzureDevOps) und dessen Verbindungen zum Code-Repository ausgewertet. Der Einsatz dieser Tools hat sich als Best Practice im Software-Engineering bewährt und ist inzwischen weit verbreitet. Werden solche Tools eingesetzt, ist eine schnelle Konfiguration von DETANGLE® und eine sofortige Durchführung der Analyse möglich.
Wird von diesen Best Practices abgewichen, ist eine Vor-Analyse erforderlich, um die Datenbasis analysierbar zu machen. Dieser Aufwand ist nötig, um die unstrukturierten Entwicklungsdaten zu bereinigen und in ein analysefähiges Format zu überführen. Eine wertvolle Zusatzerkenntnis einer solchen Vor-Analyse sind konkrete Vorschläge zur technischen Prozessverbesserung, um durch einen optimierten Einsatz eines Code-Repository und eines Bug-/Issue-Trackers die Entwicklungsmethodik zu modernisieren.
Folgende Parameter beeinflussen die Dauer der Analyse:
- Code-Umfang (Anzahl Lines of Code)
- der Historie des Codes (=Anzahl und Umfang der Änderungen bzw. alter des Codes in Jahren)
- Anzahl der Entwickler
- Anzahl der Repositories
- Detaillierungsgrad der Root Cause Analyse
- Umfang des Abschlussberichts und einer Management Präsentation.
Eine Analyse der Technischen Schulden dauert damit je nach Ausgangssituation zwischen 5 und 20 Tagen.
Was unterscheidet eine DETANGLE® Analyse von anderen Code Analysen?
Aktuelle Methoden der Code-Qualitätsanalyse weisen oftmals folgende Limitierungen auf:
- Der Fokus der Qualitätsanalyse liegt allein auf Code, d.h. es wird weder die architektonische noch die funktionale Perspektive abgedeckt.
- Es gibt zu viele irrelevante Findings (False-Positives). Bereiche des Codes, die über einen längeren Zeitraum nicht geändert wurden, müssen beispielsweise nicht zwingend verbessert werden.
- Eine Priorisierung der Befunde mit einer Aufwand vs. Wirkung Matrix ist nicht automatisiert möglich.
Im Gegensatz dazu
- liefert die DETANGLE® Analysewichtige Empfehlungen auf der Grundlage der Analyse der Produktfeatures (deren Entwicklungsaufwand, Fehlerdichte und Qualität im Code) statt einer reinen Codeanalyse oder subjektiver Schätzungen durch Entwickler, Manager und Kunden. Es können zum Beispiel auch Features mit geringer Nutzung aber hohem Wartungsbedarf schnell erkannt und in der Priorisierung nach hinten geschoben werden,
- betrachtet eine DETANGLE® Analyse die Historie des Codes im Code-Repository und korreliert diese mit Bugs und Features, um dann mit Feature-zentrierten KPIs Aussagen über die Technischen Schulden und deren Ursachen hin zur Prognose des Refactoringaufwands zu gelangen.
Jetzt unser kostenfreies Whitepaper zum Thema Technische Schulden sichern
In diesem Whitepaper veranschaulichen wir, warum es unerlässlich ist, die technischen Schulden in einer Software Analyse zu betrachten.
Technischen Schulden mit Hilfe von DETANGLE® beheben
Die Cape of Good Code Analyse schafft Transparenz darüber, ob und wo im Code problematische Technische Schulden vorliegen und wie diese behoben werden können. Im einzelnen erbringt Cape of Good Code folgende Leistungen:
- Evaluierung, inwieweit sich Technische Schulden bereits auf die aktuellen Wartungsaufwände (und ggfs. Stabilität) der Software auswirken.
- Auswertung und Bestimmung der Technischen Schulden, die abgebaut werden müssen, um die Entwicklung neuer Funktionalitäten im normalen Kostenrahmen sicherzustellen.
- Quantifizierung der notwendigen Investitionen, um die wirklich problematischen Technischen Schulden abzutragen.
- Identifikation der Code-Bereiche, die die problematischsten Technischen Schulden aufweisen.
- Aufzeigen der Trends der Entwicklungsaufwände für Innovationen im Vergleich zu den Mehraufwänden für Wartung aufgrund Technischer Schulden, um die Gefahr von Verzögerungen beim Launch frühzeitig zu erkennen.
- Verwendung einer gemeinsamen KPI-basierten Terminologie und Diskussionsbasis für alle Projektbeteiligte, so dass intern auf Augenhöhe mit den gleichen Daten diskutiert und Entscheidungen nachvollziehbar getroffen werden können.
- Erzielung einer besseren Argumentation bei der Projekt-, Budget- und Ressourcenplanung, um den unvermeidbaren Aufwand zum Abbau der Technischen Schulden zu berücksichtigen.
Fragen Sie nach unserem Angebot
Sie interessieren sich für eine Analyse der Technischen Schulden mit DETANGLE®? Für ein Angebot für Sie und Ihr Software Produkt benötigen wir folgende Angaben:
- Art und Anzahl eingesetzter Ticketing-Systeme
- Art und Anzahl eingesetzter Repository-Systeme
- Code-Umfang (Anzahl der Code-Zeilen)
- Alter des Codes in Jahren
- Anzahl der Entwickler