Technische Schulden Analyse

Mit DETANGLE stellt Cape of Good Code schnell und übersichtlich Analyseergebnisse bereit und unterstützt so faktenbasiert die Fokussierung auf die wichtigsten Qualitätsrisiken, um dadurch die notwendigen Prioritäten in der Entwicklung zu setzen.

Thorsten Braun, Head of TrainIT Technology and Architecture, Siemens Mobility

 

 

Anhand der DETANGLE® Analysen konnten wir gezielt die relevanten Technischen Schulden und deren Ursachen identifizieren. Die Berater von Cape of Good Code haben uns zudem gezeigt, wie man selbst aus den Analysedaten die richtigen Schlüsse zieht und geeignete Refactoring-Maßnahmen ableitet.

Sebastian Scheuerl, Abteilungsleiter Softwareentwicklung CAMBIUM®

Kennen Sie die Technischen Schulden Ihrer Software?

Jede Software hat Technische Schulden. Sie verstecken sich im Code und in der Software-Architektur. Diese Schulden begrenzen irgendwann die Möglichkeiten eine Software effizient weiterzuentwickeln. Ein Wartungsaufwand an einer Software von über 20% der Entwicklungskapazität ist ein erster Anhaltspunkt für zu hohe Technische Schulden.

Auslöser für die Schulden sind Zeitdruck, Budgetdruck oder auch Überlastung der Softwareentwickler. Diese Umstände verleiten die Entwickler dazu, bewusst oder unbewusst technische Kompromisse einzugehen. Ohne geeignete Gegenmaßnahmen steigen die Technischen Schulden mit jedem neuen Feature weiter an. Bis der Punkt erreicht wird, an dem die Anwender  unzufrieden sind, und die Weiterentwicklung der Software technisch oder kommerziell nicht mehr sinnvoll ist.

Wie weit ist die eigene Software von diesem Punkt entfernt? Das ist die Frage, die sich jeder Softwarehersteller regelmäßig stellen sollte. Wir helfen Ihnen dabei diese Frage zu beantworten. Dazu analysieren wir Ihre Software mit der DETANGLE® Analyse Suite und zeigen detailliert auf, wie Sie wieder in den grünen Bereich der Technischen Schulden kommen und dort bleiben können. Damit bleibt ihre Software langfristig attraktiv, wettbewerbsfähig und profitabel.

Was sollte ich über Technische Schulden wissen?

Softwareprodukte sind “Never-ending Stories”. Die Notwendigkeit von Updates oder Erweiterungen zieht sich durch den gesamten Lifecycle einer Software. Dabei entwickeln sich auch stets neue Technische Schulden. Werden sie nicht regelmäßig abgebaut, steigt der Wartungsaufwand weit über 20% der Gesamtkapazität an. Das ist ein Indikator dafür, dass  sich das Team  zunehmend mit den Auswirkungen der Schulden, statt mit der Entwicklung neuer Features beschäft.

Wie kann man also die Technischen Schulden in Code und Architektur lokalisieren und quantifizieren, um wirkungsvolle Gegenmaßnahmen ergreifen zu können?

Es ist wichtig zu wissen:

  • Nicht jede Technische Schuld ist ein drängendes Problem 
  • Nicht jede kritische Technische Schuld ist einfach zu erkennen
  • Technischen Schulden in der Architektur können besonders problematisch sein

Um das empfohlene Budget von 20% Entwicklungskapazität für Wartung und Schuldenabbau einhalten zu können, sollten die kritischen Schulden während der Entwicklung stets im Auge behalten werden. Die Frage ist aber – wie erkenne ich sie und wie kann ich dann die kritischen Schulden bei den Gegenmaßnahmen priorisieren?


Kontaktieren Sie uns für weitere Information.


Können Technische Schulden automatisiert analysiert werden?

Cape of Good Code hat für die Analyse des Problempotentials der im Code und in der Architektur verteilten Technischen Schulden die DETANGLE® Software Suite entwickelt.

Das einzigartige an der DETANGLE® Plattform ist, dass nicht nur die gängigen Code-Qualitätstools weiterhin eingesetzt und integriert werden können, sondern für die innovative Vermessung der Technischen Schulden in der Architektur der Software neue Algorithmen entwickelt wurden. Damit werden erstmals in der Softwareanalyse die Technischen Schulden sowohl im Code, als auch in der Architektur quantifiziert und mit den Wartungs- und Mehraufwänden in der Entwicklung korreliert. Neue KPIs ermöglichen eine stetige Verfolgung des Trends Ihrer Schulden. Die Kontrolle und Nachhaltigkeit der Gegenmaßnahmen werden dadurch wesentlich verbessert.

