Erst ein Vorgehensmodell auswählen, dann ein Softwareprojekt planen
Ganz gleich, ob es um interne oder ausgelagerte Softwareprojekte geht, entscheidet die Phase der Projektplanung maßgeblich darüber, ob Ihr Softwareprojekt zum Erfolg wird. Wie ein Softwareprojekt geplant wird, hängt stark vom ausgewählten Vorgehensmodell der Softwareentwicklung ab.
In unserem neuen Beitrag verraten wir, welche Besonderheiten der gängigsten Vorgehensmodelle bei der Planung der Softwareentwicklung zu berücksichtigen sind und inwiefern das ausgewählte Modell die Projektplanung beeinflussen kann.
Planung mit linearen Vorgehensmodellen:
Wasserfallmodell
Im Wasserfallmodell wird ein Softwareprojekt in eine Reihe von sequentiell aufeinanderfolgenden Phasen unterteilt: Anforderungsanalyse, Design, Programmierung, Testing, Auslieferung und Wartung. Das bedeutet, dass Ergebnisse jeder vorhergehenden Phase als Basis für die nachfolgende Phase dienen (in Form einer Kaskade). Die Ergebnisse jeder Phase werden umfassend dokumentiert. Dabei ist es kaum möglich, die einzelnen Phasen zu wiederholen. Die Planungsphase als die erste Phase in dieser Kaskade spielt eine bedeutende Rolle für den Erfolg eines Softwareprojektes.
Teilnehmer: Ein Projektinhaber, ein Projektmanager, Business Analysten und ein Testmanager.
Besonderheiten: Eine Grundlage für die Projektplanung bilden die Anforderungen, die zu Beginn des Softwareprojekts definiert, präzis beschrieben und in Form eines Pflichtenheftes zusammengestellt werden. Die Anforderungen sollten stabil bleiben. In diesem Modell sollte auch festgelegt werden, wie das Projektteam diese Anforderungen erfüllen muss.
Ablauf: In der Phase der Anforderungsanalyse kommunizieren die Business Analysten mit dem Projektinhaber seitens des Kunden, um herauszufinden, welche Funktionen die Software anbieten muss. Basierend auf den erfassten Informationen planen die Business Analysten den Funktionsumfang, den Ablauf aller Projektaktivitäten, Kosten- und Zeitrahmen und mehr.
V-Modell
Das Projektmanagement im V-Modell ähnelt dem Wasserfallmodell – der Entwicklungsprozess wird auch in Phasen organisiert. Aber der wesentliche Unterschied liegt darin, dass Tests im V-Modell für jede Projektphase geplant und durchgeführt werden.
Planung mit agilen Vorgehensmodellen:
Scrum
Mit Scrum werden Softwareprojekte in Sprints organisiert, die 1-4 Wochen dauern und darauf abzielen, ein funktionsfähiges Produktinkrement auszuliefern, dessen Funktionsumfang die Anforderungen einer User Story erfüllen. User Stories beschreiben in der Regel gewünschte Funktionen aus Sicht eines Benutzers, die ermöglichen, bestimmte Ergebnisse zu erzielen (z. B. Bilder herunterladen, ein Video schneiden, Daten in eine Datenbank einfügen und Ähnliches).
Teilnehmer: Ein Projektinhaber (in Scrum als Product Owner bezeichnet), ein Projektmanager, Business Analysten, ein Testmanager, Entwicklungs- und Testteams.
Besonderheiten: In Scrum wird ein detaillierter Plan nur für einen bevorstehenden Sprint erstellt.
Ablauf: Vor jedem Sprint organisiert der Projektinhaber das Treffen für die Planung der nächsten Projektetappe (sog. Sprint Planning Meeting), wo das konkrete Ziel des neuen Sprints basierend auf der Vision des Projektinhabers festgelegt wird. Es werden die Fragen „Was“ und „Wie“ beantwortet:
„Was“ – es geht darum, welche Anforderungen aus dem Product Backlog (eine Liste von allen erfassten Softwareanforderungen, die je nach Prioritäten verändert werden kann) ausgewählt und während des nächsten Sprints umgesetzt werden müssen. Als effektives Werkzeug für die Beschreibung von Anforderungen werden oft in Scrum-Teams User Stories genutzt.
„Wie“ – es geht darum, wie die ausgewählten Anforderungen umgesetzt werden. Dafür werden sie priorisiert, in das sogenannte Sprint Backlog eingetragen und in einzelne Projektaufgaben eingeteilt.
Extreme Programming (XP)
Dieses Modell umfasst vier Phasen (Planung, Entwurf, Programmierung, Testing), die in Iterationen organisiert werden. Die Programmierung steht dabei immer im Mittelpunkt. Eine Iteration dauert üblicherweise 1-3 Wochen und wird auf der Basis vom Feedback des Kunden und den Erfahrungen aus den vorhergehenden Iterationen geplant. In jeder Phase kommen bestimmte Praktiken zum Einsatz (beispielsweise Pair-Programming, Zusammenarbeit in einem Raum, User Stories, kontinuierliche Testing und Integration, testgetriebene Entwicklung und mehr), um am Ende jeder Iteration ein funktionsfähiges Produktinkrement schneller auszuliefern. Das veröffentlichte Produkt wird in den nächsten Iterationen an Anforderungen des Kunden angepasst und schrittweise verbessert.
Teilnehmer: Ein Projektinhaber, ein Projektmanager, Business Analysten sowie Entwicklungs- und Testteams.
Besonderheiten. Die Planung bei diesem Ansatz zur Softwareentwicklung wird als Planning-Game bezeichnet und besteht aus zwei Phasen: der Release-Planung und der Iterationsplanung.
Ablauf: Während der Release-Planung wird es grob definiert und in User Stories dokumentiert, welche Funktionen im bevorstehenden Release umgesetzt werden müssen. Im Rahmen der Release-Planung finden auch Aufwandschätzungen statt. Der erstellte Plan wird überprüft, aktualisiert (falls erforderlich) und genehmigt.
Die anschließende Planung der Iteration zielt darauf ab, User Stories in detailliert beschriebene technische Arbeitsschritte für die Entwickler und Tester umzuwandeln und die Dauer für die Erledigung jeder Aufgabe festzulegen. Falls Änderungswünsche auftreten, kann eine Planung erneut stattfinden.
Kanban
Kanban ermöglicht, alle Abläufe und Prozesse in Softwareprojekten in kleinere Aufgaben einzuteilen, diese Aufgaben Teammitgliedern zuzuweisen, den Arbeitsfluss auf dem Kanban-Board zu visualisieren und einzelne Aufgaben je nach Status – To-do, In Progress, Done – in entsprechende Spalten zu verschieben.
Teilnehmer: Ein Projektinhaber, ein Projektmanager, Business Analysten, Teamleiter der am Projekt beteiligten Teams (Designer, Entwickler, Tester, Datenanalysten usw.).
Besonderheiten: Kanban hat keine abgegrenzte Planungsphase. In einem Kanban-Projekt wird oft kommuniziert. Daraus ergibt sich, dass neue Aufgaben während der Zusammenarbeit besprochen und auf dem Kanban-Board platziert werden können.
Ablauf: Auf der Basis von Anforderungen des Projektinhabers plant der Projektmanager, welche Aufgaben das Projektteam erledigen soll, um die naheliegenden Projektziele zu erreichen. In einigen Fällen werden auch Business Analysten in den Planungsprozess zur Erfassung von Anforderungen involviert. Für die Erledigung dieser Aufgaben erstellen Teamleiter detaillierte Pläne, die in einzelne kurzfristige Arbeitsschritte zerlegt, den Teammitgliedern zugewiesen und auch priorisiert werden. Diese Schritte werden auf Zetteln geschrieben und auf dem Kanban-Board in den entsprechenden Spalten platziert.
Fallstricke bei der Planung von Softwareprojekten vermeiden
Es reicht nicht aus, Besonderheiten jedes Modells bei der Planung von Softwareprojekten zu berücksichtigen. Es ist auch sinnvoll, potenzielle Fallstricke bei der Planung der Softwareentwicklung rechtzeitig zu erkennen, um diese effektiv zu verwalten und sogar zu vermeiden. In verschiedenen Vorgehensmodellen sind unterschiedliche Fallstricke versteckt.
Lineare Vorgehensmodelle:
- Lineare Modelle haben Probleme mit den Änderungen. Falls diese benötigt werden, sollte man alle geplanten Aktivitäten neu bearbeiten, was in der Regel mit einem längeren Zeitraum und höheren Investitionen verbunden ist. Um das zu vermeiden, sollte der Projektinhaber zu Beginn des Projekts alle Geschäftsanforderungen möglichst präzise beschreiben und diese für die Projektplanung verwenden.
- Im Wasserfallmodell ist es schwierig, zu planen, mit wie viel Aufwand Bugs erkannt und behoben werden können. Um diesen Fallstrick zu vermeiden, ist es empfehlenswert, Aktivitäten für die Qualitätskontrolle während des gesamten Projekts zu planen.
Iterative Vorgehensmodelle:
- Mit dem Fokus auf die kurzfristige Planung besteht das Risiko eines sehr langsamen Projektfortschritts. Um diesem Fallstrick aus dem Weg zu gehen, lohnt es sich, den Projektfortschritt regelmäßig nach bestimmten Kriterien zu bewerten und zu überwachen (z. B. monatliche Ziele festlegen und überprüfen, wie diese erreicht werden).
- Es fällt auch schwer, eine produktive Iteration zu planen, wenn das Team neu aufgebaut ist. Es ist noch nicht klar, mit welcher Geschwindigkeit jedes Teammitglied seine Aufgaben erledigen kann. Infolgedessen kann der Sprint länger als ursprünglich erwartet dauern. Um Terminüberschreitungen zu vermeiden, kann man am Ende des ersten Sprints die Geschwindigkeit messen und diese Informationen bei der Planung der nächsten Sprints berücksichtigen.
Zusammenfassend
Es ist kaum möglich, ein Softwareprojekt erfolgreich zu planen, ohne Besonderheiten des ausgewählten Vorgehensmodells bei der Planung der Softwareentwicklung zu berücksichtigen. Das Modell bestimmt, wer am Planungsprozess teilnehmen wird, welche Phasen die Planung umfasst und wie flexibel sie sein kann.