19.02.2013 Aufrufe

Prozessmodelle - Software Engineering - JKU

Prozessmodelle - Software Engineering - JKU

Prozessmodelle - Software Engineering - JKU

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 1<br />

Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong><br />

Vorbemerkungen<br />

Joachim Fröhlich<br />

joachim.froehlich@jku.at<br />

Komplexe <strong>Software</strong>produkte müssen systematisch entwickelt werden. Das ist jedoch alles andere als<br />

einfach: Die Komplexität der Entwicklungsprozesse widerspiegelt die Komplexität der <strong>Software</strong>produkte.<br />

Daher kann das inzwischen beträchtliche Angebot an <strong>Software</strong>-<strong>Prozessmodelle</strong>n nicht überraschen.<br />

Hier seien nur einige <strong>Prozessmodelle</strong> aufgezählt: XP, Scrum, OPEN, V-Modell, RUP, MSF,<br />

ROOM, OORAM, Octopus und FDD. Die große Zahl von zum Teil konkurrierenden <strong>Prozessmodelle</strong>n<br />

weist darauf hin, dass über die Systematik der <strong>Software</strong>entwicklung keine Einigkeit besteht. Diese<br />

Vermutung stützen auch die vielen, oft emotional geführten Diskussionen zwischen Anhängern der<br />

verschiedenen <strong>Prozessmodelle</strong>. Die Diskussionen verlieren jedoch an Schärfe, wenn man charakteristische<br />

Aussagen der verschiedenen <strong>Prozessmodelle</strong> nicht absolut auffasst sondern den Gehalt der<br />

Aussagen in Bezug setzt zu den Annahmen, auf denen die Modelle beruhen, und Einflussfaktoren<br />

(Parameter), die die Modelle berücksichtigen.<br />

In der Praxis beeinflussen zahlreiche Faktoren <strong>Software</strong>-Entwicklungsprozesse. Diese Faktoren<br />

haben oft ganz unterschiedliche Ausprägungen. Erneut seien hier einige Faktoren beispielgebend genannt:<br />

Fertigkeiten und Fähigkeiten von Mitarbeitern in Bezug auf Anwendungsbereiche, Lösungsbereiche<br />

(eingesetzte Technologien) und Arbeitsweisen, Programmtypen (interaktive Programme, Batch-<br />

Programme, datenzentrierte Programme, verteilte Systeme, Echtzeitsysteme etc.), Entwicklungstechnologien<br />

(Paradigmen, Sprachen, Bibliotheken, Werkzeuge etc.), Kritikalität der Programme 1 , Umfang,<br />

Dauer und Budget von Projekten, Unternehmenskulturen, Branchen, Märkte sowie verschiedene<br />

Anforderungen verschiedener Produktinteressenten und deren Verteilung über die Laufzeit von Projekten.<br />

Dieser Aufsatz soll den Ausgangspunkt bilden für eine einheitliche Beschreibung und einen systematischen<br />

Vergleich von typischen <strong>Prozessmodelle</strong>n, um situationsbedingt geeignete Vorgehensweisen<br />

auswählen und anwenden zu können. Dazu braucht man eine systematische Darstellung von<br />

<strong>Prozessmodelle</strong>n. Eine Systematisierung stößt jedoch auf einige Schwierigkeiten, weil die Modelle<br />

mit verschiedenen oder verschieden interpretierbaren Begriffen beschrieben werden und Annahmen<br />

und Einflussfaktoren nicht ausdrücklich oder nicht systematisch offen legen. Bei einigen in der Praxis<br />

entstandenen <strong>Prozessmodelle</strong>n stehen dahinter wirtschaftliche Erwägungen, da die Beherrschung von<br />

Entwicklungsprozessen selbstredend Wettbewerbsvorteile sichert. 2<br />

Der Aufsatz liefert Überblicke über einzelne <strong>Prozessmodelle</strong>, statt eines Überblicks über mehrere<br />

Modelle. Naturgemäß erleichtert ein Überblick die Orientierung oder unterstützt die Erinnerung, ersetzt<br />

jedoch nicht die gründliche Auseinandersetzung, die insbesondere vor der Anwendung (vor der<br />

Operationalisierung) eines Prozessmodells angebracht ist. Der Aufsatz versucht im gegenwärtigen<br />

Zustand insbesondere nicht, <strong>Prozessmodelle</strong> zu systematisieren, etwa durch Bestimmung von Prozessmerkmalen,<br />

gemeinsamen und unterscheidenden Merkmalsausprägungen und einer darauf aufbauenden<br />

Klassifikation. Da eine Klassifikation fehlt, werden die <strong>Prozessmodelle</strong> auch nicht beurteilt.<br />

1 Unter Kritikalität ist hier die Bedeutung zu verstehen, die einem Programm (<strong>Software</strong>produkt) in einer bestimmten<br />

Umgebung für einen bestimmten Verwendungszweck beigemessen wird.<br />

2 Ein prominentes Beispiel dafür ist das vom Object Technology Center (OTC) der Firma IBM entwickelte Prozessmodell,<br />

das auf die Entwicklung objektorientierter Programme spezialisiert ist. Nach Auskunft eines leitenden IBM-Mitarbeiters<br />

im März 2003 stammt die letzte ausführliche Publikation zu diesem Modell [OTC97] aus dem Jahr 1997. Seitdem hat IBM<br />

das Prozessmodell ausschließlich firmenintern weiter entwickelt. Es ist inzwischen so reif, dass ein Werkzeug die Planung<br />

und Abwicklung von Prozessen auf der Basis des Prozessmodells unterstützt.


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 2<br />

Der Aufsatz widmet jedem der <strong>Prozessmodelle</strong> RUP, V-Modell, XP, Scrum und MSF ein eigenes<br />

Kapitel. Diese Modelle wurden ausgewählt, primär weil über sie bis Heute auffallend viel gesprochen<br />

wird. Zu Beginn eines Kapitels werden die Gründe genannt, die zur Entwicklung des jeweiligen Modells<br />

geführt haben. Das erleichtert das Verständnis charakteristischer Modelleigenschaften, die nach<br />

den Gründen angeführt werden. Abgesehen von dieser einheitlichen Struktur folgen die einzelnen Modellbeschreibungen<br />

mehr der Logik des jeweiligen Modells als der Logik eines einheitlichen Beschreibungsschemas.<br />

Die Modellbeschreibungen gehen auf Aussagen von Modellentwicklern oder Modellexperten<br />

zurück; die Informationsquellen werden so genau wie möglich angeführt.<br />

Der Aufsatz ist eine Sammlung von Modellbeschreibungen, deren Reihenfolge keiner besonderen<br />

Ordnung unterliegt. Bei der sequentiellen Durcharbeitung der Materialsammlung begegnen dem Leser<br />

Gemeinsamkeiten und auch Unterschiede, ohne dass der Aufsatz diese ausdrücklich heraus arbeitet<br />

und etwa in einen eigenständigen Abschnitt ausklammert. Die Materialsammlung ist aus der Sicht des<br />

Autors vor einer Systematisierung zunächst mit Beschreibungen weiterer, interessanter Modelle zu ergänzen.<br />

Auf der Warteliste ganz oben stehen OPEN (Akronym für Object-Oriented Process, Environment<br />

and Notation) [GrHY98], FDD (Akronym für Feature-Driven Development) [PaFe02], Architecture-Centric<br />

Project Management [Pauli02] und Process Patterns [Ambl98] [Ambl99].<br />

Inhalt<br />

RUP [Rational, 1998]................................................................................................................. 3<br />

Dynamikelemente................................................................................................................... 4<br />

Statikelemente........................................................................................................................ 5<br />

V-Modell 97 [IABG Ottobrunn, 1997].......................................................................................... 6<br />

XP [K.Beck, 2000] ..................................................................................................................... 8<br />

Scrum [K.Schwaber, J.Sutherland, M.Beedle, 1996].....................................................................12<br />

MSF [Microsoft, v1:1991, v2:1998, v3:2003] ..............................................................................15<br />

MSF-Modelle ........................................................................................................................17<br />

MSF-Disziplinen...................................................................................................................20<br />

Referenzen ...............................................................................................................................22


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 3<br />

RUP [Rational, 1998 3 ]<br />

Quellen: [Kruc00][Jaco00]<br />

Der RUP (Akronym für Rational Unified Process) beruht⎯nach den Aussagen von Rational⎯auf 6<br />

bewährten Praktiken, die erfolgreichen, professionellen Entwicklungsprozessen zugrunde liegen (engl.<br />

best practices 4 ) [Kruc00, 6ff]:<br />

1. Entwickle <strong>Software</strong> iterativ.<br />

2. Verwalte (engl. manage) Anforderungen (engl. requirements).<br />

3. Verwende komponentenbasierte <strong>Software</strong>architekturen.<br />

4. Modelliere <strong>Software</strong> visuell.<br />

5. Prüfe <strong>Software</strong> kontinuierlich.<br />

6. Ändere <strong>Software</strong> kontrolliert.<br />

Besonderes Gewicht legt RUP auf Modelle zum Verstehen und Gestalten von Anwendungs- und Lösungsbereichen,<br />

insbesondere auf <strong>Software</strong>architekturen. 6 Verschiedene Produktinteressenten (engl.<br />

stakeholder 7 ) haben verschiedene Sichten auf ein <strong>Software</strong>produkt. Dessen <strong>Software</strong>architektur dient<br />

der Integration der verschiedenen Sichten und steuert dabei den iterativen und inkrementellen Entwicklungsprozess<br />

während des gesamten Produkt-Lebenszyklusses [Kruc00, 9].<br />

Mit Hilfe der zuvor genannten 6 Praktiken soll RUP typische Probleme bei der Entwicklung von<br />

<strong>Software</strong> meistern helfen. Die Probleme äußern sich wie folgt [Kruc00, 4]:<br />

• Ungenügendes Verständnis der Anforderungen von Anwendern.<br />

• Ungeeigneter Umgang mit neuen oder sich ändernden Anforderungen.<br />

• <strong>Software</strong>teile, die nicht zusammen passen.<br />

• <strong>Software</strong>, die schwer zu pflegen ist oder kaum weiter entwickelt werden kann.<br />

• Späte Entdeckung von schwerwiegenden Fehlern.<br />

• Schlechte <strong>Software</strong>qualität.<br />

• Unzureichende Leistungsfähigkeit (Performance) der <strong>Software</strong>.<br />

• Sich gegenseitig behindernde Projektmitarbeiter.<br />

• Unzuverlässige Build-Prozesse und Release-Prozesse.<br />

Diese Symptome gehen auf folgende Probleme zurück [Kruc00, 5]:<br />

• Ungeplante (ad hoc) Verwaltung von Anforderungen.<br />

• Mehrdeutige und unpräzise Kommunikation.<br />

• Instabile <strong>Software</strong>architekturen.<br />

• Ausufernde Komplexität der <strong>Software</strong>.<br />

