Entwicklungsphasen des OEP
Die Projektdurchführung erfolgt in verschiedenen Phasen, die jeweils unterschiedlichen Zielsetzungen folgen. Eine Phase ist ein zeitlicher bzw. sachlogischer Gliederungsabschnitt eines Projektes.
Eine Phase faßt eine Menge von Aktivitäten und Ergebnissen zu einer Planungs- und Kontrolleinheit zusammen. Am Ende jeder Phase steht ein Meilenstein, der die in der Phase zu erzielenden Ergebnisse definiert.
Ein Meilenstein definiert einen Termin, zu dem eine Menge von Ergebnissen in vorgegebener Detaillierung vollständig, nachprüfbar und formal dokumentiert vorliegen soll.
Die einzelnen Phasen können wiederum in Iterationen bzw. Timeboxen unterteilt werden, um so ein iteratives Vorgehen zu erzielen.
Folgende Phasen sind definiert:
Die Vorbereitungsphase dient der grundlegenden Orientierung und Grobplanung für das Projekt.
Zweck der Vorbereitungsphase ist es, Inhalte und Ziele des Projektes entscheidbar und planbar zu machen. Die Phase könnte auch Auftragsklärungsphase oder Angebotserstellungsphase genannt werden.
Die Anforderungen an das zu entwickelnde System werden so weit erhoben, dass damit Aussagen zu Aufwand, Projektdauer, benötigten Ressourcen, Meilensteinen und eine grobe Aufteilung in einzelne Iterationen möglich sind. Und zwar in einer solchen Genauigkeit bzw. Zuverlässigkeit, wie sie in der aktuellen Situation minimal notwendig ist.
Wenn also der Auftraggeber nur eine sehr grobe Schätzung benötigt und die tatsächlichen Kosten und Termine erheblich abweichen dür-fen, ist die Vorbereitungsphase schnell abzuschließen. Dies ist oftmals in internen Softwareentwicklungsprojekten der Fall, wenn also Auftraggeber und Auftragnehmer zum gleichen Unternehmen gehören und die fachliche Notwendigkeit des Projektes außer Frage steht. Oder es liegt beispielsweise bereits ein komplettes und gutes Pflichtenheft vor.
Das andere Extrem ist sicherlich eine Situation mit einem externen Auftraggeber, der einen Festpreis benötigt, einem Auftragnehmer, der eine bestimmte Mindestrendite erzielen möchte, und ausreichend Zeit, um die Vorbereitungsphase auch gründlich genug durchführen zu können. Existieren außergewöhnlich viele Risiken, wird dies sicherlich eine längere Vorbereitungsphase erfordern.
Wann also genau die Vorbereitungsphase erfolgreich abgeschlossen werden kann, lässt sich nicht pauschal definieren, sondern ist projektspezifisch. Letztendlich sind es drei wichtige Faktoren, die das Phasenende bestimmen: Wie viel Zeit steht überhaupt zur Verfügung und welche Genauigkeit der Ergebnisse fordert der Auftraggeber und wel-che der Auftragnehmer?
Für die Dauer der Vorbereitungsphase kann als Richtwert etwa fünf bis zehn Prozent vom gesamten Zeitbedarf (über alle vier Phasen) angenommen werden.
Die Vorbereitungsphase wird durchgeführt
- bei der Neuentwicklung von Software,
- beim Redesign bestehender Software mit fachlichen Änderungen,
- bei der Migration bestehender Software in eine neue Systemarchitektur,
- bei sehr umfangreichen Wartungsarbeiten.
Wenn dem Projekt eine eigenständige Geschäftsprozessmodellierung voranging und es von Änderungen der Organisation und der Geschäftsprozesse betroffen ist, fließen die Ergebnisse der Geschäftsprozessmodellierung in diese Vorbereitungsphase ein.
Unsicherheiten in der Machbarkeit von Produktanforderungen können in dieser Phase durch experimentelle Prototypen beantwortet werden. Wenn die Durchführung des gesamten Projektes noch nicht entschieden ist oder noch sehr große Unsicherheit darüber besteht, rückt die Vorstudie in den Mittelpunkt der Vorbereitungsphase, mit der die Machbarkeit, Zweckmäßigkeit und die Alternativen geklärt werden sollen.
Sofern die Durchführung des gesamten Projektes unterstellt wird oder es hierzu eine klare Entscheidung gibt, konzentrieren sich die Aktivitäten der Vorbereitungsphase mehr auf die Konkretisierung und Abgrenzung der Projektinhalte.
Die wichtigsten Ergebnisse der Vorbereitungsphase sind:
- Definition des Projektziels und Abgrenzung des Projektes. Bei sehr unsicheren Projekten ggf. auch nur die Abstimmung eines Zielkor-ridors.
- Benennung des Auftraggebers, der einen klaren Projektauftrag gibt. Wenn Sie keinen Auftraggeber finden, der den Projektauftrag unterschreiben möchte, dann scheint das Projekt nicht wichtig zu sein und Sie sollten das Projekt nicht beginnen bzw. nicht die Pro-jektleitung übernehmen.
- Überblick über den Problembereich und die Anforderungen an das Produkt. Also beispielsweise eine Liste wichtiger Anwendungsfälle oder eine pauschale Referenz (z.B. Ablösung eines bestehenden Systems). Wichtig ist aber auch eine Abgrenzung, was explizit nicht zum Projektumfang gehört.
- Überblick über die Rahmenbedingungen des Projektes. Rahmenbedingungen können technische Faktoren sein, beispielsweise bestimmte zu verwendende Technologien, Produkte, Programmiersprachen, Datenbanken etc., es können organisatorische, finanzielle, terminliche oder inhaltliche Rahmenbedingungen sein. Ist beispielsweise eine bestimmte Zertifizierung und Abnahme des Ergebnisses notwendig (z.B. durch Wirtschaftsprüfung, TÜV, FDA etc.)?
- Grobe Projektplanung. Hierzu gehören wichtige Meilensteine, Start- und Endtermin sowie eine einfache inhaltliche Gliederung des Projektes.
- Definition der Erfolgskriterien des Projektes
- Benennung der Risikofaktoren des Projektes
- Ggf. Erarbeitung, Bewertung, Empfehlung und Entscheidung über Realisierungsalternativen
Die Vorstudie ist Entscheidungsgrundlage für die Durchführung der Entwurfsphase.
Meilensteine der Vorbereitungsphase:
- Vorstudie verfügbar (optionaler Meilenstein)
Dieser Meilenstein gilt als erreicht, wenn die Vorstudie vollständig erarbeitet ist und präsentationsfähig vorliegt, eine Empfehlung zum weiteren Vorgehen vorliegt und die Ergebnisse gegenüber dem Auftraggeber/Kunden präsentiert werden können.
- Projektauftrag vereinbart (markiert Abschluss der Phase)
Dieser Meilenstein gilt als erreicht, wenn alle inhaltlichen Arbeiten der Vorbereitungsphase abgeschlossen sind und eine Entschei-dung über die Fortsetzung des Projektes (beispielsweise auf Basis der Empfehlungen der Vorstudie) getroffen wurde.
Statt Projektauftrag vereinbart ist möglicherweise auch Projektauftrag abgestimmt oder Angebot abgegeben ein sinnvoller Meilenstein. Projektauftrag vereinbart bezieht sich eher auf eine interne Auftragssituation. Bei einem externen Auftraggeber ist normalerweise ein Angebot mit einer Bindefrist abzugeben. Innerhalb der Bindefrist kann der Auftragnehmer das Angebot annehmen, und der Auftragnehmer hat das Projekt dann entsprechend des Angebotes umzusetzen. In diesem Fall wäre das Ende der Vorbereitungsphase durch die Abgabe des Angebotes gekennzeichnet. Dies ist ein sehr einfaches und klares Kriterium. Die Vorbereitungsphase wäre in diesem Fall auch dann zu Ende, wenn die Frist zur Angebotsabgabe verstrichen ist und noch kein Angebot abgegeben wurde.
Unabhängig davon, ob es eine interne oder externe Auftraggebersituation ist, kann zwischen dem Ende der Vorbereitungsphase und dem Beginn der nächsten Projektphase unter Umständen eine sehr lange Pause entstehen. Bei externen Aufträgen ist die Pause gewöhnlich begrenzt durch die Bindefrist des Angebotes. Aber auch bei internen Aufträgen kann es ggf. eine Weile dauern, bis das entsprechende Gremium oder die Geschäftsführung die Projektdurchführung beschließt. Auch bei internen Auftragssituationen kann es zu einer Ablehnung kommen.
Streng genommen ist die Vorbereitungsphase noch keine Projektphase, denn das eigentliche Projekt wird erst mit der Beauftragung, also mit Beginn der nächsten Phase, ins Leben gerufen. Oftmals sind zumindest einige Personen, die an der Vorbereitungsphase, d.h. Angebotserstellung beteiligt sind, auch im späteren Projekt dabei. Es können aber auch völlig andere Personen sein.
Geschäftsprozessmodellierung erstreckt sich gewöhnlich nicht nur über DV-relevante Abläufe und Prozesselemente, sondern beinhaltet auch organisatorische und manuelle Aspekte. In vielen Unternehmen ist nicht die Informatik, sondern eine eigene Abteilung (z.B. Betriebsorganisation) für die Geschäftsprozessanalyse zuständig. Im Rahmen von Geschäftsprozessanalysen wird zwar häufig Bedarf für neue Software oder für Änderungen an vorhandener Software erkannt, dennoch hat die Geschäftsprozessmodellierung einen anderen Fokus und etwas andere Ziele als die Softwareentwicklung. Geschäftsorganisatoren und Informatiker arbeiten mit unterschiedlichen Modellen, Methoden und Werkzeugen und an unterschiedlichen Aufgaben.
Die Analyse und Modellierung von Geschäftsprozessen kann deshalb aus dem Vorgehensmodell zur Softwareentwicklung ausgeklammert werden. Bei der Softwareentwicklung müssen jedoch Ergebnisse der Geschäftsprozessmodellierung beachtet werden. Zum einen hinsichtlich der inhaltlichen Ausrichtung (erkannte Schwachstellen und Lücken im Geschäftsprozess reduzieren), zum anderen, um eine möglichst effektive und sinnvolle Integration des neuen Anwendungssystems zu erzielen. Ebenso können sich aus neu eingeführter Software wieder neue Ansatzpunkte für die Geschäftsprozessanalyse ergeben.
Der OEP enthält eine eigene Disziplin Geschäftsprozessmodellierung, um den Bezug und die Abhängigkeiten von Geschäftsprozessmodellierung und der Entwicklung von Softwaresystemen darzustellen. Diese Disziplin kann also einerseits eigenständig, d.h. losgelöst von der Softwareentwicklung betrachtet und praktiziert werden, andererseits aber auch als integraler Bestandteil von IT-Projekten angesehen werden.
Aktiviäten der Vorbereitungsphase (Übersicht)
Meilenstein:
-
Vorstudie verfügbar
(Meilenstein
, optional)
Dieser Meilenstein wird nur dann geplant, wenn die grundsätzliche Machbarkeit und Zweckmäßigkeit noch nicht geklärt ist oder wesentliche Realisierungsalternativen noch zu untersuchen sind.
Dieser Meilenstein gilt als erreicht, wenn
- die Vorstudie vollständig erarbeitet ist und präsentationsfähig vorliegt
- eine Empfehlung zum weiteren Vorgehen vorliegt
- die Ergebnisse gegenüber dem Auftraggeber/Kunden präsentiert werden können
Folgende Ergebnisse müssen vorliegen:
-
E-78 Vorstudie
[präsentations- und abstimmfähig]
-
Projektauftrag vereinbart
(Phasenmeilenstein
)
Dieser Phasenmeilenstein markiert das Ende der Vorbereitungsphase. Die Ergebnisse, die in der Vorbereitungsphase erzielt worden sind, erlauben eine genauere Übersicht über die anstehenden Aufgaben und den voraussichtlichen Zeit- und Ressourcenaufwand.
Der Meilenstein ist erreicht, wenn eine Vereinbarung zwischen Auftraggeber und Auftragnehmer über den genauen Inhalt des Projektauftrags, den Phasen- und Meilensteinplan und die voraussichtlichen Aufwände zur Projektdurchführung erzielt worden ist. Diese Ergebnisse sind Teil des Softwareentwicklungsplanes.
Auf Basis dieser Ergebnisse kann dann über die Fortführung des Projektes und den Start der Entwurfsphase entschieden werden. Dieser Meilenstein ist erreicht, wenn alle Voraussetzungen für diese Entscheidung gegeben sind, die Entscheidung selbst gehört nicht mehr dazu.
Folgende Ergebnisse müssen vorliegen:
-
E-20 Anforderungsspezifikation
[Überblick]
-
E-115 Geschäftsklassenmodell
[Entwurf]
-
E-1 Projektauftrag
[abgestimmt]
-
E-10 Aufwandsschätzung
-
E-83 Softwareentwicklungsplan
[grob]
-
E-70 Meilensteindokument
Die Entwurfs- und Architekturphase dient der Analyse des Anwendungsbereiches und der Erfassung aller wichtigen funktionalen und nichtfunktionalen Anforderungen an das Produkt.
Zweck der Entwurfsphase ist es, auf dieser Basis die grundsätzliche technische und fachliche Architektur festzulegen und alle grundsätzlichen Entscheidungen abzusichern.
Die fachlichen Zusammenhänge und Anforderungen sind detailliert zu ermitteln, die fachliche Architektur und die Anwendungsarchitektur sind zu erarbeiten und die Projektplanung ist zu detaillieren. Erste Lösungskonzepte werden entwickelt.
Zu Beginn des Projektes werden einige ganz grundlegende Entscheidungen getroffen. Wenn diese im Laufe des Projektes geändert werden müssten, könnte dies ganz erhebliche Kosten- und Terminüberschreitungen verursachen. Alle Entscheidungen mit einer solchen Tragweite sind gut abzusichern und gründlich zu überprüfen. Dies ist die vorrangige Aufgabe der Entwurfs- und Architekturphase. Die Entscheidung für eine bestimmte zu verwendende Datenbank, für ein bestimmtes Framework oder für eine bestimmte Programmiersprache ist in den meisten Fällen so grundlegend, dass eine spätere Änderung das Projekt dramatisch zurückwerfen oder gar sein Scheitern aus-lösen kann.
Wenn also zu befürchten ist, dass das verwendete Framework nicht leistungsfähig genug sein wird, ist es dringend geboten, die Entscheidung für das Framework abzusichern. Beispielsweise durch die Erstellung eines Performance-Prototyps, mit dem der Nachweis erbracht werden kann, dass das Framework leistungsfähig genug ist. Werden Risiken dieser Art ignoriert, kann dies unter Umständen als fahrlässig angesehen werden.
Selbstverständlich lassen sich nicht alle Risiken perfekt absichern. Hundertprozentige Sicherheit von Entscheidungen wird es in Projekten nie geben. Wichtig ist jedoch, dass alle zu diesem Zeitpunkt bekannten Risiken identifiziert und bewertet (d.h. priorisiert) werden. Anschließend ist dann, ggf. gemeinsam mit dem Auftraggeber, zu entscheiden, wie viel Risiko das Projekt tragen soll oder kann. Daraus ergibt sich, welche Risiken frühzeitig, also in der Entwurfs- und Architekturphase, untersucht und berechenbar werden sollen.
Die Frage, wie viel Risiken das Projekt auf sich nehmen kann oder muss, ist normalerweise keine willkürliche oder freie Entscheidung, sondern durch Rahmenbedingungen vorgegeben. Die Absicherung von Risiken kostet gewöhnlich Geld und Zeit, und da diese Ressourcen in aller Regel begrenzt sind, lassen sich eben auch nur die allerwichtigsten Risiken berechenbar machen. Kriterien für den erfolgreichen Abschluss der Entwurfs- und Architekturphase können also nicht allgemein gültig definiert werden, sondern sind wiederum projektspezifisch festzulegen. Letztendlich bestimmt der Auftraggeber, wie viel Sicherheit er benötigt oder sich (terminlich und finanziell) leisten kann.
Den meisten Risiken stehen entsprechende Chancen gegenüber. Wenn beispielsweise der Einführungstermin aufgrund einer Wettbewerbssituation extrem wichtig ist, müssen bestimmte Unsicherheiten in Kauf genommen werden, weil deren Absicherung ansonsten bereits dazu führen würde, den Einführungstermin nicht zu halten und somit den Nutzen des Gesamtvorhabens zu verfehlen. Steht hingegen Zeit zur Verfügung und ein wirtschaftlicher Projekterfolg im Vordergrund, kann die Entwurfs- und Architekturphase möglicherweise erheblich ausgedehnt werden.
In jedem Fall sollten die Kriterien für den erfolgreichen Abschluss der Phase vor Beginn der Phase festgelegt werden.
Die wichtigsten Ergebnisse der Entwurfsphase sind gewöhnlich:
- Übersicht über alle Anwendungsfälle
- Detailliertes Fachklassen- und Komponentenmodell
- Festlegung der Anwendungsarchitektur (Frameworks, externe Schnittstellen, Schichtenmodell, Einsatz- und Verteilungsmodell)
- Iterationsplan (Anzahl, Inhalte und Ergebnisse der Iterationen)
- Übersicht und Priorisierung der Risiken
- Absicherung aller als kritisch eingestuften risikorelevanten Entscheidungen
Anwendungsfallübersicht. Alle, d.h. 100 Prozent der zu diesem Zeitpunkt bekannten, Anwendungsfälle sind zu identifizieren. Identifizieren bedeutet, dass die Anwendungsfälle einen eindeutigen Namen haben und ihre Auslöser und Ergebnisse beschrieben sind. Die Erfahrung hat gezeigt, dass Anwendungsfälle, die nur durch ihren Namen definiert werden, zu viele Verwechslungen, Missverständnisse oder In-terpretationsspielräume zulassen. Obwohl der Mehraufwand nur sehr gering ist, führt die Definition des Auslösers und der Ergebnisse eines jeden Anwendungsfalles dazu, diese Probleme nahezu vollständig auszuschließen.
Wenn wir für die Entwurfs- und Architekturphase fordern, alle Anwendungsfälle (d.h. 100 Prozent) zu identifizieren, so erfolgt dies in dem Wissen, dass im Nachhinein weitere Anwendungsfälle erkannt werden. Bezogen auf den gesamten Projektverlauf liegt die Quote typischerweise bei 65 - 85 Prozent. Es liegt in der Natur der Sache, dass wir nicht alle Anforderungen am Anfang identifizieren können und im Projektverlauf Erkenntnisse über weitere Anforderungen gewinnen werden.
Zu beachten ist jedoch, dass dies keine Rückkehr zum Wasserfallmodell darstellt. Ziel ist nicht, alle Anforderungen vollständig und detailliert zu erheben und zu beschreiben. Ziel ist es vielmehr, einen möglichst vollständigen Überblick zu erhalten. Vor allem werden die Anwendungsfälle nicht oder nur teilweise detailliert. Auch bei großen Vorhaben wird die Liste der identifizierten Anwendungsfälle (Name, Auslöser, Ergebnis) auf wenige Seiten passen.
Neben den Anwendungsfällen sind allerdings weitere Anforderungen zu definieren. Vor allem müssen alle wichtigen nichtfunktionalen An-forderungen festgelegt werden, da diese oftmals ganz erhebliche Auswirkungen auf die Systemarchitektur haben. Anforderungen zur Performance, zur Wartbarkeit oder zur Sicherheit des Systems beeinflussen ganz erheblich Entscheidungen zu den verwendeten Techno-logien, Frameworks, Architekturprinzipien und -mustern.
Zusätzlich oder alternativ zu Anwendungsfällen kann die Identifizie-rung von Features sinnvoll oder notwendig sein. Unter Features verstehen wir eine anfangs bewusst unscharfe und später in konkrete An-forderungen zu untergliedernde Zusammenfassung von Anforderungen.
Am Ende der Entwurfsphase kann ein externes Review durchgeführt werden. Neben der angestrebten Entscheidung, die Entwurfs- und Architektur-phase erfolgreich abzuschließen und in die Konstruktionsphase überzugehen, kann eine sinnvolle Entscheidung auch der Abbruch des Projektes sein. Hat die Untersuchung der Risiken beispielsweise gezeigt, dass diese nicht ausreichend eingegrenzt werden können, die Risiken inakzeptabel hoch bleiben oder die Projektziele nicht mehr erreicht werden können, wäre dies eine mögliche und sinnvolle Konsequenz. Eine andere Alternative wäre eine Neuformulierung des Projektauftrages mit beispielsweise veränderten Rahmenbedingungen (Änderung der Termine, Kosten, Funktionalität oder Qualität).
Mit Beginn der Entwurfs- und Architekturphase wird das Projekt auch personell, organisatorisch und in seiner Infrastruktur langsam aufgebaut. Es beginnt damit, dass entsprechende Räume und Arbeitsplätze herzurichten oder bereitzustellen sind, Entwicklungsumgebung und Konfigurationsmanagement aufgebaut werden, dass Projektgremien und Verantwortlichkeiten definiert und etabliert werden etc. Am Ende der Phase sollte der Nachweis erbracht sein, dass das Projekt vollumfänglich arbeitsfähig ist.
Es gehören hierzu grundlegende Sachverhalte wie die Vergabe von Be-rechtigungen, die Verfügbarkeit von Besprechungsräumen oder eine Telefonliste wichtiger Stakeholder. Ebenso sind auch die Berichtswege und Kommunikationsabläufe zu erproben. Steht die Fachabteilung qualitativ und quantitativ in ausreichender Weise zur Verfügung? Ist die Fachabteilung fähig, Entscheidungen beispielsweise über Anforderungen zu treffen? Haben sich die Abläufe zur Änderung von Anforde-rungen bewährt?
Auch hieraus ergeben sich möglicherweise weitere Risiken. Wurde beispielsweise mit dem Auftraggeber vereinbart, dass Anfragen zur Anforderungsklärung im Normalfall innerhalb von 48 Stunden beantwortet werden sollen, tatsächlich aber Antwortzeiten von über einer Woche üblich sind, kann das die gesamte Zeit- und Kostenplanung Maku-latur werden lassen. Die Entwurfs- und Architekturphase dient also auch dazu, die Zusammenarbeit mit Projektexternen, mit der Fachabteilung, dem Auftraggeber und anderen Zulieferern zu etablieren, zu prüfen und abzusichern. Entsprechendes gilt auch für die projektinternen Abläufe. Beispielsweise wenn ein Generierungsprozess nicht wie erwartet in wenigen Minuten oder Stunden abgeschlossen werden kann, sondern typischerweise erheblich länger dauert.
Insofern werden in dieser Phase nicht nur erste risikobehaftete oder hoch priorisierte Anforderungen umgesetzt, sondern in angemessenem Umfang auch ganz durchschnittliche Anforderungen und Abläufe angegangen.
Je nach geplanter Dauer der Phase sollte diese in mehrere Iterationen aufgeteilt werden. Typischerweise nimmt die Entwurfs- und Architekturphase etwa 12 - 20 Prozent der Gesamtzeit der ersten vier Phasen in Anspruch. Je nach Risikolage sowie Sicherheits- und Klärungsbedürfnis kann die Dauer jedoch auch ganz anders sein. Wenn eine Phasendauer von deutlich mehr als vier Wochen erwartet wird, ist eine Untergliederung in einzelne Iterationen sinnvoll.
Meilensteine der Phase:
- Architektur festgelegt (markiert Abschluss der Phase)
Dieser Meilenstein gilt als erreicht, wenn eine fachliche Systempar-titionierung vorgenommen wurde, d. h. eine fachliche Architektur vorliegt, die Machbarkeit, Risiken und Wirtschaftlichkeit neu be-trachtet wurden und ein detaillierter Projekt- und Iterationsplan vorliegt. Der Softwareentwicklungsplan ist zu aktualisieren. Die An-forderungsspezifikation und mögliche erste Systementwürfe erhalten einen definierten Zwischenstand.
- Zusätzliche spezifische Meilensteine
Zusätzlich zum Phasenmeilenstein können weitere Meilensteine definiert werden, um spezielle einzelne erwartete Zwischenergeb-nisse überprüfbar zu machen. Beispiele: Performance-Nachweis, erster erfolgreicher Smoketest, erfolgreiche fachliche Abstimmung des ersten Anwendungsfalles etc.
Nicht jedes mögliche oder größere Zwischenergebnis sollte als Meilenstein definiert werden, sondern nur wirklich wichtige Zwischenschritte. Auf jeden Fall sollte der unterschiedliche Charakter von Meilensteinen und Iterationen/Timeboxen erhalten bleiben und beachtet werden. Das heißt, die Unterteilung in Iterationen erfolgt durchaus unabhängig von der Definition zusätzlicher Meilensteine.
Aktiviäten der Entwurf-/Architekturphase (Startphase) (Übersicht)
Meilenstein:
-
Architektur festgelegt
(Phasenmeilenstein
)
Dieser Meilenstein gilt als erreicht, wenn
- eine fachliche Systempartitionierung vorgenommen wurde, d.h. eine fachliche Architektur vorliegt
- Machbarkeit, Risiken und Wirtschaftlichkeit neu betrachtet wurden
- ein detaillierter Projekt- und Iterationsplan vorliegt
Der Softwareentwicklungsplan ist zu aktualisieren.
Die Anforderungsspezifikation soll jetzt vollständig sein, d.h. alle grundsätzlichen Anforderungen sollen festgelegt und mit dem Auftraggeber bzw. der Fachabteilung abgestimmt sein. Die Anforderungen müssen nicht detailliert beschrieben sein; mit "Vollständigkeit" ist an dieser gemeint, daß diese Anforderungen im folgenden Entwicklungsprozeß zwar weiter detailliert und feinabgestimmt werden, diese Anforderungsdetails jedoch stets auf die hier definierten grundsätzlichen Anforderungen zurückzuführen sind.
Im weiteren Entwicklungsverlauf zusätzlich notwendig werdende Anforderungen oder Änderungen an vorhandenen Anforderungen, die sich nicht auf diese grundsätzlichen Anforderungen zurückführen lassen, also keine Konkretisierung oder Detaillierung darstellen, sind als neue Anforderungen einzustufen und grundsätzlich über das Änderungsverfahren in das Projekt einzubringen.
Soweit erste Lösungsentwürfe und Lösungen vorliegen, repräsentieren diese einen definierten Zwischenstand.
Folgende Ergebnisse müssen vorliegen:
-
E-20 Anforderungsspezifikation
[abgestimmt]
-
E-115 Geschäftsklassenmodell
[abgestimmt]
-
E-50 Design-Klassenmodell
[aktueller Stand]
-
E-66 Dialogprototyp
[aktueller Stand]
-
E-35 Planungsordner
-
E-83 Softwareentwicklungsplan
[aktualisiert]
-
E-70 Meilensteindokument
-
Iterationsende
(Iterationsmeilenstein
)
Dieser Meilenstein wird eingefügt, wenn die Entwurfsphase mehr als eine Iteration umfaßt.
Mit diesem Meilenstein werden dann wichtige Zwischenergebnisse verknüpft. Die konkreten Iterationsziele werden vor Beginn der Iteration schriftlich vereinbart. Am Ende der Iteration wird dann ein Ergebnisbericht erstellt. Außerdem ist der Softwareentwicklungsplan zu aktualisieren.
Folgende Ergebnisse müssen vorliegen:
-
E-20 Anforderungsspezifikation
[aktualisiert]
-
E-140 Architekturkonzept
[soweit vorhanden]
-
E-180 Build
[Prototyp, soweit vorhanden]
-
E-61 Testbericht
[ggf.]
-
E-83 Softwareentwicklungsplan
[aktualisiert]
-
E-70 Meilensteindokument
Die Konstruktionsphase dient der inkrementellen Entwicklung des Systems bzw. der Subsysteme und ihrer Integration zu einem Produkt.
Die einzelnen Subsysteme werden spätestens jetzt in parallel arbeitenden Entwicklungsteams implementiert. Änderungen in den Anforderungen können nach Bewertung auch jetzt noch in den Entwicklungsprozess einfließen.
Die Konstruktionsphase hat bei Projekten von normaler Größe zwei bis sieben Iterationen. Je nach angesetzter Dauer einer Iteration erstreckt sich die Konstruktionsphase über zwei bis 14 Monate. Innerhalb einer Iteration werden die Anforderungen mit der jeweils höchsten Priorität in Analyse, Design, Implementation und Test umgesetzt. Der Funktionsumfang und die Qualität des Produktes wachsen inkrementell von Iteration zu Iteration.
Grundsätzlich unterstützt der OEP eine möglichst agile Entwicklung. Das heißt beispielsweise, dass der Zeitraum vom Erkennen einer Anforderung bis zum Nachweis der korrekten Umsetzung möglichst kurz sein soll. Es werden also nicht im Sinne eines Wasserfallprozesses zunächst alle Anforderungen im Detail geklärt. Stattdessen werden jeweils einzelne Anforderungen, kleine Pakete von Anforderungen oder überschaubare Features entsprechend ihrer Priorität angepackt und möglichst zügig umgesetzt. Im Idealfall wird bereits wenige Tage nach der Abstimmung einer Anforderung mit der Fachabteilung das Ergebnis präsentiert und eine Teilabnahme hierfür erzielt.
Die wichtigsten Ergebnisse dieser Phase sind:
- Implementierte und getestete Komponenten
- Implementierte und getestete Schnittstellen
- Implementierte und getestete komponentenübergreifende Dienste
Die Konstruktionsphase ist der zeitlich und aufwandsmäßig größte Abschnitt, er wird typischerweise ca. 60 Prozent des Zeitbedarfes aller vier Phasen ausmachen.
Am Ende der Konstruktionsphase steht das vollständige Produkt. Meilensteine der Konstruktionsphase:
- Teilsystem in Testumgebung übernommen (prospektiver Meilenstein)
Wenn das System schrittweise eingeführt werden soll oder be-stimmte Integrationstests (Einbindung externer Schnittstellen u.Ä.) nicht in der Entwicklungsumgebung stattfinden können, sondern beispielsweise nur in einer speziellen Testumgebung, sind hierfür entsprechende Meilensteine zu definieren. Zu diesen Meilensteinterminen müssen dann die entsprechenden Systembestandteile in einer Testumgebung vorliegen.
- Bereitstellung für Übernahme in Abnahmeumgebung (markiert Abschluss der Phase)
Am Ende der Konstruktionsphase ist das fertige System bereit, in eine Einweisungs- und Abnahmeumgebung überführt zu werden, um in einer mit der späteren Produktionsumgebung vergleichbaren Umgebung das System vollständig und endgültig testen und abnehmen zu können (Pilotumgebung). In dieser Umgebung können auch Schulungen und Einweisungen stattfinden.
Aktiviäten der Konstruktionsphase (Hauptphase) (Übersicht)
Meilenstein:
Die Einführungsphase dient dem Test und der Abnahme der kompletten Anwendung, der Auslieferung und Installation sowie der Schulung der Anwender.
Das Produkt wird in der Testumgebung installiert und unter realistischen Bedingungen getestet.
Die Anwender können im Umgang mit dem Produkt geschult werden. Hierzu müssen zunächst Schulungsunterlagen geschaffen und Schulungsleiter ausgebildet werden.
Die Entwicklungsdokumentation des Projektes wird abgeschlossen. Unter Umständen wird weiteres Personal ausgebildet, das die Wartung des Produktes übernehmen soll.
Wenn die Einführung mit einem komplizierten technischen oder organisatorischen Prozess verbunden ist, kann die Einführungsphase in mehreren Iterationen durchgeführt werden. Die Dauer der Phase kann demnach zwischen einem und fünf Monaten liegen.
Die Einführungsphase ist beendet, wenn das Produkt in der Produktionsumgebung installiert und betriebsfähig ist.
Meilenstein der Einführungsphase:
Übernahme und Inbetriebnahme in Produktionsumgebung (markiert Abschluss der Phase)
Am Ende der Einführungsphase wird das System in die Produktionsumgebung übertragen und kann in Betrieb genommen werden. Damit beginnt die Betriebsphase. Mit der Übertragung in die Produktionsumgebung wechselt auch die Verantwortung für das System, da das bisher verantwortliche Entwicklungsprojekt nun beendet ist, d. h. aufgelöst wird.
Aktiviäten der Einführungsphase (Übersicht)
Meilenstein:
-
Produktionsfreigabe
(Meilenstein
)
Übernahme in die Produktionsumgebung und Inbetriebnahme des Systems. Die Anwender wurden zuvor geschult, das System getestet. Nach der Produktionsfreigabe wird die Anwendung vorübergehend noch vom Projektteam betreut. Parallel wird die Betriebs- und Wartungsorganisation eingearbeitet, die nach Projektende die Verantwortung für das System übernehmen soll.
Folgende Ergebnisse müssen vorliegen:
-
E-182 Release
[produktiv]
-
Projektabschluß
(Phasenmeilenstein
)
Das System wurde an die für die Wartung zuständige Organisationseinheit übergeben. Das bisher verantwortliche Entwicklungsprojekt wird aufgelöst.
Das System ist während der Einführungsphase optimiert und stabilisiert worden.
Folgende Ergebnisse müssen vorliegen:
-
E-92 Projektabschlussbericht
-
E-113 Produkt-Übergabeprotokoll
Die Betriebsphase dient der Anwendung des fertig gestellten Produktes.
Die Betriebsphase ist das eigentliche Ziel des Projektes. Konfigurationen und sehr kleine Anpassungen des Produktes können ggf. als Ad-hoc-Wartung durchgeführt werden. Die Schulung und Betreuung der Anwender werden fortgesetzt.
Größere Änderungen in den Anforderungen werden getrennt von dem Projekt aufgenommen, bewertet und für einen Nachfolgeauftrag gesammelt.
Die Verantwortung für die Wartung des Produktes kann in dieser Phase von den Entwicklern in andere Hände übergehen.
Die Betriebsphase ist zwar formaler Bestandteil des OEP, inhaltlich jedoch kaum ausgeprägt, da der OEP die Unterstützung des Entwicklungsprojektes und nicht der anschließenden Wartung und Weiterentwicklung verfolgt.
Aktiviäten der Betriebsphase (Übersicht)
Meilenstein:
OEP - Object Engineering Process, v3.0, 06.11.2006 11:03:01, Copyright © 2006 by oose Innovative Informatik GmbH