Hero Coders?
Von Carsten
Jeder kennt einen dieser Hero Coder. Sie atmen Sourcecode aus, sobald sie den Mund aufmachen. Hacken, was das Zeug hält. Korrigieren Fehler in atemberaubendem Tempo. Aber braucht man sie, um Projekt erfolgreich abzuschliessen? Und tragen sie wirklich langfristig zum Erfolg bei?
Meine Antwort lautet: Nein.
Und zwar aus dem einfachen Grund, dass Software keine Ein-Mann-Show ist. Heutige Softwareprojekte sind riesengroß, kompliziert und nur von mehreren guten, eingespielten Entwicklern zu schaffen. Und Sourcecode muss gehegt und gepflegt und nicht in wilder Hackerei zusammengebaut werden. Dazu gehört eine gute Dokumentation, eine ordentliche Architektur und vor allem eingespielte Prozesse, die jeder befolgt. Das müssen keine endlosen Formularkriege sein, aber ein gewissenhaftes Vorgehen der gesamten Mannschaft.
Das fängt an beim Erstellen und Pflegen von groben und detaillierten Design-Dokumenten, gehtüber die Nutzung eines Bugtrackers, dem Befolgen eines coding styles bis hin zu guten commit messages. Und natürlich gehört Kommunikation dazu: Jedes Teammitglied muss wissen, wohin das Projekt geht und muss sich mit den anderen abstimmen. Damit meine ich wieder keine endlosen Meetingmarathons, sondern die Verständigung querüber den Schreibtisch. Fragen und Antworten, Lesen der Projektemails und Dokumentation, Querlesen von Sourcecode anderer… und genau da bleibt der hero coder auf der Strecke.
Wer sich zum Code schreiben immer einschliesst, keine Designs liest undänderungen vornimmt, ohne Rücksicht auf andere, der gehört für mich nicht in die Kategorie Guter Softwareentwickler. Und seien wir ehrlich: Jeder von uns war schon einmal dieser Typ. 😉
Meine Einstellung zur Softwareentwicklung tendiert in der letzten Zeit aber immer mehr zu dem Begriff software craftsmanship, d.h. Softwareentwicklung als Handwerks_kunst_ zu sehen und alle dazugehörigen Arbeiten im Einklang mit dieser Vorgabe zu erledigen. Jeder Statiker, jeder Architekt wird mit diesem Begriff etwas anfangen können. Leider wird Softwareentwicklung immer noch als kreativer Prozess wahrgenommen, der von krawattenlosen Revoluzzern in einem kreativen Chaos betrieben wird… Aber genau wie bei Statikern oder Architekten sollte sich die Kreativität nicht im Handwerk wiederfinden, sondern in der kreativen Auslegung der bestehenden Prozesse.
Genau diese Sicht wird hervorragend in dem Artikel They Write The Right Stuff beschrieben, derüber die Softwareentwicklung für das Space Shuttle erzählt.