• Versteckte Inkonsistenzen zwischen Anforderungen, Entwürfen und Implementierungen.<br />

• Unzureichende Tests.<br />

• Subjektive Einschätzung des Projektzustands.<br />

• Unzureichender Umgang mit Risiken.<br />

• Unkontrollierte <strong>Software</strong>änderungen.<br />

• Unzureichende Automatisierung.<br />

3 [Kruc00, 33]. Die Jahreszahlen geben das Jahr der ersten Nennung des Prozessmodells an.<br />

4 Für Begriffe, die in der deutschen Übersetzung ungewohnt klingen, werden die englischen (engl.) Originalbezeichner<br />

angeführt.<br />

5 Für Begriffe, die in der deutschen Übersetzung ungewohnt klingen, werden die englischen (engl.) Originalbezeichner<br />

angeführt.<br />

6 Zum Beispiel ist im Buch The Rational Unified Process. An Introduction ein ganzes Kapitel dem Thema “An<br />

Architecture-centric Process“ gewidmet [Kruc00, 81-96].<br />

7 Ein Stakeholder ist eine Person, die ein berechtigtes Interesse an einem (<strong>Software</strong>-) Produkt hat, z. B. Endbenutzer, <strong>Software</strong>entwickler,<br />

Tester, technische Schreiber, Projektmanager. Verschiedene Stakeholder haben i. Allg. verschiedene<br />

Interessen. Oder: „A stakeholder is anyone who is materially affected by the outcome of the project.“ [Kruc00, 265]


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 4<br />

Zur Meisterung dieser Probleme gliedert RUP Entwicklungsprozesse in 2 Dimensionen (siehe Abb. 1)<br />

[Kruc00, 22]:<br />

• Dynamische Dimension: Gliederung von Aktivitäten nach der Zeit.<br />

Zeigt die schrittweise Entwicklung des Produkt-Lebenszyklusses in Form von projekttypischen,<br />

situationsbedingten—und insofern dynamischen—Verläufen von Phasen,<br />

Iterationen und Zyklen.<br />

• Statische Dimension: Gliederung von Aktivitäten nach dem Inhalt.<br />

Zeigt logische und zweckdienliche Zusammenhänge zwischen Aktivitäten, Rollen und<br />

Artifakten. Diese Zusammenhänge gelten weitgehend unabhängig von der konkreten<br />

Entwicklung eines Produkt-Lebenszyklusses und sind insofern statisch.<br />

Dynamikelemente<br />

In der dynamischen Dimension werden Prozesse strukturiert hinsichtlich Phasen, Zyklen, Iterationen<br />

und Meilensteine [Kruc00, 61-66]:<br />

• Phasen:<br />

1. Ideenphase (I, engl. inception) mit den Schwerpunkten: Produktziele und –umfang abstecken,<br />

allgemeine und hauptsächliche Anforderungen verstehen, Risiken identifizieren,<br />

Projektbudget und –plan grob festlegen.<br />

2. Ausarbeitungsphase (E, engl. elaboration) mit den Schwerpunkten: Anforderungen im Detail<br />

erheben, Architektur prototypisch entwickeln, Lösungsansätze ausprobieren, Kenntnisse<br />

über Techniken und Werkzeuge des Lösungsbereichs vertiefen.<br />

3. Konstruktionsphase (C, engl. construction) mit dem Schwerpunkt, ausgehend vom Prototypen<br />

ein lauffähiges Produkt (erstes Beta-Release [Kruc00, 64, Fig. 4-6]) zu entwickeln.<br />

4. Übergangsphase (T, engl. Transition) mit den Schwerpunkten: Produktqualität in Bezug auf<br />

die gesteckten Ziele stabilisieren, Produktfähigkeiten (engl. features) anpassen, Anwender<br />

trainieren, finale Produktversion erstellen und ausliefern.<br />

• Zyklen:<br />

Die genannten Phasen bilden einen Entwicklungszyklus (I-E-C-T) und führen zu einer neuen<br />

Generation (Version, u. U. auch Variante) eines <strong>Software</strong>produkts.<br />

Organization along Content<br />

Core Workflows<br />

Support<br />

Workflows<br />

Business Modeling<br />

Requirements<br />

Analysis & Design<br />

Implementation<br />

Test / Assessment<br />

Deployment<br />

Configuration &<br />

Change Management<br />

Project Management<br />

Environment<br />

Inception Elaboration Construction Transition<br />

Preliminary<br />

Iteration<br />

Organization along Time<br />

LO LA OC PR<br />

Iteration<br />

#1<br />

Iteration<br />

#2 ...<br />

Iteration<br />

#n<br />

Iteration<br />

#n+1 ...<br />

Iteration<br />

#m ...<br />

Time


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 5<br />

Abb. 1: RUP gliedert Prozesse in 2 Dimensionen [Kruc00, 23, 46, 62].<br />

Meilensteine: LO (Lifecycle Objective), LA (Lifecycle Architecture),OC (Initial Operational Capability), PR<br />

(Product Release). Die Dauer der Phasen (z. B. Inception, Elaboration) hängt von den Projektumständen ab.<br />

• Iterationen:<br />

Zur Verringerung von Risiken werden pro Zyklus lediglich ein Teil der Anforderungen<br />

bearbeitet (I), die dazu notwendigen Entwürfe erstellt (E), implementiert und getestet (C) und<br />

dem Auftraggeber übergeben (T). Jede Iteration folgt einem Muster ähnlich dem des Wasserfall-Modells<br />

mit den Besonderheiten, dass sich die Workflows (z. B. Anforderungsanalyse<br />

(Requirements), Design und Implementierung, siehe Abb. 1) überlagern und die Aktivitätsschwerpunkte<br />

von Phase zu Phase und von Iteration zu Iteration verschieben [Kruch00, 64-65].<br />

• Meilensteine:<br />

Meilensteine sind Punkte am Ende von Phasen, an denen anhand von Evaluationskriterien<br />

entschieden wird über die Weiterführung, die Änderung oder den Abbruch eines Prozesses.<br />

Meilensteine sind (siehe Abb. 1):<br />

1. LO (Lifecycle Objective) u. a. mit den Kriterien: Produktinteressenten haben Übereinkunft<br />

erzielt über allgemeine und hauptsächliche Anforderungen, Ressourceplan ist plausibel, Architekturprototyp<br />

deckt kritische Bereiche ab.<br />

2. LA (Lifecycle Architecture) u. a. mit den Kriterien: Produktvision ist stabil, Architektur ist<br />

stabil, Plan für die Konstruktionsphase ist plausibel nachvollziehbar, der aktuelle Ressourcenverbrauch<br />

ist gegenüber dem geplanten vertretbar.<br />

3. OC (Initial Operational Capability) u.a. mit den Kriterien: Produkt ist reif und stabil genug<br />

für ein Beta-Release, der aktuelle Ressourcenverbrauch ist gegenüber dem geplanten vertretbar.<br />

4. PR (Product Release) u.a. mit den Kriterien: Benutzer sind mit dem Produkt zufrieden, der<br />

aktuelle Ressourcenverbrauch ist gegenüber dem geplanten vertretbar.<br />

Statikelemente<br />

In der statischen Dimension werden Prozesse gegliedert hinsichtlich Rollen, Aktivitäten, Artifakten<br />

und Arbeitsabläufen [Kruc00, 36ff]:<br />

• Rollen (engl. Worker): Wer führt eine Aktivität aus?<br />

Eine Rolle definiert zusammenhängende Aktivitäten und die damit verbundene Verantwortung<br />

einer Person (oder eine Gruppe von Personen), für gewöhnlich ausgedrückt in Beziehung auf<br />

bestimmte Artifakte. Beispiele [Kruch00, 263-265]: Project Manager, Architekt, Architekt<br />

Reviewer, User-Interface-Designer, System Analysator, Test Designer, Tester, Configuration<br />

Manager 9 , Change Control Manager.<br />

• Aktivität (engl. activity): Wie ist etwas auszuführen?<br />

Eine Aktivität ist eine sachlogisch zusammenhängende, zweckmäßige Aufgabe einer Rolle, für<br />

gewöhnlich eine Form der Erzeugung, Verwendung oder Aktualisierung von Artifakten. Eine<br />

Aktivität ist ein Planungsinstrument. Beispiele: Plane eine Iteration (Project Manager), Ermittle<br />

Anwendungsfälle (System Analysator).<br />

• Artifakte (engl. artifact): Was sind die Gegenstände von Aktivitäten?<br />

Ein Artifakt ist eine Information [Kruc00, 40], die im Laufe einer Aktivität oder eines Prozesses<br />

erzeugt, verwendet oder aktualisiert wird. Dokumente sind nur eine spezielle Form von<br />

Artifakten. Artifakte bilden eine Einheit zusammen mit den Werkzeugen (z. B. Datenbank-<br />

Systeme, Web-Publishing-Systeme, Bug-Tracking-Systeme), die zu ihrer Erzeugung und Verwaltung<br />

eingesetzt werden. Artifakte fallen in eine der folgenden Bereiche: Mana-gement, Anforderungen,<br />

Entwurf, Implementierung und Deployment. Geschäftlich verwertbare Ergeb-<br />

8 Bearbeiter ist hier im Sinne eines Konzeptes gebraucht.<br />

9 Der Configuration Manager entspricht dem SEU-Betreuer (SEU=<strong>Software</strong>entwicklungsumgebung) im V-Modell 97.


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 6<br />

nisse bilden eine Teilmenge der Artifakte. Beispiele: Anwendungsfall-Modelle (engl. use case<br />

models), Source Code, Projektpläne, Datenbank mit Systemanforderungen, Fehlermeldungen.<br />

• Arbeitsabläufe (engl. workflows): Wann ist etwas auszuführen?<br />

Ein Arbeitsablauf ist eine Folge von Aktivitäten, die zu geschäftlich verwertbaren Ergebnissen<br />

führen. Arbeitsabläufe gruppieren (und ordnen) logisch zusammengehörende Aktivitäten,<br />

Artifakte und Rollen. Beispiele: Geschäftprozess-Modellierung, Analyse und Design (siehe<br />

Abb. 1).<br />

Statikelemente und Dynamikelemente bilden zusammen mit<br />

1. Richtlinien für die Gestaltung von Aktivitäten und Artifakten,<br />

2. Schablonen (engl. templates; hier im Sinn von Dokumentvorlagen, Modellen und Prototypen)<br />

für Artifakte sowie<br />

3. Werkzeug-Mentoren<br />

ein Prozess-Framework [Kruc00, 50], in dem Sinn, dass Rollen, Artifakte, Aktivitäten (Statikelemente<br />

allgemein) situationsbedingt kombiniert, hinzugefügt, ersetzt oder gestrichen werden. Das führt<br />

zu verschiedenen, anpassbaren Abläufen, die RUP mit Phasen, Iterationen und Meilensteinen (Dynamikelementen)<br />

beschreibt. 10<br />

