UNTERSUCHUNGSFELD _

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!

20945548

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:

  1. 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.

  2. 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.
MaintenanceCostSWLifecyle


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®

KPI&RootCauses_de-1
EgonWuchner_500x500px
Egon Wuchner, CEO

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.
LEISTUNG _

Technische Schulden mit unserer Software Analyse identifizieren

WHITEPAPER _

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

Interesse geweckt?