Doch nicht lange und die meisten der Code Reviewer fangen an zu schimpfen.. “ Was hast du dir denn dabei gedacht, kennst du nicht das Pattern für das Problem?” oder “Warum hast du denn diesen Code hier hingeschrieben, der könnte doch viel besser dort hin gehören.” Und so weiter und so fort.
Jeder, der sich Code eines Anderen anschaut, hat irgendwas zu bemängeln. Im allerbesten Fall ist das auch so, wenn man selbst reflektiert. (Übrigens unter girldeveloper sehr schön beschrieben)
Ich frage mich, ob das so sein muss.
Passen diese Sichten irgendwie zusammen? Ich denke schon, aber wer kennt oder definiert die Grenzen von Kreativität und Normung? Gibt es sogar Verschiebungen in diesen Grenzen, sprich mal mehr oder weniger Kreativität oder Normung? Hängt das von der Lösung ab? Kann man Softwareentwicklung als Produktionsprozess betrachten, bei denen ebenfalls Kreativität und Normen Einzug gehalten haben? Wenn ja, welche? Kann man von diesen Prozessen ableiten und in die Zukunft schauen?
All diese Fragen stellte ich mir in der letzten Zeit. Ich dachte, dass dieses Thema nicht mehr relevant für mich werden würde, wo ich es doch für mich vor gut 10 Jahren abgeschlossen hatte,
Passen Kreativität und Normung zusammen?
Was für eine Frage, natürlich passt das zusammen. Einmal, weil nahezu alle Materialen in der Kunst werden nach irgendwelchen Normen hergestellt. Schaut mal nach. Aber der Künstler interessiert sich nicht dafür, sondern benutzt das Material und erschafft Kunst. Gut, der Vergleich hinkt ein ganz klein wenig. Also suche ich mir was besseresStatt Norm verwende ich nun Regel, weil Norm in Deutschland ein sehr endgültiges Wort ist.
Also, wo wenden Künstler in kreativen Prozessen Regeln an? Ganz einfach. Ein Bildhauer wird immer dafür sorgen, dass er ausgewogen arbeitet, also das Material nicht zerstört, bevor sein Werk fertig ist. Er wird nach der einfachen Regel arbeiten, nicht zu viel Kraft auf den Meißel oder Beitel zu geben.
Ein Grafiker dreht die Feder auf die Seite, um einen dünnen und auf die breite Spitze, um einen dicken Strich zu erhalten. Um diese Regel kommt er nicht herum.
Ja und für die Softwareentwicklung gibt es inzwischen auch ein gutes leicht erlernbares Regelwerk, das der Kreativität des Individuums nicht im Wege steht. Hier kann man sich ein Bild davon machen.
Wo sind die Grenzen?
Was sind also nun die Grenzen? Die bestimmen die Erschaffer von Lösungen selbst. Zum Einen durch die Lösung selbst und zum Anderen durch die Technologie und Architektur, die Prozesse und Planung sowie der Kreativität und der Organisation. Kurz die Anatomie der Lösung bestimmt die Grenzen.
Ist das gut? Ich bin derzeit der Ansicht, dass das zu viel Freiheit bedeutet, die zu hohen Reibungsverlusten führen kann. Ich werde weiter beobachten.
Softwareentwicklung als Prozess?
Stellen wir uns einmal vor, dass Deutschland innovativer Marktführer in der Automobilbranche ist. Fällt uns nicht schwer. Nun stellen wir uns einmal eine Entwicklungsabteilung in dieser Industrie vor. Da stehen eine Menge gut bezahlter Leute in einem Büro und erfinden plötzlich ein super duper Einparkhilfssystem und knall peng ist jedes Auto, was in dieser Sekunde vom Band geht, mit dieser Neuerung ausgestattet. Auch Quatsch. Da steckt natürlich ein hochkonzentrierter, innovativer, vor Normen ächzender Vorgang dahinter. Und jeder R&D Ingenieur behauptet, dass er kreativ bei seiner Arbeit ist. Toll, das möchte ich auch in der Softwareproduktion so sehen.
Also, ich behaupte, dass Software als Produkt in einem Produktionsprozess erschaffen werden soll. Da hat am Ende jeder etwas davon, Kunde und Entwickler. Dazu möchte ich in einem späteren Blog SCRUM und Kanban miteinander vergleichen.
Software als Prozess, geht das etwa auch?
Wenn schon die Lösung selbst als Produkt so erfolgreich hergestellt werden kann, warum sollte es nicht möglich sein, dass die Lösung selbst wie ein solcher Prozess formuliert wird. Denn stellen wir uns einmal vor, dass ein erfolgreiches Modell mehrfach angewendet werden kann.Um diese Aussage zu stützen muss ich ein wenig in der Geschichte nach ähnlichen Aussagen suche und werde bei diversen Literatur- und Internethinweisen fündig (einfach ‘Software as a Factory’ bei Google eingeben, wirklich gutes Beiträge dabei). Mit diesem Thema haben sich also kluge Leute schon beschäftigt. Es sieht demnach so aus, dass es Bedarf gibt die Verbindung oder besser eine Analogie zwischen traditionellem Produktions- und Softwareprozess herzustellen.
In den nächsten Blogs wird es also vermehrt um eben diese Analogie gehen. EBC 2.0 ist ein hervorragender Ansatz dieses zu realisieren, mit den klassischen Komponentenmodelle klappt das zwar auch, aber es ist ein wenig komplizierter.
Jan