Die Planung und Durchführung von komplexen Softwareprojekten ist gar nicht so einfach. In der Realität sind zu Projektbeginn folgende Punkte meist unklar:
- Was ist wirklich zu tun?
- Was erwartet der Kunde (oft weis das der Kunde selbst nicht)?
- Wie lange wird das Projekt dauern?
- Welche Hindernisse (technisch, organisatorisch, Abhängigkeiten,…) wird es geben?
- Wie teuer wird das ganze wirklich?
Trotzdem werden SW-Projekte meist zu einem Festpreis verkauft. Um den Preis zu kallkulieren schätzt man so PI mal Daumen die erwarteten Aufwände, multipliziert das mit dem Stundensatz und macht dann einen Risikozuschlag. Hieraus errechnet sich dann der Festpreis. Danach wird dann ein Pflichtenheft geschrieben in dem die zu diesem Zeitpunkt bekannten Anforderungen niedergeschrieben werden.
Das Ergebnis ist dass ein Großteil der Projekte nicht “In Time”, “In Budget” und “In Quality” abgeschlossen werden. Das Problem liegt im System. Die Planung sehr großer Vorhaben ist meist sehr ungenau. Warum das ganze nicht in kleine Etappen unterteilen und dann sofort Feedback einholen. Das ist das Sytem von Scrum. Hier die Definition von Wikipedia:
Scrum (engl. „Gedränge“) ist ein Rahmenwerk (framework) zur Entwicklung komplexer Produkte, das derzeit vor allem in der Entwicklung von Software angewendet wird.
Der Ansatz von Scrum ist empirisch, inkrementell und iterativ. Er beruht auf der Ansicht, dass die meisten modernen Entwicklungsprojekte zu komplex sind, um durchgängig planbar zu sein. Scrum versucht, die Komplexität durch drei Prinzipien zu reduzieren:
- Transparenz: Der Fortschritt und die Hindernisse eines Projektes werden täglich und für alle sichtbar festgehalten.
- Überprüfung: In regelmäßigen Abständen werden Produktfunktionalitäten geliefert und beurteilt.
- Anpassung: Die Anforderungen an das Produkt werden nicht ein und für alle mal festgelegt, sondern nach jeder Lieferung neu bewertet und bei Bedarf angepasst.
Zum Einstieg in die Materie hier zwei interessante Ressourcen:
- Scrum auf einer Seite: http://scrum-master.de/files/Scrum_on_1_page.pdf
- Video “Scrum Basics”
Folgendes Buch lese ich gerade: “Scrum – Agiles Projektmanagement erfolgreich einsetzen” (Roman Pichler). Ich werde immer mal wieder berichten.
Bei uns in der Firma hat man den gleichen Fehler gemacht. Es wurde vor Jahren mit dem Vorhaben gestartet, die gesamte Produktpalette durch neue Geräte zu ersetzen (samt Software). Nach ein paar Jahren wurde das Projekt eingestellt, weil es zu lange dauerte und zu teuer wurde.
Jetzt hat man daraus gelernt und wir entwickeln einzelne Geräte und Softwarepakete nacheinander in kurzen Zyklen. Jetzt Releasen wir wenigsten wieder was.
Was trotzdem nicht gut funktioniert: Die Zeiträume für die umzusetzenden Anforderungen sind zu knapp bemessen.