V-Modell 97 [IABG Ottobrunn, 1997 11 ]<br />

Quellen: [HaNe01] [Vers00] [Stra03][WWW1]<br />

Das V-Modell 97 (im weiteren abgekürzt mit VM97) soll den sogenannten Teufelskreis des <strong>Software</strong>-<br />

<strong>Engineering</strong> [Vers00, 3] durchbrechen:<br />

• Mangelhafte Entwicklung führt zu<br />

• schlechter Produktqualität, die zu<br />

• erhöhtem Pflegeaufwand führt, was wiederum zu<br />

• Personalengpässen führt, was zu<br />

• mangelhafter Entwicklung führt<br />

• ...<br />

Die Ziele des VM97 sind [HaNe01, 212]:<br />

• Bessere Kommunikation der Projektbeteiligten.<br />

• Einheitliches Vorgehen bei Behörden und beauftragten Firmen.<br />

• Höhere Produktqualität.<br />

• Weniger Wartungsausfälle.<br />

• Geringerer Wartungsaufwand durch besseres Verständnis und einheitliche Dokumentation.<br />

• Höhere Entwicklungsproduktivität durch geringere Einarbeitungs- und Schulungszeiten.<br />

• Bessere Kalkulation von Neuprojekten durch standardisiertes Vorgehen.<br />

• Geringere Abhängigkeit von Personen und beauftragten Firmen.<br />

Das VM97 wird vor allem im öffentlichen Bereich, sowie im Banken- und Versicherungswesen eingesetzt<br />

[Vers00, 5]. Das VM97 dient als [Stra03, 10]<br />

• Vertragsgrundlage<br />

• Arbeitsanleitung<br />

• Kommunikationsbasis<br />

• Materialsammlung<br />

Das VM97 ist in 3 Ebenen gegliedert [Vers00, 6][HaNe01, 212]:<br />

1. Vorgehensmodell: Was ist zu tun?<br />

Beschreibt Aktivitäten und Produkte (Ergebnisse).<br />

10 Zur Bedeutung des Begriffs Prozess-Framework im Umfeld von RUP siehe z. B. auch Kapitel “Building your own process<br />

by specializing a process framework” von Jacobson [Jaco00, 155-164], einem maßgebenden Entwickler von RUP.<br />

11 [Vers00, 6], siehe auch http://www.v-modell.iabg.de, zitiert am 25.6.2003


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 7<br />

2. Methodenstandard: Wie ist es zu tun?<br />

Beschreibt grundlegende (elementare und komplexe) Methoden, die die genannten Aktivitäten<br />

unterstützen.<br />

3. Werkzeuganforderungen: Womit ist es zu tun?<br />

Beschreibt funktionale Anforderungen an Werkzeuge, die die Verwendung der festgelegten<br />

Methoden unterstützen.<br />

Jede dieser Ebenen durchzieht die Tätigkeitsbereiche (Teilmodelle, siehe Abb. 2):<br />

• <strong>Software</strong>erstellung: Teilmodell SE.<br />

• Qualitätssicherung: Teilmodell QS.<br />

• Konfigurationsmanagement: Teilmodell KM.<br />

• Projektmanagement: Teilmodell PM.<br />

Konfigurationsmanagement<br />

Qualitätssicherung<br />

<strong>Software</strong>erstellung<br />

Projektmanagement<br />

Vorgehensmodell<br />

Methodenstandard<br />

Werkzeuganforderungen<br />

Abb. 2: Ebenen und Tätigkeitsbereiche (Teilmodelle) des VM97 [HaNe01, 212].<br />

Die <strong>Software</strong>erstellung ist der zentrale Tätigkeitsbereich; andere Tätigkeitsbereiche begleiten die <strong>Software</strong>erstellung.<br />

Das VM97 gibt für die <strong>Software</strong>erstellung Aktivitäten und deren Ergebnisse (Produkte,<br />

Artifakte) einheitlich und verbindlich vor [HaNe01, 213]. Jede Aktivität wird durch eine Aktivitätenbeschreibung<br />

(Aktivitätsanleitung) in Form einer Produktflusstabelle beschrieben (siehe Abb.<br />

3).<br />

Von Aktivität Zustand Produkt Nach Aktivität Zustand<br />

Extern - Rahmenbedingungen - -<br />

Extern - Externe Vorgaben (AG) - -<br />

SE 2 akzeptiert Systemarchitektur - -<br />

- - Systemanforderungen SE 2, SE 3, SE<br />

4-SW, SE 5-SW<br />

vorgelegt<br />

- - SWPÄ-Konzept SE 9, PM 5 vorgelegt<br />

Protokoll PM 6 -<br />

Abb. 3: Produktflusstabelle für die Aktivität SE 1 „System-Anforderungsanalyse“ (Hauptaktivität des Teilmodells<br />

SE). SWPÄ = <strong>Software</strong> Pflege- und –Änderung. SE 4 „Grobentwurf“ gib es in 2 Varianten (1) für <strong>Software</strong>: SE 4-<br />

SW und (2) für Hardware: SE 4-HW. AG = Auftraggeber.<br />

SE 1 ist eine Hauptaktivität. Hauptaktivitäten werden in Subaktivitäten (SE 1.1 „Ist-Aufnahme/-Analyse<br />

durchführen“, SE 1.2 „Anwendungssystem beschreiben“ ...) untergliedert. Aktivitäten ändern<br />

Produktzustände (siehe Abb. 4).<br />

geplant in Bearbeitung vorgelegt akzeptiert<br />

Abb. 4: Produktzustände und Zustandsübergänge.<br />

Die 4 Teilmodelle (SE, QS, KM, PM) von VM97 sind miteinander verknüpft und beeinflussen sich<br />

über den Austausch von Produkten (siehe Abb. 5).


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 8<br />

SE<br />

QS<br />

KM<br />

PM<br />

A2 P2 A5 P6 A7<br />

A3<br />

P3<br />

A4 P4<br />

A1 P1 A6 P5<br />

Abb. 5: Schematische Darstellung eines Aktivitäten- und Produktflusses über die 4 Teilmodelle (SE, QS, KM, PM)<br />

des VM97 [HaNe01, 217] [Vers00, 12]. Ai = Aktivitäten, Pi = Produkte.<br />

Das VM97 ist ein organisationstunabhängiges Modell [Vers00, 55]. Daher werden Aufgabenträger<br />

in Form von Rollen beschrieben. Eine Rollenbeschreibung legt fest:<br />

• Aktivitäten, an denen die Rolle beteiligt ist.<br />

• Aufgaben und Tätigkeiten, die die Rolle wahrnehmen muss.<br />

• Kenntnisse, die für die Ausübung der Aufgaben und Tätigkeiten notwendig sind.<br />

Beispiele für Rollen im Teilmodell SE [Vers00, 56] sind: Systemanalytiker, Systemdesigner,<br />

<strong>Software</strong>entwickler, Hardwareentwickler, Technischer Autor, Systembetreuer, SEU 12 -Betreuer.<br />

Rollen und Aktivitäten bilden eine Matrix. Dabei werden die Beteilungsformen verantwortlich,<br />

mitwirkend und beratend unterschieden (siehe Abb. 6).<br />

SE 1: „Systemanforderungsanalyse<br />

SE 1.1: Ist-Aufnahme/-Analyse durchführen<br />

SE 1.2: Anwendungssystem beschreiben<br />

…<br />

SE 2: System-Entwurf<br />

SE 2.3: Realisierbarkeit untersuchen<br />

.<br />

Systemanalytiker<br />

.<br />

verantwortlich<br />

verantwortlich<br />

.<br />

.<br />

mitwirkend<br />

.<br />

Abb. 6: Ausschnitt aus der Aktivitäten/Rollen-Matrix am Beispiel eines Systemanalytikers.<br />

VM97 kann an projektspezifische Gegebenheiten angepasst werden (Tailoring) [Vers00, 14]. Dabei ist<br />

zu prüfen, welche Aktivitäten und Produkte notwendig sind. VM97 unterscheidet 2 Formen von Anpassungen:<br />

1. Ausschreibungsrelevante Anpassungen: Anpassungen vor Beginn des Projekts.<br />

2. Technische Anpassungen: Anpassungen während des Projekts.<br />

Das angepasste VM97 (1. Form) und/oder die Rahmenbedingungen, unter denen bestimmte Aktivitäten<br />

ausgeführt oder Produkte erzeugt bzw. verwendet werden (2. Form), sind im Projekthandbuch<br />

festzuhalten.<br />

XP [K.Beck, 2000 13 ]<br />

Quellen: [Beck00] [WWW2] [ASRW02]<br />

<strong>Software</strong>entwicklung ist verschiedenen Risiken ausgesetzt [Beck00, 3], z. B.<br />

• Terminverschiebungen.<br />

• Komplizierte, zunehmend schwerer wartbare Programme.<br />

• Un- oder Missverständnis des Anwendungsbereichs.<br />

• Änderungen des Anwendungsbereichs.<br />

• Funktional überladene Programme (engl. false feature richness).<br />

Zum Umgang mit den Risiken stehen grundsätzlich vier Optionen zur Verfügung [Beck00, 12]:<br />

• Abbrechen: Streichen von Features.<br />

12 SEU = (S)oftware(e)ntwicklungs(u)mgebung<br />

13 [High02, 297]


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 9<br />

• Wechseln: Ändern der Projektrichtung oder Ändern von Features.<br />

• Verschieben: Warten bis die Situation überschaubarer ist.<br />

• Skalieren: Anpassen an Projektgröße und –dynamik.<br />

Diese Optionen stehen dem Auftraggeber unter XP (Extreme 14 Programming) während der Abwicklung<br />

eines Projekts kontinuierlich zur Verfügung.<br />

XP ist besonders auf die Abwicklung von Projekten mit vagen oder sich häufig ändernden<br />

Anforderungen ausgerichtet [Beck00, 13]. Wage oder sich häufig ändernde Anforderungen führen<br />

üblicherweise im Laufe der Zeit zu hohen Änderungskosten. Mit XP sollen diese Kosten nachhaltig<br />

gesenkt werden (siehe Abb. 7).<br />

Cost of Change<br />

Requirements Analysis Design Implementation Testing Production<br />

Time<br />

Abb. 7: Üblicherweise steigen die Änderungskosten exponentiell mit der Zeit (7a) [Beck00, 21]. XP soll<br />

Änderungskosten konstant halten (7b) [Beck00, 23].<br />

Um das ökonomische Ziel (annähernd konstante Änderungskosten) zu erreichen, werden XP-Projekte<br />

etwa so gesteuert wie Fahrzeuge [Beck00, 28]: „Driving is not about getting the car going in the right<br />

direction. Driving is about constantly paying attention, making a little correction this way, a little correction<br />

that way. This is the paradigm of XP.” Dabei ist der Steuermann des Projekts der Kunde (der<br />

Auftraggeber) [Beck00, 28]. Die Projektmitarbeiter (<strong>Software</strong>entwickler) geben dem Kunden kontinuierlich<br />

