Über die leichtgewichtigen bzw. agilen Softwareentwicklungsmodelle wurde in den letzten Jahren verstärkt diskutiert. Das zeigt sich durch die vermehrte Anzahl an den in Buchform erschienen Modellen bzw. an vielen veröffentlichten Fachartikeln.
Diese Modelle bilden den Rahmen, um Software effizient und rasch entwickeln zu können. Im Unterschied zu den Schwergewichtigen versuchen sie, Software mit weniger Vorgaben und Richtlinien zu erstellen und rasch auf Kundenwünsche zu reagieren. Sie sind weniger formal beschrieben als die Schwergewichtigen und lassen den Softwareentwicklern einen größeren Freiraum, u. a. beim Entwurf. Doch nicht alle agilen Modelle sind für jede Art von Projekt gleich gut geeignet. Einige Modelle eignen sich auf Grund ihrer reglementierten Richtlinien nur für kleine bis mittelgroße Projekte, die anderen sind weniger formal beschrieben und auch in größeren Projekten anwendbar.
Die in dieser Diplomarbeit beschriebenen Modelle erschienen alle in Buchform, doch auf verschiedene Kriterien wie Stärken und vor allem Schwächen gingen die Modellentwickler nicht detailliert ein. In dieser Arbeit werden acht agile Modelle beschrieben und anhand verschiedener Kriterien verglichen, deren Einsatzbereiche eruiert und Stärken und Schwächen aufgezeigt. Darüber hinaus wird ein Fragebogen erstellt, der Hinweise darüber geben soll, ob bzw. welche agilen Modelle in der Praxis eingesetzt werden und welche Stärken und Schwächen bei agiler Entwicklung auftreten können. Die Durchführung der Befragung ist nicht mehr Teil dieser Diplomarbeit, sie kann jedoch im Rahmen einer darauf aufbauenden Arbeit erfolgen.
Inhaltsverzeichnis
1 EINLEITUNG
1.1 MOTIVATION
1.2 AUFGABENSTELLUNG UND ZIELSETZUNG
1.3 AUFBAU DER ARBEIT
2 GRUNDLAGEN
2.1 BEGRIFFSDEFINITIONEN
2.2 SOFTWAREENTWICKLUNGSMODELLE
2.2.1 Schwergewichtige Modelle
2.2.2 Leichtgewichtige Modelle
2.2.3 Unterschiede zwischen leicht- und schwergewichtigen Modellen
2.3 PHASEN UND PROZESSE DER SOFTWAREENTWICKLUNG
2.3.1 Phasen
2.3.2 Prozesse
2.4 ZUSAMMENFASSUNG
3 AGILE SOFTWAREENTWICKLUNGSMODELLE
3.1 DAS MANIFEST DER AGILEN SOFTWAREENTWICKLUNG
3.2 EIGENSCHAFTEN DER AGILEN MODELLE
3.3 EINSATZBEDINGUNGEN DER AGILEN MODELLE
3.4 ZUSAMMENFASSUNG
4 AUSGEWÄHLTE VERTRETER AGILER MODELLE
4.1 PROBLEMSTELLUNG UND ZIELSETZUNG
4.2 HINWEISE ZU DEN ORIGINALQUELLEN
4.3 KONKRETE ENTWICKLUNGSMODELLE
4.3.1 Extreme Programming (XP)
4.3.2 Feature Driven Development (FDD)
4.3.3 Dynamic Systems Development Method (DSDM)
4.3.4 Agile Modeling (AM)
4.4 MANAGEMENTMODELLE
4.4.1 Adaptive Software Development (ASD)
4.4.2 Lean Development (LD)
4.4.3 Scrum
4.4.4 Crystal-Modellfamilie
4.5 ZUSAMMENFASSUNG
5 VERGLEICH DER VERTRETER AGILER MODELLE
5.1 SOFTWAREENTWICKLUNGS-LEBENSZYKLUS
5.2 PROJEKTMANAGEMENT
5.3 KONFIGURATIONSMANAGEMENT
5.4 ÄNDERUNGSMANAGEMENT
5.5 ABSTRAKTE PRINZIPIEN ODER KONKRETE ANLEITUNG
5.6 VORDEFINIERT ODER SITUATIONSANGEPASST
5.7 WEITERE KRITERIEN
5.7.1 Projektteams
5.7.2 Entwicklungszyklen
5.7.3 Treffen
5.8 ZUSAMMENFASSUNG
6 STÄRKEN UND SCHWÄCHEN
6.1 PROJEKT
6.1.1 Kriterien Projekt
6.1.2 Bewertung Projekt
6.2 ORGANISATION
6.2.1 Kriterien Organisation
6.2.2 Bewertung Organisation
6.3 PROZESS
6.3.1 Kriterien Prozess
6.3.2 Bewertung Prozess
6.4 ENTWICKLUNG
6.4.1 Kriterien Entwicklung
6.4.2 Bewertung Entwicklung
6.5 TEST
6.5.1 Kriterien Test
6.5.2 Bewertung Test
6.6 MITARBEITER
6.6.1 Kriterien Mitarbeiter
6.6.2 Bewertung Mitarbeiter
6.7 KUNDEN
6.7.1 Kriterien Kunden
6.7.2 Bewertung Kunden
6.8 TEAM
6.8.1 Kriterien Team
6.8.2 Bewertung Team
6.9 INTERPRETATION
6.9.1 Kriterien Interpretation
6.9.2 Bewertung Interpretation
6.10 ZUSAMMENFASSUNG
7 FRAGEBOGEN
7.1 GRUNDLAGEN
7.2 ZIEL DES FRAGEBOGENS
7.3 STRUKTURIERUNG
7.3.1 Einleitungsfragen
7.3.2 Fragen zum Softwareentwicklungsprozess
7.3.3 Modellspezifische Fragen
7.3.4 Fragen zu den Stärken/Schwächen agiler Softwareentwicklung
7.3.5 Abschließende Fragen
8 ZUSAMMENFASSUNG UND AUSBLICK
Zielsetzung & Themen
Die Diplomarbeit verfolgt das Ziel, agile Softwareentwicklungsmodelle aus einer neutralen Perspektive zu analysieren, zu charakterisieren und miteinander sowie mit schwergewichtigen Modellen zu vergleichen, um ihre spezifischen Stärken und Schwächen herauszuarbeiten. Die Forschungsfrage fokussiert dabei darauf, ob ein "ideales" agiles Modell existiert, das unabhängig von Projektgröße und Branche universell einsetzbar ist, und welche Kriterien dabei als Entscheidungsgrundlage für Unternehmen dienen können.
- Charakterisierung und systematischer Vergleich von acht ausgewählten agilen Modellen
- Analyse der Stärken, Schwächen und Risiken bei der Anwendung agiler Methoden
- Untersuchung der Einsatzbedingungen in Abhängigkeit von Projektgröße und Teamstrukturen
- Konzeption eines Fragebogens zur empirischen Untersuchung agiler Praktiken in der Unternehmenspraxis
Auszug aus dem Buch
4.3.1 Extreme Programming (XP)
XP ist das bekannteste agile Softwareentwicklungsmodell und wurde Mitte der 90er Jahre von Kent Beck, Ward Cunningham und Ron Jeffries entwickelt [Coldewey 2002 S. 74]. XP ist als Sammlung von bewährten Praktiken (engl. Best Practices) anzusehen, mit denen man Software effizient und rasch entwickeln kann.
Das Modell konzentriert sich auf die Abwicklung von Projekten mit sich häufig ändernden Anforderungen, was im Laufe der Zeit zu hohen Änderungskosten führen kann. Die Kosten steigen im Gegensatz zu schwergewichtigen Entwicklungsmodellen nur anfänglich und bleiben im Laufe des Projektes konstant. Der Kurs von XP ist vergleichbar mit einer Autofahrt, wo der Weg jederzeit den Gegebenheiten angepasst werden kann. Das Projekt wird vom Kunden gesteuert, der von den Softwareentwicklern Feedback über den aktuellen Stand erhält [Beck 2000 S. 154]. Diese Vorgehensweise birgt die Gefahr in sich, dass durch zahlreiche und kurzfristige Änderungen die vorgeschlagenen Arbeitstechniken (Praktiken) nicht beachtet werden (siehe Kapitel „Praktiken bei XP“, S. 46).
Konflikte zwischen kurzfristigen und langfristigen Zielen werden deshalb in Gruppen auf der Basis folgender vier Werte ausgetragen [Beck 2000 S. 29-35]:
Kommunikation (engl. Communication): Der Kommunikationsfluss muss zwischen allen Beteiligten aufrecht erhalten und mögliche Kommunikationsprobleme eruiert und beseitigt werden. Probleme werden besprochen und Lösungsalternativen vorgeschlagen.
Einfachheit (engl. Simplicity): Ein Problem muss auf die einfachste Art gelöst werden und das Projektteam soll sich nicht mit zukünftigen Fragestellungen auseinander setzen.
Rückmeldung (engl. Feedback): Der Zustand des Systems bzw. des Projekts muss erfasst werden und regelmäßige Rückmeldungen liefern. Diese Rückmeldungen enthalten dabei Informationen über den Projektfortschritt sowie Kundenwünsche und Entwicklerprobleme.
Mut (engl. Courage): Mut wird benötigt, um überflüssigen Code zu entfernen und um Fehler von anderen Entwicklern auszubessern. Dadurch sollen Probleme rasch erkannt und der Projekterfolg langfristig gesichert werden.
Zusammenfassung der Kapitel
1 EINLEITUNG: Definiert die Motivation, Zielsetzung und den Aufbau der Arbeit, wobei die wachsende Bedeutung agiler Modelle in der Softwareentwicklung betont wird.
2 GRUNDLAGEN: Führt in die Begrifflichkeiten ein und erläutert die wesentlichen Unterschiede zwischen leichtgewichtigen (agilen) und schwergewichtigen Vorgehensmodellen sowie grundlegende Phasen und Prozesse.
3 AGILE SOFTWAREENTWICKLUNGSMODELLE: Analysiert das "Manifest der agilen Softwareentwicklung" und leitet daraus die zentralen Eigenschaften und Einsatzbedingungen agiler Methoden ab.
4 AUSGEWÄHLTE VERTRETER AGILER MODELLE: Detaillierte Beschreibung von acht relevanten agilen Modellen, unterteilt in konkrete Entwicklungsmodelle und Managementmodelle.
5 VERGLEICH DER VERTRETER AGILER MODELLE: Gegenüberstellung der untersuchten Modelle anhand spezifischer Kriterien wie Lebenszyklus, Projekt- und Konfigurationsmanagement.
6 STÄRKEN UND SCHWÄCHEN: Identifikation und Bewertung der Vor- und Nachteile agiler Modelle, untergliedert in Kategorien wie Projekt, Organisation, Prozess, Entwicklung, Test, Mitarbeiter und Kunden.
7 FRAGEBOGEN: Erläutert das Ziel und die Struktur eines Fragebogens, der zur empirischen Untersuchung der Anwendung agiler Modelle in der Praxis dient.
8 ZUSAMMENFASSUNG UND AUSBLICK: Fasst die Kernergebnisse der Arbeit zusammen und gibt einen Ausblick auf notwendige zukünftige Untersuchungen.
Schlüsselwörter
Agile Softwareentwicklung, Extreme Programming, Scrum, Feature Driven Development, Lean Development, Softwareentwicklungsmodelle, Projektmanagement, Anforderungsmanagement, iterative Entwicklung, Softwarequalität, Kundenzufriedenheit, Prozessoptimierung, Test-First-Ansatz, Änderungsmanagement, Kristall-Modellfamilie
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit untersucht leichtgewichtige, sogenannte agile Softwareentwicklungsmodelle, analysiert deren theoretische Grundlagen, vergleicht ihre Praktiken und bewertet sie hinsichtlich ihrer Stärken und Schwächen.
Was sind die zentralen Themenfelder?
Die zentralen Themen umfassen die Philosophie der Agilität, die Differenzierung zwischen konkreten Entwicklungsmodellen und Managementmodellen sowie die Anwendung agiler Praktiken in verschiedenen Projektgrößen und -umgebungen.
Was ist das primäre Ziel der Untersuchung?
Das Ziel ist ein neutraler Vergleich agiler Ansätze, um Unternehmen eine Entscheidungsgrundlage zu liefern, welches Modell sich für ihre spezifischen Anforderungen am besten eignet.
Welche wissenschaftliche Methode wird verwendet?
Es handelt sich um eine Literaturarbeit, die existierende Modelle analysiert und systematisch vergleicht, ergänzt durch die Konzeption eines empirischen Fragebogens zur Untersuchung der Praxisrelevanz.
Was wird im Hauptteil behandelt?
Im Hauptteil werden acht agile Modelle im Detail vorgestellt (XP, FDD, DSDM, AM, ASD, LD, Scrum, Crystal), nach verschiedenen Kriterien verglichen und deren Vor- und Nachteile in Kategorien wie Prozess, Test und Teamarbeit bewertet.
Welche Schlüsselwörter charakterisieren die Arbeit?
Zu den wichtigsten Begriffen gehören Agilität, Softwareentwicklungsprozess, Pair Programming, iterative Entwicklung und die Abgrenzung zu traditionellen schwergewichtigen Methoden.
Warum ist eine Unterscheidung zwischen Entwicklungs- und Managementmodellen wichtig?
Entwicklungsmodelle bieten konkrete Prozessschritte und Praktiken für die tägliche Arbeit, während Managementmodelle den Fokus auf übergeordnete Rahmenbedingungen legen und dem Team mehr Freiraum bei der Prozessgestaltung lassen.
Wie gehen die Modelle mit der Anforderung der "Kundeneinbindung" um?
Die meisten agilen Modelle betrachten die aktive Einbindung des Kunden als essenziell für den Erfolg, wobei die Intensität und Form (z.B. "Kunde vor Ort" bei XP) je nach Modell variiert.
Welche Rolle spielt die Dokumentation in agilen Modellen?
Agile Modelle bevorzugen direkte Kommunikation und funktionierende Software gegenüber einer umfangreichen Dokumentation. Dokumentation wird nur dann erstellt, wenn sie für den Projekterfolg unbedingt notwendig ist.
- Quote paper
- Mag. Thomas Ecker, Michael Wesinger (Author), 2005, Stärken und Schwächen agiler Softwareentwicklungsmodelle, Munich, GRIN Verlag, https://www.grin.com/document/186037