Inhaltsverzeichnis
1 Entstehung und Ursprung von agiler Softwareentwicklung 3
2 Methoden der Softwareentwicklung 5
2.1 Klassifikation von Softwareentwicklungsmethoden 5
2.2 Agile Methoden der Softwareentwicklung 6
3 Scrum als Methode der agilen Softwareentwicklung 8
3.1 Was passiert wann? Der Scrum-Prozess 9
3.2 Ohne sie geht nichts - Die Rollen bei Scrum 11
3.2.1 ProductOwner 11
3.2.2 Team 12
3.2.3 ScrumMaster 13
3.3 Wie alles beginnt - Die Strategische Planungsphase 14
3.3.1 Alles beginnt mit der Vision 15
3.3.2 Planungsebenen in Scrum 16
3.3.3 Product Backlog 17
3.4 Die Implementierung beginnt - Der Projektablauf 18
3.4.1 Die Taktische Planungsphase 19
3.4.2 Umsetzung des Sprints 21
3.4.3 Nachbereitung des Sprints 23
4 Praxiseinsatz von Scrum 26
Literaturverzeichnis 27
II
Kapitel 1: Entstehung und Ursprung von agiler Softwareentwicklung
1 Entstehung und Ursprung von agiler Softwareentwicklung
Ende der 50er / Anfang der 60er Jahre entstehen die ersten Softwareentwicklungen - anfangsnoch wenig komplex und meist nur zu wissenschaftlichen Zwecken. Vor allem unzureichende Hardware verhindert leistungsfähige und wirtschaftlich einsetzbare Programme. Mitte der 60er beginnen Computer die Unternehmenswelt im großen Stil zu erobern und somit steigen die Anforderungen an Hard- und Software. Wo Hardware durch den Einsatz von Transistoren und integrierten Schaltkreisen problemlos den wachsenden Ansprüchen gerecht wird, stockt es bei der Entwicklung von Software. Immer komplexer werdende Programme benötigen ganz neue Planungstechniken, Arbeits- und Denkweisen, die zu diesem Zeitpunkt noch nicht vorhanden sind. Dies führt oft zu einer hohen Anzahl von Fehlern in den Programmen, Nichteinhaltung von Projektfristen und dramatischen Fehlkalkulationen bei den Entwicklungskosten. 1965 war es schließlich so weit, dass man von der sog. Softwarekrise zu sprechen begann und neue Methoden der Softwareentwicklung dringend erforderlich wurden. [DK05, S. 15-18]
Die Geburtsstunde des noch heute etablierten Begriffs Software Engineering war 1968 auf der ersten Software-Engineering-Konferenz in Garmisch-Partenkirchen. Um die Softwarekrise bald beenden zu können, wollte man Planungstechniken aus den Ingenieurswissenschaften für die Softwareentwicklung adaptieren. Die dabei entstandenen Techniken werden heute oft als die „klassischen Methoden der Softwareentwicklung“ bezeichnet und brachten nur einen begrenzten Erfolg. Grund hierfür ist ein gravierender Unterschied zwischen Softwareentwicklung und Ingenieurswissenschaft: Beispielsweise beim Bau einer Brücke sind die meisten Faktoren wie Flussverlauf und Untergrund bereits vor Baubeginn ermittelbar und ändern sich nur sehr selten im Projektverlauf. Bei der Softwareentwicklung stellt sich der Sachverhalt ganz anders dar: Gerade in einem stark dynamischen Umfeld sind die einst erhobenen Anforderungen schnell überholt. [DH04]
Das Schlüsselwort lautet hier „Flexibilität“ (oder auch oft als „Agilität“ bezeichnet). Zu diesem Zwecke wurden in den vergangenen 15 Jahren viele sog. „Agile Softwareentwicklungsmethoden“ entwickelt, die Risiken wie Terminverzögerung, geänderte Kun-denanforderungen, zu hohe Fehlerrate und weiterentwickelte Geschäftsprozesse minimieren sollen. Eine der am schnellsten wachenden agilen Methoden ist Scrum. Diese
3
Kapitel 1: Entstehung und Ursprung von agiler Softwareentwicklung
Methodik zeichnet sich, laut einem seiner Mitbegründer Ken Schwaber [Sc07], vor allem durch seine Einfachheit in der Erlernung und Anwendung aus. Scrum gibt seinem Anwender einige wenige Verfahren und Werkzeuge (sog. Artefakte) an die Hand, mit denen sich selbst komplexe Projekte bewerkstelligen lassen. Aber Scrum ist nicht nur in der Theorie sehr vielversprechend. Wie die beiden Yahoo!-Produktmanager Deemer und Benefield [DB07] berichten, wenden viele Unternehmen, darunter Marktriesen wie Yahoo! selber, Microsoft, Google, Motorola, SAP oder Cisco, Scrum erfolgreich an und wollen auch zukünftig daran festhalten.
Das folgende Kapitel befasst sich ausführlicher mit der Klassifizierung von Softwareentwicklungsmethodiken. Dadurch wird vor allem deutlich, welchen Platz agile Vorgehensmodelle und speziell Scrum im Software-Management einnehmen. Kapitel 3 beschreibt Scrum detailliert und bildet damit das Herzstück dieser Ausarbeitung. Neben der Beschreibung des Scrum-Prozesses wird dabei auf alle auftauchenden Rollen, Vorgänge und Meetings ausführlich eingegangen.
Das Ende dieser Ausarbeitung soll zeigen, wie weit verbreitet Scrum aktuell ist und wo weitere Potentiale dieser Methodik liegen.
4
Kapitel 2: Methoden der Softwareentwicklung
2 Methoden der Softwareentwicklung
2.1 Klassifikation von Softwareentwicklungsmethoden
Um Scrum besser zu verstehen, werden im Folgenden die verschiedenen Klassen der Softwareentwicklungsmethoden vorgestellt. Laut Dornberger und Habegger [DH04] wird in einem ersten Schritt zwischen der „Softwareentwicklung ohne Methode“ und der „Methodischen Softwareentwicklung“ unterschieden.
Abb. 1: Klassifikation der Softwareentwicklungsmethoden
Der linke Ast des Klassifikationsbaums in Abb. 1 wird auch oft als reines „Hacking“ bezeichnet. Hierbei fängt ein Entwickler ohne vorherige Planung direkt mit der Implementierung an. Die Nachteile liegen auf der Hand: Zwar werden hierdurch Zeit und Kosten gespart, aber durch Personalwechsel im Entwicklerteam oder geänderte Anforderungen ist eine Weiterentwicklung oder Erweiterung oft nur schwer bis gar nicht möglich. Wenn überhaupt, eignet sich diese Methode bei kleinen Projekten mit einem oder wenigen Entwicklern.
Wie bereits in Kapitel 1 kurz erläutert, unterscheidet man in der methodischen Softwareentwicklung heute zwischen klassischen und agilen Methoden. Klassische Vertreter sind beispielsweise das Wasserfallmodell, das V-Modell und das objektorientierte Vorgehensmodell. Ziel von den Vertretern dieser Art ist es, die Entwicklung so gut wie möglich planbar zu machen, um möglichst gegen allen Eventualitäten gerüstet zu sein. Beim Vorgehen haben die klassischen Methodiken dabei alle eines gemeinsam: Die Entwicklung ist in eine Reihe von Phasen eingeteilt, die nacheinander durchlaufen wer-
5
Kapitel 2: Methoden der Softwareentwicklung
den bis das fertige Produkt erstellt ist. Daraus folgt in der Regel, dass Anforderungsanalyse und Fertigstellung zeitlich sehr weit voneinander entfernt sind und nachträgliche Anforderungsänderungen oft nur schwer zu handhaben sind [DH04, S. 4]. Demgegenüber zeichnen sich agile Methodiken vor allem durch Flexibilität im Projektablauf aus. So ist beispielsweise die Zusammenarbeit mit dem Kunden wichtiger als die Aushandlung eines Vertrages. Zugunsten der Flexibilität wird deshalb i. d. R. auf detaillierte Anforderungsanalysen zu Projektbeginn verzichtet. Scrum beispielsweise plant die Anforderungen an eine Software anfangs nur sehr grob und wenig detailliert. Erst im Laufe des Entstehungsprozesses werden diese genauer ausgearbeitet und bleiben so zu jedem Zeitpunkt leicht aktualisier- und veränderbar.
Um die Grundprinzipien agiler Entwicklung festzuhalten haben sich im Februar 2001 Vertreter vieler agiler Methoden, darunter auch mehrere der Scrum-Begründer, getrof- fenund das „Agile Manifest“ [BB01] verfasst. In dieser Arbeit bewerten sie x Individuen und Interaktionen höher als Prozesse und Werkzeuge, x laufende Software höher als ausgedehnte Dokumentation, x Zusammenarbeit mit dem Kunden höher als Vertragsverhandlungen und x Reaktionen auf Veränderung höher als Planverfolgung.
2.2 Agile Methoden der Softwareentwicklung
Obwohl agile Methoden noch nicht lange existieren, gibt es heute bereits eine Vielzahl an veröffentlichten Methodiken, die sich als „agil“ bezeichnen. Ob diese Bezeichnung immer korrekt ist lässt sich nur schwer beantworten, denn die Grenze zwischen klassischen und agilen Methoden ist stellenweise sehr verschwommen [BK08, S. 114]. Um sich in diesem Wust von Verfahren zurecht zu finden, haben sich Dogs und Klimmer [DK05] die Arbeit gemacht verschiedene Klassen für agile Softwareentwicklungsmethoden auszuarbeiten. Mit ihrer Hilfe wird am Ende dieses Abschnitts klarer, was sich hinter dem Begriff „Scrum“ verbirgt und wo die Unterschiede zu anderen agilen Methoden liegen.
6
Kapitel 2: Methoden der Softwareentwicklung
Grundsätzlich gliedern die beiden Autoren agile Methodiken in vier Klassen: x Prozessorientierte Methodiken: In dieser Klasse finden sich Methoden, die sich sehr stark auf einen Prozess konzentrieren. Dabei setzen sie im Gegensatz zu werkzeugzentrierten Methodiken keinerlei Entwicklungspraktiken voraus. x Mitarbeiterzentrierte Methodiken: Mitarbeiterzentrierte Methoden stellen den Menschen in den Mittelpunkt und sehen ihn als zentrales Element der Entwicklung.
x Werkzeugorientierte Methodiken: Diese Art von Methoden schreibt dem Anwender spezielle Werkzeuge, wie beispielsweise den Einsatz von UML vor. x Unvollständige Methodiken: Unter unvollständigen Methoden werden alle Methodiken zusammengefasst, die nach den agilen Grundvorstellungen und Werten agieren, aber für sich alleine nicht ausreichen um funktionierende Software entwickeln zu können.
Scrum ordnen Dogs und Klimmer zusammen mit Methodiken wie Extreme Programming (XP) und Feature-Driven-Development (FDD) den prozessorientierten Methodiken zu. Aus dieser Einteilung wird bereits ersichtlich, dass bei Scrum ein Prozess (der „Scrum-Prozess“) im Vordergrund steht.
Um einen Überblick über dieses zentrale Konstrukt zu bekommen, wird der Scrum-Prozess in Kapitel 3.1 einleitend grob beschrieben. Im weiteren Verlauf des folgenden Kapitels wird dann detailliert auf alle in ihm enthaltenen Meetings, Artefakte und Rollen eingegangen, um so eine genaue Vorstellung über die Ausgestaltung und Anwendung von Scrum zu bekommen.
7
Arbeit zitieren:
Eric Dreyer, 2008, Agiles Projektmanagement mit Scrum, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
Informatik - Angewandte Informatik: Agiles Projektmanagement mit Scrum ist nun auf dem Buchmarkt erhältlich
Informatik - Angewandte Informatik: neuer Titel erschienen: Agiles Projektmanagement mit Scrum
Eric Dreyer hat einen neuen Text hochgeladen
Software Reuse: Methods, Techniques, and Tools
8th International Conference, ...
Charles Krueger, Jan Bosch
Extreme Programming and Agile Methods - XP/Agile Universe 2004
4th Conference on Extreme Prog...
Carmen Zannier, Hakan Erdogmus, Lowell Lindstrom
Extreme Programming and Agile Methods - XP/Agile Universe 2002
Second XP Universe and First A...
Don Wells, Lauris Williams
Extreme Programming and Agile Methods - XP/Agile Universe 2003
Third XP and Second Agile Univ...
Frank Maurer, Don Wells
Agile Processes in Software Engineering and Extreme Programming
9th International Conference, ...
Pekka Abrahamsson
Extreme Programming and Agile Processes in Software Engineering
4th International Conference, ...
Michele Marchesi, Giancarlo Succi
Extreme Programming and Agile Processes in Software Engineering
6th International Conference, ...
Hubert Baumeister, Michele Marchesi, Mike Holcombe
Extreme Programming and Agile Processes in Software Engineering
5th International Conference, ...
Jutta Eckstein, Hubert Baumeister
Extreme Programming and Agile Processes in Software Engineering
7th International Conference, ...
Pekka Abrahamsson, Michele Marchesi, Giancarlo Succi
0 Kommentare