Die Cape of Good Code Analyse der Technischen Schulden mit Hilfe von DETANGLE® enthält folgende Leistungen:

  • Lokalisierung der Technische Schulden im Code und in der Architektur.
  • Prognose der Auswirkungen auf die Wartungskosten und die Erweiterbarkeit der Software.
  • Priorisierung der Massnahmen zum Abbau der Schulden mit Aufwand-vs-Problempotential-Kriterien.
  • Rückverfolgung der Technischen Schulden zur ihren eigentlichen technischen Ursachen (z.B. Architektur- oder Code-Qualität sowie Qualität der Entwicklungsprozesse) sowie Bestimmung des Ausmaßes und Beitrages dieser Ursachen zu den Schulden.

Wir unterstützen die Stakeholder in der Softwareentwicklung mit  professionellen Analysen, um den Wartungsaufwand im Lifecycle der Software in einem sinnvollen Korridor von Veränderung und Stabilität zu halten. DETANGLE® liefert dafür Empfehlungen, um die Technischen Schulden in der Software gezielt und effektiv auf ein unkritisches Niveau abzubauen.

Basierend auf den Ergebnissen der Analyse mit der DETANGLE® Analyse Suite und ergänzt um Informationen und Details aus Interviews und Unterlagen, ergeben sich für die Stakeholder Ihrer Softwareentwicklung viele konkreten Erkenntnisse.

Stakeholder Erkenntnisse
Projekt Manager,
Product Owner
  • Überblick darüber, ob “Zinskosten” kritische Schwellenwerte überschreiten. Erkennbar am Anteil der Wartungsaufwände in der Gesamtentwicklungskapazität.
  • Identifikation der Schulden-Hotspots.  Aufwandsschätzung zum Abbau der Technischen Schulden in diesen Hotspots und zum Beheben der Ursachen. Hinweise zur Priorisierung nach Kosten-Nutzen-Gesichtspunkten.
  • Hinweise zur Planung der Budgets zur Entwicklung neuer Features vs. Tilgung Technischer Schulden. Damit wird eine langfristige Balance von Stabilität und Innovation ermöglicht.
Technische Leiter
  • Valide Aussagen zu  einer Vielzahl  potentieller Ursachen für Technischen Schulden erleichtern die Priorisierung der Gegenmassnahmen. Wichtige Aspekte  sind dabei:
    • Erweiterbarkeit der Code-Architektur
    • Wartbarkeit des Codes
    • Ausmaß der Dokumentationslücken
    • Umfang des Testcodes bzw. der Testabdeckung
    • Effizienz der Entwicklerteams
    • Qualität der technischen Prozesse
Gründer,
Entwicklungsleiter,
CTO,
COO
  • Essentielle Performance-Kennzahlen über die Produktlandschaft hinweg ermöglichen es, Best Practices für die Softwareentwicklung und die Softwarearchitektur zu identifizieren.
  • Daten-basierte Entscheidungshilfen zur Priorisierung der Kapazitäten für Innovationen vs. Tilgung der Technischen Schulden über diverse Entwicklerteams und Produkte hinweg.
  • Analyse der Qualität der Software und der Software-Engineering Prozesse zur Vorbereitung auf eine Investorenrunde.

Kontaktieren Sie uns für weitere Information zu den Untersuchungsfelder unserer Technische Schulden Analysen.


Wann ist der richtige Zeitpunkt, um Ihre Technischen Schulden zu analysieren?

Wenn bereits Probleme für den Kunden sichtbar werden, haben Sie den richtigen Zeitpunkt schon verpasst. Symptome, die durch Technische Schulden auftreten sind vielfältig und beginnen früh. an kann sie also rechtzeitig erkennen:

  • Abnehmende Innovationsdynamik
  • Zunehmende Bugs und abnehmende Stabilität
  • Langwieriges Testen, aufwändige Fehlersuche
  • Erhöhte Aufwände bei der Integration neuer Features
  • Regelmäßig verfehlte Launch Dates
  • Abnehmende Kundenzufriedenheit
  • Unzufriedene Entwickler

Eine Software weiterzuentwickeln, ohne die Technischen Schulden zu kennen, ist wie Fahren im Nebel mit Vollgas. Das kann gutgehen, muss aber nicht. Wir unterstützen Sie dabei mit Werkzeugen, Expertise und Erfahrung um den Nebel zu lichten. Sprechen Sie uns an.


Kontaktieren Sie uns für weitere Information zu unseren DETANGLE® Analysen.


In Softwareprojekten gibt es bei Projektbeginn unvermeidbare Lücken und Unschärfen in den Vorgaben. Jedes Softwareprojekt erfährt deshalb stetige konzeptionelle und technologische Änderungen, meist ohne Anpassung der Zeitpläne und Budgets. Die dabei von Sprint zu Sprint oder Update zu Update auftretenden vielen kleinen Unzulänglichkeiten, Fehler, Best-Practice-Verletzungen, Workarounds und Quick-Fixes addieren sich, wenn keine Gegenmaßnahmen ergriffen werden, schnell zu einem problematischen Ausmaß an Technischen Schulden.

Das Team von Cape of Good Code kann Sie bei der Analyse der Technischen Schulden im Code und in der Architektur bereits zu einem sehr frühen Entwicklungszeitpunkt unterstützen. Durch einen Software-Scan mit DETANGLE® und einigen (optionalen) strukturierte Interviews werden mit überschaubarem Aufwand die Hotspots der Schulden identifiziert.

Für diese Hotspots der Schulden wird eine Roadmap zur Verbesserung von Code und Architektur unter Berücksichtigung der vorliegenden Budget- und Kapazitätsgrenzen ausgearbeitet. Gleichzeitig wird auch das Bewusstsein der Entwickler und Projektleiter für die Nutzung von Best Practices und einen regelmäßigen Abbau der Schulden geschärft.

Fragen, die sich jeder Softwareentwickler oder Projektleiter regelmäßig stellen sollte:

  1. Wie setzen sich meine Technischen Schulden zusammen? Ergeben sich diese aus Problemen in der Architektur, aus einer schlechten Code-Qualität, aus fehlender Dokumentation und unzureichendem Testen oder einer Mischung von allem?
  2. Wie sieht die Verteilung der Technischen Schulden in der Codebasis aus? Wo sind welche Hotspots an Technischen Schulden anzutreffen? Gibt es Muster?
  3. Wie kann ich regelmäßig den Korrekturaufwand abschätzen?
  4. Wie kann ich Schulden mittels eindeutiger Metriken frühzeitig erkennen und lokalisieren?
  5. Wie können Technische Schulden gemessen werden, damit die Gegenmaßnahmen mit dem besten Kosten-/Nutzenverhältnis priorisiert werden können?
  6. Wie können im Team Best Practices des Software-Engineering besser verankert werden?

Setzen sich Manager und Mitarbeiter in der Softwareentwicklung regelmäßig mit diesen Fragen auseinander, sollte das Problem von wachsenden Technische Schulden beherrscht werden können. Die Betonung liegt dabei auf regelmäßig, da neue Technische Schulden jederzeit durch Budgetdruck, Kapazitätsengpässe, Fluktuationen im Team und ständigen Veränderungen in den Anforderungen entstehen und eskalieren können. Wir empfehlen deshalb die Vermessung und den Abbau der Technischen Schulden zu einer regelmäßigen Routine zu machen.

Cape of Good Code bietet Dienstleistungen und Analysen von Entwicklern für Entwickler. Wir verstehen aus eigener Erfahrung die Rahmenbedingungen in der Softwareentwicklung. Genau deshalb haben wir auch DETANGLE® entwickelt. Unsere Analysen und Vorschläge zeichnen sich durch eine hohe analytische Tiefe, aber auch durch Pragmatismus und Umsetzungsfähigkeit aus. Und der Aufwand für unsere Analyse ihrer Software ist kleiner als sie wahrscheinlich vermuten.


Kontaktieren Sie uns zur Klärung weiterer Fragen oder zu den Details eines Angebot.


Was passiert nach der Analyse der Technischen Schulden?

Entsprechend dem Umfang und der Priorität der Technischen Schulden sollte direkt im Anschluss das Go für ein Projekt zum Abbau der Technischen Schulden gegeben werden. Es ist unerlässlich, dass dafür temporär qualifizierte Entwickler zur Verfügung gestellt und bei der Kapazitätsplanung berücksichtigt werden. Wir empfehlen stets auch organisatorische Massnahmen umzusetzen, um auch zukünftig den Neuaufbau von Technischen Schulden unter Kontrolle halten zu können.

Bei diesem Anschlussprojekt kann Cape of Good Code Sie dabei unterstützen, die Empfehlungen der Schuldenanalyse umzusetzen.

Im Einzelnen bietet Cape of Good Code für die Projektphase des Abbaus der Technischen Schulden folgende Leistungen an:

  1. Projektleitung, um die Koordination und den Fortschritt zur Umsetzung der Empfehlungen seitens des Kunden und der Partner zu gewährleisten.
  2. Erfassung der Refactoring Maßnahmen als Issues inklusive der Beschreibung und Begründung.
  3. Training der Entwicklerteams zu den Best Practices im Umgang mit Issue-Trackern und Code-Repositories.
  4. Training der Entwicklerteams zu den Best Practices zum Design des Codes für  Testbarkeit.
  5. Konzeptionelle Beratung, falls eine größere Umgestaltung bzw. Transformation der Code-Architektur notwendig sind.