Feedback über den aktuellen Stand des Projektes.<br />

Diese Art der Projektsteuerung birgt die Gefahr in sich, dass durch zahlreiche, kurzfristige Änderungen<br />

langfristige Ziele und bewährte Arbeitstechniken (Praktiken, siehe weiter unten) vergessen<br />

werden. Konflikte zwischen kurzfristigen, meist individuellen Zielen und langfristigen, gemeinschaftlichen<br />

Zielen werden in sozialen Gruppen auf der Basis gemeinsamer Wertvorstellungen ausgetragen.<br />

In diesem Sinn werden im Kontext von XP Projektmitarbeiter eingeschworen auf die folgenden vier<br />

grundlegenden Werte [Beck00, 29-35]:<br />

1. Kommunikation: Probleme, kritischen Änderungen, Lösungsalternativen etc. werden kontinuierlich<br />

besprochen.<br />

2. Einfachheit: Einfache Programme, die aktuelle Aufgaben lösen, können zukünftig leichter geändert<br />

werden, als komplizierte Programme, die nicht nur aktuelle Aufgaben lösen sondern<br />

auch zukünftige Aufgaben, die jedoch für das Programm möglicherweise nie relevant sind.<br />

3. Feedback: Kontinuierliche Rückmeldungen über den Zustand eines Systems oder des Projektes<br />

ersetzt selbsttrügerischen Optimismus, z. B. kontinuierliche Unit-Tests und unmittelbare<br />

Aufwandsschätzungen durch <strong>Software</strong>entwickler für Anforderungen von Kunden.<br />

4. Mut (Courage): Mut ist notwendig, um (1) die Programmarchitektur umzubauen, wenn das<br />

(aufwendige) Änderungen von zahlreichen Unit-Tests nach sich zieht, (2) um überflüssigen<br />

Code aus der Codebasis zu entfernen, oder (3) um Fehler in Programmteilen anderer <strong>Software</strong>entwickler<br />

auszubessern. Diese Anpassungen sind notwendig, z. B. um gemäß dem Wert<br />

Einfachheit die Programmstruktur immer so einfach als möglich zu halten.<br />

Da diese Werte zu abstrakt sind, um auf deren Grundlage in konkreten Situationen Entscheidungen zu<br />

treffen, postuliert XP die folgenden, aus den genannten Werten abgeleitete, zentrale Prinzipien<br />

[Beck00, 37-38]:<br />

• Hole Feedback, interpretiere es, ziehe schnell Konsequenzen (engl. rapid feedback).<br />

14 “Why the ‘extreme’ in the name? XP takes commonsense principles and practices to extreme levels.” [Beck00, xv]<br />

7a<br />

7b


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 10<br />

• Gehe davon aus, dass es eine einfache Lösung gibt (engl. assume simplicity).<br />

• Löse Probleme schrittweise (engl. incremental change).<br />

• Löse das dringenste Problem zuerst, bewahre weitere Optionen (engl. embracing change).<br />

• Strebe ständig nach qualitativ hochwertigen Arbeitsergebnissen (engl. quality work).<br />

Weitere Prinzipien sind [Beck00, 39-42]:<br />

• Lehre lernen 15 , statt doktrinäre Anweisungen zu geben und zu befolgen (engl. teach learning).<br />

• Investiere schrittweise, beginne mit einer geringen Investition (engl. small initial investment).<br />

• Suche den Erfolg (engl. play to win).<br />

• Teste Entscheidungen mit Experimenten (engl. concrete experiments).<br />

• Kommuniziere offen und redlich (engl. open, honest communication).<br />

• Arbeite mit den Instinkten statt gegen sie (engl. work with people’s instincts, not against them).<br />

• Übernehme Verantwortung auf eigene Initiative (engl. accepted responsibility).<br />

• Passe XP an lokale und aktuelle Gegebenheiten an (engl. local adaption).<br />

• Erstelle wenige, einfache und nützliche (Zwischen-)Produkte / Artifakte (engl. travel light).<br />

• Kontrolliere und steure den Prozess mit nützlichen statt technisch möglichen Maßen (engl.<br />

honest measurement).<br />

Ein Projekt soll auch bei häufigen Änderungen auf Kurs gehalten werden, dabei den grundlegenden<br />

Werten und Prinzipien folgen und gleichzeitig die Änderungskosten niedrig halten. Zur Erreichung<br />

dieser Ziele muss sich ein Entwicklungsprozess auf wesentliche Aktivitäten konzentrieren. Wesentlich<br />

sind jene Aktivitäten, auf die während der Entwicklung qualitativ hochwertiger, langlebiger Programme<br />

nicht verzichtet werden kann. Das sind [Beck00, 43ff]:<br />

• Programmieren: Ohne Programmieren gibt es kein Programm.<br />

• Testen: Ohne Testen ist nicht klar, ob die Programmierung abgeschlossen ist.<br />

• Zuhören: Ohne Zuhören ist nicht klar, was programmiert und getestet werden soll.<br />

• Entwerfen: Ohne Entwerfen kann nicht langfristig programmiert und getestet werden.<br />

Auf Dokumentation (Systemdokumentation) verzichtet XP vollständig. Dokumentation ist für<br />

typische XP-Projekte keine wesentliche Entwicklungstätigkeit. Dokumentation kann durch Praktiken<br />

ersetzt werden, die auf zuvor genannten Prinzipien zurückgehen, insbesondere auf intensive Kommunikation,<br />

kontinuierliches Feedback, einfache Programme, einfache Entwürfe (einfache Metaphern)<br />

und zahlreiche, automatisierte Testtreiber. Im Einzelnen konzentriert sich XP auf die folgenden 12<br />

Praktiken [Beck00, 54]:<br />

• Das Planungsspiel (engl. the planning game): Der Inhalt des nächsten Release (der nächsten<br />

Produktfreigabe) wird mit Story Cards (Beschreibungen von Produktfähigkeiten, engl.<br />

features) [Beck00, 88] bestimmt. Das soll einfach und schnell gehen. Dabei werden Geschäftsziele<br />

(des Kunden) und Aufwandsschätzungen der <strong>Software</strong>entwickler abgeglichen. Der Plan<br />

kann während der Entwicklung an sich ändernde Situationen angepasst werden.<br />

• Kurze Release-Zyklen (engl. small releases): Funktional begrenzte Produktversionen werden in<br />

kurzen Zyklen freigegeben.<br />

• Metapher (engl. methaphor): Ein einfaches Konzept über Aufbau und Arbeitsweise des Programms<br />

steuert die <strong>Software</strong>ntwicklung.<br />

• Einfacher Entwurf (engl. simple design): Das Programm soll immer so einfach als möglich<br />

implementiert werden. Unnötige Komplexität ist zu beseitigen, sobald sie entdeckt wird.<br />

• Testen (engl. testing): <strong>Software</strong>entwickler erstellen kontinuierlich Unit-Tests. Unit-Tests sollen<br />

vor dem Testgegenstand entwickelt werden und müssen vor dem nächsten Entwicklungsschritt<br />

abgeschlossen werden. Kunden entwickeln Systemtests zur Überprüfung der im Planungsspiel<br />

(siehe oben) festgelegten Produktfähigkeiten (engl. features).<br />

15 Man könnte ergänzen: Lerne lehren [A.d.V.]


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 11<br />

• Umbau (engl. refactoring): <strong>Software</strong>entwickler restrukturieren das Programm ohne dessen<br />

Funktionen zu ändern, um überflüssigen Code zu entfernen, um das Programm zu vereinfachen<br />

oder um es, wenn notwendig, flexibler zu gestalten.<br />

• Programmieren in Paaren (engl. pair programming): Zwei <strong>Software</strong>entwickler entwickeln<br />

Quellcode gemeinsam. Ein Enwickler gibt dem anderen kontinuierlich Feedback. Die Zusammensetzung<br />

der Paar wechselt in bestimmten Abständen.<br />

• Gemeinsame Verantwortung (engl. collective ownership): Jeder <strong>Software</strong>entwickler kann jede<br />

Codezeile (im gesamten Projekt) zu jedem Zeitpunkt ändern.<br />

• Kontinuierliche Integration (engl. continuous integration): Das System wird integriert, sobald<br />

eine neue Einwicklungsaufgabe (engl. task 16 ) implementiert wurde.<br />

• 40-Stunden Woche (engl. 40-hour week): Pro Woche sollen in der Regel nicht mehr als 40<br />

Stunden gearbeitet werden. Die Wochenarbeitszeit soll höchstens 1 Woche (keine 2 Wochen<br />

hintereinander) überschritten werden.<br />

• Kunde vor Ort (engl. on-site customer): In die Projektgruppe soll ein Kunde integriert werden.<br />

Der Kunde soll für die Entwickler immer verfügbar sein, um jederzeit Fragen beantworten zu<br />

können.<br />

• Programmierstandards (engl. coding standards): <strong>Software</strong>entwickler erstellen Programme<br />

nach einheitlichen Richtlinien zur der Kommunikation direkt durch den Quellcode. Das erleichtert<br />

z. B. den kontinuierlichen Programmumbau und fördert einen einfachen Programmentwurf.<br />

XP verlangt den Einsatz aller Praktiken, da alle Praktiken direkt oder indirekt zusammenhängen.<br />

XP kann in Projekten mit bis zu ca. 10 <strong>Software</strong>entwicklern eingesetzt werden. Die <strong>Software</strong>entwickler<br />

müssen fachlich ähnlich qualifiziert sein und kommunizieren können. Zur Förderung der<br />

Kommunikation sollen alle <strong>Software</strong>entwickler in einem Raum sitzen. Übliche XP-Projekte dauern<br />

zwischen 1 und 6 Monaten; ein Entwicklungszyklus (eine Iteration) dauert zwischen 1 und 3 Wochen<br />

[Beck00, 91]. Eine Übersicht über den Verlauf typischer XP-Projekte gibt Abb. 8.<br />

Abb. 8: Übersicht über ein XP-Projekt [WWW2].<br />

Wichtige Rollen in XP-Projekten sind [ASRW02, 21f]:<br />

• <strong>Software</strong>entwickler: entwickelt Programme und Unit-Tests.<br />

• Kunde: beschreibt Anwendungsfälle (mit Story Cards) und entscheidet, wann eine<br />

Anforderung implementiert ist.<br />

16 Stories werden auf Story Cards während des Planungsspiels fest gehalten. Später werden die Stories in mehrere Programmieraufgaben<br />

(engl. tasks) zerlegt. Daraus entstehen Task Cards [Beck00, 91].


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 12<br />

• Tester: hilft dem Kunden, Testfälle zu schreiben, testet regelmäßig das System und informiert<br />

die Produktinteressenten über die Testergebnisse.<br />

• Tracker: sammelt Daten und gibt <strong>Software</strong>entwicklern und Managern Feedback zum<br />

Projektfortschritt.<br />

