On-Premise vs. Software-as-a-Service

In dem Post Warum Individualsoftware? habe ich über die Vor- und Nachteile von Individual­software vs. Standardsoftware geschrieben.

In diesem Post geht es um On-Premise-Software, also vom Verwender selbst betriebene Kaufsoftware im Vergleich zu Software-as-a-Service-Software (SaaS) bzw. Mietsoftware – also Software, die vom Lösungsanbieter betrieben wird, und für die der Verwender ein Nutzungsrecht auf Online-Nutzung erwirbt.

Es wird vor allem darum gehen, welche Aspekte besonders wichtig für eine Entscheidung sind – vor und nach der Entscheidung.

Wenn es bei Warum Individualsoftware? um geschreinertes Regal vs. Billy-Regal ging, dann geht es hier gewissermaßen um Haus kaufen vs. Wohnung mieten – mit analogen Effekten.

Wesentliche Aspekte einer SaaS-Lösung sind:

Keine Investition

Die Anschaffung einer Software kann eine nicht unwesentliche Investition bedeuten. Bei gemieteter Software entfällt dieses Problem. So kann es sinnvoll sein, mit einer gemieteten Lösung zu starten, obwohl man sich bewusst ist, dass unten stehende Nachteile vielleicht später zuschlagen. Der Wert des einfachen Starts und möglicherweise auch die eingeschränkte Freiheit können helfen, genauer zu verstehen, wie der eigene Geschäftsprozess am besten umzusetzen ist.

Kein Betriebsaufwand

Weder muss Infrastruktur angeschafft noch betrieben werden. Es muss kein Ausfallplan und kein Backup erstellt werden. Die Gewährleistung der Verfügbarkeit der Lösung ist nicht ihr Problem (eine ungenügende Verfügbarkeit an sich aber vielleicht doch).

Bekommt die Software neue Feature oder Bug-Fixes und muss aktualisiert werden: Nicht ihr Problem.

Abhängigkeit: Kein Plan B, falls Angebot nicht mehr passt oder Anbieter geht.

Es gilt der alte Spruch: Daten leben länger als Software. In diesem Fall liegen ihre Daten beim Lösungsbetreiber. Kündigen Sie, können Sie womöglich Ihre Daten in irgendeiner Form herunterladen – ohne die fremde Software aber nur unter unklarem Aufwand damit weiter arbeiten (z. B. nach einer Migration für eine andere Software).

Flexibilität: What You See Is What You Get

Die gemietete Lösung ist nur so anpassbar wie sie entworfen wurde. Stellen Sie fest, dass ihr Geschäftsprozess schwer mit der Lösung umzusetzen ist, sind Sie auf das Wohlwollen ihres Anbieters angewiesen.

Integrierbarkeit: Keine Lokale Integration (sicher) möglich

Grundsätzlich stellt die Integration mit einer externen Lösung ein Sicherheitsproblem dar. Dabei geht es hier weniger um die Qualität der Netzwerkinfrastruktur oder ob diese lokal ist oder in der Cloud ist, sondern darum, dass möglicherweise sensible Daten Ihr Netzwerk über nicht von Ihnen abgesicherte Protokolle verlassen.

Es sind genau diese Aspekte, die eine Mietsoftware von einer Kaufsoftware unterscheiden. Vereinfacht und zur Illustration in Korrelation zur Individualsoftware stellen sich die Fälle ziemlich komplementär dar:

In den meisten Fällen sollte die Entscheidung einfach sein: Ist eines der Kriterien aus Abhängigkeit, Anpassbarkeit, Integrierbarkeit kritisch für den Geschäftszweck, so scheidet die fremd betriebene Mietsoftware aus. Das ist bei standardisierten Prozessen häufig nicht der Fall (E-Mail, Steuer, Personalabrechnung, …) aber zum Beispiel bei produktionsnaher Software (MES Systeme, Rework / Manuelle Workflows) meist doch.

Wenn man nun aber feststellt, dass die Software am besten lokal betrieben wird, was kann den Aufwand reduzieren?

Entscheidende Kriterien sind hier stets Komplexitätsgetrieben:

Komplexität der Installation

