Cape of Good Code

Qualitäts-Analysen in der Software-Entwicklung

Um digitale Entwicklungen und Business Development miteinander zu verzahnen, braucht es eine gemeinsame Sprache für Software-Ingenieure und das Management, davon sind Egon Wuchner und Konstantin Sokolov überzeugt.

„Guter Code ist kein Selbstzweck, er reduziert Aufwand, Fehleranfälligkeiten und Risiken bei allen digitalen Projekten.“

Mit 20 Jahren Berufserfahrung in der Corporate Technology, einer internen Forschungs- und Beratungsabteilung der Siemens AG, weiß Dipl.-Math. Egon Wuchner, was nötig ist, damit Unternehmen mit ihren Software-basierten Lösungen Geld verdienen. Wie bei jeder Investition ist auch hier die Auswahl möglichst effizienter und risikofreier Mittel entscheidend. Seit 2011 beschäftigt er sich damit, was gute Software-Entwicklung eigentlich genau ist und ausmacht.

Seit 2013 arbeitet er gemeinsam mit Dipl.-Ing. (Techn. Informatik) Konstantin Sokolov daran, messbare Kriterien zu definieren und entsprechende Analyse-Methoden zu entwickeln. Und damit sichtbar zu machen: Was trägt hohe Software- bzw. Code-Qualität zur Funktionalität von Lösungen bei, wo schafft schlechte Code-Qualität Hürden, frisst Ressourcen und verursacht Fehler.

„Entwickler verstehen das Problem, wenn Code durch Änderungen „wächst“ und sich seine Qualität verschlechtert, können es aber nur schwer vermitteln“,

beschreibt Wuchner die Schwierigkeit. „Es zeigt sich eher als eine Art Bauchgefühl, dass hier und da an der Software-Architektur gearbeitet werden sollte, weil Bearbeitungen immer schwieriger werden.“ Auch mit fundierten Zahlen bleibt das Problem für Menschen ohne technischen Hintergrund zu abstrakt und theoretisch.

Allerdings brauchen mit fortschreitender Digitalisierung zudem auch Unternehmen und Branchen, die klassischerweise keine Erfahrung mit IT haben, eine Basis für strategisch sinnvolle Entscheidungen zu digitalen Themen.

Wuchner und Sokolov entscheiden daher, die Mess-Ergebnisse auf die einzelnen Funktionalitäten - also die spezifischen Features - herunterzubrechen, die das Unternehmen anbieten, verkaufen und damit Geld verdienen will. So lässt sich ein Bezug zwischen dem Nutzen eines Features und seines Aufwands ermitteln. Dieser bezieht den Zustand des Codes und auch seine Belastbarkeit für weitere Änderungen und Folgekosten, so genannten Schulden der Software-Entwicklung, mit ein.

Als klar wird, dass sich das Thema inzwischen zu einem aufwändigen Forschungsprojekt ausgeweitet hat und nicht als Spin-Off von Siemens weitergeführt wird, gründen die beiden beherzt eine eigene Firma. „Wir haben das dann einfach selbst gemacht“, so Wuchner.

„Da war keine großartige Entscheidung nötig“, ergänzt Sokolov. Er ist bereits bei Siemens bevor er Wuchner trifft; macht ein Praktikum, schreibt seine Diplomarbeit und arbeitet seit 2011 als Freelancer für das Unternehmen. Als er dem Projekt von Wuchner zugeteilt wird, sind Software-Qualität und automatisierte Analysen neu für ihn. „Bei der Beschäftigung mit dem Thema habe ich schnell das Potenzial gesehen und wir haben viel Arbeit hineingesteckt.“

Ab August 2018 bauen die beiden ihre Lösung also von Grund auf neu und implementieren in dem Zug völlig neue Ansätze. 

„Wir liefern die schnell erfassbar aufbereitete Datenbasis für unternehmerische Entscheidungen zu digitalen Themen.“

Mehr und mehr unternehmerische Entwicklungen und Strategien beinhalten digitale Aspekte und Komponenten. Für ihre Umsetzung wird Software benötigt, um Kunden bestimmte Funktionen anzubieten. Neue Lösungen müssen entwickelt oder vorhandene erweitert werden. Um die Zusammenarbeit zwischen Unternehmen zu ermöglichen sind Schnittstellen, Datenabgleiche und ähnliches nötig. All das basiert auf Code. Text, in dem festgelegt ist, welche genauen Schritte das System abarbeiten, berechnen oder analysieren soll.

Je nachdem, wie dieser Code strukturiert ist, ist es für Unternehmen schwerer oder leichter, Anpassungen vorzunehmen und neue Funktionen zu ergänzen, und damit mehr oder weniger Ressourcen-intensiv.

