Agile Entwicklungspraktiken mit Scrum -  - ebook

Agile Entwicklungspraktiken mit Scrum ebook

0,0

Opis

Scrum ist ein agiles Management-Framework, das keine Entwicklungspraktiken empfiehlt oder gar vorschreibt. Auswahl und Einsatz der richtigen Praktiken fallen unter die Selbstorganisation des Teams. Ohne den Einsatz geeigneter Entwicklungspraktiken und -tools ist der Einsatz von Scrum in der Softwareentwicklung jedoch nicht dauerhaft erfolgreich. Dieses Buch beschreibt praxisnah die wichtigsten Praktiken wie Architekturvision, inkrementeller Entwurf, Continuous Integration, testgetriebene Entwicklung, Refactoring, Akzeptanztests sowie modellgetriebene und verteilte Entwicklung mit Scrum.

Ebooka przeczytasz w aplikacjach Legimi na:

Androidzie
iOS
czytnikach certyfikowanych
przez Legimi
Windows
10
Windows
Phone

Liczba stron: 217

Odsłuch ebooka (TTS) dostepny w abonamencie „ebooki+audiobooki bez limitu” w aplikacjach Legimi na:

Androidzie
iOS



Agile Entwicklungspraktiken mit Scrum

Roman Pichler ist international renommierter Scrum-Experte und Autor der Bücher »Agile Product Management with Scrum« und »Scrum – Agiles Projektmanagement erfolgreich einsetzen«. Er praktiziert agile Softwareentwicklung seit 1999 und coachte sein erstes agiles Projekt 2001. Scrum setzt er seit 2004 ein und arbeitet seit 2006 als selbstständiger Berater, Coach und Trainer. Mehr Informationen finden Sie unter www.romanpichler.com.

Dipl.-Inform. Stefan Roock ist Senior IT-Berater bei der it-agile GmbH in Hamburg. Er arbeitet seit 1999 in agilen Softwareprojekten mit Scrum, Extreme Programming, Feature Driven Development und Kanban. Er wirkte als Coach, Trainer, ScrumMaster/Facilitator und Entwickler mit. Darüber hinaus hat er zahlreiche Artikel und Tagungsbeiträge über agile Softwareentwicklung verfasst und ist Autor der Bücher »Software entwickeln mit eXtreme Programming« und »Refactorings in großen Softwareprojekten«.

Roman Pichler · Stefan Roock (Hrsg.)

AgileEntwicklungspraktikenmit Scrum

Roman Pichler

[email protected]

Stefan Roock

[email protected]

Lektorat: Christa Preisendanz · Vanessa Wittmer

Copy-Editing: Ursula Zimpfer, Herrenberg

Herstellung: Birgit Bäuerlein

Umschlaggestaltung: Helmut Kraus, www.exclam.de

Druck und Bindung: Media-Print Informationstechnologie, Paderborn

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

ISBN:

Buch 978-3-89864-719-9

PDF 978-3-89864-885-1

ePub 978-3-89864-854-7

1. Auflage 2011

Copyright © 2011 dpunkt.verlag GmbH

Ringstraße 19 B

69115 Heidelberg

Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.

Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.

Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.

5 4 3 2 1 0

Für Leo und YasminRoman Pichler

Für die kleinen »Roockies« Mika und LeviStefan Roock

Geleitwort

Ein weiteres Buch über Scrum? Ja! Aber nicht irgendeines, sondern eines, das ganz anders ist als alle anderen. Hier geht es um Technik und Techniken. Während es inzwischen unzählige Bücher auf dem Markt gibt, die sich mit agilen Prinzipien oder Scrum beschäftigen, gibt es nur sehr wenige, die die technischen Aspekte agiler Softwareentwicklung erläutern.

Vor mehreren Jahren haben wir Scrum bei der mobile.international GmbH eingeführt. Schnell haben wir gemerkt, dass die Vorteile von Scrum auch Nachteile mit sich bringen. Scrum ist ein sehr leichtgewichtiger und leicht zu beschreibender Prozess. Dafür ist Scrum umso schwerer zu lernen und nur Stück für Stück merkt man, was einem auf dem Weg noch fehlt und wie man seine Organisation und das ganze Umfeld verändern muss. Der Vorteil von Scrum, so dünn und leichtgewichtig zu sein, bringt aber mit sich, dass Scrum sich zu Entwicklungstechniken ausschweigt. Aber schnell wurde uns klar, dass wir auch an unserer technischen Exzellenz arbeiten müssen, um uns kontinuierlich zu verbessern. Agile Softwareentwicklung funktioniert nur gut, wenn man eine fast konstante Aufwandskurve erreicht – wenn also ein zu entwickelndes Feature zum Ende eines Projekts nicht wesentlich teurer ist als zu Beginn. Und dazu wird man irgendwann die Fragen beantworten müssen, wie man einen emergenten Architekturbegriff unterstützt, wie man einen inkrementellen Entwurf beherrscht und dies letztlich durch ständige – in Teilen automatisierte – Refactorings fördert. Wer richtig gut sein will, entwickelt von Anfang an testgetrieben.

Aber agile Softwareentwicklung setzt auch kurze Feedbackzyklen voraus und im Ideal dann auch ständige Releases. Und das wiederum ist alles nur zu erreichen mit Continuous Integration inklusive 10-Minuten-Build und letztlich auch automatisierten Akzeptanztests, um die Transaktionskosten für konstantes, schnelles Feedback gering halten zu können und um nicht zu größeren Iterationen oder Arbeitsschritten gezwungen zu werden.

