Ralf Westphal und Stefan Lieser haben sich gegen Ende 2008
zusammengesetzt und Ihre Gedanken zum Thema professionelle sowie qualitative
Softwareentwicklung und der Weg dorthin ausgetauscht. Das war die Geburtsstunde
von Clean Code Developer. Am 09. Februar 2009 gab es dazu die erste öffentliche
Online-Konferenz auf Altdotnet.de. Dieser Artikel beschäftigt sich weitegehend
zu der entstandenen Diskussion, warum immer weniger auf die Qualität der
Software beim entwickeln eingegangen wird. Eine Video-Aufzeichnung der
Konferenz kann sich hier noch einmal angesehen werden:http://www.altdotnet.de/OnlineMeeting_090209.ashx
Das Leiden über die fehlende Softwarequalität gibt vielen
.NET-Experten unruhige Nächte. Obwohl der tägliche Kampf um etablierte
Technologien oder Prozesse einführen zu wollen, sie bedächtig ermüden sollte.
Warum werden Sie nicht Akzeptiert? Warum wird immer noch Software im Chaos
entwickelt? Wieso müssen Anwender darunter leiden? Vor allem, wie kann man das
ändern?
Genauso wie es dazu unzählige Fragen gibt, kommen auch entsprechende
Meinungen dazu. Es beginnt meist mit der Schuldzuweisung von außen. Der Chef
oder der Kunde wären dagegen, weil die Qualität zu Zeitaufwendig ist und somit
zu Teuer wäre. Von einer anderen Seite betrachtet, wird auch auf das fehlende
Wissen hingewiesen. Ebenso wird auch hier eine Schuld an andere weitergeben: Folglich
müsse das fehlende Wissen an Lehrern und Büchern liegen. Man bemerkt schnell
wie weit sich das Thema herauszieht und ausdehnt. Vor allem was alles dafür
Begründet wird um dieses Fehlverhalten der meisten Entwickler zu gerechtfertigten.
Es soll nun außerhalb dieses Problems einmal der Mensch im Detail betrachtet
werden, wie er eigentlich erst für Veränderungen offen sein kein.
Zurück zum Menschen
Bei der Geburt eines Menschen wird vom ersten Augenblick dessen
Daseins ein Muster geschaffen. Die Psychologie nennt dies Konditionierung.
Diese Muster werden Bildlich im Bauch der Menschen abgelegt. Alles was wir
sagen oder uns vorstellen, sind nur Analogien. Das heisst: Die und Modelle sind
nicht die Wirklichkeit, sie stehen für etwas, was sich im Grunde nicht benennen
lässt. Ihr Ansehen ist relativ. Die sogenannte Realität ließe sich auch unter
ganz anderen Vorgaben erfassen.