• Coach: verantwortlich für den Gesamtprozess und die Einhaltung der XP-Regeln.<br />

• Technik-Berater: bringt spezielles technisches Know-how in die Projektgruppe.<br />

• Manager: trifft finale Entscheidungen und koordiniert sich dazu mit der Projektgruppe.<br />

Scrum [K.Schwaber, J.Sutherland, M.Beedle, 1996 18 ]<br />

Quellen: [High02] [ScBe02] [ASRW02]<br />

<strong>Software</strong>entwicklung ist kein definierbarer Prozess sondern ein auf Erfahrung beruhender und nur mit<br />

dem Wachsen der Erfahrung sich verbessernder Prozess (mit den Worten von K.Schwaber: ein empirischer<br />

Prozess) [High02, 241]. Jedes Projekt ist einmalig: Technology, Anforderungen und Mitarbeiter<br />

variieren von Projekt zu Projekt und oft auch während der Abwicklung eines Projekts [ScBe02, 23].<br />

Detaillierte Vorschriften zu Phasen, Aktivitäten und Aufgaben und überladene (schwergewichtige)<br />

<strong>Prozessmodelle</strong> können die Entwicklung eines <strong>Software</strong>produkts in dynamischen Umgebungen nicht<br />

beschreiben, da ein definierter Prozess das Verständnis jedes einzelnen Schrittes voraussetzt [ScBe02,<br />

25]. Unter dynamischen, z.T. nicht vorhersehbaren Umständen können jedoch weder das Ergebnis<br />

noch einzelne Schritte oder deren Folge zur Erzielung des Ergebnisses genau vorgeschrieben (geplant)<br />

werden.<br />

Scrum 19 geht davon aus, dass solche Prozesse „am Rande des Chaos“ kontinuierlich überwacht<br />

und mit Feedback-Techniken gesteuert werden. Das Management konzentriert sich dabei auf der<br />

Verbesserung der Umstände eines Projekts, um optimale Rahmenbedingungen für die Entwicklungstätigkeiten<br />

(Analysieren, Entwerfen, Implementieren und Testen) und damit für die <strong>Software</strong>entwickler<br />

zu schaffen. Innerhalb dieser Rahmenbedingungen können <strong>Software</strong>entwickler selbständig geeignete<br />

<strong>Prozessmodelle</strong> für die <strong>Software</strong>entwicklung (im engeren Sinn) auswählen und einsetzen, z. B.<br />

XP und RUP [High02, 242-243] [ScBe02, 128]. Einen Überblick über Scrum gibt Abb. 9.<br />

Scrum besteht aus drei Phasen, die wiederholt (iterativ) angewendet werden:<br />

1. Pre-Sprint: Planung (Vorwärtsregelung, Steuerung, Feedforward).<br />

2. Sprint: <strong>Software</strong>entwicklung und Überwachung der <strong>Software</strong>entwicklung.<br />

3. Post-Sprint: Review (Rückkopplung, Feedback).<br />

In der Pre-Sprint-Phase wird das <strong>Software</strong>produkt geplant [High02, 244] [ASRW02, 29]:<br />

• Festlegung von Ziel und Zweck (engl. sprint goal, business purpose) der nächsten Iteration.<br />

• Extrahierung der Anforderungen aus der Auftragbestandsliste (siehe folgenden Absatz) in die<br />

Produktfreigabeliste (siehe folgenden Absatz).<br />

• Ableitung einer Aufgabenliste (siehe folgenden Absatz) zur Realisierung der Anforderungen in<br />

der Produktfreigabeliste.<br />

• Entwurf und Review einer Produktarchitektur, die zur Realisierung der Anforderungen in der<br />

Produktfreigabeliste geeignet ist.<br />

17 Ein Stakeholder ist eine Person, die ein berechtigtes Interesse an einem (<strong>Software</strong>-) Produkt hat, z. B. ein Kunde, ein<br />

<strong>Software</strong>entwickler, ein Manager. Verschiedene Stakeholder haben i. Allg. verschiedene Interessen.<br />

18 [ScBe02, 2]<br />

19 “Scrum refers to the strategy used in rugby for getting an out-of-play ball back into play. The name Scrum stuck because<br />

of the similarities between the game of rugby and the type of of product development proscribed by Scrum. Both are<br />

adaptive, quick, self-organizing, and have few rests” [ScBe02, 1].


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 13<br />

Abb. 9: Überblick über Scrum [High02, 243].<br />

Die Auftragbestandsliste (engl. product backlog) enthält alle Anforderungen an das <strong>Software</strong>produkt<br />

(funktionale A., nichtfunktionale A. / Anforderungen an die Technologie). Die Anforderungen<br />

stammen z. B. von Kunden, Verkäufern, der Marketing-Abteilung, dem Kunden-Support oder von den<br />

<strong>Software</strong>entwicklern und können zu einem beliebigen Zeitpunkt während der Projektabwicklung<br />

eingebracht werden. Die Produktfreigabeliste (engl. release backlog) enthält jenen Teil von Anforderungen<br />

der Auftragbestandsliste, der im nächsten Zyklus entwickelt werden soll. Aus der Produktfreigabeliste<br />

wird unter Berücksichtigung der Wichtigkeit (Priorität) der Anforderungen und für die<br />

Entwicklung zur Verfügung stehenden Ressourcen eine Aufgabenliste (engl. sprint backlog) erstellt,<br />

möglicherweise in mehreren Iterationen. Die Aufgabenliste übersetzt Anforderungen an das Produkt<br />

in Aufgaben für die <strong>Software</strong>entwickler.<br />

Für die Sprint-Phase schreibt Scrum keine speziellen Entwicklungspläne vor [High02, 245f].<br />

Scrum sichert lediglich, dass die Anforderungen (in der Produktfreigabeliste) und die daraus<br />

abgeleiteten Aufgaben (in der Aufgabenliste) während eines Sprints (ca. 30 Tage) unverändert<br />

bleiben. 20 Das soll die Fragmentierung der Arbeitszeit verringern und sich häufig ändernde Prioritäten<br />

verhindern. Die <strong>Software</strong>entwickler verpflichten sich für die Dauer eines Sprints, Aufgaben aus der<br />

Aufgaben-Liste zu realisieren. Dabei koordinieren sie ihre Arbeit ihrem Wissen, ihrer Erfahrung und<br />

ihren Talenten entsprechend u.U. auf der Grundlage eines anderen Prozessmodells [ScBe02, 128].<br />

Die <strong>Software</strong>entwickler können tun, was sie für nötig halten, um das Ziel des Sprints zu erreichen<br />

[ScBe02, 45]. Der Kunde (oder Produkteigentümer / Produktmanager, siehe unten) kann erst am Ende<br />

eines Sprints<br />

• die Ergebnisse übernehmen,<br />

• im nächsten Sprint überarbeiten lassen oder<br />

• auf die Ergebnisse vollständig verzichten.<br />

Während eines Sprints nehmen alle Projektmitarbeiter an täglichen Treffen (engl. Scrum meetings)<br />

von ca. 15 Minuten teil. In diesen Treffen nehmen die Projektmitarbeiter kurz zu folgenden Fragen<br />

Stellung [ScBe02, 40]:<br />

• Was wurde seit dem letzten Treffen erreicht (welche Aufgaben wurden erledigt)?<br />

20 Die Auftragbestandliste kann in dieser Zeit weiterentwicklet werden.


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 14<br />

• Was (welche Aufgabe) soll bis zum nächsten Treffen erreicht (bearbeitet) werden?<br />

• Welche Probleme gilt es bis dahin (bis zum nächsten Treffen) zu überwinden?<br />

Die täglichen Treffen sind informativer, nicht fachlicher Natur. Sie dienen der Überwachung (engl.<br />

monitoring) des Projektes und geben dem Management die Möglichkeit, Probleme schnell zu erkennen<br />

und Maßnahmen zur Überwindung der Probleme zu ergreifen. Komplexes fachliche Aufgaben<br />

werden in gesonderten Fachtreffen (engl. follow-up meetings [ScBe02, 46]) zwischen betroffenen<br />

Projektmitarbeitern erörtert. Diese täglichen, rein informativen Gruppentreffen sind für alle Projektmitarbeiter<br />

wenig aufwendig und nützlicher als (diskontinuierliche weil nicht interaktive) Kommunikation<br />

durch Schreiben und Lesen von missverständlichen Reports [ScBe02, 40]. Erledigte Aufgaben<br />

der Aufgabenliste können für alle sichtbar in Hinsicht auf noch offene Aufgaben visualisiert werden<br />

(engl. sprint backlog graph). Die Treffen finden zur selben Zeit im selben Raum statt; das beseitigt<br />

Koordinationsaufwand und macht die Treffen zu einer Selbstverständlichkeit. Auch andere Produktinteressenten<br />

können an diesen Treffen als Zuhörer teilnehmen. Sprints dauern sehr kurz, können aber<br />

in außergewöhnlichen Fällen (gravierende Änderung von Projektumständen) vorzeitig beendet werden<br />

[ScBe02, 53].<br />

In der Post-Sprint-Phase, am Ende einer Projektiteration, werden in einem informativen<br />

Arbeitstreffen [High02,247] [ScBe02, 54-56]<br />

• der Projektfortschritt analysiert,<br />

• Ergebnisse dem Kunden präsentiert und<br />

• ein Review des Projekts (und Produkts) aus technischer Sicht durchgeführt.<br />

Ergebnisse dieses Treffens fließen in die nächste Projektiteration ein.<br />

Wichtige Rollen in Scrum-Projekten sind [ASRW02, 30f]:<br />

• Scrum-Master: Methoden-Berater und Coach; ist verantwortlich dafür, dass das Projekt nach<br />

den Scrum-Regeln abläuft und sorgt für optimale Arbeitsbedingungen für das Scrum-Team.<br />

• Produkteigentümer (Produktmanager): Ist für das (nach den Scrum-Regeln) zu erstellende<br />

<strong>Software</strong>produkt verantwortlich, z. B. für die Pflege der Auftragbestandsliste, für die<br />

Umwandlung von Produktfreigabelisten in Aufgabenlisten, für Schätzung von Aufwänden und<br />

für die Dokumentation des Projektforschritts (engl. sprint backlog graph).<br />

• Projektmitarbeiter (Scrum-Team): <strong>Software</strong>entwickler, die sich den gegebenen Rahmenbedingungen<br />

entsprechend selbst organisieren.<br />

• Kunde<br />

• Management: Nimmt an der Zielsetzung und Anforderungsdefinition teil und trifft finale<br />

Entscheidungen in Übereinstimmung mit den grundlegenden Scrum-Praktiken.<br />

Mit Scrum kann nicht nur die Arbeit einzelner Projektgruppen mit bis zu ca. 10 Mitarbeitern<br />

organisiert werden⎯wie im Fall von XP⎯sondern auch die Arbeit mehrerer, zusammenhängender<br />

