Eine Initiative für mehr Professionalität in der Softwareentwicklung
Professionalität = Bewusstheit + Prinzipien
Softwareentwicklung braucht Profis. Was aber sind Profis? Menschen die mit der Softwareentwicklung Geld verdienen? Nein, wir meinen, es gehört mehr und anderes dazu. Professionalität in der Softwareentwicklung hat nichts mit Geld zu tun. Sie hat auch nur bedingt mit einem bestimmten Ausbildungsweg zu tun. Wir kennen professionelle Softwareentwickler, die wenig oder gar kein Geld mit ihrer Software verdienen und wir kennen professionelle Softwareentwickler, die weder Diplom noch Doktortitel haben.
Minimale Anforderungen an Professionalität
Für uns macht Professionalität vielmehr zweierlei aus:
- Ein professioneller Softwareentwickler setzt sich mit dem Metier bewusst auseinander.
D.h. er reflektiert über sein Produkt, seine Arbeitsweise, seine Materialien und Werkzeuge. Ein professioneller Softwareentwickler ist nicht einfach zufrieden, wenn sein Chef oder Kunde zufrieden sind. Er ist auch nicht einfach mit dem zufrieden, was ein Hersteller ihm empfiehlt. Stattdessen beobachtet und prüft er ständig seine Ergebnisse und bemüht sich um die Weiterentwicklung seiner selbst wie auch des Metiers. - Ein professioneller Softwareentwickler hat ein inneres Wertesystem.
Gegen dieses Wertesystem prüft er seine Ergebnisse und Handlungen. Nur, wenn seine Arbeit diesem Wertesystem entspricht, empfindet er sie als gut getan, als professionell. Sein Streben ist es daher, auch unter widrigen Umständen, unter Druck von Kunden oder Herstellern, diesem Wertesystem treu zu sein.
Das mag sich nun in der Kürze etwas antiquiert oder sektiererisch anhören. Sollen Softwareentwickler sich eine Zunftordnung geben oder gar einen Treueeid schwören? Nein, so meinen wir es natürlich nicht. Dennoch: In Ermangelung eines Konsenses darüber, was denn genau „gute Softwareentwicklung“ sei, glauben wir, dass ein „kleinster gemeinsamer Nenner“ Not tut. Die Branche – wobei wir hier zunächst nur die .NET Softwareentwicklung meinen – braucht einen Qualitätsmaßstab oder zumindest einen Erwartungshorizont für Professionalität. Die Zeiten, in denen jeder, der schon mal etwas in BASIC programmiert hatte, ausreichend qualifiziert war, um in einem Team mitzuarbeiten, sind vorbei. Genauso ist aber noch nicht die Zeit gekommen, in der die Vorlage eines Informatik Diploms wirklich etwas über die Befähigung zur Softwareentwicklung aussagen würde. (Disclaimer: Nichts gegen Diplominformatikstudiengänge! Aber wer kennt denn keinen Dipl. Inf., der durch sein Studium gekommen ist, ohne mehr als einige Zeilen zu programmieren?)
Clean Code als Fundament
Was also tun für mehr (sichtbare) Professionalität in der Softwareentwicklung? Wir glauben, die Branche sollte nach Anerkenntnis des Problems einfach mal nur einen kleinen Schritt machen. Weder müssen die Curricula von Masters-Studiengängen neu definiert werden noch ist die Gründung eines Verbandes zwingend. Viel einfacher glauben wir, dass „es“ schon besser würde, wenn wir alle auch nur ein Buch gemeinsam gelesen hätten. Schon die vereinte Zustimmung zu den Aussagen in nur einem Buch würde einen Konsens herstellen, der viel bewirken könnte.
Wir meinen, mit Clean Code von Robert C. Martin solch ein Buch gefunden zu haben, das der gemeinsamen Lektüre würdig ist. Es ist kein perfektes Buch und auch wir stimmen nicht allem darin vorbehaltlos zu – aber es ist ein Buch „im rechten Geist“: es ist ein Ausdruck profunder Reflexion und hat den Mut, ein fundamentales Wertesystem zu formulieren.
In Clean Code geht es nicht um Plattform oder Technologie oder ein Programmierparadigma. Man muss also kein Freund von .NET oder Java oder ASP.NET oder SVN oder OOP sein, um aus ihm Gewinn zu ziehen. Es dreht sich vielmehr um das unter all dem liegende Substrat: Code als Quelltext und Code als strukturierter Ausdruck von Funktionalität. Für Code als kleinsten gemeinsamen Nenner zwischen Softwareentwicklern aller Coleur beschreibt Clean Code eine Menge von Prinzipien und Best Practices als kleinsten gemeinsamen Nenner.
Nicht, dass es nicht auch andere Bücher gäbe, die ähnliches tun. Uns hat aber zufällig Clean Code so angesprochen, dass wir es als Kristallisationskeim für unsere Idee des Clean Code Developer nutzen wollen.
Letztlich ist aber auch das nicht in Stein gemeißelt. Morgen erscheint vielleicht ein noch besseres Buch. Gut so! Aber an dem, was wir meinen, das Professionalität ausmacht, ändert das nichts. Deshalb fangen wir einfach mal an. „Nicht lang schnacken, Kopf in Nacken“ – so sagen die Hamburger, wenn sie einen Korn (norddeutscher Schnaps) in der Hand haben. Und so wollen wir es auch halten: Ganz im Sinne der Agilitätsbewegung nicht planen bis zur Bewusstlosigkeit, sondern etwas tun. Einen kleinen Schritt machen in Richtung mehr Professionalität.
Wer hat Lust mitzumachen? Hier geht’s los…