Technik Jürgen Götzenauer Agile Methoden in der Softwareentwicklung Vergleich und Evaluierung Diplomarbeit
Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.dnb.de/ abrufbar. Dieses Werk sowie alle darin enthaltenen einzelnen Beiträge und Abbildungen sind urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsschutz zugelassen ist, bedarf der vorherigen Zustimmung des Verlages. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen, Auswertungen durch Datenbanken und für die Einspeicherung und Verarbeitung in elektronische Systeme. Alle Rechte, auch die des auszugsweisen Nachdrucks, der fotomechanischen Wiedergabe (einschließlich Mikrokopie) sowie der Auswertung durch Datenbanken oder ähnliche Einrichtungen, vorbehalten. Impressum: Copyright 2006 GRIN Verlag, Open Publishing GmbH ISBN: 978-3-640-33480-3 Dieses Buch bei GRIN: http://www.grin.com/de/e-book/127411/agile-methoden-in-der-softwareentwicklung
Jürgen Götzenauer Agile Methoden in der Softwareentwicklung Vergleich und Evaluierung GRIN Verlag
GRIN - Your knowledge has value Der GRIN Verlag publiziert seit 1998 wissenschaftliche Arbeiten von Studenten, Hochschullehrern und anderen Akademikern als ebook und gedrucktes Buch. Die Verlagswebsite www.grin.com ist die ideale Plattform zur Veröffentlichung von Hausarbeiten, Abschlussarbeiten, wissenschaftlichen Aufsätzen, Dissertationen und Fachbüchern. Besuchen Sie uns im Internet: http://www.grin.com/ http://www.facebook.com/grincom http://www.twitter.com/grin_com
Götzenauer, Jürgen Agile Methoden in der Software Entwicklung - Vergleich und Evaluierung eingereicht als D I P L O M A R B E I T an der Hochschule Mittweida (FH) University of Applied Sciences Fachbereich Informationstechnik & Elektrotechnik Graz, 2005 Vorgelegte Arbeit wurde verteidigt am: 16. Januar 2006
Bibliografische Beschreibung Götzenauer, Jürgen: Agile Methoden in der Softwareentwicklung - Vergleich und Evaluierung. - 2005-103 S. Graz, Hochschule Mittweida (FH), Fachbereich Informationstechnik & Elektrotechnik, Diplomarbeit, 2005 Referat Die Software-Industrie steht heute mehr denn je vor der Tatsache, dass ein Großteil der beauftragten Projekte die geforderte Qualität nicht erreicht, Zeit- und Budgetvorgaben überschritten werden, oder im schlimmsten Fall das Projekt noch während der Entwicklung abgebrochen wird. Die Anforderungen der Kunden an die beauftragte Software sind unklar, der Zeitraum zwischen Vertragsunterzeichnung und Auslieferung des Endprodukts wird zunehmend enger und die Entwicklung in verteilten Teams steht in Zeiten der Globalisierung an der Tagesordung. Der Übergang von den traditionellen Softwareentwicklungsmethoden hin zu leichtgewichtigen und agilen Vorgehensmodellen ist eine der Möglichkeiten sich diesen Herausforderungen erfolgreich zu stellen. Das Ziel der vorliegenden Arbeit ist es, die Eigenschaften und Schwerpunkte der verschiedenen Vertreter der Agilen Methoden zu erarbeiten und zu vergleichen. Zusätzlich soll aus diesen Vertretern der Agilen Methoden ein geeignetes Vorgehensmodell für die Entwicklungsabteilung eines weltweit agierenden Unternehmens im Bereich der Telekommunikation und Systemintegration ermittelt werden. Hierfür werden die unternehmensinternen Anforderungen erarbeitet und daraus ein Kriterienkatalog abgeleitet, wobei besonderes Augenmerk auf die Umsetzungsmöglichkeiten in global verteilten Softwareentwicklungsprojekten gelegt wird. 1
Danksagung Ich möchte mich bei Herrn Prof. Dr.-Ing. Uwe Schneider von der Hochschule Mittweida herzlich für seine Unterstützung bei der Umsetzung der vorliegenden Arbeit bedanken. Mein Dank gilt auch Herrn Dipl.-Ing. Mario Walder von der BearingPoint INFONOVA GmbH, der mir die Möglichkeit gab, die vorliegende Arbeit innerhalb meines beruflichen Umfelds umzusetzen und mir immer mit Rat und Tat zur Verfügung stand. Weiters möchte ich mich bei Herrn Dr. Peter Hruschka von der Atlantic Systems Guild für seine wertvollen Anregungen hinsichtlich der Anwendbarkeit Agiler Methoden in global verteilten Softwareentwicklungsprojekten bedanken. Mein ganz besonderer Dank gilt jedoch meiner Frau Martina und meiner Familie, die mir auch in den entbehrungsreichen Zeiten des berufsbegleitenden Studiums zur Seite standen und immer für mich da waren. Jürgen Götzenauer Graz, am 20. Dezember 2005 2
Inhaltsverzeichnis 1 Einleitung 8 1.1 Motivation.................................... 8 1.2 Zielsetzung.................................... 10 1.3 Gliederung.................................... 11 2 Klassische Softwareentwicklung 13 2.1 Die Softwarekrise................................. 13 2.2 Software Engineering - Methodik als Lösungsansatz.............. 15 2.3 Traditionelle Vorgehensmodelle......................... 16 2.3.1 Das Phasen- oder Wasserfallmodell................... 16 2.3.2 Das V-Modell............................... 19 2.3.3 Das Spiralmodell............................. 20 2.4 Erfolgskriterien in Softwareprojekten...................... 21 3 Agile Softwareentwicklung 25 3.1 Eine neue Bewegung entsteht.......................... 25 3.2 Das Agile Manifest................................ 26 3.3 Die vier Agilen Werte.............................. 28 3.3.1 Individuen und Interaktionen...................... 28 3.3.2 Funktionierende Software........................ 28 3.3.3 Zusammenarbeit mit dem Kunden................... 28 3.3.4 Vorbereitung auf unbekannte Änderungen............... 29 3.4 Die zwölf Agilen Prinzipien........................... 29 4 Anforderungen an einen Entwicklungsprozess 31 4.1 Einordnung der Agilen Vorgehensmodelle................... 31 4.2 Unternehmensspezifische Anforderungen.................... 32 4.2.1 Unternehmensdarstellung........................ 32 4.2.2 Projekteigenschaften und Arbeitsumfeld................ 32 4.3 Der Kriterienkatalog............................... 35 4.3.1 Einordnung der Agilen Methodik.................... 36 4.3.2 Projektgröße............................... 36 4.3.3 Projektphasen.............................. 37 4.3.4 Gewichtung................................ 37 4.3.5 Projektumwelt.............................. 38 3
5 Vergleich und Evaluierung 39 5.1 Adaptive Software Development (ASD).................... 39 5.1.1 Rollen und Verantwortlichkeiten.................... 40 5.1.2 Prozessbeschreibung........................... 40 5.1.3 Praktiken und Charakteristika..................... 42 5.1.4 Zusammenfassung und Evaluierung................... 43 5.2 Crystal Methods................................. 45 5.2.1 Rollendefinitionen............................ 47 5.2.2 Prozessbeschreibung........................... 48 5.2.3 Praktiken und Charakteristika..................... 50 5.2.4 Zusammenfassung und Evaluierung................... 51 5.3 Scrum....................................... 53 5.3.1 Rollen und Verantwortlichkeiten.................... 53 5.3.2 Prozessbeschreibung........................... 54 5.3.3 Praktiken und Charakteristika..................... 56 5.3.4 Zusammenfassung und Evaluierung................... 58 5.4 Dynamic Systems Development Method (DSDM)............... 60 5.4.1 Rollen und Verantwortlichkeiten.................... 61 5.4.2 Prozessbeschreibung........................... 61 5.4.3 Praktiken und Charakteristika..................... 63 5.4.4 Zusammenfassung und Evaluierung................... 64 5.5 Extreme Programming (XP).......................... 66 5.5.1 Rollen und Verantwortlichkeiten.................... 67 5.5.2 Prozessbeschreibung........................... 67 5.5.3 Praktiken und Charakteristika..................... 69 5.5.4 Zusammenfassung und Evaluierung................... 71 5.6 Feature Driven Development (FDD)...................... 73 5.6.1 Rollen und Verantwortlichkeiten.................... 73 5.6.2 Prozessbeschreibung........................... 75 5.6.3 Praktiken und Charakteristika..................... 77 5.6.4 Zusammenfassung und Evaluierung................... 78 5.7 Zusammenfassung der Evaluierung....................... 80 6 Agile Methoden und global verteilte Entwicklung 81 6.1 Eigenschaften gobal verteilter Entwicklung................... 81 6.2 Organisatorische Komplexität in global verteilter Entwicklung........ 82 6.3 Agile Praktiken in global verteilter Entwicklung................ 83 6.4 Umsetzung in der BearingPoint INFONOVA GmbH............. 86 7 Zusammenfassung 88 7.1 Resümee...................................... 88 7.2 Ergebnisse..................................... 89 7.3 Schlussbemerkung und Ausblick......................... 93 Literaturverzeichnis 95 4