[12.04.2013]
Aufgrund steigender Komplexität von Technologien und Produkten sowie der Vielfalt von Kundenanforderungen sind zunehmend auch Softwareunternehmen gezwungen, einerseits möglichst viele Produktvarianten anbieten zu können, andererseits jedoch die Entwicklungskosten und Time-to-Market zu reduzieren. Auch in der Softwareentwicklung gewinnt eine optimale Wiederverwendung innerhalb der Produktprogramme zunehmend an Bedeutung, um effizient auf Kundenanforderungen und Marktveränderungen reagieren zu können. Insbesondere mittelständischen Softwareunternehmen mangelt es jedoch an Kapazitäten und betriebswirtschaftlichen Methoden, um einen optimalen Grad der Wiederverwendung innerhalb und zwischen verschiedenen Software-Produkten bzw. Produktlinien gestalten zu können. Durch die Übertragung industriell bewährter Konzepte und Methoden auf die Softwarebranche können Produktprogramme von Softwareunternehmen jedoch mit Hilfe systematischer Modularisierung und Plattformstrategien mit angemessenem Aufwand optimiert werden. Die Aufwände in der Softwareentwicklung – und damit die Entwicklungskosten neuer Softwareprodukte und -varianten – sollen dadurch aufgrund erhöhter Wiederverwendung und produktübergreifender Synergierealisierung signifikant reduziert werden.
Die Ansätze zu Modularisierung und Plattformstrategien in der Softwareentwicklung basieren auf dem Konzept der Produktordnungssysteme, die sich in anderen industriellen Branchen schon lange bewährt haben und nun verstärkt auch auf (vor allem mittelständische) Softwareunternehmen übertragen werden sollen. Zu einem funktionierenden Produktordnungssystem zählen die Gleichteilestrategie, die Baukastenstrategie, Module und Systeme sowie die Plattformstrategie. Auf die immateriellen Softwareprodukte lassen sich vor allem Modularisierungs- und Plattformstrategien übertragen. Eine Plattform bedient sich eines gemeinsamen Kerns über mehrere Produkte hinweg. Varianten werden mit zusätzlichen Modulen auf der gleichen Basis aufgebaut. Sauber definierte Software-Architekturen mit stabilen Schnittstellen stellen dabei eine wichtige technologische Voraussetzung dar, um eine systematische Wiederverwendung in der Softwareentwicklung gewährleisten zu können.
Bei der Erarbeitung einer Modularisierungs- und Plattformstrategie mittels Software-Produktordnungssystem sind folgende Kernfragen zur Neugestaltung des Produktprogramms zu beantworten:
Die Konzeptionierung und Umsetzung einer Modularisierungs- und Plattformstrategie für erhöhte Wiederverwendung in der Softwareentwicklung erfordert eine strikte Trennung von Component Engineering und Application Engineering. Zunächst sind die Module und Plattformen des Software-Produktordnungssystems zu entwickeln. Parallel zur Umsetzung der Modularisierungs- und Plattformstrategie, also der Programmierung der Modulbausteine und Plattformen, kann bereits das Application Engineering starten, neue Produkte und Varianten auf Basis der neuen Plattformen und Module zu entwickeln.
Insbesondere die Definition einer produktlinienübergreifenden Strategie erfordert einen strukturierten Methodeneinsatz, um einen betriebswirtschaftlich sinnvollen Grad der Wiederverwendung ausarbeiten zu können. Bei der Identifikation einer optimalen Bündelung für Plattformen über mehrere Produktlinien hinweg einerseits und der Spaltung von Funktionen in Module andererseits sind zahlreiche externe (Marktbedürfnisse, Wachstumsbereiche, Konkurrenzprodukte) und interne Faktoren (bestehende Plattform, Technologien, Fertigungsprozesse, organisatorische Fähigkeiten) zu berücksichtigen. Sinnvolle Unterstützung bieten hierbei die Anwendung betriebswirtschaftlicher Methoden, wie beispielsweise die Funktionsstrukturanalyse und die Spaltungs-/Bündelungstreiber-Matrix zur Strukturierung der Software-Produkte, die Conjoint Analyse oder das Kano-Modell zur systematischen Aufnahme der Kundenanforderungen, sowie die Function-Points-Analyse, das Zielkostenkontrolldiagramm zur Ermittlung der Entwicklungskosten und die Ableitung eines ausgewogenen Kosten-/ Nutzen-Verhältnisses für bestimmte Produktfunktionen.
Im Component Engineering entsteht durch die Erarbeitung und Umsetzung der Modularisierungs- und Plattformstrategie zunächst ein Mehraufwand, der sich durch Einsparungen und Beschleunigungen im Application Engineering aber bereits nach wenigen Neuprodukt- oder Projektentwicklungen wieder amortisiert hat. Danach profitiert die Softwareentwicklung von Kosteneinsparungen durch erhöhte Wiederverwendung und Synergien zwischen verschiedenen Produktvarianten und Produktlinien.
Durch systematische Übertragung von Modularisierung und Plattformstrategien auf die Softwareentwicklung auf Basis des Konzepts der Software-Produktordnungssysteme, wie sie in der Industrie bereits erfolgreich eingesetzt werden, können signifikante Kosteneinsparungen erzielt werden. Durch eine klare Trennung in die Entwicklung eines Software-Produktordnungssystems zur Definition von Modularisierungs- und Plattformstrategien (Component Engineering) und in die Entwicklung von Software-Produkten auf Basis systematischer Wiederverwendung durch Module und Plattformen (Application Engineering) konnten in ausgewählten Fallbeispielen mittelständischer Softwareunternehmen die Aufwände in der Softwareentwicklung um 20% bis 50% reduziert werden.
Die Optimierung von Software-Produktprogrammen mittels Modularisierung und Plattformstrategien in der Softwareentwicklung trägt maßgeblich zur Entzerrung des Spannungsfelds zwischen Individualisierung nach außen (zum Markt hin) und gleichzeitiger Standardisierung nach innen (im Unternehmen) bei. Auf diese Weise lässt sich die Industrialisierung der Softwarebranche vorantreiben – und die Wettbewerbsfähigkeit deutscher Softwareunternehmen kann somit erheblich gesteigert werden.