Technischen Schulden
strategisch tilgen

Was sind technische Schulden?

Die impliziten Kosten künftiger Nachbesserungen, wenn bei einer Lösung die Zweckmäßigkeit über die langfristige Gestaltung gestellt wird.

Wikipedia

Erscheinungsformen

  • Resilienz-, Effizienz- und Sicherheitsprobleme im Code
  • IP-, Sicherheits-, Veralterungsprobleme in OSS-Komponenten
  • Suboptimale Nutzung der Cloud
  • Abweichungen von der Designarchitektur
  • Schlechte technische Dokumentation
  • Hoher Anpassungsaufwand

Gute vs. schlechte Schulden

Gut

Entwickelt, um Innovation zu fördern, ohne die Geschäftsabläufe wesentlich zu beeinträchtigen

Schlecht

Beeinträchtigt die Leistungsfähigkeit des Unternehmens: Agilität, Sicherheit und Ausfallsicherheit

Der Schlüssel zum Erfolg ist die Identifikation jener Codebereiche, die den größten negativen Einfluss auf das Geschäft ausüben.

Mapping der Software-Landschaft

Anwendungen priorisieren

  • Einstufung der Anwendungen nach technischer Komplexität und Geschäftskritikalität
  • Konzentration auf kritische Anwendungen mit hoher Tech-Debt-Dichte
  • Kritische, große Anwendungen mit niedriger Tech-Default-Dichte mit berücksichtigen
  • Die Abbildung zeigt ein reales Beispiel, wo der Umfang von 50 MLOCs auf 12 MLOCs reduziert wird.
Vogelperspektive auf ein Portfolio von 300 kundenspezifischen Anwendungen, generiert mit CAST Highlight

Vogelperspektive auf ein Portfolio von 300 kundenspezifischen Anwendungen, generiert mit CAST Highlight

CAST Highlight

CAST Highlight

Das große Ganze verstehen

  • Scannt Quellcode-Repositories
  • Analysiert Applikationen auf:
    • Dichte der technischen Schulden
    • Cloud-Reife
    • OSS-Risiken (IP, Sicherheit, Veralterung)
  • Vergleicht empirische Ergebnisse mit subjektiven Daten, wie  z.B. Kritikalität
  • Empfehlung für die beste Vorgehensweise

Gezielte Auswahl kritischer Bereiche innerhalb von Anwendungen

8 % der Gesamtfehler führen zu 90 % der signifikanten Zuverlässigkeits-, Sicherheits- und Effizienzprobleme im Live-Betrieb.’

Dr. Richard Soley, MIT Fellow

CISQ-OMG

‘Entwicklungsrichtlinien identifizieren die kritischsten Fehler (die 8%) durch die kontext-bezogene Bewertung von Softwarestrukturen.’

aus ISO 5055

ISO/IEC 5055

Herkömmliche (syntaktische) Analysemethoden erfassen den Kontext nicht

Schlecht kann gut sein

Die Durchführung eines Tabellenscans anstelle eines Indexscans beeinträchtigt die Performance.

Bei einer Referenztabelle mit wenigen Einträgen macht dies jedoch kaum einen Unterschied.

Die Durchführung eines Tabellenscans

Gut kann schlecht sein

Ein reales Szenario, in dem die Codeeinheit über jeden Zweifel erhaben ist, aber die Systemleistung leidet.

Indirekter Remote-Datenbankaufruf innerhalb einer Schleife

Eine semantische Analyse ist notwendig

Die Kunst, die entscheidenden 8% zu identifizieren

  • Die Herausforderung: 10.000-fache Code-Einheiten und ihre komplexen Interaktionen präzise zu erfassen
  • Die Lösung: Die Bedeutung jeder Einheit im Kontext aller Interaktionen über alle technischen Schichten hinweg zu analysieren
  • Der Schlüssel: Der Einsatz semantischer Analysetechnologien wie CAST oder Coverity für C++-Code beschleunigt die Analyse entscheidend
Interne Karte einer mittelgroßen Anwendung mit 300.000 LoCs und 41.000 Code-Einheiten. CAST Imaging

Interne Karte einer mittelgroßen Anwendung mit 300.000 LoCs und 41.000 Code-Einheiten. CAST Imaging

CAST Imaging

CAST Imaging

Detaillierter Einblick in Anwendungen

  • Erfassung von Quellcode und Datenskripten
  • Analyse der Semantik aller Einheiten
  • Erzeugt Maps mit Details zu:
    • Interne Architektur
    • Wesentliche strukturelle Schwachstellen
    • Einhaltung von ISO 5055 ++
    • Abweichungen von Architekturregeln
  • Bietet Empfehlungen und Erklärungen in natürlicher Sprache

Nächste Schritte

AI für die selbstständige Problemlösung trainieren

  • Deterministische Aufrufdiagramme mit 40 KLOCs pro Minute erzeugen
  • Prompt-Engineering von GenAI-Tools mit generierten Aufrufdiagrammen unterstützen
  • GenAI korrigierten Code mit minimalen Risiko für das System erzeugen
  • Erste Anwendungen in Unternehmen zeigen: Bis zu 30 % der Fehlerbehebung lassen sich bereits heute vollständig automatisieren
  • Für anspruchsvolle Aufgaben wie komplexe Problemlösungen oder umfangreiche Refactorings sind auch weiterhin erfahrene Fachkräfte (z.B. aus kleinen und mittleren Unternehmen) unerlässlich
Semi-autonomous code transformation

Technische Schulden präventiv vermeiden

Proaktive Anwendung des 8%-Ansatzes

  • Verwenden Sie ein Structural Quality Gate, das die gesamte Anwendung überprüft, bevor Änderungen in Produktion gehen
  • Konzentration auf die wichtigsten 8% der Fehler
  • CAST SQG wurde speziell für diesen Zweck entwickelt:
    • Analysiert die Semantik
    • Befolgt die Regeln der ISO 5055
    • Empfiehlt Korrekturmaßnahmen
    • Anbindung an Fehlerverfolgungssysteme (ITS)
  • Verfügbar als eigenständige Lösung oder als Erweiterung von CAST Imaging
CAST SQG: Aktionsplan zur Behebung struktureller Mängel

CAST SQG: Aktionsplan zur Behebung struktureller Mängel