Guter Code ist so aufgebaut, dass er neue Features trägt, ohne unerwartete Fehler, Ausfälle, Wartungsaufwände  und Kosten zu verursachen. Er reduziert durch eine saubere Dokumentation die Zeit, die ein Entwickler braucht, um ihn zu verstehen. Und die Wissensverteilung über den Code, bzw. die Entwicklung ist ohne Risiken.

Guter Code hält Änderungen gut aus – Die Feature-Qualitäts-Analyse

Die Analyse von Cape of Good Code ermittelt, an welchen Stellen die Code-Struktur unter Umständen so überlastet ist, dass das Hinzufügen neuer Features die Fehleranfälligkeit erhöht. Denn ein Code, eine Softwarearchitektur ist ja nie fertig, sondern muss für Veränderungen und Ergänzungen ausgelegt sein. „Der Markt ist hochgradig veränderlich und Kundenanforderungen sind unklar“, beschreibt Wuchner die Situation. „Wir wissen nicht welche Features sich durchsetzen werden und womöglich im Markt differenzierend wirken und sich damit zu einem Wettbewerbsvorteil entwickeln. Gleichzeitig müssen Unternehmen innovativ sein, verschiedene Features anbieten, experimentieren und z. B. mit A/B-Tests die Nutzungszahlen ermitteln.“

Aber auch bei einer hohen Nutzung macht es Sinn zu ermitteln, ob der Aufwand noch vertretbar ist Auch hier zeigt sich die Pareto-Regel - 20 % der Features sorgen für 80 % des Aufwands.

Guter Code ist gut dokumentiert – Prozess-Qualitäts-Analyse

Für Software-Entwickler ist das Thema nichts Neues. Wer sich täglich mit Code beschäftigt und 50 – 80 % der Zeit damit verbringt, Code zu lesen und Code zu verstehen, weiß um die Problematik: Je schlechter die Dokumentation, umso höher der Aufwand. 

„Trotzdem wird es nicht genügend gemacht“, weiß Sokolov und führt aus: „Es ist ein Teufelskreis: Man vernachlässigt die Dokumentation, deswegen bringt sie keinen Mehrwert. Man sieht keinen Mehrwert, deswegen macht man keine Dokumentation.“ „Aber“, ergänzt er „das kann man lernen und das lohnt sich.“

Best Practices in der Entwicklung, liegen Sokolov am Herzen. Schon ein Tag Prozessqualitätstraining bezüglich der Common Practices und Vorgehensweisen hilft seiner Ansicht nach nahezu jedem Unternehmen. Und ist die Basis für sinnvolle Auswertungen der Code-Qualität an sich. Dazu gehören: Gute Ticket-Beschreibungen (die zu bearbeitenden Vorgänge), gute Commit-Messages (was wurde gemacht und wozu), gute Dokumentation (die Änderungen im Einzelnen).

Das Wissen über den Code ist gut verteilt – Knowledge-Analyse

Wissen, dass sich bei einzelnen Personen in so genannten Wissensinseln ansammelt, Wissensklumpen, um die sich keiner kümmert, sind augenscheinliche Risiken und erhöhen den Aufwand für Änderungen am Code. Ebenso, wenn sich nur ein Koordinator um bestimmte Bereiche kümmert. Aufgrund der Historie des Codes analysiert Cape of Good Code auch die ausbalancierte Verteilung von Wissen – natürlich anonymisiert entsprechend geltender Datenschutzvorgaben.

„Im Unterschied zu anderen Analyse-Tools auf dem Markt, priorisieren wir die Code-Probleme, die auch Probleme auf Business-Ebene darstellen.“

Aufgrund von Aufwand-Nutzen-Betrachtungen wird über alle drei Bereiche hinweg priorisiert, an welchen Stellen zuerst agiert werden sollte. Denn optimieren kann man immer und in der Software-Entwicklung gibt es keinen fertigen Status. Es gilt aber auch: Je später man es angeht, umso höher sind die Wartungskosten. Technische Schulden nennt man das. Die „Zinsen“ entstehen jedoch auch, weil die Feature-Entwicklung dann aufwändiger und teurer wird.

Von diesen Auswertungen profitieren Unternehmen aus der Industrie, die bereits eigene Software-Lösungen als Ergänzung ihrer klassischen Produkte und Leistungen im Portfolio haben; spezialisierte Software-Anbieter; Mittelständler, die die Digitalisierung vorantreiben wollen, und die Qualität von Lösungen, die für sie entwickelt werden, überprüfen wollen, aber auch Unternehmen, die andere Unternehmen akquirieren wollen.

Neben den quantitativen Auswertungen der Code-Qualität und den Folgen zeigt die Analyse die Brennpunkte auch in einem schnell erfassbaren Ampelsystem auf - da ist es kritisch, da ist es noch in Ordnung – und verdeutlicht damit die Implikationen für das Unternehmen. Indem Cape of Good Code beides parallel anbietet, schaffen sie eine gemeinsame Ebene, auf der Entwickler und Management über das Thema sprechen und entscheiden können.