Abb. 1.1. –
Konditionierung eines Entwicklers
Als Beispiel soll ein Muster zeigen, das sich bei einem
Programmierer festgelegt hat (siehe dazu Abb.1.1): Der erste Punkt fängt mit
der erlernten Erfahrung an. Die meisten Entwickler die unter Windows Ihre erste
Schritte anfingen, begannen meist mit einer IDE (Visual Basic, Visual Studio)
von Microsoft. Es ist in jeder dieser IDE`s ein fertiges Windows-Fenster (WinForms) zu
erkennen und mittels [F5]-Taste lässt sich Blitzartig ein Ergebnis liefern. Dieses
Ereignis hat sich in diesen Augenblick fest als Muster abgelegt. Dieses Erfolgserlebnis
lies viele für ein weiteres erlernen Motivieren, indem es uns zeigte das
Programmieren nicht Kompliziert sein muss.
Folgend in der Abbildung ist zu erkennen, dass in unserer
Vergangenheit sich ein allgemeines Muster von der Gesellschaft abgelegt hat.
Die Zeit. Es wird uns verdeutlicht, dass wir immer weniger Zeit für bestimmte Ereignisse
zur Verfügung haben. Sie vergeht und kann nirgends bezogen werden. Daher ist
ein „Gutes einteilen“ in uns verinnerlicht.
Allerdings verursacht gerade dieses Muster ein unheimliches Problem.
Es ist eines von wenigen Mustern, was durch einen äußeren Einfluss gleich
zahlreiche andere Muster mit beeinflusst.
Infolgedessen sollte der Punkt bei der Programmierung noch
einmal betrachtet werden. Das erste Muster für ein schnelles Ergebnis ist
abgelegt. Die gefolgte Motivation hat ein weiteres Lernen der Grundlagen erbracht.
Nun ist durch ein Gefühl auch eine Beziehung zu einer Technologie entstanden, demnach
entwickelt man gerne Windows-, Web- oder Mobile-Anwendungen.
Nun kommt es aber häufig dazu, das man das erlerne Beruflich
umsetzen möchte. Doch das Berufsumfeld lässt das abgelegte Muster mit der Zeit,
wie eine Kettenreaktion auf andere Muster auslösen. Nun kommt der Notstand,
wenn gegenwärtig andere unbekannte Technologien und Prozesse erlernt werden
sollen, verursacht das Zeit. Die muss aber gut eingeteilt werden.
Demzufolge kommt das erste Muster in den Vordergrund. Es
wird alles gemacht um an den schnellen Kick für das Erfolgserlebnis zu
bekommen. Denn ein weiteres Muster besagt: Alles was Schnell ist, gibt uns
genügend Zeit.
In die Falle geführt
Genau jetzt haben die abgelegten Muster die Programmierer in
die Falle geführt. Die Entwicklung von Software kann nicht „schnell“ umgesetzt
werden. Denn „schnelles“ Programmieren verursacht eine schnelle Unübersichtlichkeit.
Es entsteht die überaus gefürchtete Komplexität! Folgende Fehler sind nur noch
Schwer zu finden und eine Einarbeitung für neue Mitarbeiter dauert zudem ca.
3-4 Monate.
Zeit für neues
Obwohl sich die Softwareentwicklung und deren Architektur
leider langsam voran schreiten, gibt es bereits doch für viele Probleme die ideale
Lösung. Die Lösungen bieten zudem eine hohe Qualität der Software zudem noch
einen korrekten Pfad für den Ausgleich von Komplexität vs. Flexibilität.
Nur eines können die neuen Lösungsansätze nicht, das erste
abgelegte Muster „Schnelles Ergebnis [F5]“ übertrumpfen. Das Muster was über
das „Zeit“-Muster steht, kann nicht überwogen werden. Daher wird das „neue“
sehr schnell als „Unnötig“ – eingestuft.
Das Unterbewusstsein widerspiegelt unsere Muster
Nach dieser Kettenreaktion ist folgendes aus dem
Unterbewusstsein übersetzt und wird auch dementsprechend vom Menschen dem „Ich“
wiedergegeben: Es muss „schnell“ wieder das erste Muster erreicht werden. Das sagen
der Chef und die Kollegen. Wie das „neue“ geht hat man eventuell mal von einem
Lehrer gehört oder einer Literatur gelesen. Doch sind eigene Erfahrungen nicht
gemacht worden. Es ist zu gefährlich. Fehler können nur noch „mehr“ zeit beanspruchen.
Wie ein Muster verändern?
Jetzt ist bewusst, dass alles in Mustern abgelegt wird. Wenn
im Moment das Geheimnis gelüftet wird, wie ein Muster verändert werden kann,
besteht eine unheimliche Macht über eine kontrollierte zielstrebige Ausbildung
von besseren Entwicklern beim Arbeitsplatz und Umgebung. Leider muss diese
Vision gleich wieder zerbrochen werden. Ein Muster kann Wissenschaftlich nicht
verändert oder gelöscht werden. Es gibt nur einen Weg für Muster: Es müssen
alternative Muster aufgebaut werden, die alte Muster überblenden können.
Bewusstsein ist Veränderung
Um das bestehende „Hallo Welt“-Muster = „Schnelles Ergebnis
[F5]“-Muster zu überblenden gibt es nur eine bahnbrechende Lösung. Es kann nur „vorgemacht“
werden. Man kann auch nur das erste Muster übertrumpfen, das mittels neuen
Technologien „verbildlicht“ ein schnelles und doppelt so gutes Ziel erreicht werden
kann.
Fazit
Es kann doch etwas gegen die schlechte Qualität bei der
Softwareentwicklung gemacht werden. Die .NET-Experten sollen weiterhin am förderlichsten
den besseren und goldenen Weg hervorheben. Lehrer und Trainer müssen auch Bildlich
etwas vormachen und am besten „Learning by Doing“-Praktiken durchsetzen als lediglich
einzelne Folien zu zeigen.
Für Entwickler allgemein gilt, es muss als Alternative die nachkommend
dazu Gewonnene Zeit in Anbetracht gezogen werden, die durch die neuen Praktiken
eingeholt werden. Programmieren macht bei einem „sauberen“ Umfeld doppelt so
viel Spaß!
Neben Clean-Code-Developer wird in den nächsten Wochen ein
zusätzliches Projekt gestartet, das bis jetzt über ein halbes Jahr an Arbeit
beansprucht hat. Dieses Projekt gilt derzeit als „TOP-Secret“ und wird für eine
gute Alternative an großer Bedeutung stehen. Ihr könnt alle Gespannt sein, was
euch erwartet wird. In der .NET-Welt rührt sich was. Auf ersprießlicheren
Source-Code!
Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war, bitten "kicken" sie ihn.
