Clean-Code Ansätze und Grundverhaltensregeln

Bis hierher haben wir nun analysiert, dass Clean Code ein Mindset ist und dass Code-Smells unter anderem durch psychologische Effekte in uns allen ermöglicht werden. Doch welche grundlegenden Verhaltensregeln können wir wählen, um in Zukunft Clean-Code zu produzieren und Code-Smells zu vermeiden. Im Folgenden werden einige Ansätze diskutiert und ein von mir klares Statement zu einem Ansatz gemacht.

Was könnten für Ansätze von Verhaltensregeln gewählt werden?

  • Die Sushi-Chef-Regel
  • Die Hotelzimmer-Regel
  • Die Pfadfinder-Regel

Die Sushi-Chef-Regel

Bei der Sushi-Chef-Regel sind wir alle Sushi-Chefs. Also jene Meister, die seit Jahren souverän Sushi zubereiten. Ein Sushi-Chef ist Perfektionist. Er bereitet jeden Prozessschritt in der Zubereitung des perfekten Sushis zunächst vor, Plant was er tun möchte, putzt die Arbeitsfläche und macht alles Gründlichst sauber. Erst wenn alles Bereitgelegt ist und alles bis ins letzte Detail geplant und vorbereitet ist legt er den frischen Fisch auf die Arbeitsfläche und richtet das köstliche Sushi an. Sobald er mit einer Art von Sushi fertig ist macht er wieder alles sauber. Bis die Arbeitsplatte wieder glänzt und die Messer und Werkzeuge wieder feinsäuberlich neben der Arbeitsplatte liegen. Erst dann, wenn alles wieder an seinem Platz liegt kann er mit der Planung und Umsetzung des nächsten Sushis beginnen. Kurz gesagt der Sushi-Chef räumt ständig auf während er kleine Prozessschritte macht und noch während er bei der Arbeit ist.

Die Hotelzimmer-Regel

Jeder von uns war schon mal in einem Hotel und somit weiß auch jeder wie angenehm es ist, wenn man in sein Hotelzimmer geht. Alles ist frisch aufgeräumt, das Bad geputzt, die Betten gemacht alles ist abgestaubt und sauber und in der Minibar finden sich köstliche Erfrischungsgetränke und Knabbereien. Und das ist gut so, man ist schließlich im Urlaub und will was erleben raus an den Strand oder zum Abenteuer oder Sightseeing. So genießt man den Tag und freut sich schon auf die erste Nacht. Im Idealfall kann man auch super im fremden Hotelbett schlafen und hat eine erholsame Nacht denn am nächsten Tag geht der Urlaub weiter. Kommt man dann von einen Anstrengenden aber schönen Urlaubstag wieder zurück in sein Hotelzimmer ist auf magische Art und Weise wieder alles so, als wäre es der erste Tag. Die Betten sind gemacht, das Zimmer und das Bad geputzt und die Minibar wieder aufgefüllt. Damit dies klappt hat das Hotel viele Mitarbeiter angestellt, die nichts anderes machen als aufzuräumen und zu putzen. Wäre das was für Software-Projekte?

Die Pfadfinder-Regel

Warst du bei den Pfadfindern? Ich jedenfalls nicht. Jedoch ist eines allgemein bekannt. Pfadfinder sind ehrenhaft, achtsam und behutsam. Sie haben viele Spezialisierungen und Skills und lieben die Natur. So ist eine der wichtigsten Dinge die Pfadfinder machen, dass sie hinaus gehen in die Natur und an so manchen Ort ihr Lager aufschlagen. Behutsam und achtsam wählen sie den Platz, an dem sie ihr Lager aufstellen, aus. Sie achten dabei besonders darauf, dass sie nichts zerstören und schonend mit den Ressourcen umgehen, die ihnen die Natur bietet. Doch nicht nur das, sie haben eine wichtige Grundregel. Wenn sie an einem Ort ihr Lager aufgeschlagen haben versuchen sie den Ort nicht zu verschmutzen oder anderwärtig zu schädigen. Sie wollen den Ort möglichst konservieren und wenn sie wieder abziehen in bestmöglichen Zustand zurücklassen. Und das wichtigste, sie wollen jeden Ort besser zurücklassen als sie ihn vorgefunden haben. Wenn ein Lager wo aufgeschlagen wird, und ein Pfadfinder findet vielleicht ein Stück Plastik oder eine Verpackung, die ein Tourist unachtsam einfach weggeworfen hat, so heben Pfadfinder diesen Müll auf. Sie fühlen sich verantwortlich dafür den Ort besser zurückzulassen und stellen ihr Ego bei Seite und Helfen der Natur.

 

