Hier ein datenschutzfreundliches Video ohne Cookie vom Onkel Bob, dem Chef-Clean-Coder, der mir bisher sehr weitergeholfen hat:

Uncle Bob Martin. Ich kenne ihn aus dem Buch Clean Code und weiß, dass er eine Größe in der Szene der Softwareentwicklung ist. Das Buch ist neben den zeitlosen Design Patterns-Büchern das wichtigste Buch, dass ich zum Thema Softwareentwicklung gelesen habe. Es ist zeitloses Wissen, unabhängig von den 1000 bisherigen und 10.000 nachfolgenden Computersprachen und frei von technischen Informationen zum Framework XYZ-105. Es gibt dem Programmierer Prinzipien zur Hand, mit den Anforderungen Schritt zu halten und Software zu entwickeln, die lebt und nicht verrottet. Martin war daran beteiligt, als das Manifest für Agile Softwareentwicklung initiiert wurde. Es sollte eine Erklärung der Programmiererzunft werden, wie Programmierung auszusehen hatte. In seinem Vortrag Die Zukunft der Programmierung erzählt er, wie das vonstatten ging. Er empfand das Treffen als zufällig. Sie trafen sich nicht geschäftsmäßig, sondern es passierte einmal und danach nie wieder. Eine Fortsetzung wolle er auch gar nicht, andererseits: Diesen und jenen mal wieder zu sehen… Heute sind die agilen Methoden bereitwillig vom Management aufgenommen worden und werden von diesem bevorzugt angewendet. Dabei war das agile Manifest für die Ausführenden, die Programmierer, gedacht. Es sollte eine notwendige Menge von Disziplinen für Programmierer sein, um agine Software zu produzieren, die ständig auf Änderungen und Anforderung seitens des Business zu reagieren vermag.

Und da ich die Person des Robert C. Martin wertschätze und er als erfahrener Kollege gilt, warum nicht mal anschauen, was er unserer Zunft Wichtiges mitzuteilen hat.

Uncle Bobs Beitrag rankt sich um folgende Zitate von Alan Turing:

It will be seen that the possibilities as to what one may do are immense. One of our difficulties will be the maintainence of an appropriate discipline, so that we do not lose track of what we are doing We shall need a number of efficient librarian types to keep us in order

In order to supply the machine with these problems we shall need a great number of mathematicians of ability

Lecture to the London Mathematical Society on 20 February 1947 (A. M. Turing)

Was Turing damals sagte, gelte auch für heute und für die Zukunft, unabhängig, wie weit wir schon gekommen zu sein scheinen. Damit lässt sich der Vortrag schon zusammenfassen. Als Turing damals programmierte, war er der erste. Die ihm nachfolgten, waren reife Menschen, wie Uncle Bob sich ausdrückt. Sie waren fit in einer Domäne und wollten ihr Wissen jetzt dem Computer beibringen. Sie waren keine Informatiker, das gab es damals noch nicht. Und es gab viele Frauen. Und wie sieht es heute aus? Reife? Die jungen Leute werden aus der Uni auf die Probleme der Welt losgelassen und geraten sofort in den Job und tragen Verantwortung. Fehler werden wiederholt, statt aus Fehlern zu lernen. Die Software reift beim Kunden. Es ist ja bekannt, dass der durchschnittliche Softwareentwickler männlich und ca. 33 Jahre alt ist. Ich fragte mich oft, wie es zu dem Jugendwahn kam. Es liegt gemäß der Rechnung Martins an der wahnsinnigen Dynamik, mit der sich die Anzahl von Informatikern entwickelt hat. Der Bedarf an Programmierern steigt immer noch so rasant, dass steigend mehr Entwickler auf den Markt kommen als sich in Rente zu verabschieden. Und junge Leute haben einfach weniger Erfahrung und müssen anfangen zu lernen.

Onkel Bob spricht mir aus dem Herzen. Als ich mein Informatik-Studium beendete, dachte ich, dass ich ganz viel wusste. Aber das war erst einmal nur theoretisches Wissen und zudem war es nur Informatik. Die Erkenntnis, dass Informatik auch nur Mittel zum Zweck ist, gelangte auch erst allmählich in mein Bewusstsein. Dass die Sprache oder das Framework aus Businesssicht völlig egal ist und dass nur das Resultat zählt. Dass Code lesen und die Domäne verstehen die absolute Grundlage für die Entwicklung ist.

Die ganze agile Schiene wurde ins Leben gerufen, um Business und immere jüngere Softwareentwickler zusammenzubringen. Zur Zeit Turings brauchten die Entwickler solche Prozesse nicht. Sie wussten, dass sie sich mit dem Business auseinandersetzen mussten, dass sie Termine einhalten mussten, dass sie Tests schreiben mussten, dass sie iterativ ihre Ergebnisse präsentieren mussten, um Feedback einzuholen. Sie wussten es intuitiv, aus ihrer Erfahrung.

Martin schließt mit der Aussicht, dass das Gebiet der Softwareentwicklung von außen reguliert werde, wenn es nicht von innen schaffe, sich auf bestimmte Disziplinen zu einigen, so dass Software zuverlässig und nachhaltig ihre Dienste tut. Denn Disziplinen wie Unit-Tests schreiben, Refactoring, über die Benennung von Klassen, Methoden, Variablen nachdenken, Ergebnisse präsentieren, Feedback einholen, … sind dem Business egal. Wir Programmierer werden seitens des Management nicht dazu aufgefordert. Aber wenn die Software ins Fettnäpfchen tritt, sind wir schuld und wir tragen die Verantwortung. Software steckt in allen Dingen, die uns umgeben. “We rule the world”, sagt Martin. Schließlich werden es ja immer mehr Programmierer. Wenn es einmal einen GAU wegen eines Softwarefehlers gibt, weil Softwareentwickler keine eigenen ethischen Entscheidungen treffen oder schlampig programmiert haben, könne man sich eine unregulierte Zunft von Programmierern nicht erlauben. Z.B. kann sich die Programmiererschaft nicht auf TDD (Test Driven Development) einigen. Aber auf irgendwelche Standards muss man sich einigen und diese gewissenhaft ausführen.

Wenn man sich als Programmierer noch nicht damit beschäftigt hat, reif zu werden, jetzt ist die Zeit dafür! Erwarte keine Standardantworten von Uncle Bob, mache dich selbst auf den Weg …