Die überwiegend in einem Unternehmen eingesetzte Software ist Standardsoftware. Dies beginnt mit einem Mailprogramm und reicht bis zur Software für die Finanzbuchhaltung. Für den Einsatz von Standardsoftware gibt es viele gute Gründe: Die Software wird einem großen Kundenkreis zur Verfügung gestellt, was die Finanzierung eines großen Funktionsumfangs ermöglicht, ebenso umfangreiches Testing zur Qualitätssicherung. Es ist plausibel anzunehmen, dass ein Standard-Mailprogramm zu niedrigeren Kosten beschafft werden kann als die Auftragsprogrammierung einer Individualsoftware kosten würde.

In vielen Fällen lässt sich Standardsoftware für unternehmensspezifische Anforderungen konfigurieren (Customizing); wenn dies nicht ausreicht, kann gegebenenfalls eine Ergänzungsentwicklung die kundenspezifischen Anforderungen erfüllen. Letzteres ist sinnhaft, wenn bestehende Komponenten etwa ergänzt werden oder eine zusätzliche Schnittstelle (API) erforderlich ist. Wenn kundenspezifische Anforderungen Eingriffe in die Datenstruktur und Anpassung der Kernprozesse einer Software erfordern würden, dann ist die Machbarkeit nicht gegeben oder aber der Aufwand ist unverhältnismäßig.

In der Praxis findet sich Individualsoftware dort, wo Standardsoftware die Prozesse eines spezifischen Geschäftsmodells nicht abbilden kann oder Arbeitsprozess zu umständlich/zeitaufwändig werden. Das Unternehmen INtIME Express Logistik etwa ist unter den führenden europäischen Unternehmen in der Notfalllogistik: Wenn einer Produktionsstraße eines Automobilherstellers aufgrund mangelnder Bauteile der Stillstand droht, muss binnen einer Stunde ein Express-Transport bei dem Bauteillieferanten starten, etwa in einem Werk in Osteuropa, Spanien oder Europa. Das Management dieser Hochverfügbarkeit von einsatzfähigen Logistikkapazitäten ließ sich nicht mit einer gängigen Standardsoftware abbilden. Die Firma INtIME Express Logistik hat eine Eigenlösung entwickelt, die für diese Anforderung maßgeschneidert ist.

Auch der große Logistikkonzern DACHSER (Umsatz über 6 Mrd. Euro) hat eine eigenentwickelte Lösung, um die Logistikprozesse innerhalb des global agierenden Konzerns steuern zu können. Und selbstverständlich nutzt Amazon keine Standard-Webshopsoftware, sondern eine eigene Softwarelösung, die ebenjene Features enthält, die den Wettbewerbsvorteil des Online-Händlers ausmachen: Einfache Bedienbarkeit (Bestellen mit 1-Click®), Nutzung eines Kundenkontos für alle Länder, Integration vieler Händler (Amazon als Marktplatz) und weitere Programmfunktionen.

