11.0 Wasserfall vs. zyklisches Projektmanagement (Teil 4) – Projektlebenszyklus & Ergebnisse

Methoden des Projektmanagements, die zyklisch sind #

Aufgrund der oben diskutierten Probleme haben sich in den letzten Jahren eine Vielzahl alternativer Techniken des Projektmanagements entwickelt. Diese Techniken eignen sich besonders gut für Initiativen zur Entwicklung der Informationstechnologie.

Zyklisches Projektmanagement ist eine Methode zur Erreichung des Projektziels über eine Reihe kurzer, aufeinanderfolgender Zyklen. Jeder Zyklus ist kurz und dauert idealerweise weniger als einen Monat. Jeder Zyklus schließt einen Teil des Projekts ab. Jeder Zyklus umfasst Analyse, Design, Implementierung und Test. Dies unterscheidet sich deutlich vom Wasserfall-Ansatz, bei dem jede dieser Aufgaben in einer eigenen, unterschiedlichen Phase stattfindet. Darüber hinaus gibt der Wasserfall-Ansatz eine begrenzte Anzahl unterschiedlicher Momente für Konzept, Design, Implementierung und Test an. Dies geschieht im zyklischen Ansatz mehrmals hintereinander.

Verstehen Projektmanagement-Software Zyklus #

Über die Zyklen hinweg werden verschiedene Softwarekomponenten implementiert, die somit in sich abgeschlossen sind. Jeder Zyklus wird nach Abschluss ausgewertet. Treten aufgrund des zunehmenden Verständnisses neue oder alternative Bedürfnisse für das Projekt auf, werden die Aktivitäten zukünftiger Zyklen entsprechend angepasst.

Ein Zyklus beginnt mit der Erstellung oder Änderung eines Zeitplans. Anschließend wird der Leistungsbedarf des Zyklus bewertet. Ein Design wird entwickelt, codiert und validiert. Danach erfolgt die Evaluierung und in bestimmten Fällen wird das neue Programm umgesetzt. Als nächstes kann der folgende Zyklus beginnen, um die nachfolgenden Komponenten des Projekts abzuschließen. (Für eine ausführlichere Diskussion zyklischer Techniken und ihrer Unterscheidungen siehe zum Beispiel Kroll, 2004; Chromatic, 2003; Stapleton, 2002.)

Im Folgenden sind die Hauptvorteile der zyklischen Methode aufgeführt:

  • Verbesserte Produktqualität und Funktionalitätsimplementierung;
  • Verbesserte Produktqualität und Funktionalitätsimplementierung;
  • Realistischere Zeit- und Kostenschätzungen;
  • Geringere Belastung des Projektteams;
  • Höhere Qualität.

Die vorangegangenen Kapitel zeigen, wie schwierig oder unmöglich es ist, die erforderlichen Fähigkeiten in den frühen Phasen eines Projekts richtig zu definieren. Zyklische Techniken implementieren die erforderliche Funktionalität in einer Reihe kurzer Zyklen. Jeder Zyklus untersucht nicht nur, sondern entwirft, implementiert und testet einen winzigen Teil der erforderlichen Funktionalität. Die schnelle Abfolge von Design, Ausführung und Test ist entscheidend für die Qualitätsverbesserung. Dadurch sind Teams in der Lage, Veränderungen vorzunehmen. Wenn ein Design in der Realität nicht funktioniert, wird es während des gesamten Zyklus sichtbar und ermöglicht eine Änderung. Darüber hinaus ermöglicht diese Art der Operation den Verbrauchern, Änderungen anzufordern.

Qualität erhalten #

Ein weiterer Grund, warum zyklisches Projektmanagement die Qualität verbessert, ist, dass jeder Zyklus eine intensive Zusammenarbeit zwischen Auftraggeber, Designern und Programmierern erfordert. Ein multidisziplinäres Team entwickelt und realisiert gemeinsam Lösungen. Der Kunde beschäftigt sich hauptsächlich am Anfang mit der Entwicklung von Anforderungen; Als nächstes erstellen Designer ein Design und schließlich entwickeln Programmierer die Software. Der Projektleiter fungiert als Bindeglied zwischen den verschiedenen Parteien und ist dafür verantwortlich, dass die bereitgestellten Informationen an den richtigen Empfänger gelangen. In Wirklichkeit treffen viele Programmierer und Designer nie auf den Kunden, der nur während des gesamten Softwareentwicklungsprozesses wieder auftaucht.

Zyklische Techniken des Projektmanagements eignen sich besonders gut für Projekte, bei denen das Endziel nicht im Voraus klar definiert werden kann, wie etwa künstlerische oder wissenschaftliche Initiativen. Die Arbeit in Zyklen mit einem heterogenen Team, zu dem auch Endbenutzer gehören, ermöglicht es dem Team, den wahren Zweck des Projekts und den besten Weg, es zu erreichen, zu bestimmen. Jeder Zyklus bietet Gelegenheit zur Reflexion und Korrektur.

Für Wasserfallprojekte wird im Voraus ein Ziel definiert. Eine Reflexion über das ursprüngliche Ziel ist weniger wahrscheinlich. Das anfangs gebildete Ziel wird nie (vollständig) realisiert, und weder das ursprünglich gedachte noch das realisierte Ziel ist wahrscheinlich genau das, was beabsichtigt war.

Schließlich liefern zyklische Projektmanagementmethoden überlegene Ergebnisse, da der Kunde Akzeptanztests durchführt. Darüber hinaus wird die Qualität dadurch gesteigert, dass von Anfang an Tests als Kriterium für eine leistungsstarke Funktionalität miteinbezogen werden. Daher müssen Programmierer „fehlgeschlagene Tests“ (oder Unit-Tests) erstellen, bevor sie ihren Code schreiben. Nur Code, der den nicht bestandenen Test besteht, wird als akzeptabel erachtet.

Konsistente Tests #

Testorientierte Arbeit verlangt von Programmierern, dass sie vor dem Schreiben zeigen, dass neuer Code fehlerfrei ist. Sie tun dies, indem sie einen Test (nicht bestandener Test) erstellen, der potenzielle Fehler identifiziert, bevor mit dem Programmieren begonnen wird. Man betrachte den Fall, in dem eine Software entwickelt werden muss, um die richtige Menge an Wechselgeld zu bestimmen, die von einem Süßwarenautomaten zu empfangen ist. Zu Beginn muss das Vorhandensein einer Funktion, die eine Änderung bewirken kann, überprüft werden. Diese Funktion kann als “Wechselgeld geben” bezeichnet werden. Ein einfacher Test könnte ausgeführt werden und es würde zeigen, dass die Funktion “Wechselgeld geben” noch nicht existiert. Der Test ist bestanden, wenn der Programmierer die Funktion erstellt, ihr aber noch keine Substanz verleiht.

Der nächste Schritt besteht darin, festzustellen, ob der Automat beim Kauf eines Artikels den richtigen Geldbetrag zurückgibt. Geben Sie 60 Cent in den Automaten ein und kaufen Sie einen 50-Cent-Artikel. Der Test schlägt fehl, da die Funktion leer bleibt. Danach schreibt der Programmierer den Code. In der Funktion „Wechselgeld geben“ gibt er an, dass die zurückzugebende Wechselgeldmenge dem in den Automaten eingefüllten Geldbetrag abzüglich der Kosten der ausgewählten Süßigkeit entspricht. Der Test sollte nun erfolgreich bestanden werden. Dieser Vorgang muss für jede Komponente des Programms wiederholt werden.

Nicht nur der Code muss technisch getestet werden; die Funktionen müssen auch getestet werden (dh Abnahmetests). Vor Beginn der Codierung legt der Client die Kriterien fest, nach denen die zu entwickelnden Fähigkeiten genehmigt werden dürfen (zB wie schnell ein Computer auf eine bestimmte Benutzeraktion reagieren muss). Zuvor erwies sich die Festlegung der Kriterien, nach denen die Zusatzfähigkeit zugelassen werden darf, als sehr aufwendig und zeitintensiv. Nichtsdestotrotz ist die aktive Einbeziehung der Verbraucher in das Testen entscheidend für den Erfolg des Projekts.

Zeit- und Geldschätzungen #

Das Verständnis der zu implementierenden Funktionen ist zu Beginn eines zyklischen Projekts nicht vorgegeben. Die zur Verfügung stehende Zeit wird angegeben. Über die Ausrichtung des Projekts werden Einigungen erzielt und während des gesamten Prozesses wird festgelegt, was im Hinblick auf das zu erstellende Programm wirklich erforderlich, nützlich und machbar ist. Da es sich bei den umzusetzenden Funktionen nicht um gesetzte Ziele handelt, minimieren zyklische Projekte die Gefahr, dass der benötigte Stunden- und damit Geldbedarf aus dem Ruder läuft. Um dieses Szenario zu vermeiden, wird die verfügbare Zeit als Ausgangspunkt verwendet, und während des gesamten Prozesses wird festgelegt, was in dieser Zeit angemessen zu erwarten ist.

Darüber hinaus sind zyklische Projektmanagementtechniken für das Projektteam wesentlich schmackhafter. Das Team tut alles innerhalb des vorgegebenen Zeitrahmens, ist aber nicht gezwungen, unangemessene Fristen einzuhalten oder mit einem unzureichenden Budget zu arbeiten.

Darüber hinaus vereinfachen zyklische Techniken die Verwaltung ausländischer Anbieter. Mit dem Wasserfall-Ansatz kann ein Projekt unabhängig von der Leistung des Lieferanten bis zum Abschluss des Projekts von einem einzigen Anbieter abhängig sein. Es ist theoretisch möglich, für jeden Zyklus oder sogar für jedes zu liefernde Bauteil in zyklischer Arbeitstechnik neue Vereinbarungen zu treffen und ggf. den Lieferanten zu wechseln.