Clean Code oder Crappy Code?
Gestern habe ich einen kurzen Beitrag über Qualität in der Krise geschrieben. Darauf hat Norbert Eder in seinem Blog geantwortet und ich möchte den Ball nun wieder aufnehmen.
Zunächst mal zu seiner Überschrift "Qualität als Ausweg aus der Wirtschaftskrise": ich bin fest davon überzeugt dass die Wirtschaftskrise entstanden ist (und anhalten wird!) weil wir einen Systemfehler im Geldkreislauf zulassen. Dieser Systemfehler führt zum Wachstumszwang der Wirtschaft. Dass exponentielles Wachstum unmöglich ist dürfte unstrittig sein. Ein Ausweg aus der Krise kann nur darin bestehen, diesen Systemfehler zu beseitigen. Dazu gibt es Vorschläge. Wer sich dafür interessiert kann z.B. http://www.inwo.de/ als Ausgangspunkt für weitere Recherchen heranziehen.
Mein Beitrag sollte Entwickler ermutigen gerade in Krisenzeiten auf Qualität zu setzen und sich eben nicht dem Druck zu beugen, sich mit vorgeblich billigeren Lösungen zufrieden zu geben. Die kurzsichtige Denkweise, dass Crappy Code im Gegensatz zu Clean Code billiger zu haben ist, scheint mir eines der Grundübel der Softwareindustrie zu sein. Und diesen Druck macht nicht einmal der Kunde, den Druck machen wir als Softwareentwickler uns selbst!
Als Anfänger in der Softwareentwicklung bleibt uns vielleicht nichts anderes übrig als Crappy Code zu schreiben. In dieser Phase schreiben wir Code ohne wirklich zu wissen was wir tun. Nur wer dann über seine eigene Arbeitsweise reflektiert kann erkennen, dass der Weg des Crappy Code hart und steinig ist. Wer Copy-Paste Programmierung nicht hinterfragt wird die damit verbundenen Probleme nicht erkennen. Wer seine Software immer manuell testet und darüber nicht reflektiert wird es für undenkbar halten, eine Testabdeckung von über 90% zu erreichen. Er wird wiederkehrende Bugs für völlig normal halten. Und erstaunlicherweise lautet das Argument dann sehr schnell "zu teuer", und nicht etwa "technisch nicht möglich"! Erst die Reflexion über die Arbeitsweise ermöglicht Weiterentwicklung.
Was für den einzelnen Entwickler gilt muss auch vom Team, vom Unternehmen, ja sogar von der gesamten Softwareindustrie geleistet werden: ohne Reflexion keine Weiterentwicklung. Wenn wir die Wirtschaftkrise schon nicht kurzfristig beseitigen können, dann sollten wir nicht auch noch die zarten Versuche hin zum Clean Code über Bord werfen, nur weil jemand behauptet in der Krise ginge es eben nicht anders.
Zwischenzeitlich bin ich über diesen Beitrag von Uncle Bob gestolpert. Darin geht Uncle Bob auf die Closing Keynote der ACCU Konferenz ein, in der Nicolai Josuttis die These aufgestellt hat, dass in Zukunft nicht Clean Code sondern Crappy Code die Regel sein wird. Lesenswert!