Neben Prozess und Tools muss aber auch das Umfeld stimmen. Die Fülle der Themen macht klar, dass jeder von uns ständig neu dazulernen muss, denn die in diesem Buch beschriebenen Themen sind komplex, fordernd und unterliegen einer dynamischen Entwicklung. Am Ende heißt Software mit Scrum zu entwickeln auch, Software auf technisch und handwerklich sehr hohem Niveau zu entwickeln. Und dafür muss das Umfeld stimmen und eine Lernkultur aufweisen, die ständiges Infragestellen des Status quo und Lernen unterstützt. Deswegen freue ich mich besonders über die Kapitel im Buch, in denen es um Themen geht, die uns auf diesem Weg selbst weitergebracht haben: »Dojos und Katas«, das wunderbare spielerische Formen des fokussierten Übens erklärt und nachvollziehbar macht, sowie »Pair Programming und Collective Ownership«, das alte, aber immer noch aktuelle und immer wieder neu interpretierte Themen frisch präsentiert.

Ein Kapitel über den vielleicht schwierigsten Aspekt agiler Softwareentwicklung, nämlich verteilte Teams, rundet das Buch zum Ende hin ab. Verteilte agile Entwicklung ist besonders schwierig, denn der Kern agiler Entwicklung ist Eliminierung von Overhead durch ständige, enge Kommunikation. Wie diese erreicht werden kann, obwohl Teams räumlich getrennt sind, wird in diesem Kapitel nachvollziehbar gemacht.

Man muss dieses Buch nicht von vorne bis hinten durchlesen – auch wenn dies sehr inspirierend ist und Anhaltspunkte gibt, welche Aufgaben noch zu lösen sind. Aber immer, wenn das ewig zwischen Prozessverbesserung und technischer Verbesserung hin- und herschwingende Pendel wieder bei der Technik landet, kann man sich dieses Buch schnappen und sicher sein, das passende Kapitel zu finden. Und jedes der Kapitel erläutert genau eines der erwähnten Themen grundlegend und praxisnah jeweils geschrieben von einem Autor, der zu den Praktikern und Größen der agilen Szene in Deutschland gehört. Jedes Kapitel beschreibt das Kondensat der praktischen Erfahrung eines Autors – erprobte agile Praktiken, die schon vielen Unternehmen geholfen haben, auf dem Weg zu technischer Exzellenz weiterzukommen.

Roman Pichler und Stefan Roock ist mit diesem Buch eine wunderbare Sammlung relevanter Aufsätze gelungen, die uns selbst und vielen anderen Agilisten noch lange Jahre helfen wird.

Markus AndrezakPotsdam im Februar 2011

Inhalt

1

Einleitung

Roman Pichler · Stefan Roock

1.1

Agile Softwarewicklung und Scrum

1.2

Zielgruppe und Zielsetzung

1.3

Überblick über das Buch

1.4

Java als Beispielsprache

1.5

Danke

2

Architekturvision

Stefan Roock · Roman Pichler

2.1

Die Architekturvision im Überblick

2.2

Wünschenswerte Eigenschaften der Vision

2.2.1

Klar (Clear)

2.2.2

Von allen mitgetragen (Accepted)

2.2.3

Kurz und bündig (Short)

2.3

Beispiel einer Architekturvision

2.4

Die Erstellung der Architekturvision

2.5

Die Form der Vision

2.6

Architekturvision und Legacy-Systeme

2.7

Zusammenfassung

3

Inkrementeller Entwurf

Stefan Roock

3.1

Der inkrementelle Entwurf im Überblick

3.2

Flache Aufwandskurve

3.3

Qualitätskriterien für den inkrementellen Entwurf

3.4

Entwurfsprinzipien

3.4.1

Single Responsibility Principle

3.4.2

Open Closed Principle

3.4.3

Liskov Substitution Principle

3.4.4

Interface Segregation Principle

3.4.5

Dependency Inversion Principle

3.5

Inkrementeller Entwurf und agile Entwicklungspraktiken

3.6

Zusammenfassung

4

Continuous Integration

Andreas Havenstein

4.1

Continuous Integration im Überblick

4.2

Ein Beispiel

4.3

Die Continuous-Integration-Umgebung

4.4

Kontinuierliches Feedback

4.5

Umgang mit Feedback

4.5.1

Broken-Windows-Theory

4.5.2

Stop-the-Line-Prinzip

4.6

10-Minuten-Build

4.7

Continuous-Integration-Produkte

4.8

Feature-Branches und Feature-Flags

4.9

Continuous Integration und Scrum

4.9.1

Offenheit und Mut

4.9.2

Definition of Done

4.9.3

Sprint-Meetings

4.9.4

Feedback für die Scrum-Teammitglieder

4.10

Einführung von Continuous Integration

4.10.1

Einführung zu Projektbeginn

4.10.2

Einführung in ein laufendes Projekt

4.11

Zusammenfassung

5

Testgetriebene Entwicklung

Johannes Link

5.1

Testgetriebene Entwicklung im Überblick

5.2

Der Test-Code-Refactor-Zyklus

5.3

Ein Beispiel für testgetriebene Entwicklung

5.3.1

Bevor es losgeht

5.3.2

Schritt 1: Der fehlschlagende Test

5.3.3

Schritt 2: Alles wird grün

5.3.4

Schritt 3: Wir räumen auf

5.3.5

Wir ergänzen den Test

5.3.6

Ein weiterer Testfall

5.3.7

Auffinden fehlender Tests

5.3.8

Refactoring

5.3.9

Testfälle für existierende Funktionalität

5.3.10

Testfälle für zufälliges Verhalten

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!