Software Analyse
Cape of Good Code hat mit DETANGLE® eine Software Suite entwickelt, um Software zu analysieren und Technische Schulden zu lokalisieren und zu vermessen.
- Finden Sie heraus, welche Technische Schulden die Zukunft der Software gefährden
- Kennen Sie den Aufwand, um die Technischen Schulden in den Griff zu bekommen
- Lokalisieren Sie die Technischen Schulden in Code und Archtitektur, um effizient gegenzusteuern
- Prüfen Sie die Organisation als Ursache für Technische Schulden
- Sicheren Sie die Innovationsfähigkeit durch Begrenzung der Technischen Schulden
Warum analysiert man Software?
Die Entwicklung einer Software ist ein organisierter wissensbasierter Prozess, unter Einsatz geeigneter Technologien und Experten. Eine fehlerfreie Qualität des Endergebnisses ist davon abhängig, dass Technologie, Know How, Prozesse und Methoden sich in idealer Weise ergänzen.
In der Praxis wird das so nicht sein. Damit hat jede Software Schwachstellen, die im Laufe des Lebenszykluses meist zunehmen. Wo diese Schwachstellen liegen und wie kritisch sie bereits sind oder werden können, zeigt eine Software Analyse.
Software Analysen sind für jeden wichtig, der entweder Software erzeugt oder in ein Softwareunternehmen investieren möchte. Regelmäßige Analysen der Software im Entwicklungsprozess sind in vielen Softwareunternehmen inzwischen Standard im Qualitätsmanagement.
Im Falle von M&A Transaktionen, setzt der Investor in der Due Diligence zunehmend auch eine spezielle Software Due Diligence ein. Damit hat er Sicherheit, dass die Software Technologie des Zielunternehmens noch eine lange Lebensdauer mit normalen Kosten hat.
Eine Software Analyse beurteilt die technische Umsetzung der Software. Die technische Qualität einer Software lässt sich mit unserer DETANGLE Analyse Suite weitgehend automatisiert vermessen. Da die Qualität einer Software untrennbar von der Qualität der Entwicklungsprozesse und -methoden ist, werden diese durch unsere Berater in der Software Analyse ebenfalls analysiert.
Die durch Cape of Good Code in einer Software Analyse geprüften Themen können sein:
- Die Entwicklungsmethoden und Testroutinen
- Die Wissensverteilung im Team
- Service- und Wartungsprozesse
- Umfang und Umgang mit Technischen Schulden
Wann bedeuten Technische Schulden den Exitus Ihrer Software?
Jede Software hat Schwachstellen in ihrer Technologie und Architektur. Diese Probleme kumulieren sich im Laufe der Jahre und werden zur Bedrohung für die Lebensdauer der Software. Für diese kumulierenden Altlasten wird die Metapher "Technische Schulden” verwendet. Diese Schulden schränken die zukünftigen Möglichkeiten eine Software weiterzuentwickeln drastisch ein.
Ein Software-Wartungsaufwand (Analogie: Zins- und Tilgung bei finanziellen Schulden) von über 20% ist ein guter Anhaltspunkt für ein problematisches Niveau an Technische Schulden, da sie zuviel der für die Weiterentwicklung notwendigen R&D Kapazitäten absorbieren.
Zeitdruck, Budgetdruck und eine Überforderung einzelner Softwareentwickler sind die Auslöser für diese Qualitätsprobleme. Durch diese vorgenannten Faktoren werden Entwickler dazu verleitet, bewusst oder unbewusst technische Kompromisse einzugehen. Ohne zeitnah eingeleitete Gegenmaßnahmen kumulieren diese Kompromisse zu Technischen Schulden. Diese werden mit jedem neuen Feature oder Interation weiter ansteigen, bis eine Trendwende nur noch mit so viel Aufwand eingeleitet werden kann, dass es ökonomisch nicht mehr sinnvoll ist. Damit endet meist der sinnvolle Lebenszyklus einer Software unnötig früh.
Wie weit ist Ihre Software von diesem Point of no return entfernt?
Das ist die Frage, die sich jeder Softwarehersteller regelmäßig stellen muss. Wir helfen Ihnen mit unseren Software-Analysen, diese Frage zu beantworten. Dazu analysieren wir Ihre Software mit der DETANGLE® Analyse Suite und zeigen detailliert auf, wie Sie die Technischen Schulden abbauen können und wieder technologisch in den grünen Bereich kommen. Damit bleibt ihre Software langfristig wettbewerbsfähig.
Sprechen Sie mich an und wir erarbeiten Ihre individuelle Software Analyse
Jedes Software Analyse Projekt ist einzigartig und birgt andere Herausforderungen. Wir haben stets Ihr Unternehmen im Blick und entwickeln Lösungen, die zu Ihnen passen.
Was sollte ich über Technische Schulden wissen?
Softwareentwicklungen sind “Never-ending Stories”. Die Notwendigkeit von Updates oder Erweiterungen zieht sich durch den gesamten Lifecycle einer Software. Dabei entwickeln sich stets auch neue Technische Schulden. Werden sie nicht regelmäßig abgebaut, steigt der Wartungsaufwand weit über die kritische Marke von 20% der Gesamtentwicklungskapazität an. Der Wert ist ein Indikator dafür, dass sich das Team zunehmend mit den negativen Auswirkungen der Schulden, statt mit der Entwicklung neuer Features, beschäftigt.
Wie kann man die Technischen Schulden in Code und Architektur lokalisieren und quantifizieren, um rechtzeitig 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 identifizieren
- Technischen Schulden in der Software-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 im Auge behalten werden. Die Frage ist aber - wie erkenne ich sie und wie kann ich dann die wirklich kritischen Schulden bei den Gegenmaßnahmen priorisieren, um die knappen Entwicklungskapazitäten möglichst effizient einzusetzen?
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.
Können Technische Schulden automatisiert analysiert werden?
Cape of Good Code hat für die Analyse 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 eingesetzten Code-Qualitätstools weiterhin eingesetzt und integriert werden können, sondern zusätzlich die Technischen Schulden in der Sofware-Architektur mittels unserer besonders innovativen Algorithmen vermessen werden.
Damit werden erstmals in der Softwareanalyse die Technischen Schulden sowohl im Code, als auch in der Architektur analysiert. Die Algorithmen erlauben auch noch die Auswirkung unterschiedlicher technischer Entwicklungsprozesse zu quantifizieren und mit den Wartungs- und Mehraufwänden in der Entwicklung zu korrelieren. Spezifische KPIs ermöglichen ein Monitoring der Trends der besonders kritischen Schulden. Die Kontrolle und Nachhaltigkeit der Maßnahmen zur Reduktion der Schulden werden dadurch wesentlich verbessert.
Die Cape of Good Code Analyse der Technischen Schulden mit DETANGLE® enthält folgende Leistungen:
- Lokalisierung der Technischen Schulden im Code und in der Architektur.
- Effizienz der technischen Entwicklungsprozessen (wie z.B. Testing, Review-Aktivitäten) und die Vollständigkeit der Dokumentation prüfen.
- Prognose der Auswirkungen auf die Wartungskosten und auf die zukünftige Erweiterbarkeit der Software.
- Priorisierung der Maßnahmen zum Abbau der Schulden mit Aufwand-vs-Nutzen-Kriterien.
- Rückverfolgung der Technischen Schulden zu ihren eigentlichen technischen Ursachen (z.B. Architektur- oder Code-Qualität sowie Qualität der Entwicklungsprozesse).
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. Die DETANGLE® Classic Analyse liefert dafür Daten zur Restrukturierung. , um die Technischen Schulden in der Software gezielt und effektiv auf ein unkritisches Niveau abzubauen. In der DETANGLE®-Pro Version werden den Architekten und Entwicklern sogar durch das System automatisch Lösungsansätze zur Restrukturierung vorgeschlagen.
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 konkrete Erkenntnisse.
Erkenntnisse für die Stakeholder
Projekt Manager, Product Owner
- Überblick darüber, ob Wartungsaufwände kritische Schwellenwerte überschreiten. Erkennbar am Anteil der Wartungsaufwände vs. 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 kritischer 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
- Effektivität der Review-Aktivitäten
- Qualität der technischen Prozesse (Anwendung von Best-Practices)
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 und Skalierbarkeit der Software und der Software-Engineering Prozesse zur Vorbereitung auf eine Investorenrunde.
Wann ist der richtige Zeitpunkt, um Ihre Technischen Schulden zu analysieren?
Wenn die Anwender die möglichen Probleme schon bemerken, haben Sie den richtigen Zeitpunkt schon verpasst. Symptome, die durch Technische Schulden auftreten, sind vielfältig und beginnen früh. Man kann sie also rechtzeitig erkennen. Einige Indizien sind:
- 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, Fluktuation
Eine Software weiterzuentwickeln, ohne die Technischen Schulden zu kennen, ist wie Fahren im Nebel mit Vollgas. Das kann gutgehen, muss es aber nicht. Wir unterstützen Sie dabei mit Werkzeugen, Expertise und Erfahrung um den richtigen Weg zu finden. Sprechen Sie uns an.
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 strukturierten Interviews werden mit überschaubarem Aufwand die Hotspots der Schulden identifiziert.
Für die identifizierten Hotspots der Schulden wird eine Roadmap zur Verbesserung von Code, Architektur und der technischen Entwicklungsprozesse 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 den regelmäßigen Abbau der Schulden geschärft.
Fragen, die sich jeder Softwareentwickler oder Projektleiter regelmäßig stellen sollte
- 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?
- Wie sieht die Verteilung der Technischen Schulden in der Codebasis aus? Wo sind welche Hotspots an Technischen Schulden anzutreffen? Gibt es Muster?
- Wie kann ich den Korrekturaufwand abschätzen?
- Wie erkenne ich das jeweilige Risikopotential der lokalisierten Technischen Schulden?
- Wie können die Maßnahmen zum Abbau der Technische Schulden nach dem besten Kosten-/Nutzenverhältnis priorisiert werden?
- Wie können im Team Best Practices des Software-Engineerings nachhaltig 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 leicht entstehen und eskalieren können. Wir empfehlen deshalb, die Vermessung und den Abbau der Technischen Schulden zu einer regelmäßigen Routine zu machen.
Welche Untersuchungsfelder bietet eine Software Analyse?
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. Dabei bieten wir die drei Leistungspakete “Health Check”, “Improvement” und “Restructuring” an, die sich im Umfang der Untersuchungsfelder und -methoden (wie der DETANGLE® Classic oder DETANGLE® Pro Version, Interviews und Beratung) unterscheiden.
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.
-
Health Check
-
Improvement
-
Restructuring
Health Check4-8MTErhalten Sie einen schnellen Überblick über Entwicklungsaufwände und Software Qualität |
Improvement8-12MTErhalten Sie ein detailliertes Bild der Software und Ihrer Verbesserungsmöglichkeiten |
Restructuring12-25MTErhalten Sie vollständige Transparenz Ihrer Software und Empfehlungen zum Refactoring bzw. zur Restrukturierung |
|
---|---|---|---|
Entwicklungsaufwände klassifizieren | |||
High-level Analyse der Software Qualität | |||
Code-Qualität vermessen | |||
Architektur-Qualität vermessen | |||
Team-Effizienz | |||
Technische Entwicklungsprozesse | |||
Documentationslücken identifizieren | |||
Technische Schulden: Aufwands-und Kritikalitätsprognose | |||
DevOps Maturity | |||
Cloud Readiness | |||
(Cloud) Skalierbarkeit | |||
Automatisierte Refactoring-Vorschläge | |||
API Design | |||
Performance Monitoring | |||
Feature-Nutzung | |||
Rückkoppelungsfreiheit sicherheitsrelevanter Features analysieren |
Was passiert nach der Analyse der Technischen Schulden?
Entsprechend dem Umfang und dem Risikopotential der Technischen Schulden sollte zeitnah ein Projekt zum Abbau der Technischen Schulden initiiert werden. Es ist unerlässlich, dass dafür qualifizierte Entwickler zur Verfügung gestellt und bei der Kapazitätsplanung berücksichtigt werden. Wir empfehlen stets auch organisatorische Massnahmen umzusetzen, um zukünftig den erneuten Aufbau von Technischen Schulden unter Kontrolle halten zu können.
Bei diesem Projekt zur Qualitätsverbesserung kann Cape of Good Code Sie dabei unterstützen, die Ergebnisse und Empfehlungen der Analyse umzusetzen. Dabei wird die DETANGLE® Pro Version für automatisierte Refactoring-Vorschläge genutzt, um verschiedene Optionen zusammen mit den Entwicklern zu bewerten. Erste Erfahrungen zeigen, dass dadurch bei der Lösungsentwicklung bis zu 50% Zeitersparnis zu erzielen ist.
Im Einzelnen bietet Cape of Good Code dafür folgende Leistungen an:
- Projektleitung, um die konsequente Umsetzung der Empfehlungen zu gewährleisten.
- Erfassung der Refactoring Maßnahmen als Issues inklusive der Beschreibung und Begründung.
- Training der Entwicklerteams zu den Best Practices im Umgang mit Issue-Trackern und Code-Repositories.
- Training der Entwicklerteams zu den Best Practices zum Design des Codes für Testbarkeit.
- Konzeptionelle Beratung, falls eine größere Transformation der Code-Architektur notwendig ist.
Wir unterstützen auch bei der regelmäßigen Durchführung dieser Analysen, d.h. mindestens einmal pro Release.
Damit wird die Wirkung der Maßnahmen nachgewiesen und neue negative Trends werden früh erkannt und begrenzt. Damit gelingt es auch nach der initialen und umfangreichen Software Analyse, die stets vorhandenen Technischen Schulden, langfristig in Schach zu halten.
Interesse geweckt?
Unsere Neuesten Wissensartikel
In unserem Wissens-Blog finden Sie stetig neue Artikel zu verschiedensten Themen aus der Software Entwicklung.