Projektgruppen, die z. B. verantwortlich sind für<br />

• gemeinsam benutzte Ressourcen (wiederverwendbare Komponenten und<br />

Entwicklungswerkzeuge),<br />

• für die Sicherung der Qualität (Testen) des gemeinsam erstellten Produkts oder<br />

• für die Unterstützung von Produktvarianten, die bereits produktiv eingesetzt werden.<br />

Wenn mit Scrum mehrere Projekte organisiert werden, dann treffen sich während eines Sprints die<br />

Scrum-Master der Teilprojekte; die Treffen müssen nicht mehr täglich stattfinden. Statt dessen finden<br />

in größeren Abständen aber regelmäßig statt (engl. scrum of scrums meetings) [ScBe02, 128].


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 15<br />

MSF [Microsoft, v1:1991, v2:1998, v3:2003]<br />

Quellen: [Luka03] [Stat99] [Micr99] [Micr03a] [Micr03b] [Micr03c]<br />

Entwicklung und Einsatz (Deployment) von <strong>Software</strong>produkten sind komplex und damit schwer zu<br />

beherrschen. Der Einsatz fortschrittlicher Technologien alleine sichert nicht den Erfolg eines <strong>Software</strong>projektes.<br />

Die entscheidenden Erfolgsfaktoren sind Produktinteressenten (engl. stakeholer) und<br />

Prozesse. Werden diese nicht genügend berücksichtigt, dann kranken Projekte an folgenden Symptomen<br />

[Micr03a]:<br />

• Unkoordinierte Produktinteressenten.<br />

• Unzureichend beschriebene, zufällige Anforderungen; für den Projekterfolg kritische<br />

Anforderungen werden nicht gebührend und nicht rechtzeitig berücksichtigt.<br />

• Projektgruppen, die gestellte Aufgaben und Anwendungsbereiche nicht verstehen.<br />

• Anforderungen, die die Wünsche der Kunden nicht widerspiegeln.<br />

• Anforderungen, die (unter gegebenen Rahmenbedingungen) nicht implementierbar sind.<br />

• Entwicklungsprozesse, die nicht verstanden und nicht beherrscht werden und damit unter den<br />

Beteiligten zu Verwirrung, zu doppelter Arbeit und zu Versäumnissen führen.<br />

• Mangelhafter Übergang eines Projekts von der Entwicklungsphase in die Einsatzphase. Das<br />

kann zu nachträglichem Flickwerk (engl. workarounds) führen, um doch noch die Anforderungen<br />

des Kunden zu erfüllen, oder zu Zeitverzögerungen.<br />

Projekte scheitern, wenn Produktinteressenten einander nicht verstehen und sich auf einen Entwicklungsprozess<br />

nicht einigen kann.<br />

Zur Überwindung der Probleme setzt MSF (Microsoft Solution Framework) auf ein Prozess-<br />

Framework, dessen Elemente (Prinzipien, Prozess- und Teammodelle, Praktiken etc.) situationsbedingt<br />

eingesetzt und angepasst werden können [Luka03, 8]. Ausgangspunkt für MSF sind folgende<br />

bewährten Praktiken (engl. best practices) [Stat99, 3ff]:<br />

1. Integriere <strong>Software</strong> täglich (engl. build software daily).<br />

2. Stelle jedem Entwickler einen Tester bei (engl. use buddy testers).<br />

3. Bilde kleine Projektgruppen mit funktionalen Schwerpunkten (engl. form feature teams).<br />

4. Entwickle <strong>Software</strong> iterativ, plane Zeitpuffer ein (engl. use multiple cycles, with buffers).<br />

5. Fixiere die Produktfreigabe zu Projektbeginn, um sicher zu stellen, dass sich die Projektgruppe<br />

auf die Entwicklung der wesentlichen Produktfähigkeiten (engl. features) konzentriert (engl.<br />

constrain resources and schedule at the start of a project).<br />

6. Entwickle <strong>Software</strong> inkrementell (engl. grow software by prototyping and evolving a feature).<br />

7. Tauche Projekterfahrungen mit Anderen aus (engl. share lessons learned by project postmortems,<br />

process audits etc.)<br />

Microsoft setzt nicht auf ein alle Einzelheiten vorschreibendes Prozessmodell, da keine Organisationsstruktur<br />

und kein Entwicklungsprozess die Anforderungen aller Projekte unter allen Bedingungen<br />

erfüllen kann [Micr03a] 24 . Trotzdem sind gewisse, grundlegende Richtlinien für die Abwicklung von<br />

Projekten verschiedener Typen notwendig [Micr03a]. MSF unterstützt insbesondere die Abwicklung<br />

folgender Projekttypen [Micr03a]:<br />

• Neuentwicklungen (engl. software development projects), u. a. von mobilen, Web- und<br />

E-Commerce Programmen.<br />

21 [Meye96, 59] Ich konnte nicht eindeutig die erste Nennung des Cluster-Modells ermitteln.<br />

22 Die Zeit hat für eine Ausformulierung des Cluster-Modells nicht ganz gereicht. Sorry!<br />

23 Deployment ist wesentlich mehr als die Installation von Produkten (oder Produktkomponenten). Deployment umfasst in<br />

etwa folgende Aktivitäten: Verpacken, ankündigen, konfigurieren, hinzufügen (installieren), aktivieren, deaktivieren,<br />

entfernen (deinstallieren) [CFH+98, 5]<br />

24 “The MSF philosophy holds that there is no single structure or process that optimally applies to the requirements and<br />

