Prozessmodell
Das Prozessmodell, also die Vorgehensweise in der Projektabwicklung, ist das Herzstück der Software Manufaktur. Hier wird größter Wert auf ein Vorgehen gelegt, das eine Reihe von Kriterien erfüllt:
- Frühe Verfügbarkeit von Lösungen, die Kunden ab dem ersten Tag einen messbaren Nutzen bringen. Selbst bei komplexen Themen und Anforderungen
muss es möglich sein, ohne langer Vorlaufzeit zu ersten Ergebnissen zu gelangen, die nutzbringend einsetzbar sind.
- Zu übergebende (Teil-)Lösungen sind zu einem vereinbarten Stichtag fertig, voll funktionstüchtig und für den Produktiv-Betrieb einsetzbar.
Termintreue und Korrektheit der Ergebnisse sowie deren frühe Verfügbarkeit sind der primäre Maßstab für Fortschritt und Kundenzufriedenheit.
- Höchste Flexibilität ermöglicht es während des gesamten Entwicklungsprozesses, mit unvollständigen und sich ändernden Anforderungen sowie
einer gewissen „Unplanbarkeit“ umgehen zu können. Eine Detailplanung und -spezifizierung rücken zugunsten einer flexiblen Anpassung an Realität,
Erfahrung und neuen Anforderungen in den Hintergrund.
- Eine enge Zusammenarbeit zwischen der Manufaktur und seinen Kunden erhöht die Ergebnisqualität wesentlich. Eine kontinuierliche Verbesserung des gegenseitigen Verständnisses wirtschaftlicher Anforderungen und technischer Möglichkeiten, schafft angemessene Lösungen. Das rasche Feedback fördern zudem auf beiden Seiten Motivation und Zufriedenheit.
Erreicht werden diese Anforderungen durch eine agile und „maßgeschneiderte“ Herangehensweise. Jedes Projekt und jedes Unternehmen sind einzigartig, weshalb es auch nicht zielführend ist, ein – den – Prozess zu entwickeln, der für alle „passt“. Daher wird der Entwicklungsprozess individuell adaptiert. Grundsätzlich orientiert sich dieser an agilen Methoden wie Scrum, Crystal, FDD, Kanban und XP, wobei je nach Situation eine diese Methoden oder eine „gesunde“ Mischung zur Anwendung kommen, und diese im Lauf der Zeit kontinuierlich angepasst und verbessert werden. Eine Kombination mit klassischen Vorgehensmodellen wie dem V-Modell oder RUP ist dabei nicht ausgeschlossen.
Die Kernelemente des Entwicklungsprozesses
Iterativ-inkrementelles Vorgehen
Im Mittelpunkt des Vorgehens steht ein zyklisches (iteratives) Vorgehen auf allen Ebenen – von der Programmierung (Umsetzung) bis hin zum Management (Planung).
An jedem Ende eines Entwicklungsintervalls steht ein neues oder erweitertes Teil der Gesamtlösung (Inkrement) dem Kunden einsatzbereit zur Verfügung.
Im Unterschied zur „klassischen“ Vorgehensweise wird das Gesamtsystem nicht im Voraus und in allen Einzelheiten geplant, entwickelt und dem Kunden dann übergeben.
In diesem Fall bekäme der Kunde eigentlich nicht das, was er will, sondern das, was vor längerer Zeit im Vertrag vereinbart wurde. Denn während der Projektlaufzeit
ändern sich oft Rahmenbedingungen und Anforderungen oder es entstehen überhaupt neue Anforderungen, die zu Projektbeginn noch nicht bekannt waren.
Risikominimierung
Weiteres Kernelement der agilen Vorgehensweise ist der frühe Systemeinsatz. Treiber eines neuen Systems oder Anforderungen sind zu Beginn Geschäftsziele, die das
Management oder der Kunde in konkrete Handlungsanweisungen überführt, und für die eine IT-Lösung eine entsprechende Unterstützung bieten muss. Die Übersetzung
von Ziele in Anforderungen einerseits, und die Implementierung dieser Anforderungen in konkrete IT-Systeme anderseits ist aber die größte Herausforderung im
Entwicklungsprozess, da es unmöglich ist, Anforderungen exakt und vollständig zu erheben. Deshalb ist der frühe Einsatz von Teilen des Gesamtsystems wichtig,
um diese den treibenden Geschäftszielen gegenüberzustellen, und gegebenenfalls Korrekturen vorzunehmen und so das Risiko einer Fehlentwicklung und Scheitern des
Projekts zu minimieren.
Transparenz
Transparent sind nicht Entwurfs- und Spezifikationsdokumente, die schwer überprüfbar sind, oder Kontrollzeitpunkte nach mehrmonatigen Intervallen und
Fortschrittsangaben in Prozenten aus Projektplänen. Sichtbare und einsetzbare Ergebnisse schaffen aber Transparenz. In kurzen Intervallen (je nach Projekt
zwei bis sechs – maximal acht – Wochen) werden laufend neue Versionen (keine Testversionen!) mit erweiterter, überarbeiteter und neuer Funktionalität betrieben.
Die ständige Rückkopplung gibt Aufschluss über die Übereinstimmung des Systems mit den Zielen und damit der Entwicklungsgeschwindigkeit und des
Projektfortschritts. Der Kunde hat damit stets den Überblick und die Kontrolle über das Projekt
Flexibilität
Etwas fremd klingt in einem agilen Vorgehen, dass es kein Pflichtenheft gibt. Dieses wird aber zugunsten von Flexibilität und einem möglichst frühzeitigen
Entwicklungsbeginn aufgegeben. Je nach Projekt gibt es selbstverständlich auch Ausnahmen, so etwa wenn es um grundlegende und langfristige Entscheidungen der
Architektur, Infrastruktur oder ähnlichem geht. Der Kunde gibt am Anfang mehr oder weniger nur einige wichtige Basisfunktionalitäten vor, die während des
Projektverlaufs jederzeit um neue oder geänderte Anforderungen erweitert werden. Ebenso werden die Prioritäten bestehender Anforderungen entsprechend der
Notwendigkeit geändert. Dadurch können Erfahrungen aus dem laufenden Projekt in den weiteren Entwicklungsprozess mit einfließen, und es wird nur das entwickelt,
was tatsächlich von Nutzen ist.
Intensiver Einbezug des Auftraggebers
Typisch für die agile Vorgehensweise ist der intensive Einbezug des Auftraggebers, bzw. seiner Vertreter. Diese ist nicht nur zur Detaillierung der fachlichen
Anforderungen notwendig, sondern verbessert spürbar die Abstimmung des Projekts mit den Geschäftszielen. Dadurch, dass der Auftraggeber vor jedem
Entwicklungsintervall die zu realisierenden Anforderungen priorisiert, ist die Fokussierung der beschränkten Ressourcen auf die geschäftsrelevanten
Anforderungen sichergestellt. Die Akzeptanztests und die Abnahme am Ende jeder Iteration sind kontinuierlicher Maßstab für die Qualität.
Wirtschaftlichkeit
Weil die wichtigsten Funktionalitäten (also die mit dem größten Geschäftswert – „Business First Value“) zuerst entwickelt werden und möglichst häufig
lauffähige Versionen ausgeliefert werden, kann schon nach kurzer Zeit eine Basisversion des neuen Systems produktiv eingesetzt werden. Die Time-to-Market
ist deshalb in agilen Projekten sehr gering, häufig erwirtschaften sie ihre Kosten schon während der Projektlaufzeit („selbstfinanzierende Projekte“).
Praktiken
Aus den verschiedenen agilen Methoden von Scrum bis hin zu Kanban, lassen sich viele sogenannte „Best Practices“ übernehmen, auch ohne der jeweiligen Methodik
dezidiert zu folgen. Die Praktiken stellen in der Regel bewährte Lösungen für konkrete wiederkehrende Probleme dar, wie etwa fehlende Termintreue, mangelnde
Transparenz oder schlechte Wartbarkeit.
Die Zusammenfassung
Die Software Manufaktur setzt auf ein agiles Vorgehen um bestmöglich auf die Probleme seiner Kunden eingehen zu können und Lösungen zu entwickeln, die signifikante Verbesserungen zur Folge haben und langfristig die Kundenzufriedenheit sichern. Wesentlicher Erfolgsfaktor sind dabei die Integration des Kunden in den Entwicklungsprozess und ein zu jedem Zeitpunkt transparenter Überblick über das Projekt und den Projektfortschritt. Durch die frühe Verfügbarkeit erster produktiv einsetzbarer Systemteile wird das Projektrisiko reduziert, die Ergebnisqualität erhöht. Zudem beginnt die Amortisierung der Investitionen noch vor Projektende.
