Von Dominik Ufer

Estimated reading time: 5 Minuten

Techblog

CodeCharta macht Abstraktes sichtbar

CodeCharta ist visualisiert Code in einer Stadt-Metapher. Das Werkzeug wurde bei MaibornWolff entwickelte und als Open Source freigegeben. Petra Meyer interviewt Dominik Ufer über die Arbeit mit CodeCharta.  Was bringt Code-Visualisierung mit CodeCharta? Visualisierter Code fördert den Austausch zwischen Entwicklern, Product Ownern und Stakeholdern. In CodeCharta können wir zum Beispiel das abstrakte Konstrukt „Größe einer Java-Klasse“ durch die…

Techblog

CodeCharta ist visualisiert Code in einer Stadt-Metapher. Das Werkzeug wurde bei MaibornWolff entwickelte und als Open Source freigegeben. Petra Meyer interviewt Dominik Ufer über die Arbeit mit CodeCharta. 

Was bringt Code-Visualisierung mit CodeCharta?

Visualisierter Code fördert den Austausch zwischen Entwicklern, Product Ownern und Stakeholdern. In CodeCharta können wir zum Beispiel das abstrakte Konstrukt „Größe einer Java-Klasse“ durch die Gebäudehöhe sichtbar machen. Das ist besonders für nicht-technische Entscheider hilfreich. Die Visualisierung schafft eine gemeinsame Basis für das Gespräch über einen Aspekt der Software, den Code. Zudem hilft uns die Visualisierung dabei, schnell einen Gesamteindruck über bestehende Software zu gewinnen, Hotspots zu erkennen. Und sie macht Veränderungen im System transparent.

Wie arbeiten du oder andere Kollegen konkret im Projekt mit Code Charta?

Im Moment arbeiten wir in drei Szenarien mit CodeCharta.

Wir benutzen sie als Kommunikationshilfe: Wir haben mit CodeCharta einzelne Module aus einem mittelgroßen C-System dargestellt. Dabei gibt es um die Frage der Wiederverwendung der Module gegenüber einem Neubau. Bei der Analyse wurden zwei Module genauer angeschaut. Anschließend fragte der Kunde nach der Übertragbarkeit der Analyse-Ergebnisse auf das Gesamtsystem. Anhand der Karten konnten wir plausibel darstellen, dass das Ergebnis der Module kaum repräsentativ für das Gesamtsystem war: Es waren Ausreißer mit besonders gut strukturiertem Code.

Zweiter Einsatzpunkt für CodeCharta sind Hotspot-Analysen: In Software-Audits sind wir als Auditoren mit sehr viel Code konfrontiert, über den wir uns schnell einen Überblick verschaffen müssen. Das machen wir mit CodeCharta: Standardkarten decken Auffälligkeiten im Code auf, die wir anschließend direkt im Code analysieren. So gewinnen wir zügig ein Gefühl für den Code. Die Karten benutzen wir ebenfalls, um Erkenntnisse zu erklären oder Ergebnisse mit Entwicklern und Architekten zu diskutieren und bestätigen zu lassen.

Drittens setzen wir CodeCharta in unseren Sanierungsprojekten ein: In der IT-Sanierung ist es wichtig, durchgeführte Maßnahmen für Stakeholder transparent zu machen. Wir setzen dazu die Vergleichsfunktion von CodeCharta ein, oder stellen Software-Karten verschiedener Code-Stände gegenüber.

Für welche Situationen, Meetings oder Projekte eignet sich CodeCharta nicht?

Zur Analyse würde ich CodeCharta in nahezu allen Projekten, egal ob Neuentwicklung, Sanierungen oder Audits, empfehlen. Der Mehrwert steigt dabei mit der Größe des Systems. Der Fokus von CodeCharta liegt auf der Kommunikation, nicht auf der Dokumentation. Ich würde dieses Tool daher in Meetings und Situationen einsetzen, wenn ich als Techniker eine Nachricht transportieren möchte, die ich mit den Karten sichtbar machen kann. Abhängigkeiten zwischen Klassen und Modulen zu finden oder die Einhaltung von Qualitätsstandards zu bewerten ist nicht der Fokus von CodeCharta. Hier gibt es schon viele gute Tools am Markt.

Was passiert, wenn Du die Karten zum ersten Mal zeigst?

Die erste Reaktion ist meistens sehr menschlich: Bei Technikern ist es oft große Spannung mit anschließender Erleichterung. Für sie bringen die Karten auf den Punkt, was sie in ihrer täglichen Arbeit erleben. Bei Nicht-Technikern treffe ich oft auf große Neugierde und Fragen wie „Was ist dieses große Gebäude?“. Insgesamt wird damit jeder abgeholt und es beginnt ein produktives Gespräch zwischen allen Stakeholdern.

Das tollste Feedback zu den Karten sind Gespräche auf den Fluren, die man danach mithört. Wenn dann zum Beispiel von „diesem dicken Brocken auf der Karte“ gesprochen wird, weiß ich: Die Karten sind angekommen.


Sind Sie neugierig auf CodeCharta? Dominik Ufer beschreibt in diesem Blogbeitrag Schritt für Schritt, wie man CodeCharta anwendet. Auf Github finden Sie das Open-Source-Tool zum Download.


Über den Autor

Von Dominik Ufer

DevOps und Cloud Native

Dominik arbeitet seit 2013 bei MaibornWolff. Seine Schwerpunkte liegen in der Architektur und Entwicklung von Anwendungen und Plattformen in der Cloud. Am liebsten unterstützt er dabei, bestehende Systeme durch die Möglichkeiten der Cloud zu verbessern. Privat trifft Dominik sich gerne zu Brettspielabenden oder bewegt sich in der Natur.