CLEAN CODE
Wer kennt es nicht? Am Anfang eines Projektes läuft alles super. Der Aufwand für die Entwicklung neuer Features hält sich in Grenzen. Es entstehen wenig Regressionsfehler. Aufwandsschätzungen für Features stimmen mit der tatsächlichen Implementierungszeit überein. Die Entwickler haben Spaß am Projekt und die Projektmanager haben ein gutes Gefühl bei der Budgetplanung. Alle sind zufrieden.
Doch nach einiger Zeit ändert sich die Situation oftmals. Die Implementierung neuer Features dauert auf einmal länger als ursprünglich geschätzt. Für die Aufwandsschätzungen der folgenden Features schlagen die Entwickler folglich einen Risikoaufschlag auf. Es tauchen immer mehr Regressionsfehler auf. Projektverantwortliche hören plötzlich Sätze wie: „Oh, dieses Feature wird teuer!“ „Hm… dafür muss ich den alten Code ändern. Keine Ahnung, wie aufwändig das wird“.
Die Folge: Das Vertrauen der Projektleitung in die Entwickler sinkt. Es müssen teilweise schwierige Entscheidungen getroffen werden: Um wieviel müssen wir das Budget erhöhen? Vergrößern wir das Team, um Deadlines einhalten zu können? Wird das Projekt eventuell sogar gestoppt?
DAS KONZEPT
Gerade im agilen Projektumfeld, wo sich die Anforderungen erst im Laufe des Projektes ergeben, treten diese Probleme häufig auf. Hier bietet Clean Code einen Lösungsansatz.
Clean Code ist der Titel des Buches von Robert C. Martin – „Uncle Bob“- und hat sich mittlerweile als Begriff für „guten sauberen“ Code in der Softwareentwicklung etabliert. Mit Maßnahmen wie Konventionen zur Quelltextformatierung, Designmustern oder anderen Vorschlägen soll das Konzept des „Clean Code“ dazu beitragen, auch langfristig die Softwarequalität und Wartbarkeit zu sichern. In dem Buch finden Entwickler Regeln, Prinzipien und Techniken, die für das Schreiben von lesbarer, testbarer und wartbarer Software sehr hilfreich sind.
EINFÜHRUNG
Schnell das Buch bestellen und danach wird „Clean Code“ entwickelt? So einfach ist es leider nicht! Nehmen wir beispielsweise ein Entwickler Team, bei dem der Skill Level stark variiert. Die Prinzipien und Regeln aus dem Buch von „Uncle Bob“ können von den Entwicklern unterschiedlich interpretiert werden. So kann es schnell zu Grundsatzdiskussionen kommen. Zu sauberem Code von 0 auf 100 – da ist Unmut vorprogrammiert.
Um dieses Konzept richtig einzuführen, ist ein System notwendig, in dem der unerfahrene Clean Coder sein Wissen Schritt für Schritt aufbauen kann. (Manchmal ist es im Gegenzug auch notwendig, den erfahrenen Clean Coder daran zu erinnern, dass auch er einmal angefangen hat.) Für einen strukturierten und geregelten Einstieg sind darüber hinaus die Ausführungen der „Clean Code Developer„ Initiative sehr hilfreich. Hier werden einzelne Elemente in Grade zusammengefasst, die dann nach und nach verinnerlicht werden. Wichtig ist dabei, dass die Entwickler untereinander diskutieren, wie die Prinzipien auf den aktuellen Code angewendet werden können.
Es braucht einfach Zeit, Clean Code so zu verinnerlichen, dass während der Entwicklung nicht mehr großartig darüber nachgedacht werden muss. Um die Diskussion darüber im Team zu fördern, haben sich Code Reviews bewährt. Mittlerweile bieten viele gängige Versionskontrollsysteme auch die Möglichkeit, Code-Reviews durchzuführen. Im Laufe der Zeit kann sich so im Team ein gemeinsames Verständnis für Clean Code entwickeln.
KOSTEN UND NUTZEN
Wie teuer ist es, Clean Code einzuführen? Das lässt sich leider nicht pauschal beantworten. Fakt ist: Das Team braucht Zeit, um sich mit dem Thema auseinanderzusetzen und dieses gemeinsame Verständnis dafür zu entwickeln. Aber vielleicht sollte man sich hier auch die Frage stellen, wie „teuer“ ist es, Clean Code nicht einzuführen…?
Clean Code sichert den langfristigen Erfolg eines Projektes. Der Quellcode ist (und bleibt) gut lesbar, verständlich und erweiterbar, auch für Entwickler, die später hinzukommen. Auch wenn es manchmal schwierig ist, alte Gewohnheiten zu ändern, es lohnt sich. Am Ende erspart man sich eine Menge Frust und Diskussionen. Dies gilt sowohl für die Entwickler als auch für die Management Seite.
Autor:
Sebastian Feld, langjähriger Softwareentwickler bei OVSoftware