Die Kunst der agilen Entwicklung (eBook)
744 Seiten
dpunkt (Verlag)
978-3-96910-867-3 (ISBN)
US-Bestseller in 2. Auflage: ein Muss für jeden, der mit oder in einem Softwareentwicklungsteam arbeitet!
- leicht zu lesen, pragmatisch und umfassend von den agilen Grundsätzen bis hin zu Details bei der agilen Softwareentwicklung
- hoher Praxisbezug durch zahlreiche Tipps und Fallbeispiele
- geeignet für neu startende Projekte und auch bestehende Teams
Um agile Entwicklung zu meistern, müssen Sie im Team lernen, unzählige Möglichkeiten von Moment zu Moment zu bewerten und intuitiv die beste Vorgehensweise auszuwählen.
Dieses Buch beschreibt umfassend und praxisorientiert die Grundlagen, Methoden und Praktiken agiler Softwareentwicklung. James Shore gibt wertvolle Ratschläge für den Projektstart, inkrementellen Entwurf, Continuous Integration, iterative Planung und testgetriebene Entwicklung sowie die Bereitstellung und Refactoring von Software, die aus über zwei Jahrzehnten Erfahrung mit Agilität stammen. Er bringt den State of the Art aus Extreme Programming, Scrum, Lean, DevOps und mehr in ein zusammenhängendes Ganzes und vermittelt darüber hinaus, dass Agilität zu meistern auch bedeutet, in Abhängigkeit von Projektgegebenheiten und der Organisation, in der Software entwickelt wird, Praktiken anzupassen.
Diese 2. Auflage ist vollständig überarbeitet und von Grund auf neu geschrieben worden und berücksichtigt dabei die Weiterentwicklung auf dem Gebiet der agilen Entwicklung der letzten 14 Jahre. Neu aufgenommen wurden Themen wie agile Skalierung, DevOps, die Arbeit mit Remote-Teams sowie das Agile Fluency Model zur Einführung und Anpassung von Agilität an die Bedürfnisse des Unternehmens.
James Shore leitet seit 1999 Teams, die agile Entwicklung praktizieren. Er kombiniert ein tiefes Verständnis der agilen Ideen mit jahrzehntelanger praktischer Erfahrung in der Entwicklung und nutzt diese Erfahrung, um Menschen dabei zu unterstützen, zu verstehen, wie alle Aspekte von Agilität zusammenpassen, um herausragende Ergebnisse zu erzielen. James hat den Gordon Pask Award der Agile Alliance für Beiträge zur agilen Praxis erhalten, ist Moderator mehrerer Screencasts zur Softwareentwicklung und Mitbegründer des Agile Fluency Model. Er ist online unter jamesshore.com zu finden. Übersetzer Wolf-Gideon Bleek ist bei it-agile GmbH in Hamburg als agiler Management-Coach tätig. Nach dem Studium der Informatik promovierte er zum Thema Software-Infrastruktur-Entwicklung. Er ist Ende der 90er-Jahre zuerst mit agilen Methoden in Kontakt gekommen. In Industrieprojekten für verschiedene Kunden konnte er Erfahrungen in Scrum, XP und Kanban als Developer, Coach und Product Owner sammeln. Sein Interesse gilt dem Zusammenspiel zwischen Technik, Prozess und Organisation. In Publikationen und auf Konferenzen gibt er seine Erfahrungen weiter. Tim Müller ist ausgebildeter Fachinformatiker in der Fachrichtung Anwendungsentwicklung und ist bei it-agile GmbH in Hamburg tätig. Als Softwareentwickler lernte er in verschiedenen Projekten sowohl klassische als auch agile Methoden und Werkzeuge aus dem Extreme Programming kennen. Die Arbeit mit agilen Werten und Methoden überzeugten Tim und sorgten dafür, dass er das dort Erlernte wann immer möglich anwendet. Diese Erfahrung und Begeisterung gibt er jetzt gerne an andere Teams weiter.
James Shore leitet seit 1999 Teams, die agile Entwicklung praktizieren. Er kombiniert ein tiefes Verständnis der agilen Ideen mit jahrzehntelanger praktischer Erfahrung in der Entwicklung und nutzt diese Erfahrung, um Menschen dabei zu unterstützen, zu verstehen, wie alle Aspekte von Agilität zusammenpassen, um herausragende Ergebnisse zu erzielen. James hat den Gordon Pask Award der Agile Alliance für Beiträge zur agilen Praxis erhalten, ist Moderator mehrerer Screencasts zur Softwareentwicklung und Mitbegründer des Agile Fluency Model. Er ist online unter jamesshore.com zu finden. Übersetzer Wolf-Gideon Bleek ist bei it-agile GmbH in Hamburg als agiler Management-Coach tätig. Nach dem Studium der Informatik promovierte er zum Thema Software-Infrastruktur-Entwicklung. Er ist Ende der 90er-Jahre zuerst mit agilen Methoden in Kontakt gekommen. In Industrieprojekten für verschiedene Kunden konnte er Erfahrungen in Scrum, XP und Kanban als Developer, Coach und Product Owner sammeln. Sein Interesse gilt dem Zusammenspiel zwischen Technik, Prozess und Organisation. In Publikationen und auf Konferenzen gibt er seine Erfahrungen weiter. Tim Müller ist ausgebildeter Fachinformatiker in der Fachrichtung Anwendungsentwicklung und ist bei it-agile GmbH in Hamburg tätig. Als Softwareentwickler lernte er in verschiedenen Projekten sowohl klassische als auch agile Methoden und Werkzeuge aus dem Extreme Programming kennen. Die Arbeit mit agilen Werten und Methoden überzeugten Tim und sorgten dafür, dass er das dort Erlernte wann immer möglich anwendet. Diese Erfahrung und Begeisterung gibt er jetzt gerne an andere Teams weiter.
1Was ist Agilität?
Agilität ist überall und paradoxerweise nirgendwo.
In den 20 Jahren, in denen die Agilität wie eine Dampfwalze in das Bewusstsein von Softwareentwicklern1 eingedrungen ist, stieg die Zahl der Unternehmen, die sich selbst »agil« nennen, beachtlich an. Gilt dasselbe auch für die Anzahl der Teams, die wirklich ein agiles Vorgehen für ihre Arbeit verwenden? Leider nicht. Der inflationär verwendete Begriff »Agilität« ist enorm erfolgreich. Die tatsächlichen Ideen hinter Agilität jedoch werden meistens ignoriert.
Das müssen wir ändern!
1.1Die Entstehung von Agilität
In den 1990er-Jahren schien sich die Softwareentwicklung in einer Krise zu befinden. Tatsächlich wurde genau dieser Begriff verwendet: »die Softwarekrise«. Softwareprojekte überschritten ihre Budgets, waren verspätet und erfüllten nicht die an sie gestellten Anforderungen. Nach dem oft zitierten und ominös benannten »CHAOS Report« wurde nahezu ein Drittel der Projekte komplett abgebrochen [Standish 1994].
Agilität war nicht im Entferntesten eine Antwort auf diese Krise. Agilität war eine Antwort auf die Antwort.
Um die Softwareentwicklung unter Kontrolle zu bringen, hatten große Organisationen sehr detaillierte Prozesse definiert, die genau beschrieben, wie Software erstellt werden sollte. Alles wurde streng kontrolliert, damit (zumindest theoretisch) keine Fehler gemacht werden konnten.
Zuerst würden Business-Analysten verschiedene Stakeholder2 befragen, um die Anforderungen an das System zu dokumentieren. Im Anschluss würden Softwarearchitektinnen die Systemanforderungen lesen und mithilfe detaillierter Dokumentation sowohl den Entwurf der Komponenten als auch ihre Beziehung zueinander spezifizieren. Dann würden die Programmiererinnen diese Entwurfsdokumente in Quellcode umwandeln. In einigen Unternehmen wurde dies als eine Arbeit betrachtet, die wenig Fähigkeiten erfordert – also lediglich als eine mechanische Übersetzungsübung.
In der Zwischenzeit würden Fachleute aus der Testabteilung anhand derselben Dokumente Ablaufpläne für den Test anfertigen, damit nach der Programmierung Heerscharen von Testern das Programm manuell überprüfen und Abweichungen als Fehler dokumentieren können. Nach jeder Phase dieses Ablaufplans würden die einzelnen Schritte aufmerksam dokumentiert, überprüft und unterschrieben werden.
Ein solches auf Phasen basierendes Vorgehensmodell wurde »Wasserfallmodell« oder auch »Stage-Gate-Modell« genannt.3 Wenn das für Sie wie ein vorgeschobenes Argument klingt, nun ja, schätzen Sie sich glücklich. Nicht jedes Unternehmen benutzte in der 90er-Jahren solch einen auf Dokumenten und Phasen basierenden Prozess. Auf diese Art zu arbeiten, wurde jedoch als logisch und vernünftig angesehen. Natürlich sollten wir Anforderungen definieren, entwerfen, implementieren und testen. Natürlich sollten wir jede Phase dokumentieren. So funktionierte Entwicklung und wie sollten wir auch sonst erfolgreich sein?
1.2Aus der Krise geboren
Große Unternehmen haben ihre Prozesse bis ins kleinste Detail definiert. Rollen, Verantwortlichkeiten, Dokumentenvorlagen, Modellierungssprachen, Change Control Boards, die über Anpassungen von Anforderungen berieten, … jeder Aspekt im Ablauf der Entwicklung wurde streng definiert und überprüft. Wenn ein Projekt nicht erfolgreich war – und nach dem CHAOS Report war dies bei weniger als einem Sechstel der Fall –, lag es daran, dass die Prozessbeschreibung mehr Details brauchte, mehr Dokumente, mehr Freigaben. Daraus resultierte ein riesiger Berg an Dokumentation. Martin Fowler nannte es »Der große Donnerschlag« (»The Almighty Thud«) [Fowler 1997].
Dies war keine schöne Art zu arbeiten: bürokratisch und nicht den Menschen gerecht. Es schien, als hätten Fähigkeiten weniger Bedeutung als die Einhaltung von Prozessen. Und in der Programmierung zu arbeiten, fühlte sich an, als seien wir ein austauschbares Zahnrad in einer anonymen Maschine. Und es funktionierte nicht einmal besonders gut.
Also entwickelten verschiedene Personen Methoden für die Softwareentwicklung, die einfacher und schlanker waren und weniger Vorgaben machten. Diese wurden im Gegensatz zu dem schwergewichtigen Vorgehensmodell großer Unternehmen als »leichtgewichtige Methoden« bezeichnet. Diese neuen Methoden hatten Namen wie »Adaptive Software Development«, »Crystal«, »Feature-Driven Development«, »Dynamic Systems Development Method«, »Extreme Programming« und »Scrum«.
In den späten 90er-Jahren erregten diese Methoden starke Aufmerksamkeit. Insbesondere Extreme Programming führte zu einem explosionsartigen Anstieg des Interesses unter Programmierern. Im Jahr 2001 trafen sich 17 Befürworter dieser leichtgewichtigen Methoden in einem Skigebiet in Utah, um zu diskutieren, wie sie ihre Bemühungen vereinheitlichen könnten.
1.3Das Manifest für Agile Softwareentwicklung
Alistair Cockburn sagte später: »Ich persönlich habe nicht erwartet, dass diese Gruppe [von Menschen] sich jemals auf etwas Wesentliches einigen würde.«
Und tatsächlich erreichten sie nach zwei Tagen nur zwei Dinge: den Namen »Agilität« und eine Angabe von vier Werten (siehe Abb. 1–1). In den darauffolgenden zwölf Monaten erarbeiteten sie per Mail zwölf begleitende Prinzipien (siehe Abb. 1–2) [Beck 2001].
Das war das Agile Manifest. Es hat die Welt verändert. Oder mit Bezug auf die Aussage von Alistair Cockburn oben: Sie haben sich nach zwei Tagen auf wesentliche Dinge einigen können.4
Manifest für Agile Softwareentwicklung
Wir erschließen bessere Wege, Software zu entwickeln, indem wir es selbst tun und anderen dabei helfen. Durch diese Tätigkeit haben wir diese Werte zu schätzen gelernt:
- Individuen und Interaktionen mehr als Prozesse und Werkzeuge
- Funktionierende Software mehr als umfassende Dokumentation
- Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
- Reagieren auf Veränderung mehr als das Befolgen eines Plans
Das heißt, obwohl wir die Werte auf der rechten Seite wichtig finden, schätzen wir die Werte auf der linken Seite höher ein.
Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
James Grenning
Jim Highsmith
Andrew Hunt
Ron Jeffries Jon
Kern
Brian Marick
Robert C. Martin
Steve Mellor Ken
Schwaber Jeff
Sutherland Dave
Thomas
Abb. 1–1Agile Werte5
Aber es gab nicht die eine agile Methode. Es gab sie nie und es wird sie nie geben. Agilität besteht aus drei Dingen: dem Namen, den Werten und den Prinzipien. Mehr gibt es nicht. Es ist nicht etwas, was Sie tun können, sondern eine Philosophie. Eine Art, über Softwareentwicklung zu denken. Wir können Agilität nicht »benutzen« oder »machen« … wir können nur agil sein oder eben nicht. Wenn das Team die Philosophie von Agilität verkörpert, ist es agil. Wenn es das nicht tut, dann ist es nicht agil.
Wenn das Team die Philosophie von Agilität verkörpert, ist es agil. Wenn es das nicht tut, dann ist es nicht agil.
1.4Die Essenz von Agilität
Martin Fowler hat Karriere gemacht, indem er für komplizierte Themen der Softwareentwicklung gut durchdachte und ausgewogene Erklärungen gibt. Seine Erklärung für »Die Essenz von agiler Softwareentwicklung« ist eine der besten:
Agile Entwicklung ist eher adaptiv als vorausschauend; orientiert sich eher an Menschen als an Prozessen6.
– Martin Fowler
Prinzipien hinter dem Agilen Manifest
Wir folgen diesen Prinzipien:
Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen.
Heiße Anforderungsänderungen selbst spät in der Entwicklung willkommen. Agile Prozesse nutzen...
Erscheint lt. Verlag | 4.1.2023 |
---|---|
Übersetzer | Wolf-Gideon Bleek, Tim Müller |
Verlagsort | Heidelberg |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik |
Schlagworte | agiel Entwicklung • Agile Fluency Model • Agile Skalierung • Agile Softwareentwicklung • Agiles Vorgehen • Agilität • Continuous Integration • DevOps • Extreme Programming • Geschäftswert • inkrementeller Entwurf • iterative Planung • Lean • Projektstart • Refactoring • Remote-Teams • Scrum • Softwareentwicklungsteam • Teamverantwortung • testgetriebene Entwicklung. Bereitstellung von Software |
ISBN-10 | 3-96910-867-5 / 3969108675 |
ISBN-13 | 978-3-96910-867-3 / 9783969108673 |
Haben Sie eine Frage zum Produkt? |
Größe: 2,8 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich