Low Tech rocks!

Wer kennt nicht die Situation, bei der Zeitgenossen einen Taschenrechner oder sogar Excel bemühen, um Kinderkram wie 3 mal 5 auszurechnen? Architekten schmunzeln gerne über diesen ineffektiven Overkill. Dabei sollten sie sich durchaus an die eigene Nase fassen.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Lesezeit: 4 Min.
Von
  • Dr. Michael Stal

Wer kennt nicht die Situation, bei der Zeitgenossen einen Taschenrechner oder sogar Excel bemühen, um Kinderkram wie 3 mal 5 auszurechnen? Architekten schmunzeln gerne über diesen ineffektiven Overkill. Dabei sollten sie sich durchaus an die eigene Nase fassen.

Bei Entwicklungsprojekten begegnen mir immer wieder Softwarearchitekten, die ihre Meetings als Selbsthilfegruppe für Softwareentwurf gestalten. Da sitzen alle Anwesenden in der Regel vor einem Beamer oder – noch schlimmer – vor einem Notebook.

Einer der Teilnehmer, vermutlich der Chefarchitekt, kreiert mit einem UML-Werkzeug geschickt niedliche Rechtecke und putzige kleine Linien dazwischen. Ab und zu verirrt sich sogar ein erklärender Text auf dem Entwurf. Ich weiß in solchen Momenten natürlich nie, ob sich hinter dem Ergebnis ein Geniestreich oder eine Aggregation technischer Schulden verbirgt – meistens ist es allerdings letzteres. Professionell und beeindruckend kompliziert sieht das Design hinterher auf jeden Fall aus, dem UML-Werkzeug sei Dank.

Immerhin kostet dieses Vorgehen enorme Energie, weshalb ich alle UML-Jedi-Meister aufrichtig bewundere. Die wenigsten Entwurfswerkzeuge sind nämlich so übersichtlich und intuitiv, dass die Arbeit mit ihnen wirklich Spaß macht. Es ist daher bewundernswert, dass Architekten unter Schweiß und Tränen riesige Entwurfsdokumente fabrizieren. Das gilt umso mehr, als die meisten Projekte sich auf das Malen von UML-Diagrammen beschränken. Modellbasierte Ansätze mit Codegenerierung sehen anders aus. Ob es sich lohnt, UML-Werkzeuge als bloße Zeichentools einzusetzen, muss jeder für sich selbst entscheiden.

Die ganz Schlauen lassen indes das UML-Werkzeug für sich arbeiten. Sie lesen die Codebasis ein, und erhalten vom Werkzeuge coole UML-Diagramme generiert. Das nennt sich zu neudeutsch "Reverse Engineering". Ganz nach vermeintlich agiler Philosophie steckt die Architektur schließlich im Code. Man muss sie also nur noch von dort befreien. Das alles hat mit produktivem Entwurf inklusive Spaßfaktor nur wenig zu tun. Um keine Missverständnisse aufkommen zu lassen: Ich habe nichts gegen UML oder UML-Werkzeuge, aber beim kreativen Akt empfinde ich speziell das Korsett der UML-Tools zu eng.

Zum Glück gibt es eine Low-Tech-Alternative in Form von CRC-Karten! Die ist uralt, überaus einfach, aber trotzdem sehr empfehlenswert. Damit Sie sich einmal ein Bild machen können:

CRC Karten als Low Tech Werkzeug

Komponenten in einer Architektur lassen sich durch eine Indexkarte in Papierform darstellen. Jede Karte ist dabei in drei Teile gegliedert:

  1. Das erste "C" steht für Class: Das ist der Name des Artefakts (oberer Abschnitt).
  2. Das "R" steht für Responsibilities: Welche Dienste stellt die Komponente bereit beziehungsweise welche Verantwortlichkeiten hat sie (linker Abschnitt unter dem Komponentennamen).
  3. Das zweite "C" steht für Collaborators, das heißt, von welchen anderen Komponenten ist die beschriebene Komponente abhängig, um ihren Verantwortlichkeiten nachzukommen (rechter Abschnitt unter dem Komponentennamen).

Daher der Name "CRC"-Karte. Dass das erste C ursprünglich für Class steht, sollten Sie ignorieren. Anfangs waren die CRC-Karten tatsächlich für Klassendesign konzipiert. Heute werden sie für alle Arten von Artefakten eingesetzt. Theoretisch könnten Sie auch Rollen in Organisationen mittels dieses Hilfsmittels modellieren. Der Fantasie sind also wieder einmal keine Grenzen gesetzt.

Wer diese Karten an einer Pinnwand befestigt, kann die Abhängigkeiten durch Schnüre und ähnliches visualisieren. Dadurch ergeben sich übersichtliche Darstellungen der Art:

Die Vorteile dieses Low-Tech-Vorgehens liegen auf der Hand:

  • Das Ganze lässt sich sehr einfach mittels Papierkarten und Filzstiften umsetzen.
  • Änderungen am Design erfolgen nicht in einer Software, sondern an der Pinnwand. Dadurch ist auch Brainstorming möglich, ebenso wie "Was wäre, wenn"-Szenarien.
  • Im Gegensatz zu UML-Werkzeugen steht nicht das Werkzeug im Vordergrund, sondern der kreative Entwurf im Team.
  • Selbst überzeugte UML-Werkzeug-Abstinenzler müssen keine Hürde überwinden.

Sobald sich der Entwurf stabilisiert hat, wird er mit einem UML-Werkzeug dokumentiert. UML steht also am Ende, nicht am Anfang des Entwurfsprozesses.

Natürlich sind CRC-Karten nur ein Beispiel. Auch viele weitere Diagrammarten wie Zustands- oder Sequenzdiagramme lassen sich per Low-Tech erarbeiten. Manchmal sind eben Low-Tech-Werkzeuge das approbate Mittel, um High-Tech-Systeme zu entwerfen. Das gilt für andere Ingenieursdisziplinen ganz genauso. Denn schon der Volksmund weiß: Es lohnt sich nicht, mit Kanonen auf Spatzen zu schießen. ()