: Jutta Eckstein
: Agile Softwareentwicklung mit verteilten Teams
: dpunkt
: 9783864910821
: 1
: CHF 23.00
:
: Informatik
: German
: 240
: Wasserzeichen/DRM
: PC/MAC/eReader/Tablet
: PDF
Heute werden viele Softwareprojekte unter Zuhilfenahme von Outsourcing, Offshoring oder einer sonstigen Form von Verteilung durchgeführt. Dies ist stets mit einer Distanz zwischen den Projektmitarbeitern verbunden, die sich auf Raum, Zeit, Kultur, Sprache oder Politik beziehen kann. Ein weiterer Trend wird immer deutlicher: der Aufschwung der agilen Softwareentwicklung. Dieses Buch zeigt, wie auch bei verteilten Projekten erfolgreich agil gearbeitet werden kann. Es richtet sich an Entwickler und Manager, die auch in einer verteilten Umgebung die Vorteile agiler Entwicklung nutzen möchten.

Jutta Eckstein ist Beraterin und Trainerin für agile Softwareentwicklung, Kommunikations-Managerin sowie Partner von IT Communications. Ihr Wissen über agile Prozesse basiert auf mehr als zehn Jahre langer Erfahrung bei der Entwicklung objektorientierter Anwendungen. In Projekten mit bis zu 300 Personen lag ihr Schwerpunkt auf der Einführung und Umsetzung angemessener (agiler) Prozesse. Sie ist Mitglied der Agile Alliance und unterstützt das Agile Manifest. Sie hält Seminare und ist Vortragende auf mehreren Konferenzen (z.B. OOP, Jax). Mehr Informationen findet man unter jeckstein.de oder it-communication.de.
Inhaltsverzeichnis6
Vorwort12
Danke14
1 Einführung16
1.1 Fokus dieses Buches17
1.1.1 Projekterfahrung17
1.1.2 Wem hilft dieses Buch18
1.1.3 Was dieses Buch nicht beinhaltet18
1.2 Fahrplan für das Buch19
2 Agilität und verteilte Projekte22
2.1 Verteilte Entwicklung verstehen22
2.1.1 Beteiligung mehrerer Entwicklungsstandorte23
2.1.2 Verteilte und verstreute Teams23
2.1.3 Große Projekte24
2.1.4 Beteiligung verschiedener Firmen25
2.1.5 Verschiedene Strukturen26
2.1.6 Weit entfernte Kunden27
2.1.7 Zentrale Koordinierung oder globale Integration27
2.1.8 Distanz überwinden28
2.2 Agilität verstehen29
2.2.1 Wertesystem29
2.2.2 Systemische Vorgehensweise30
2.2.3 Risikoreduzierung31
2.2.4 Agil: Nicht notwendigerweise produktiver32
2.2.5 Mehr als nur Praktiken32
2.2.6 Weder chaotisch noch undiszipliniert32
2.3 Einfluss agiler Prinzipien auf verteilte Entwicklung33
2.4 Zusammenfassung36
3 Teambildung38
3.1 Featureteams40
3.1.1 Zusammensitzende oder standortübergreifende Teams41
3.1.2 Verstreute Teams43
3.1.3 Ein Team formen44
3.2 Rollen47
3.2.1 Konstellation eines Featureteams47
3.2.2 Architekt und Chefarchitekt49
3.2.3 Coach53
3.2.4 Product Owner oder Produktmanager55
3.2.5 Projektleiter58
3.2.6 Schlüsselrollen sitzen mit ihren Teams zusammen59
3.3 Konzeptionelle Integrität sicherstellen60
3.3.1 Startteam hat Vorbildfunktion60
3.3.2 Technisches Serviceteam60
3.4 Zusammenfassung61
4 Kommunikation und Vertrauen64
4.1 Vertrauen und gegenseitiger Respekt65
4.1.1 Grenzwert für vertrauensvolle Beziehungen66
4.1.2 Wechselnde Treffpunkte67
4.1.3 Vokabular67
4.2 Kommunikation69
4.2.1 Persönliche Teammeetings69
4.2.2 Persönliche Projektmeetings70
4.2.3 Mitarbeiterrotation71
4.2.4 Kommunikation hat ihren Preis71
4.2.5 Kenntnis des Kommunikationsflusses72
4.3 Kulturelle Unterschiede73
4.3.1 Fokus auf Gemeinsamkeiten74
4.3.2 Gestaltung einer Kultur75
4.3.3 Realistische Planung77
4.3.4 Verantwortung übernehmen77
4.3.5 Probleme ansprechen78
4.3.6 Ehrliches Feedback geben79
4.3.7 Lärm80
4.3.8 Humor81
4.3.9 Sorgfältige Auswahl der Kommunikationsmedien81
4.4 Zusammenfassung83
5 Standorte in Verbindung halten84
5.1 Kommunikationsvermittler85
5.1.1 Kommunikationsvermittler als Vertrauensperson86
5.1.2 Kompetenzen eines Kommunikationsvermittlers86
5.1.3 Management durch Herumfliegen86
5.2 Botschafter87
5.2.1 Standorte repräsentieren88
5.2.2 Eigenschaften und Kompetenzen eines Botschafters89
5.2.3 Terminplan90
5.2.4 Konkrete Aufgaben90
5.3 Soziale Verbindungen91
5.3.1 Gemeinsam feiern91
5.3.2 Die Kraft der Bilder91
5.3.3 Am Leben der anderen teilhaben92
5.3.4 Reisen angenehmer machen92
5.4 Werkzeuge93
5.4.1 Direkte Verbindungen93
5.4.2 Synchron versus asynchron94
5.4.3 Audio oder Video95
5.4.4 Instant Messaging96
5.4.5 E-Mail97
5.4.6 Virtueller Raum98
5.4.7 Gemeinsames Repository98
5.4.8 Wiki und andere Kollaborationsplattformen98
5.5 Zusammenfassung100
6 Entwickeln und Ausliefern102
6.1 Iterationen103
6.1.1 Iterationslänge103
6.1.2 Das Konzept von done-done104
6.1.3 Iterationen als Herzschlag105
6.1.4 Verzögern der Auslieferung105
6.2 Release107
6.2.1 Release-Iteration107
6.2.2 Releasestandort108
6.3 Integration und Build108
6.3.1 Lokal funktionierende Integration109
6.3.2 Integration erfordert Aufwand109
6.3.3 Ein fehlgeschlagener Build stoppt die Produktion111
6.3.4 Integration als Herz des Projekts112
6.4 Infrastruktur113
6.4.1 Prozesse und Werkzeuge für Integration und Build113
6.4.2 Konfigurationsmanagement115
6.4.3 Strom118
6.4.4 Netzwerk118
6.4.5 Sicherheit119
6.4.6 Werkzeuge120
6.5 Zusammenfassung120
7 Der Geschäftswert ist das Ziel122
7.1 Steuerung mithilfe wertvoller Funktionalitäten122
7.1.1 Verbindung zum realen Kunden123
7.1.2 Iterationsvorbereitung125
7.1.3 Anforderungen verstehen127
7.1.4 Benötigte Dokumentation als Anforderung behandeln128
7.2 Teamgeschwindigkeit129
7.2.1 Mit unbekannter Teamgeschwindigkeit planen129
7.2.2 Schätzeinheit131
7.2.3 Planungspoker132
7.2.4 Unterschiedliche Teamgeschwindigkeiten135
7.3 Iterationsplanung136
7.3.1 Featureteams planen individuell136
7.3.2 Planungstreffen137
7.3.3 Termin für das Planungstreffen138
7.3.4 Handfeste Planungswerkzeuge139
7.4 Iterationsverfolgung140
7.4.1 Planungs- und Nachverfolgungswerkzeuge140
7.4.2 Ziele im Fokus behalten141
7.5 Umgang mit Änderungen143
7.5.1 Die Iterationslänge bestimmt das Antwortzeitverhalten144
7.5.2 Mit Änderungswünschen umgehen144
7.5.3 Die Teamstruktur verändern145
7.6 Projektplan146
7.6.1 Releaseplanung146
7.6.2 Prognosen148
7.6.3 Release versus Meilenstein149
7.7 Zusammenfassung150
8 Feedback152
8.1 Den Kunden involvieren153
8.1.1 Wer ist der Kunde?153
8.1.2 Kunde auf Distanz154
8.1.3 Kundenpräsentation