Ist die Installation komplex, zum Beispiel weil viele Fremdbibliotheken installiert werden oder Abhängigkeit an Elemente einer Betriebsystemversion bestehen oder muss gar eine Serverlandschaft aufgesetzt und abgesichert werden muss, so handelt es sich um eine Komplexitätskatastrophe mit Ansage.

Sind die Grenzen zwischen der gekauften Leistung und ihrer Betriebsumgebung schlecht definiert, so ist der Betrieb und seine Verantwortlichkeiten undurchschaubar und die Wartung entweder nicht vernünftig leistbar oder teuer.

Entsprechend finden wir:

Komplexität des Upgrades

Ist die Installation schon komplex, so kann davon ausgegangen werden, dass spätere Softwareversionen durch neue Abhängigkeiten und damit Veränderungen innerhalb des komplexen Setups nur noch komplizierter und damit unverständlicher und in der Folge teurer werden.

Komplexität der Software-Logistik

In der Königsklasse, nämlich der kundenspezifisch integrierten, erweiterten, möglicherweise sogar angepassten Software, kommt neben den beiden Punkten oben noch die Komplexität der Softwarelogistik hinzu. Zum Zeitpunkt der Anpassung und Aktualisierung der Software muss stets gewährleistet sein, dass verstanden wird, welche Änderungen wann vorgenommen wurden, ob Erweiterungen und Anpassungen kompatibel sind und wie diese qualifiziert werden können. Das bedeutet, dass die Entwicklung und die Quellcodeverwaltung der Kundenlösung nahtlos an die (hoffentlich vorhandenen) Standards des Anbieters der Basislösung angegliedert sein muss.

Zum Schluss

Dies sind exakt die Themen, die uns umtreiben. Deshalb kommt unsere Software weitgehend ohne Abhängigkeiten von externe Softwarekomponenten aus, wenn wir diese nicht mitliefern können. Und dies ist auch weshalb unsere eigene Software stets im Quellcode, integriert in eine übergreifende Software-Logistik ausgeliefert wird.

So ist es uns möglich, jegliche Aktualisierung, Erweiterung stets im lokalen Kontext zu validieren und falls notwendig erforderliche Anpassungen auch im lokalen Kontext des Kunden vorzunehmen.

Merke: Überraschungen gibt es immer. Probleme gibt es erst, wenn man damit nicht umgehen kann.

Schließlich bleibt noch das Investitionsthema. Die Tatsache, dass eine Software vom Verwender betrieben wird muss nicht zwingend implizieren, dass eine Lizenz erworben wurde. Wenn es nur um die lokale Integration geht und keine oder nur geringe Anpassungen erforderlich sind, spricht vieles für ein Mietmodell – auch daran arbeiten wir.

Verwandte Inhalte:

The Technicians of Tomorrow will be Software Engineers

(German: Die Schlosser von Morgen sind Softwareentwickler) Manufacturing companies require increasingly complex skills to maintain production and optimize operations. This is not just about saving costs, but also about having the expertise to implement complex and innovative improvements – beyond what suppliers have to offer. In the past, machines were bought for production and serviced…

Wie man einen Softwareentwickler beauftragt

(English: How to Contract a Software Developer) Wir sind ein kleines Unternehmen, das kundenspezifische Software entwickelt, die in der Regel geschäftskritische Funktionen implementiert: Back-Ends mit vielen asynchronen transaktionalen Geschäftsabläufen, Massendatenverarbeitung, Integration mit anderen Back-Ends, Maschinendaten und auch Benutzeroberflächen in der Produktion. Wir entwerfen und implementieren diese Software nicht von Grund auf. Wir verfügen über Werkzeuge, eine…

Warum Individualsoftware?

Es gibt Standardsoftware und Individualsoftware. Aus Sicht eines Kunden, der eine Software-Lizenz erwirbt bedeutet eine Individualsoftware in der Regel, dass er alle Rechte an der Software besitzt. Mit Individualsoftware bezeichnen wir in der Regel Code, der speziell auf Wunsch für einen Kunden entwickelt wurde. Als Standardsoftware bezeichnen wir dagegen Software, die vom Nutzer wohl benutzt,…