Clean Code Developer – Bewusstsein ist Veränderung

by Gregor Biswanger 10. Februar 2009 06:58

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.
kick it on dotnet-kicks.de

Kommentare

Powered by BlogEngine.NET 1.4.5.0
Theme by Extensive SEO

Über den Autor

Gregor Biswanger

Microsoft MVP für Client App Dev
XING

Gregor Biswanger (Microsoft MVP für Client App Dev) ist freier Consultant, Trainer, Autor und Speaker.


Seine Schwerpunkte liegen im Bereich der .NET-Architektur, agilen Prozessen und XAML. Er veröffentlichte vor kurzem seine DVD´s mit Video-Trainings zum Thema „Meine erste Windows 8 App“, „Windows Store Apps mit XAML und C#“ und „WPF 4.5 und Silverlight 5“ bei Addison-Wesley von video2brain.


Biswanger ist auch im Auftrag von Intel GmbH als Technologieberater für die Intel Developer Zone aktiv und ist Leader bei der Ingolstädter .NET Developers Group (INdotNET). 

 

Video über mich:
http://www.youtube.com/watch?v=mx_6SiiLxjk


Basta! 2011 Speaker

CLIPer

MCTS
Windows SharePoint Services 3.0 – Application Development (MCTS)