Individualsoftware bringt also typischerweise folgende Vorteile mit sich: Erstens, es können individuelle Unternehmensprozesse eines (neuen, überlegenen oder kaum verbreiteten) Geschäftsmodells abgebildet werden, für die keine geeignete Standardsoftware existiert. Ergebnis sind vielfach Prozesseffizienz und Sicherung von Wettbewerbsvorteilen. Zweitens, die „Produktpolitik“ / Roadmap für die Eigenentwicklung kann vollständig an der Strategie eines Unternehmens ausgerichtet werden. Es kommt die strategische Unabhängigkeit hinzu (vom Anbieter der Standardsoftware; auch das Risiko der Insolvenz des Softwareanbieters entfällt. Drittens, das Einbeziehen der Endnutzer in den Entwicklungsprozess kann zu einer ausgeprägten Identifikation mit, mindestens aber einer hohen Akzeptanz der Software führen.

Die Nachteile liegen auf der Hand: Erstens, die Investitionskosten sind deutlich höher als bei Standardsoftware. Unter diesen Punkt fällt auch die Notwendigkeit, das Produkt im Verlauf des Produktlebenszyklus kontinuierlich zu modernisieren. Es wird in dem Zusammenhang immer wieder darauf hingewiesen, dass es die Total Cost of Ownership (TCO) zu betrachten gelte, vor allem geringere Prozesskosten (dank Prozesseffizienz aufgrund maßgeschneiderter Prozesse) und geringere Kosten für Anpassung/Customizing von Standardsoftware; tatsächlich gesehen habe ich Prozesskostenrechnungen im Kontext solcher Entscheidungen noch nicht. Es ist aber klar, dass der Prozesseffizienz in Zeiten von Fachkräftemangel eine wachsende Bedeutung zukommt. Zweitens, das für IT Entwicklungen typische Risiko liegt nun beim Unternehmen selbst: Das reicht von Budgetüberschreibungen bis hin zum gänzlichen Scheitern. Drittens, die Einbindung der Endnutzer in den Prozess erfordert typischerweise signifikante zeitliche Ressourcen. Der Product Owner sollte außerdem die Marktentwicklungen permanent verfolgen, etwa über Messebesuche, um wichtige Entwicklungen und Trends für die Weiterentwicklung der eigenen Software einfließen zu lassen.

In einer idealen Welt gibt es eine harte Grenze zwischen Individual- und Standardsoftware nicht: Standardsoftware bildet einen Baukasten von Modulen mit vielfältigen Customizing-Möglichkeiten; die hohen Investitionskosten für Individualsoftware und das Risiko von IT Projekten existieren hier nicht mehr. Diesen modularen Ansatz verfolgen einige Anbieter, aber auch dieser Ansatz hat Grenzen (vgl. obigen Hinweis zu grundlegenden Datenstrukturen). Interessant ist die zunehmende Verbreitung sogenannter Low-Code-Plattformen (OutSystems, Appian, Mendix, Kony, Salesforce, ServiceNow, AgilePoint, Bizagi, K2): Entwickler (hier genannt Citizen Programmer) greifen auf einen umfangreichen Baukasten an Features zu, auch das Datenmodell wird mitentwickelt. Es lassen sich etwa Datenbankabfragen zusammenklicken, dazu Visualisierungen auswählen (Formular- oder Tabellenansicht bzw. Map-, Tree- oder Chart-Controls). Vergleiche dazu auch den weiterführenden Artikel: “Low Code Plattformen: Wofür eignen sie sich wirklich?“

Wie weit Standardsoftware und Individualsoftware noch auseinander liegen, mit welchem technischen Ansatz sich kosten- und zeiteffizient Individualsoftware entwickeln lässt, das muss man von Fall zu Fall beurteilen. Pauschale Aussagen à la „Mit Low-Code-Programmierung ist die Unterscheidung von Individual- und Standardsoftware Vergangenheit“ wird man dem Thema nicht gerecht. Nachfolgend ein paar Beispiele für die Abwägung von Standard- zu Individualsoftware.

Use Case Individualsoftware: Software zur Projektkalkulation in der Baubranche

Die Ausgangssituation lässt sich wie folgt beschreiben: Eine Projektkalkulationssoftware wird bei einem Unternehmen des Baunebengewerbes eingesetzt. Der Anbieter der Software (mit ehemals einer Hand voll Mitarbeitern) ist aus dem Markt ausgeschieden; für die Software (geschrieben in Delphi) liegt kein Quellcode vor.

Gängige Standardsoftware (verschiedener Anbieter) basiert auf folgendem Kalkulationsprinzip (nachfolgende Beschreibung ist notwendigerweise vereinfacht): Das Leistungsverzeichnis mit mehreren Tausend Einzelpositionen bei umfangreicheren Projekten wird im branchentypischen GAEB-Format eingeladen. Je zu kalkulierender Einzelposition können Aufwände für Material und Montage definiert werden und hierauf verschiedene Gemeinkostenzuschläge (Projektmanagement, Baustellengemeinkosten, Vertrieb, etc.) addiert werden. Es gibt diverse Auswertungs- und Exportfunktionalitäten.

Die eingesetzte veraltete Kalkulationssoftware nutzt im Kern einen hiervon abweichenden Ansatz: Jede Einzelposition des Leistungsverzeichnisses kann ich sogenannte Kalkulationspositionen heruntergebrochen werden. Zur Erläuterung sei angenommen, eine Einzelposition sei ein Tisch. Dieser besteht aus einer Tischplatte, 4 Tischbeinen, 4 Verstrebungen und 16 Schraubelementen. Ebendiese Positionen werden kreiert, auf eben dieser Ebene wird kalkuliert (Materialkosten, Montagekosten, Zuschläge). Auf weitere Details sei hier nicht eingegangen. Auf dieses Kalkulationsprinzip sind die Prozesse mit etwa 20 Projektkalkulatoren in dem Unternehmen ausgerichtet, mithilfe dieses Kalkulationsprinzips wurde in der Vergangenheit eine belastbare Kostenkalkulation erstellt.

Die Entscheidung für eine Individualsoftware (hier: Migration der bestehenden Software auf eine moderne Technologieplattform) fiel aus zwei Gründen: Erstens, die Kalkulationssoftware schafft einen strategischen Vorteil, der sich mit Standardsoftware nicht abbilden lässt. Zweitens, die Umstellung auf alternative Kalkulationsprozesse für 20 Mitarbeiter ist mit einem hohen Aufwand verbunden. Die bestehende Kalkulationssoftware ist hinsichtlich Prozesseffizienz optimiert, bei Umstellung auf eine andere Software ist zudem mit höheren Prozesskosten zu rechnen. Drittens, das Datenmodell und die Verarbeitungslogik von gängiger Standardsoftware lassen sich nicht anpassen, da das abweichende Grundprinzip der veralteten Kalkulationssoftware eine grundlegende Anpassung von Datenmodell, Verarbeitungslogik und Benutzeroberfläche bedeuten würde.

Use Case Individualsoftware: Produktentwicklung bei einem Reiseanbieter

Ein Nischenanbieter für Pauschalreisen stellt aus Restkontingenten von Flügen, Kreuzfahrtschiffen und Unterkünften attraktive Reiseangebote zusammen und vermarktet diese über diverse Kanäle. Für diese Paketierung wurde zunächst ein Tool entwickelt, das auf MS Excel basierte. In dem Prozess ebenfalls integriert waren diverse Controlling-Funktionen, die etwa zusätzliche Bewerbungsaktionen anmahnten, wenn aufgrund des Buchungsverlaufs eine schwache Auslastung drohte.

Der Reiseveranstalter operiert mit diesem Vorgehen in einer Marktnische, für die keine Standardsoftware verfügbar war/ist. Angesichts des Unternehmenswachstums erwies sich die Excel-basierte Anwendung an einem bestimmten Punkt als Engpassfaktor, die bewährten Prozesse wurden im Rahmen einer Individualentwicklung auf eine leistungsfähige und skalierbare Technologieplattform gehoben.

Sebastian Zang
Author

Der Autor ist Manager in der Softwareindustrie mit internationaler Expertise: Prokurist bei einem der großen Beratungshäuser - Verantwortung für den Aufbau eines IT Entwicklungszentrums am Offshore-Standort Bangalore - Director M&A bei einem Softwarehaus in Berlin.