F st 20 Jahre nach der Veröffentlichung des agilen Manifests ruft der legendäre Softwareentwickler Robert C. Martin (»Uncle Bob«) dazu auf, sich wieder auf die ursprünglichen Werte und Prinzipien zurückzubesinnen, die den eigentlichen Kern der agilen Softwareentwicklung ausmachen und die für die Praxis von zentraler Bedeutung sind. MitClean Agile lässt er alle an seiner jahrzehntelangen Erfahrung teilhaben und räumt mit Missverständnissen und Fehlinterpretationen auf, die im Laufe der Jahre entstanden sind. Dabei wendet er sich gleichermaßen an Programmierer und Nicht-Programmierer.
Un le Bob macht deutlich, was agile Softwareentwicklung eigentlich ist, war und immer sein sollte: ein einfaches Konzept, das kleinen Softwareteams hilft, kleine Projekte zu managen - denn daraus setzen sich letztendlich alle großen Projekte zusammen. Dabei konzentriert er sich insbesondere auf die Praktiken des Extreme Programmings (XP), ohne sich in technischen Details zu verlieren.
Egal, ob Sie Entwickler, Tester, Projektmanager oder Auftraggeber sind - dieses Buch zeigt Ihnen, worauf es bei der Umsetzung agiler Methoden wirklich ankommt.
»Bobs Frustration spiegelt sich in jedem Satz des Buchs wider - und das zu Recht. Der Zustand, in dem sich die Welt der agilen Softwareentwicklung befindet, ist nichts im Vergleich zu dem, was sie eigentlich sein könnte. Das Buch beschreibt, auf was man sich aus Bobs Sicht konzentrieren sollte, um das zu erreichen, was sein könnte. Und er hat es schon erreicht, deshalb lohnt es sich, ihm zuzuhören.«- Kent Beck
»Uncle Bob ist einer der klügsten Menschen, die ich kenne, und seine Begeisterung für Programmierung kennt keine Grenzen. Wenn es jemandem gelingt, agile Softwareentwicklung zu entmystifizieren, dann ihm.«- Jerry Fitzpatrick
Bevor wir uns mit den Details der agilen Softwareentwicklung befassen, möchte ich erklären, was auf dem Spiel steht. Agile Softwareentwicklung ist von großer Bedeutung, nicht nur für Software, sondern auch für unsere gesamte Branche, unsere Gesellschaft und letzten Endes sogar für unsere Zivilisation.
Entwickler und Manager setzen agile Softwareentwicklung oftmals aus Gründen ein, die nur vorübergehend sind. Vielleicht probieren sie es aus, weil es sich »richtig« anfühlt oder weil sie von dem versprochenen Tempo und der Qualität angetan sind. Solche Gründe sind jedoch ungreifbar, unklar und können leicht wieder umgestoßen werden. Viele haben agile Softwareentwicklung wieder aufgegeben, weil sie nicht sofort die vermeintlich versprochenen Ergebnisse erzielen konnten.
Diese vergänglichen Gründe sind nicht dafür verantwortlich, dass agile Softwareentwicklung von so großer Bedeutung ist. Sie ist aus sehr viel tiefer gehenden philosophischen und ethischen Gründen wichtig. Diese Gründe haben mit Professionalität und den berechtigten Erwartungen unserer Kunden zu tun.
Ich habe mich ursprünglich mit agiler Softwareentwicklung beschäftigt, weil dabei die Disziplin deutlichen Vorrang vor zeremoniellen Handlungen hat. Bei der agilen Softwareentwicklung musste man als Paar arbeiten, erst Tests schreiben, Refactorings vornehmen und sich auf einfache Designs festlegen. Man musste in kurzen Zyklen arbeiten und nach jedem Zyklus ein ausführbares Ergebnis vorweisen. Und man musste regelmäßig und kontinuierlich mit den geschäftlichen Unternehmensbereichen kommunizieren.
Sehen Sie sich den Kreis des Lebens noch einmal an und betrachten Sie die einzelnen Praktiken als einVersprechen, eineVerpflichtung, dann werden Sie verstehen, was ich meine. Für mich bedeutet agile Softwareentwicklung die Zusage, meinen Einsatz zu erhöhen – professionell zu handeln und professionelles Verhalten in der gesamten Softwareentwicklungsbranche zu fördern.
Die Softwarebranche hat es bitter nötig, die Professionalität zu erhöhen. Wir scheitern viel zu oft. Wir liefern zu viel Mist aus. Wir nehmen zu viele Missstände hin. Wir gehen hanebüchene Kompromisse ein. Wir verhalten uns zu oft wie unbändige Teenager, die eine neue Kreditkarte bekommen. Früher war ein solches Verhalten noch tolerierbar, weil nicht viel auf dem Spiel stand. In den 1970er-, 1980er- und sogar Anfang der 1990er-Jahre waren die Kosten für fehlerhafte Software zwar hoch, aber begrenzt und überschaubar.
Heutzutage ist das anders.
Sehen Sie sich um, genau jetzt. Bleiben Sie, wo Sie sind, und betrachten Sie den Raum, in dem Sie sich aufhalten. Wie viele Computer befinden sich darin?
Ich mach’ das jetzt mal. Ich befinde mich gerade in meiner Sommerhütte in den nördlichen Wäldern Wisconsins. Wie viele Computer befinden sich hier?
4: Ich schreibe diese Zeilen auf einem MacBook Pro mit einem Vierkernprozessor. Ich weiß, angeblich sind es acht Kerne, aber »virtuelle« Kerne zähle ich nicht mit. Und die ganzen Hilfsprozessoren im MacBook zähle ich auch nicht.
1: Meine Apple Magic Mouse 2. Ich bin mir sicher, dass sie mehr als einen Prozessor hat, aber ich zähle das nur als einen.
1: Mein iPad, auf dem die Software Duet läuft, damit ich es als zweiten Bildschirm nutzen kann. Mir ist bewusst, dass das iPad auch eine Reihe von Hilfsprozessoren enthält, aber ich zähle wieder nur einen.
1: Mein Autoschlüssel (!)
3: Meine Apple AirPods. Ein Prozessor pro Ohrhörer und einer im Etui.
1: Mein iPhone. Tatsächlich hat es wohl mehr als ein Dutzend Prozessoren, aber ich zähle abermals nur einen.
1: Ein Ultraschall-Bewegungsmelder in Sichtweite (Es gibt noch einige mehr im Haus, aber nur einen, den ich sehen kann.)
1: Ein Thermostat
1: Das Bedienfeld der Alarmanlage
1: Ein Fernseher mit Flachbildschirm
1: Ein DVD-Player
1: Ein Roku-Internet-TV zum Streamen von Videos und Fernsehsendungen
1: Ein Apple Airport Express
1: Ein Apple-TV
5: Verschiedene Fernbedienungen
1: Ein Telefon (Ja, ein richtiges Telefon.)
1: Ein elektronischer Kamin-Simulator (Sie würden sich wundern, wie viele Modi er unterstützt.)
2: Ein älteres computergesteuertes Teleskop, ein Meade LX 200 EMC. Ein Prozessor befindet sich im Antrieb, der andere im Handsteuergerät.
1: Ein USB-Stick in meiner Hosentasche
1: Ein Apple Pencil
Das sind schon mindestens 30 Computer, nur in diesem einen Raum. Die tatsächliche Zahl dürfte rund doppelt so groß sein, denn die meisten Geräte haben mehrere Prozessoren. Aber bleiben wir für Erste bei 30.
Wie viele haben Sie entdeckt? Ich könnte wetten, dass die meisten Leser eine ähnlich hohe Zahl ermittelt haben. Ich würde sogar darauf wetten, dass die meisten der 1,3 Milliarden Menschen, die in westlichen Gesellschaften leben, sich ständig in der Nähe von mehr als einem Dutzend Computern befinden. Das gab es früher nicht. Anfang der 1990er-Jahre lag dieser Wert wohl eher in der Nähe von null.
Was haben all diese Computer gemeinsam? Sie müssen programmiert werden. Sie benötigen Software – Software, die wir schreiben. Und was ist Ihrer Ansicht nach von der Qualität der Software zu halten?
Ich möchte das Ganze in einem anderen Licht betrachten. Wie oft am Tag verwendet Ihre Großmutter ein Softwaresystem? Sofe