Diskussion und Auswahl der Grundverhaltensregel

Was meinst du, welche Grundverhaltensregel sollte in Software-Projekten angewendet werden?

  • Der perfektionistische Experte namens Sushi-Chef?
  • Der Fullservice-Gedanke des Hotels?
  • Oder die selbstlose Achtsamkeit der Pfadfinder?

Meiner Meinung nach kann nur eine dieser drei Metaphern eine Grundverhaltensregel für Software-Engineers sein, und zwar die Pfadfinder-Regel. Der Sushi-Chef ist auf einen derart hohen Niveau Perfektionist, dass dies im echten Leben und vor allem in der komplexen Software-Engineering-Welt niemals funktionieren würde. Sushi herzustellen mag eine Kunst sein, aber es ist bei weiten keine so komplexe Aufgabe wie interaktive Software-Systeme zu schreiben. Es ist einfach unpraktisch und unmöglich zwischen jedem kleinen Arbeitsschritt die gesamte Software zu „säubern“.

Auch der Fullservice-Gedanke des Hotels kann, auch wenn er sehr verlockend klingen mag, nicht die Lösung sein. Die zuvor diskutierte Komplexität die Software-Systeme mit sich bringen führt dazu, dass nicht einfach jemand anderes bestimmt werden kann der nach den Software-Engineers „zusammenräumt“. Mal ganz davon abgesehen, dass das Putzen und Aufräumen eines Hotelzimmers bei weiten einfacher ist und weniger Abhängigkeiten zueinander hat, wird es schwierig sein jemanden zu finden, den es Spaß macht Software zu „verbessern“ und hinter seinen Kollegen „aufzuräumen“. Somit fällt für mich auch die Hotelzimmer-Regel weg und nur mehr die Pfadfinder-Regel über.

Es macht einfach am meisten Sinn. Stell dir mal folgendes Szenario vor: Du kommst als erfahrener Entwickler zu einer Stelle im Code, an dem sich ein nicht ganz so erfahrener Kollege etwas verlaufen hat. Er hat gewissen Code-Smells eingebaut oder Patterns nicht richtig umgesetzt. Da du ja mehr Wissen darüber hast und weißt wie es geht, kannst du nun deine Verbesserungen gleich einbauen und den Code ein bisschen besser zurücklassen als du ihn vorgefunden hast. Im Idealfall machst du dann noch ein Code-Review mit deinen Kollegen und so lernt er noch dazu. Dabei ist die Grundeinstellung des einzelnen Programmierers entscheidend. Es ist wichtig behutsam und achtsam und ehrenhaft vorzugehen. Den Code und den Kollegen mit dem nötigen Respekte zu behandeln und sein eigenes Ego beiseite zu legen. Es geht nicht darum wer der beste Programmierer ist.

Es geht auch nicht darum den anderen zu zeigen was er alles schlecht gemacht hat und ihm das reinzudrücken. Nein es geht darum mit Respekt und behutsam Stück für Stück den Source-Code zu verbessern und ein besseres Produkt herzustellen. Nur wenn diese Grundverhaltensregel berücksichtigt wird und dieses Mindset bei dir und in deinem Team verankert ist, wird sich der Source-Code verbessern und das Team lernen.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

Create a website or blog at WordPress.com

Nach oben ↑

%d Bloggern gefällt das: