PM-Modelle

Was du heute lernst:

  • Den grundlegenden Unterschied zwischen klassischen (linearen) und agilen (iterativen) Vorgehensmodellen erklären.
  • Die Eignung von Modellen wie Wasserfall oder Scrum für verschiedene Projektszenarien bewerten.
  • Den typischen Phasenablauf eines Softwareentwicklungsprojekts beschreiben.

Projektmanagement-Modelle im Überblick

Die Wahl des richtigen Projektmanagement-Modells ist entscheidend für den Projekterfolg. Grundsätzlich unterscheidet man zwischen klassischen (plangetriebenen) und agilen (adaptiven) Ansätzen, die sich in ihren Prinzipien, Anforderungen, Flexibilität und der Kundenintegration stark unterscheiden.

Definition Projekt (aus Schwarze: Übungen zu Projektmanagement und Netzplantechnik): "... ein zeitlich, räumlich und sachlich begrenztes komplexes Arbeitsvorhaben, bei dem durch den Einsatz von Verbrauchsgütern (Material, Energie), Nutzungsgütern (Maschinen) und Arbeitskräften eine bestimmte Zielsetzung zu erreichen ist."

Aufbau klassischer vs. agiler Modelle:

Klassische Modelle (wie das Wasserfallmodell oder das V-Modell) folgen einem linearen, sequenziellen Aufbau. Jede Phase (z.B. Anforderungserhebung, Design, Implementierung, Test, Auslieferung) muss vollständig abgeschlossen sein, bevor die nächste beginnt. Das V-Modell betont dabei die Verifizierung und Validierung jeder Phase. Die Planung erfolgt zu Beginn detailliert, und Änderungen werden formal gesteuert.

Agile Modelle (wie Scrum oder Kanban) sind iterativ und inkrementell aufgebaut. Sie begrüßen Änderungen und liefern in kurzen Zyklen (z.B. Sprints bei Scrum) funktionierende Produktteile aus. Scrum arbeitet mit festen Iterationslängen, täglichen Stand-ups und regelmäßigen Reviews. Kanban hingegen fokussiert sich auf einen kontinuierlichen Arbeitsfluss, die Visualisierung des Workflows und die Begrenzung paralleler Arbeit (Work-in-Progress, WIP). Beide Ansätze sind flexibel und fördern die Zusammenarbeit.

Merksatz: Es gibt kein "bestes" Modell. Klassische Modelle bieten Sicherheit und Vorhersagbarkeit bei stabilen Anforderungen, während agile Modelle ihre Stärke in Flexibilität und schneller Wertschöpfung mit einer gewissen Unsicherheit ausspielen.

Wann welches Modell?

Klassische Modelle eignen sich, wenn:

  • die Anforderungen von Anfang an klar, detailliert und stabil sind.
  • das Projektumfeld vorhersehbar und wenig dynamisch ist.
  • eine lückenlose Dokumentation (z.B. aus rechtlichen Gründen) erforderlich ist.

Agile Modelle eignen sich, wenn:

  • die Anforderungen zu Beginn unklar sind oder sich häufig ändern.
  • eine hohe Komplexität und Unsicherheit besteht.
  • eine schnelle Markteinführung (Time-to-Market) entscheidend ist.
  • eine enge Zusammenarbeit mit dem Kunden möglich und erwünscht ist.

In der Praxis werden oft auch hybride Modelle eingesetzt, die Elemente aus beiden Welten kombinieren.


Ablaufplan für Softwareprojekte

Ein gut strukturierter Ablaufplan ist entscheidend für das erfolgreiche Management von Softwareprojekten. Er hilft, die Komplexität zu reduzieren, die Effizienz zu steigern und sicherzustellen, dass alle Teammitglieder und Stakeholder auf dasselbe Ziel hinarbeiten.

Phasen des Softwareentwicklungsprozesses

Ein typischer Ablaufplan für Softwareprojekte kann in mehrere Phasen unterteilt werden, die häufig den Softwareentwicklungslebenszyklus (SDLC) widerspiegeln.

Softwareentwicklungsprozess

Bildquelle: industryconnect.org

  • Anforderungsanalyse: In dieser Phase werden die Anforderungen der Stakeholder gesammelt und dokumentiert. Der Ablaufplan sollte Aktivitäten wie Workshops, Interviews und die Erstellung von Anforderungsdokumenten umfassen.
  • Design: Hier wird die Architektur der Software entworfen. Der Ablaufplan kann Aktivitäten wie die Erstellung von UML-Diagrammen, Prototypen und Design-Dokumentationen umfassen.
  • Entwicklung: In dieser Phase wird der Code geschrieben. Der Ablaufplan sollte die Zuweisung von Aufgaben an Entwickler, die Verwendung von Versionskontrollsystemen und die Durchführung von Code-Reviews umfassen.
  • Testen: Diese Phase umfasst die Durchführung von Tests, um sicherzustellen, dass die Software den Anforderungen entspricht. Der Ablaufplan sollte Unit-Tests, Integrationstests, Systemtests und Benutzerakzeptanztests (UAT) umfassen.
  • Implementierung: Hier wird die Software in der Produktionsumgebung bereitgestellt. Der Ablaufplan sollte Aktivitäten wie die Bereitstellung, Schulung der Benutzer und die Erstellung von Dokumentationen umfassen.
  • Wartung: Nach der Implementierung ist es wichtig, die Software zu warten und zu aktualisieren. Der Ablaufplan sollte regelmäßige Wartungsaktivitäten und die Handhabung von Fehlerberichten umfassen.

Weitere Elemente eines Projektablaufplans

  • Ressourcenzuweisung: Der Ablaufplan sollte klar definieren, welche Ressourcen (z. B. Entwickler, Tester, Projektmanager) für jede Phase und Aktivität benötigt werden. Dies hilft, Engpässe zu vermeiden und sicherzustellen, dass die richtigen Personen zur richtigen Zeit verfügbar sind.
  • Zeitmanagement: Ein effektiver Ablaufplan enthält Zeitrahmen für jede Phase und Aktivität. Dies kann durch die Verwendung von Gantt-Diagrammen oder anderen Zeitmanagement-Tools erfolgen, um den Fortschritt zu visualisieren und sicherzustellen, dass das Projekt im Zeitrahmen bleibt.
  • Risikomanagement: Der Ablaufplan sollte auch Mechanismen zur Identifizierung und Bewertung von Risiken enthalten, die während des Projekts auftreten können.
  • Kommunikation: Ein wichtiger Aspekt des Projektmanagements ist die Kommunikation zwischen den Teammitgliedern und Stakeholdern.
  • Qualitätssicherung: Der Ablaufplan sollte Aktivitäten zur Qualitätssicherung umfassen, um sicherzustellen, dass die Software den festgelegten Standards entspricht.
  • Flexibilität und Anpassungsfähigkeit: Agile Methoden, wie Scrum oder Kanban, können in den Ablaufplan integriert werden, um iterative Entwicklungen und Anpassungen zu fördern.

Der Lebenszyklus von Software

Software entsteht nicht einfach so, sondern durchläuft einen strukturierten Prozess, den man als Softwareentwicklungszyklus (SDLC) bezeichnet. Dieser Zyklus besteht aus verschiedenen Phasen, die helfen, komplexe Projekte zu planen, umzusetzen und zu warten. Phasenmodelle sind dabei die "Baupläne", die festlegen, wie diese Phasen ablaufen und miteinander verbunden sind.

Merksatz: Phasenmodelle strukturieren den Softwareentwicklungszyklus in aufeinanderfolgende oder iterative Abschnitte, um die Planung, Entwicklung und Wartung von Software zu organisieren.

1. Forward Engineering

Forward Engineering ist der klassische Ansatz, bei dem die Softwareentwicklung von den Anforderungen bis zum fertigen Produkt linear voranschreitet. Man beginnt mit einer Idee oder einem Problem, entwickelt daraus detaillierte Spezifikationen und Designdokumente, schreibt dann den Code und testet ihn. Jede Phase baut auf der vorherigen auf.

  • Ablauf: Idee → Analyse → Design → Implementierung → Test → Wartung.
  • Vorteile: Klare Struktur, gute Dokumentation, gut für Projekte mit stabilen Anforderungen.
  • Nachteile: Wenig Flexibilität bei Änderungen, Fehler werden oft spät entdeckt.

2. Simultaneous Engineering (Parallel Engineering)

Im Gegensatz zum Forward Engineering werden beim Simultaneous Engineering (auch Parallel Engineering genannt) verschiedene Phasen oder Aufgaben gleichzeitig bearbeitet. Ziel ist es, die Entwicklungszeit zu verkürzen und eine engere Zusammenarbeit der Teams zu fördern.

  • Ablauf: Teile von Design, Implementierung und Test können parallel stattfinden.
  • Vorteile: Schnellere Entwicklung, bessere Kommunikation zwischen den Teams, frühere Fehlererkennung.
  • Nachteile: Hoher Koordinationsaufwand, potenzielle Konflikte bei Schnittstellen.

3. Prototyping

Beim Prototyping wird früh im Entwicklungsprozess ein erster, vereinfachter Entwurf der Software (ein Prototyp) erstellt. Dieser Prototyp wird dem Kunden gezeigt, um Feedback zu erhalten und die Anforderungen besser zu verstehen. Basierend auf diesem Feedback wird der Prototyp verbessert oder ein neuer erstellt, bis die Anforderungen klar sind. Anschließend beginnt die eigentliche Entwicklung.

  • Ablauf: Anforderungsanalyse → Prototyp erstellen → Feedback → Prototyp anpassen/verbessern → (Wiederholung) → eigentliche Entwicklung.
  • Vorteile: Frühzeitiges Kundenfeedback, Missverständnisse werden reduziert, Anforderungen werden präziser.
  • Nachteile: Kann zu falschen Erwartungen führen (Kunde hält Prototyp für fertiges Produkt), zusätzliche Entwicklungszeit für den Prototyp.

4. Rapid Application Development (RAD)

Rapid Application Development (RAD) ist ein iterativer und inkrementeller Ansatz, der darauf abzielt, Software schnell zu entwickeln und auszuliefern. Dabei werden Techniken wie Prototyping, die Wiederverwendung von Komponenten und die enge Zusammenarbeit mit dem Kunden eingesetzt. RAD eignet sich besonders für Projekte, bei denen eine schnelle Markteinführung wichtig ist und die Anforderungen sich noch ändern können.

  • Ablauf: Schnelle Zyklen aus Modellierung, Prototyping, Konstruktion und Test.
  • Vorteile: Schnelle Lieferung von Software, hohe Flexibilität bei Änderungen, starke Kundenbeteiligung.
  • Nachteile: Weniger Fokus auf detaillierte Dokumentation, erfordert gut eingespielte Teams.

5. Reengineering

Reengineering bezieht sich auf die grundlegende Überarbeitung und Neugestaltung bestehender Software. Dies wird oft notwendig, wenn ältere Systeme (sogenannte "Legacy-Systeme") schwer zu warten, zu erweitern oder mit neuen Technologien zu integrieren sind. Ziel ist es, die Qualität, Effizienz und Wartbarkeit der Software zu verbessern, ohne die grundlegende Funktionalität zu verlieren.

  • Ablauf: Analyse der bestehenden Software → Redesign → Reimplementierung → Test.
  • Vorteile: Verbesserung alter Systeme, längere Lebensdauer der Software, bessere Performance.
  • Nachteile: Hoher Aufwand und Kosten, Risiken bei der Datenmigration.

Übungsaufgabe: Welches Modell passt zum Projekt?

Aufgabenstellung: Bewerte die folgenden Projektszenarien und entscheide, ob ein klassisches oder ein agiles Vorgehensmodell besser geeignet wäre. Begründe deine Wahl anhand der passenden Kenngrößen aus den Projektmanagement-Modellen.

Szenarien:

  1. Projekt 1: Einführung eines neuen Warenwirtschaftssystems in einem mittelständischen Unternehmen. Die Anforderungen sind zu Beginn nicht vollständig klar und es wird erwartet, dass sich im Laufe des Projekts noch Änderungen ergeben. Zudem soll das System schnellstmöglich einsatzbereit sein.
  2. Projekt 2: Entwicklung einer Software für ein Raumfahrtprojekt, bei dem die technischen Spezifikationen extrem detailliert und unzweifelhaft feststehen müssen. Jede Abweichung von den Spezifikationen ist kritisch und kann zu gravierenden Konsequenzen führen. Der Zeitplan ist straff und jede Phase muss exakt eingehalten werden.
  3. Projekt 3: Ein Forschungsprojekt zur Entwicklung eines neuartigen Medikaments, bei dem die grundlegende Wirkungsweise noch erforscht werden muss und die Ergebnisse der ersten Forschungsphasen die Ausrichtung der weiteren Arbeit maßgeblich beeinflussen werden.

Aufgaben für jedes Szenario:

  1. Welchen Ansatz (klassisch oder agil) würdest du für dieses Projekt bevorzugen und warum?
  2. Nenne mindestens zwei konkrete Vorteile, die Ihr gewählter Ansatz in diesem Szenario bietet.
  3. Nenne ein klassisches Projektmanagement-Modell (falls agil gewählt) oder ein agiles Modell (falls klassisch gewählt) und begründe kurz, warum es für dieses Projekt weniger geeignet wäre.

Hinweise zur Lösung:

  • Berücksichtige bei deiner Entscheidung die Kriterien wie Anforderungsstabilität, Umgang mit Änderungen, Kundeneinbindung, Projektkomplexität und Time-to-Market.
  • Stelle deine Argumentation klar und nachvollziehbar dar.

Schwierigkeitsgrad: mittel

Erwartete Bearbeitungszeit: 45 Minuten

Nächster Schritt

Methoden sind die Strategie. Jetzt brauchen wir Werkzeuge, um Zeit und Ressourcen konkret zu planen.

Weiter zu: Gantt-Diagramme →