Uncle Bob: "Nichts geschieht in der heutigen Gesellschaft ohne Software"

Seite 3: Agile Manifesto: Eine Entstehungsgeschichte

Inhaltsverzeichnis

heise Developer:Sie gehören zu den Verfassern des Agile Manifesto. Können Sie uns erzählen, wie Sie dazu kamen und wie Sie die Entstehung erlebt haben?

Uncle Bob: Meine Version der Geschichte ist folgende: Ich war damals seit längerer Zeit als Consultant tätig. Ich unterrichtete C++ und beriet Kunden über objektorientiertes Design. Die Klienten meinten zu mir: Wir brauchen einen Prozess. Bei meinen Recherchen zum Thema stieß ich auf Kent Beck, den ich von früher kannte, und den ich zufällig in München wiedertraf. Ich sprach ihn auf seine Abhandlungen zu Extreme Programming an. Wir organisierten im Anschluss gemeinsam Kurse dazu.

Im Jahr 2000 hatte Kent die Idee, eine Reihe von Leuten zusammenzutrommeln und mit ihnen die sogenannte Extreme Leadership Conference abzuhalten. Neben mir und einigen anderen Leuten waren dort viele Teilnehmer aus der Patterns-Community. Wir trafen uns in der Nähe von Kents Haus und haben erwogen, eine Organisation ins Leben zu rufen. Die große Mehrheit der Teilnehmer wollte das jedoch nicht.

Ich wollte eine solche Gruppe gestalten, jedoch kamen wir zu keinem Ergebnis. Aber im Anschluss sprach mich Martin Fowler an, und wir kamen zu dem Schluss, dass wir ein neues Treffen organisieren sollten, aber mit anderen Leuten wie Ken Schwaber und Jeff Sutherland. Martin und ich verschickten Einladungen. Alistair Cockburn antwortete prompt, dass er ohnehin vorhatte, eine solche Gruppe zu gründen. So nahmen wir seine Teilnehmervorschläge noch auf, und er kümmerte sich um die Organisation des Treffens. Tatsächlich folgten fast alle der Einladung. Nennenswerte Ausnahmen sind Grady Booch und Ivar Jacobsons Tochter Agneta.

Das Treffen, das dann folgte, war eins der spannendsten Meetings meines Lebens. Wir redeten und redeten, aber irgendwie kamen wir zu keinem Ergebnis, obwohl alle Teilnehmer großes Interesse am Thema hatten.

Ich weiß nicht mehr genau, wann es passierte – manche sagen, es war am zweiten Tag, manche, es war am Ende des ersten – jedenfalls schrieb jemand die vier wichtigen Zeilen auf, die noch heute das Manifesto bestimmen und im Kern besagten: "Uns stören die alten Werte nicht, aber wir schätzen die anderen etwas mehr.".

Keiner weiß, wer die Zeilen aufgeschrieben hat, aber genau das war es. Dann gab es noch ein wenig Feinschliff zu erledigen wie einen passenden Namen zu finden. Ich wollte es "leichtgewichtig" nennen – alle anderen hassten das. "adaptiv" wurde ebenso verworfen. Ich glaube, Jon Kern brachte dann "agil" ins Spiel, ein Ausdruck, der beim Militär hoch im Kurs stand. So richtig begeistert war keiner, aber das Wort hat bei der Abstimmung knapp gewonnen.

Ward Cunningham sagte, er würde das Agile Manifesto auf seine Website nehmen und es Leute unterzeichnen lassen. Wir sagten "Mach nur!" und lachten. Aber dann haben tausende Menschen das Manifesto unterzeichnet.

heise Developer: Kommen wir noch zu etwas ganz anderem: Was sind aktuell Ihre Lieblingsprogrammiersprachen?

Uncle Bob: Derzeit ist meine Lieblingssprache Clojure. Ich bin erst vor acht Jahren über Lisp gestolpert, und ich fand die Sprache fast absurd einfach. Sie hat fast keine Syntax, während ich sehr Syntax-lastige Sprachen gewohnt war. Gleichzeitig ist die Sprache sehr mächtig, was mich zu einem Fan von Lisp allgemein und Clojure im Speziellen gemacht hat.

Zuvor habe ich Java genutzt und setze es immer noch ein. Davor habe ich in C++ und davor in C programmiert. Im Rückblick ist das also eine recht normale Entwicklung.

heise Developer: Wie sind Sie ursprünglich zum Programmieren gekommen?

Uncle Bob: Meine Mutter hatte mir einen Plastikcomputer gekauft, als ich zwölf war, also 1964. Er hatte drei Flipflops und sechs Gates. Alles war mechanisch, und es war ein Dreibit-System: Es konnte zählen, addieren, subtrahieren – kleine Dinge, die man mit drei Bit anstellen konnte. Und die Maschine faszinierte mich. Ich habe Stunden damit verbracht. Ich habe mir dann die erweiterte Anleitung schicken lassen und mein erstes Programm zum Laufen bekommen. Das hat mich so fasziniert, dass ich so etwas für den Rest meines Lebens machen wollte.

heise Developer: Gibt es Programmiersprachen, in denen das Schreiben von Clean Code besonders einfach oder schwer ist?

Uncle Bob: Ich glaube nicht, dass die Programmiersprache einen großen Unterschied macht. Nun gut, vielleicht mit Ausnahme von Cobol. Ansonsten gilt wie gesagt, dass Clean Code eine Frage der Sorgfalt ist. Und wenn Sie sauberen Code lesen, sehen Sie, dass jemand sorgfältig gearbeitet hat.

Trotzdem sind einige Sprachen "sauberer" als andere. Cobol ist keine saubere Sprache, Java ist relativ sauber. Clojure ist eine äußerst saubere Programmiersprache.

heise Developer: Zum Abschluss: Was geben Sie Entwicklern mit? Worauf sollen sie besonders achten?

Uncle Bob: Auch diese Frage wird mir oft gestellt. Zunächst einmal gibt es einige technische Dinge – es gibt viel zu lernen: Die Fähigkeit, Code zu schreiben, Tests zu verfassen und ordentliche Refactorings vorzunehmen. Es gibt Wissen aus den 60-er und 70-er Jahren, das viele Entwickler heute leider ignorieren. Grundsätzlich sollten Programmierer lernen, intensiv zu lesen und zu lernen. Nicht nur Programmiersprachen, sondern auch die Geschichte dahinter.

Außerdem müssen Entwickler das Schreiben lernen. Daran scheitern viele Programmierer. Ich rede nicht von Code, sondern von Abhandlungen, Leitartikeln, Blogs. Leider tun sich einige Programmierer schwer damit, mit anderen Menschen zu kommunizieren, während sie mit Maschinen sehr gut kommunizieren können. Sie müssen lernen, anderen ihre Gedanken zu vermitteln.

Und schließlich müssen sie Sorgfalt lernen und erkennen, welche Dinge sie wichtig nehmen. Dabei geht es nicht nur um die technische Qualität ihres Codes, sondern auch um ihr Business-Umfeld. Das ist wichtig, um die Zusammenhänge zu verstehen.

Ihre wichtigste Aufgabe ist, Code zu schreiben, den andere Programmierer verstehen. Viele denken, das Wichtigste sei, dass der Code läuft, aber es ist viel wichtiger, dass andere Entwickler den Code am Laufen halten können.

Das Interview führte Rainald Menge-Sonnentag, Redakteur von heise Developer.

Siehe dazu auf heise Developer:

(rme)