Funktionen, Kosten und Termine einhalten
Produzierende Industrieunternehmen reichern ihre Produkte immer häufiger mit Software-Funktionen an. Um diese innovativ und erfolgreich erarbeiten zu können, müssen Unternehmens- und Entwicklungsprozesse angepasst und weiterentwickelt werden. Nur so können die Unternehmen den veränderten Anforderungen Rechnung tragen sowie sich Vorteile im globalen Wettbewerb sichern.
Doch aufgrund ihrer Historie sind viele Hersteller industrieller Produkte keine typischen Software-Entwickler und -Lieferanten. Ihre Entwicklungsprozesse basieren oftmals auf den Hardware-technischen Anforderungen. Damit sie wettbewerbsfähig bleiben, müssen die Unternehmen daher ihre Software-relevanten Entwicklungsprozesse verbessern. Während das in kleinem Maßstab noch gut beherrschbar ist, steigt die Komplexität bei größeren Software-Produkten deutlich, die meist in mehreren Teams konzipiert werden. Den verschiedenen Entwicklungsprozessen liegen jedoch gemeinsame Ziele zugrunde: Kosten reduzieren, Projektrisiken managen und hohe Qualität erreichen.
Phasenorganisiertes V-Modell
In der klassischen Software-Entwicklung wird heute vielfach nach dem V-Modell gearbeitet, das mit der Analyse und Definition der Anforderungen beginnt. Sie werden als Produkt(-version) zusammengefasst und als Entwicklungsauftrag formuliert. Bereits an dieser Stelle sollte die Qualitätssicherung integriert sein, sodass die Anforderungen vollständig, konsistent und prüfbar sind. Im nächsten Schritt erfolgt die Entwicklungsplanung, die auf dem Grobentwurf der Software basiert. Deren Eigenschaften werden dabei in funktionalen Spezifikationen festgeschrieben. Auf der Grundlage der Ergebnisse startet auch die Erstellung der System- und Integrationstests. Die Umsetzung der Implementierung kann in einem Schritt oder mehreren Inkrementen durchgeführt werden. In diesem Zusammenhang entstehen der Feinentwurf der Software sowie der Programmcode. Die Ergebnisse werden in einer technischen Spezifikation festgehalten. Unit-Tests, die Teil der Entwicklung sind, dienen der Validation.
Freigabebasierter Quality-Gate-Prozess
Die unterschiedlichen Entwicklungsmodelle werden in der Regel von einem Quality-Gate-Prozess überlagert, in dem die einzelnen Projekt-Meilensteine definiert sind. Der Beginn der nächsten Projektphase hängt hier vom Abschluss der vorherigen Phase ab. Als Teil der Projektplanung wird jeder Meilenstein zuvor zeitlich geplant, weshalb seine termingerechte Realisierung ebenfalls Auskunft über den Projektstatus gibt. Bei jedem Meilenstein findet eine Prüfung statt, ob vorher festgelegte Ziele erreicht worden sind. Nur dann kann die folgende Projektphase starten. Der Vorteil dieser Vorgehensweise liegt somit in der Reduzierung von Fehlentwicklungen sowie im Projekt-Controlling. Die einzelnen Projektphasen werden bewusst voneinander getrennt, damit die verschiedenen Projektabschnitte aufeinander aufbauen können. Sind mehrere Entwicklungsdisziplinen beteiligt – z.B. Hard-, Soft- und Firmware -, lassen sich die Meilensteine zur Synchronisation der Teilprojekte nutzen.