environments for all projects.” [http://msdn.microsoft.com/vstudio/productinfo/enterprise/msf/, zitiert am 20.1.2004]


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 16<br />

• Projekte zum Deployment 25 von Infrastruktur (engl. infrastruktur deployment projects), z. B.<br />

Deployment von Desktop-<strong>Software</strong> und Aktualisierungen (engl. updates) von Betriebssystemen.<br />

• Projekte zur Integration von <strong>Software</strong>pakten (engl. packaged application integration projects),<br />

z. B. zur Integration von Komponenten (Paketen) von Warenwirtschaftssystemen.<br />

• Kombinationen der oben genannten Projekttypen.<br />

MSF ist abgestimmt mit MOF (Microsoft Operations Framework). MSF und MOF unterstützen verschiedene<br />

Tätigkeiten in Bezug auf die Entwickung (MSF) und den Einsatz (MOF) eines <strong>Software</strong>produkts<br />

(einer auf <strong>Software</strong> basierenden Dienstleistung) [Micr03b]:<br />

• MSF unterstützt die Bedarfs-, Anwendungsbereich- und Problemanalyse und die Entwicklung<br />

einer Problemlösung (die Entwicklung eines <strong>Software</strong>produkts bzw. einer Dienstleistung)<br />

• MOF unterstützt den Einsatz eines anpassbaren <strong>Software</strong>produkts in verschiedenen, sich<br />

ändernden Umgebungen.<br />

MOF unterstützt insbesondere den Betrieb (Anwendung und Hilfeleistung), die Änderung und die<br />

Optimierung von <strong>Software</strong>produkten in verschiedenen Einsatzumgebungen, um vereinbarte Dienstleistungsniveaus<br />

(engl. service-level agreements, SLAs) zu gewährleisten. Gemeinsam decken MSF<br />

und MOF den gesamten Produkt-Lebenszyklus ab von der Ideenfindung, über Auslieferung und<br />

Einsatz bis zum Auslaufen eines <strong>Software</strong>produkts [Micr03a] (siehe Abb. 12).<br />

Einsatzsicht<br />

Einsetzen<br />

MOF<br />

Planen<br />

Produkt<br />

Deployment<br />

Entwickeln<br />

MSF<br />

Entwicklungssicht<br />

Abb. 12: IT Lifecycle und dessen Abdeckung durch MSF (Microsoft Solutions Framework) und MOF<br />

(Microsofts Operation Framework) [Luka03, 5].<br />

Dieser Aufsatz konzentriert sich im Folgenden auf MSF 27 . MSF enthält folgende Komponenten, die<br />

einzeln angewendet oder situationsbedingt kombiniert 28 werden können:<br />

A. Prinzipien: Grundlegende Werte und Standards, auf denen das gesamte Framework beruht 29 :<br />

1. Fördere die offene Kommunikation (engl. foster open communications)<br />

2. Konzentriere Arbeiten auf eine gemeinsame Vision (engl. work toward a shared vision)<br />

3. Fördere Gruppenmitglieder (engl. empower team members)<br />

25 Deployment ist wesentlich mehr als die Installation von Produkten (oder Produktkomponenten). Deployment umfasst in<br />

etwa folgende Aktivitäten: Verpacken, ankündigen, konfigurieren, hinzufügen (installieren), aktivieren, deaktivieren,<br />

entfernen (deinstallieren) [CFH+98, 5]<br />

26 <strong>Software</strong>produkte können relativ zur sich vor allem technologisch weiter entwickelnden Umgebung altern.<br />

27 MOF setzt das Prozessmodell von Microsoft deutlich ab von anderen <strong>Prozessmodelle</strong>n. Dieser Aufsatz konzentriert sich<br />

jedoch auf den klassischen Teil von <strong>Prozessmodelle</strong>n⎯auf den Analyse- und Entwicklungsprozess aus der Sicht der Produktentwicklung⎯und<br />

daher auf MSF.<br />

28 “As a framework, MSF contains multiple components that can be used individually or adopted as an integrated whole”<br />

[Micr03a]. Dass die Komponenten des Prozess-Frameworks auch einzeln angewendet werden können deutet an, dass<br />

Microsoft den Begriff Framework in diesem Kontext (Prozessmodellierung) gebraucht im Sinne einer Sammlung lose<br />

gekoppelter (Prozess-) Komponenten, etwa in Form einer Checkliste. Im Kontext der <strong>Software</strong>entwicklung macht ein<br />

Framework jedoch das definierte Zusammenspiel von stark gekoppelten, anpassbaren Komponenten aus.<br />

29 Interpretierbar als die Microsoft-Philosophie oder Verfassung.


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 17<br />

4. Etabliere die Pflicht zur Rechenschaft gegenüber Kunden und Kollegen [Micr03c] und ein<br />

gemeinsames Verantwortungsgefühl für das gesamte Produkt (engl. establish clear<br />

accountability and shared responsibility)<br />

5. Bewahre Flexibilität, sei bereit für Veränderungen (engl. stay agile, expect change)<br />

6. Investiere in Qualität (engl. invest in quality)<br />

7. Lerne aus Erfahrungen (engl. learn from all experiences)<br />

B. Modelle: Schematische Beschreibungen der Struktur von Projektgruppen und von Prozessen:<br />

das (B1) Teammodell und das (B2) Prozessmodell.<br />

C. Disziplinen: Die Projektabwicklung unterstützende Prozesse: (C1) Projekt-Management, (C2)<br />

Risiko-Management, (C3) Readiness-Management.<br />

D. Konzepte: Ideen, die den grundlegenden Prinzipien (A) folgen, Modelle (B) oder Disziplinen<br />

(C) unterstützen und sich in Form von bewährten Verfahren (E) äußern.<br />

E. Praktiken: Bewährte Verfahren, die sich als nützlich für die Abwicklung von Projekten herausgestellt<br />

haben.<br />

F. Empfehlungen: Optionale Verfahren und Richtlinien zur Unterstützung des Einsatzes der<br />

Modelle (B) und Disziplinen (C).<br />

Die folgende Tabelle zeigt an 2 Beispielen, wie die MSF-Komponenten zusammenhängen:<br />

Bsp A: Prinzipien B: Modelle /<br />

C: Disziplinen<br />

1 Lerne aus<br />

B1: Prozess-<br />

Erfahrungen modell<br />

2 Bleib flexibel, er- C2: Risikowarte<br />

Veränderungen Management<br />

MSF Komponenten<br />

D: Konzepte E: Praktiken F: Empfehlungen<br />

Bereitschaft<br />

zum Lernen<br />

Kontinuierliches<br />

Risiko-<br />

Management<br />

Reviews nach Externe Person mo-<br />

Meilensteinen deriert ein Review<br />

Definiere und Erstelle eine<br />

überwache Ri- unternehmensweite<br />

sikoauslöser Risiken-Datenbank<br />

Das erste Beispiel ist etwa wie folgt zu lesen: Um aus Erfahrungen lernen zu können, muss die Bereitschaft<br />

zum Lernen vorhanden sein. MSF empfiehlt dazu im Rahmen des Prozessmodells, abgeschlossene<br />

Phasen oder Entwicklungszyklen einem Review zu unterziehen. Es wird empfohlen, dass externe<br />

(an dem Entwicklungsabschnitt unbeteiligte) Personen die Reviews moderieren.<br />

MSF-Modelle<br />

Teammodell (B1) und Prozessmodell (B2) sind die Schlüsselkomponenten des MSF. Sie wenden die<br />

grundlegenden Prinzipien (A) auf die entscheidenden Erfolgsfaktoren eines Projekts an: auf Produktinteressenten<br />

und Prozesse. Die Modelle beschreiben die Organisation einer Projektgruppe anhand<br />

von Rollen und Aktivitäten.<br />

Teammodell<br />

Abb. 13 zeigt Rollen(gruppen) innerhalb eines vollständigen Teams und ordnet ihnen die jeweiligen<br />

Qualitätsziele im Rahmen eines Projektes zu.


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 18<br />

Zufriedene Kunden.<br />

Kunde kann die Lösung<br />

effektiv nutzen.<br />

Lösungen innerhalb der Rahmenbedingungen eines Projektes.<br />

Produkt<br />

Manager<br />

Anwender<br />

Programm<br />

Manager<br />

Kommunikation<br />

Release<br />

Manager<br />

Entwickler<br />

Tester<br />

Einfaches Deployment und kontrollierter Einsatz der Lösungen.<br />

Abb. 13: Die Rollen(gruppen) des MSF Teammodell und deren Qualitätsziele.<br />

Lösungen auf der Grundlage<br />

einer Spezifikation.<br />

Bereitschaft zur Produktfreigabe<br />

nachdem alle<br />

Qualitätsanforderungen<br />

identifiziert und behandelt<br />

wurden.<br />

Jede Rolle ist gleichwertig (engl. team of peers). Wichtige Entscheidungen werden gemeinsam getroffen.<br />

Die Rollen vertreten dabei die Interessen verschiedener Produktinteressenten und bringen deren<br />

speziellen Anforderungen an die Produktqualität ein, weil die Entwicklung von <strong>Software</strong>produkten<br />

nicht auf die Programmierung beschränkt ist.<br />

MSF ist skalierbar, indem entweder<br />

• funktionsorientierte Projektgruppen (engl. functional teams) oder<br />

• produktorientierte Projektgruppen (engl. feature teams)<br />

gebildet werden. In funktionsorientierte Projektgruppen übernehmen mehrere Personen eine Rolle, z.<br />

B. bilden mehrere Entwickler eine Entwicklergruppe und mehrere Release Manager bilden eine Release<br />

Management Gruppe. In produktorientierten Projektgruppen erstellen Projektgruppen gemeinsam<br />

komplette Produktfunktionen. Diese Projektgruppen besetzen mehrere, im Idealfall alle Rollen, z.<br />

B. eine Projektgruppe aus Entwicklern, Testern, Release Managern für separate Betriebssystem- und<br />

Infrastruktur-Komponenten (die Gruppe „Betriebsyssteme“), eine andere Projektgruppe realisiert die<br />

Kreditkarten-Funktionen eines Online-Warenhauses. Grundsätzlich kann eine Person mehrere Rollen<br />

übernehmen. Rollen mit gegensätzlichen Interessen sollten jedoch nicht von einer Person besetzt werden,<br />

z.B. Programm Management und Produkt Management. Mit der Entwicklerrolle sollte keine andere<br />

Rolle kombiniert werden.<br />

Prozessmodell<br />

MSF kombiniert die Phasen- und Meilenstein-basierte Vorgehensweise des Wasserfall-Modells mit<br />

der iterativen Vorgehensweise des Spiralmodells [Micr03a] [Micr99, 2] (siehe Abb. 14).<br />

Deploymentphase (diszipliniert)<br />

Bereitschaft des Produktes<br />

zur Freigabe ist bestätigt<br />

Stabilisierungsphase (zielstrebig)<br />

Implementation deckt Reichweite<br />

des Produktes ab<br />

Deployment des Produktes ist abgeschlossen<br />

Prozessmodell<br />

Ideenphase (erforschend)<br />

Vision und Reichweite des<br />

Produktes sind bestätigt<br />

Planungsphase (klärend)<br />

Projektpläne sind bestätigt<br />

Entwicklungsphase (kreativ)<br />

Abb. 14: Phasen und Meilensteine des MSF-Prozessmodells. Unterschiedliche Phasen haben den<br />

phasentypischen Aktivitäten entsprechendend unterschiedlichen Charakter (erforschend, klärend etc.).


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 19<br />

Entwicklungsphasen bündeln Aktivitäten mit dem Ziel, zu den Meilensteinen geforderte Ergebnisse<br />

(im geforderten Zustand) vorzulegen. Von Phase zu Phase ändert sich die Sicht auf das Produkt und<br />

die Art (Charakter) der Tätigkeiten, z. B. überwiegen in der Entwicklungsphase kreative Tätigkeiten<br />

(kreative, ausgewogene Problemlösungen entwickeln) und in der Stabilisierungsphase überwiegen<br />

zielstrebige Tätigkeiten (zielstrebiges Finden und Beseitigen von Fehlern).<br />

Meilensteine dienen der Synchronisation und Überprüfung von Arbeitsergebnissen. Meilensteine<br />

sind Kontaktpunkte mit dem Auftraggeber: In Meilensteinsitzungen kann die Reichweite bzw. Ausrichtung<br />

(engl. scope) des Produkts an geänderte Kunden- oder Geschäfts- oder Technologieanforderungen<br />

angepasst werden. Meilensteine müssen vor einem Übergang zur nächsten Phase erfolgreich<br />

abgeschlossen sein. Ein Meilenstein ist erfolgreich absolviert, wenn greifbare Ergebnisse vorliegen<br />

und Produktinteressenten Einigkeit über das Qualitätsniveau der Ergebnisse erzielt haben. Meilensteine<br />

sind keine punktuellen Ereignisse sondern erstrecken sich über eine gewisse Zeitspanne. Die<br />

folgende Tabelle vermittelt einen Eindruck davon, welche Ergebnisse zu welchen Meilensteinen am<br />

Ende von Phasen vorliegen sollen:<br />

Phase Meilenstein Ergebnisse {Zustand}<br />

Ideen Vision und Produktvision, Risikoeinschätzung, Projektstruktur<br />

Umfang bestätigt<br />

Planung Projektpläne Spezifikation {baseline<br />

bestätigt<br />

30 }, Risikoeinschätzung {verfeinert},<br />

Projektablauf<br />

Entwicklung Produkt<br />

implementiert<br />

Spezifikation {fixiert}, Umgang mit Risiken, Programmtexte,<br />

Ausführbare Programme, Performanz Support Elemente 31 ,<br />

Testspezifikation und Testfälle, Produkt- und Projektlebenszyklus-Plan<br />

(engl. product / project master plan)<br />

Stabilisierung Freigabebereit- Auslieferbare Produktversion (engl. golden release), Freigabeschaft<br />

bestätigt dokument (engl. release notes), Performanz Support Elemente,<br />

Testdokumentation und Testwerkzeuge, die übrigen Projektdokumente,<br />

Meilenstein-Nachbetrachtung<br />

Deployment Deployment<br />

abgeschlossen<br />

⎯<br />

Zur Sicherung der Qualität werden <strong>Software</strong>produkte kontinuierlich entwickelt, integriert, getestet und<br />

stabilisiert (Fehler beseitigt). Dazu werden während der Entwicklungs- und Stabilisierungsphasen neben<br />

externen (d. h. für den Auftraggeber oder Kunden sichtbaren) Meilensteinen auch interne Meilensteine<br />

zum Zweck der Ergebnisüberprüfung und -synchronisation gesetzt (siehe Abb. 15 [Luka03,<br />

19]).<br />

30 Eine Baseline ist eine geprüfte (engl. reviewed) und angenomme Freigabe eines Artifaktes. Eine Baseline bildet den<br />

Ausgangspunkt für die weitere Entwicklung des Artifaktes. Das Artifakt kann nur kontrolliert weiter entwickelt werden; es<br />

steht für gewöhnlich unter Veränderungs- und Konfigurationskontrolle.<br />

31 Performance Support Elements sind Werkzeuge, z. B. Experten (engl. wizards), Assistenten und (online) Trainingsunterlagen<br />

[Mari03]. Diese Werkzeuge realisieren keine Hauptfunktionen (oder Schritte von Geschäftsrozessen) sondern<br />

erleichtern Anwendern den Umgang mit einem <strong>Software</strong>produkt und verbessern damit die Benutzbarkeit (engl. usability,<br />

ein Qualitätsmerkmal).


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 20<br />

Implementation deckt Reichweite des Produktes ab<br />

Testrelevante Ergebnisse: Testspezifikation u. Testfälle<br />

Alphas<br />

Markt- oder Kunden-Freigabe (RTM)<br />

Kandiaten für öffentliche Freigabe<br />

Nullfehler Freigabe<br />

interne Freigabe n (Pilot)<br />

interne Freigabe ...<br />

interne Freigabe2<br />

interne Freigabe1<br />

Bereitschaft des Produktes zur Freigabe ist bestätigt<br />

Testrelevantes Ergebnis: Produktfreigabe<br />

Betas<br />

Abb. 15: Qualitätssicherung in MSF.<br />

Stabilisierungsphase<br />

Produktstabilität<br />

Entwicklungsphase<br />

Projektpläne sind bestätigt<br />

Testrelevantes Ergebnis: Testplan<br />

Während der Entwicklungsphase wiederholen sich in Miniterationen Entwicklungs- und Stabilisierungsaktivitäten.<br />

Tägliche Integrationen (engl. daily builds) zusammen mit automatisierten Tests fördern<br />

diese Arbeitsweise (siehe Abb.16).<br />

interne<br />

Freigabe i<br />

tägliche Integration:<br />

Entwickeln von<br />

Produktfunktionen<br />

aktualisiere lokal: fremder Code<br />

reserviere lokal: eigener Code<br />

integriere und teste global: komplette<br />

Codebasis (eigener u. fremder Code)<br />

aktualisiere global: eigener Code<br />

Testen und<br />

Stabilisieren von<br />

Produktfunktionen<br />

Puffer<br />

entwickle/stabilisiere und<br />

teste lokal: eigener Code<br />

interne<br />

Freigabe i+1<br />

Abb. 16: Tägliche Integration (daily builds) und Miniiterationen von Entwicklungs- und Testaktiviäten<br />

während der Entwicklungsphase. Lokal bedeutet: auf der Maschine eines Entwicklers, global bedeutet: auf<br />

einer zentralen Maschine (Build-Maschine).<br />

MSF-Disziplinen<br />

Projektmanagement, Riskomanagement und Readiness Management unterstützen die Kerndisziplinen<br />

von MSF: das Teammodell und das Prozessmodell. Da MSF—und gleichermaßen MOF—Management-Disziplinen<br />

hauptsächlich (mit ein paar Anpassungen) wiederverwenden [Micr03a], werden die<br />

Disziplinen im Folgenden nur kurz vorgestellt. In der Zukunft könnten zusätzliche Disziplinen hinzukommen<br />

[Micr03a] (z. B. Technologie-Management [A.d.V.]).


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 21<br />

Projektmanagement<br />

Das Projektmanagement soll die Erbringung abrechenbarer Leistungen (Rechenschaftspflicht) fördern<br />

und das Management verschieden großer (verschieden komplexer) Projekte ermöglichen. Dafür<br />

empfiehlt MSF Methoden des PMIBOK (Akronym für Project Management Institute Body of Knowledge)<br />

32 und Prince2 (Akronym für Projects in controlled environments) 33 an. Besonderheiten des<br />

Projekt-Managements (im weiteren abgekürzt mit PM) in MSF [Micr03a]:<br />

A. PM-Aktivitäten erstrecken sich i. Allg. auf eine Reihe von Gebieten und Tätigkeiten und sind<br />

daher nicht beschränkt auf eine Rolle.<br />

B. Alle Rollen sind gleichberechtigt und daher auch gleichberechtigt am PM beteiligt. Insbesondere<br />

treffen alle Rollen PM-relevante Entscheidungen gemeinsam.<br />

C. Die Rolle des Programm Managers nimmt die meisten PM-relevanten Aktivitäten und die<br />

meiste Verantwortung wahr.<br />

D. In großen Projekten findet PM auf verschiedenen Ebenen statt; u. U. ist eine eigene funktionsorientierte<br />

Projektgruppe (siehe MSF-Teammodell) für das PM zuständig.<br />

Das Projekt-Management folgt den weiter oben erwähnten Prinzipien insbesondere den Prinzipien A2<br />

(Konzentriere Arbeiten auf eine gemeinsame Vision) und A4 (Etabliere die Pflicht zur Rechenschaft<br />

und ein gemeinsames Verantwortungsgefühl).<br />

Risikomanagement<br />

Das Risikomanagement soll einen kontrollierten Umgang mit Risiken und Unsicherheiten ermöglichen.<br />

Die Entwicklung von komplexen <strong>Software</strong>produkten für verschiedenen, oft wenig bekannte<br />

Einsatzumgebungen führt zu hohen Risiken und Unsicherheiten. MSF versucht Risiken durch aktives<br />

(statt reaktives) Management als Chancen zu begreifen, indem z. B. aus Risiken und dem Umgang mit<br />

ihnen in der Vergangenheit Rückschlüsse für das Management zukünftiger Iterationen, Phasen oder<br />

Projekte gezogen werden. Aktives Management von Risiken ist notwendig für fundierte Entscheidungsprozesse.<br />

Dazu sind Projektrisiken kontinuierlich zu<br />

1. identifizieren, analysieren und priorisieren: Unsicherheiten, die den Erfolg des Projektes<br />

gefährden können, sollen erkannt und, durch die Projektdynamik kontinuierlich neu bewertet<br />

werden in Bezug auf das Projekt selbst und seine Umgebung.<br />

2. planen: Ausweichende, abschwächende oder korrigierende Maßnahmen zum Umgang mit<br />

Risiken sollen vorausschauend festgelegt werden.<br />

3. überwachen: Installation eines Frühwarnsystems, z. B. auf der Grundlage von Maßzahlen wie<br />

etwa offene, neue, korrigierte Fehler bestimmter Kategorien pro Komponente und Teilsystem,<br />

Anzahl und Änderungsraten von Anforderungen und Überstunden.<br />

4. steuern: Einleiten korrigierender Maßnahmen beim Eintreten von Risiken.<br />

5. protokollieren: Verwalten von Informationen über Risiken in einer Datenbank.<br />

Das Risiko-Management folgt den weiter oben erwähnten Prinzipien insbesondere den Prinzipien A5<br />

(Bewahre Flexibilität), A6 (Investiere in Qualität) und A7 (Lerne aus Erfahrungen).<br />

Readiness Management<br />

Das Readiness Management soll sicher stellen, dass jeder Mitarbeiter einer Projektgruppe in der Lage<br />

ist, Tätigkeiten seiner Rolle(n) entsprechend fachgerecht auszuführen. Readiness (Bereitschaft oder<br />

Qualifikation) bezeichnet im Kontext von MSF den Unterschied zwischen gewünschtem und tatsächlichem<br />

Zuständen von Personen, Projektgruppen oder größeren Organisationseinheiten bezüglich<br />

Wissen, Fähigkeiten und Fertigkeiten (engl. KSA, Akronym für Knowledge, Skills and Abilities) zu<br />

verschieden Zeitpunkten während der Abwicklung von <strong>Software</strong>projekten [Micr03a]. Defizite sollen<br />

rechtzeitig beseitigt werden insbesondere auf der Grundlage der weiter oben erwähnten Prinzipien A1<br />

32 Siehe www.pmi.org<br />

33 Siehe www.prince2.com


Kurzcharakteristik ausgewählter <strong>Software</strong>-<strong>Prozessmodelle</strong> [JHF, 20.1.2004] 22<br />

(Fördere die offene Kommunikation), A3 (Fördere Gruppenmitglieder), A6 (Investiere in Qualität)<br />

und A7 (Lerne aus Erfahrungen).<br />

Referenzen<br />

[Ambl98] S.W.Ambler: Process Patterns: Building Large-Scale Systems Using Object Technology.<br />

Sigs BooksCambridge, 1998.<br />

[Ambl99] S.W.Ambler: More Process Patterns: Delivering Large-Scale Systems Using Object<br />

Technology. Sigs BooksCambridge, 1999.<br />

[ASRW02] P.Abrahamson, O.Salo, J.Rankainen, J.Warsta: Agile <strong>Software</strong> Development Methods.<br />

VIT, 2002.<br />

[Beck00] K.Beck: Extreme Programming explained. Addison-Wesley, 2000.<br />

[CFH+98] A.Carzaniga, A.Fuggetta, R.S.Hall, D.Heimbigner, A.Hoek, A.Wolf: A Characterization<br />

Framework for <strong>Software</strong> Deployment Technologies. University of Colorado, DCS,<br />

Technical Report CU-CS-857-98, 1998.<br />

[GrHY98] I.Graham, B.Henderson-Sellers, H.Younessi: The OPEN Process Specification. Addison-<br />

Wesley, 1998.<br />

[HaNe01] H.R.Hansen, G.Neumann: Wirtschaftsinformatik I. UTB, 2001.<br />

[High02] J.Highsmith: Agile <strong>Software</strong> Development Ecosystems. Addison-Wesley, 2002.<br />

[Jaco00] I.Jacobson: The Road to the Unified <strong>Software</strong> Development Process. SIGS Reference<br />

Series, Cambridge University, 2000.<br />

[Kruc00] P.Kruchten: The Rational Unified Process. An Introduction. Addison-Wesley, 2000.<br />

[Luka03] R.Lukawiecki: A-to-Z of MSF v3 (Microsoft Solution Framework). DEV238, TechEd,<br />

Barcelona, 2003.<br />

[Micr99] Microsoft: Process Model for Application Development. Principles of Application Development<br />

Ressource Kit, 1999.<br />

[Micr03a] Microsoft TechNet: Microsoft Solutions Framework Version 3.0 Overview.<br />

http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/tandp/inns<br />

ol/msfrl/msfovrvw.asp, zitiert am 15.9.2003.<br />

[Micr03b] Microsoft TechNet: MOF Executive Overview.<br />

http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/tandp/ope<br />

x/mofrl/mofeo.asp, zitiert am 19.9.2003.<br />

[Micr03c] Microsoft TechNet: Microsoft Solutions Framework: MSF Project Management<br />

Discipline v1.1.<br />

http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/tandp/inns<br />

ol/msfrl/MSFPMD11.asp, zitiert am 17.9.2003.<br />

[OTC97] Object Technology Center, IBM: Developing Object-Oriented <strong>Software</strong>: An Experience-<br />

Based Approach. Prentice Hall, 1997.<br />

[PaFe02] S.R.Palmer, J.M.Felsing: A Practical Guide to Feature-Driven Development. Prentice<br />

Hall, 2002.<br />

[Pauli02] D.J.Paulish: Architecture-Centric <strong>Software</strong> Project Management: A Practical Guide.<br />

Addison-Wesley, 2002.<br />

[ScBe02] K.Schwaber, M.Beedle: Agile <strong>Software</strong> Development with Scrum. Prentice Hall, 2002.<br />

[Stat99] J. Statz: Microsoft’s Solution Framework and the Capabilty Maturity Model. Principles of<br />

Application Development Ressource Kit, 1999.<br />

[Stra03] S.Strahringer: Wirtschaftsinformatik 3: <strong>Software</strong>prozess-Modelle.<br />

http://wwwfl.ebs.de/Lehrstuehle/Wirtschaftsinformatik/NEW/Courses/Semester3/BIS3/WI<br />

3Teil2.pdf, zitiert am 25.6.2003.<br />

[Vers00] G.Versteegen (Hrsg.): Das V-Modell in der Praxis. dpunkt 2000.<br />

[WWW1] http://www.informatik.uni-bremen.de/uniform/gdpa/vmodel/sd3_5.htm, zitiert am<br />

25.6.2003<br />

[WWW2] http://www.extremeprogramming.org/, zitiert am 26.6.2003

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!