Die Software Manufaktur. Überraschend anders · Überraschend bequem.

ProzessmodellProzessmodell

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:

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.