Auch das Bayerische Staatsministerium für Wirtschaft und Medien, Energie und Technologie sieht, dass das eine technologische Herausforderung ist, sehr innovativ und mit großem Nutzen und fördert die Entwicklung im Okt 2018 im Rahmen des Bayerischen Programms für technologieorientierte Unternehmensgründungen (BayTOU). 

„Die Förderung durch die Bayerische Regierung half uns sehr, die anfänglichen Hürden in der Forschung und Entwicklung zu stemmen,“

sagt Wuchner.

Seit Ende 2018 sind sie im digitalen Gründerzentrum in Kempten. Der Start ins Unternehmertum war für beide selbstverständlich. Wuchner ist begeistert, dass man sich selbst verwirklichen und sogar Geld damit verdienen kann und ergänzt, dass sei schon sein Wunsch gewesen, als er bei Siemens angefangen hat. „Die Sache musste einfach reifen. Ich brauchte die richtigen Leute und das richtige Thema.“ Durch die Zeit bei Siemens hatte er finanzielle Rücklagen und freut sich, dass Sokolov mit zwei kleinen Kindern das Risiko eingegangen ist. Der erwidert: „Ich hatte doch gar nichts zu verlieren. Im Gegensatz zu dir, der du eine Karriere aufgegeben hast.“

In ihren Tätigkeitsbereichen ergänzen sich die beiden hervorragend, Sokolov kümmert sich schwerpunktmäßig um die Entwicklung, die Analyse-Engine hat er zum großen Teil entwickelt. Wuchner sieht seinen Fokus langfristig in der Beratung, kümmert sich momentan auch noch um die experimentelle Forschung und Kundenakquise.

Inzwischen haben sie einen weiteren Mitarbeiter an Bord, der sich ausgiebig um die Visualisierungen kümmert und damit die verständliche Aufarbeitung der Daten für die Entscheidungen im Management schafft.

„Ideen haben wir genug!“

Künftig wünschen sie sich weitere Mitarbeiter hauptsächlich für die Entwicklung. Bis Ende des Jahres möchten sie Teile des  Analysetools auch als Cloud-basiertes Produkt anbieten und Anpassungen (Customization) anbieten. Denkbar wäre auch ein weiteres Forschungsprojekt anzugehen in dem sie untersuchen, was die beste Vorgehensweise ist, um die Probleme an den ermittelten Brennpunkten im Code anzugehen. „Ideen haben wir genug“, lacht Wuchner.

Nur Wuchner lebt im Allgäu und die GmbH hat ihren Sitz hat hier. Sokolov sitzt in Düsseldorf, der dritte im Bunde in Leipzig. Allgäu Digital und das Gründerzentrum haben ihnen gerade am Anfang viel Unterstützung gegeben in allen unternehmerischen Fragen. Neben den Coaching-Angeboten für die Startups ist vor allem der Austausch mit anderen wichtig.

„Unsere Kunden sind nicht unbedingt im Allgäu, aber das kann sich ja noch ändern, unser Angebot hat auf jeden Fall Relevanz für die Unternehmen hier“, schmunzelt Wuchner.

Keyfacts Cape of Good Code 

Branche: IT, Qualitätssicherung in der Software-Entwicklung

Gründungsjahr: 2018

Kontakt: info@capeofgoodcode.com, capeofgoodcode.com

Wir bieten:

  • Kosten-/Nutzen-Abschätzung und Qualitätssicherung für die Einführung digitaler Features und Funktionen
  • Trainings und Analysen für eine bessere Prozess-Qualität
  • Analysen und Empfehlung zur Wissensverteilung, um Risiken durch Wissens-Inseln, Wissens-Klumpen  und ungleichmäßige Wissens-Koordination zu vermindern
  • Software-Audits

Wir suchen:

  • Unternehmen mit internen Entwickler-Teams, die mehr über Best-Practices und ihre Auswirkungen lernen wollen.
  • Software-Unternehmen, die ihre Entwicklungs-Ressourcen am Kundennutzen ausrichten wollen.
  • Mittelständler, die die Einführung digitaler Funktionen und Angebote so steuern wollen, dass die Entwicklungskosten für sie nachvollziehbar bleiben.
  • Firmen mit dem Ziel der Beteiligung an oder Übernahme von anderen Software-Firmen

Erscheinungstermin: 05/2020

Autor
Kommunikation & Messaging für neue Vorhaben, © Ronja Hartmann

Ronja Hartmann

Ronja Hartmann Communications

Lotsin im medialen Überangebot. Tech Geek mit Hang zur Kunst. Unterwegs, damit sich Unternehmen grundlegend anders vermarkten. 

Für Allgäu Digital porträtiere ich die Start-Ups im Projekt.

Folgen Sie Ronja Hartmann auf: