Softwareentwicklung

Gemäss «Hype Cycle für ERP»(1) von Gartner sind App-Stores/Marketplaces für ERP-Systeme aktuell hip und sollen in zwei bis fünf Jahren Realität sein. Nun, der Blick in die Kristallkugel der Zukunft ist ein schwieriges Geschäft. Im Folgenden sollen mögliche Entwicklungslinien und Probleme anhand realer Gegebenheiten untersucht und beurteilt werden.

Die Einschätzungen der Zukunft von ERP-Systemen und App-Stores basieren im Wesentlichen auf Gesetzmässigkeiten des Software Engineerings und auf Analogschlüssen zu ähnlichen Technologien. Natürlich gelten diese Überlegungen auch generell für die Software-Entwicklung. Zwei wesentliche Eigenschaften beschäftigen die Software-Entwickler schon seit den ersten Gehversuchen. Es sind die Komplexität und die Wiederverwendung von erstellten Programmen. Apps versprechen genau in diesen Punkten Abhilfe. Sie sind einfache, wiederverwendbare Applikationen – und dabei noch günstig. Wenn diese jetzt noch miteinander verbunden werden können, dann lässt sich tatsächlich ein günstiges ERP-System aus dem Store zusammenstellen.

Komplexität reduzieren: «Teile und herrsche»

Ich möchte zunächst auf die gefühlte Unkompliziertheit von Apps eingehen. Barry Boehm, ein Urgestein des Software Engineering, hat 1981 in einem seiner Bücher ausgeführt, dass der Aufwand zur Erstellung von Applikationen exponentiell mit der Anzahl Programmzeilen wächst (2) . Wenn wir eine grössere Applikation mit 1’000’000 Zeilen in 100 Applikationen zu 10’000 Zeilen zerlegen reduziert sich der Gesamtentwicklungsaufwand scheinbar. Wir spüren intuitiv, dass kleine Applikationen einfacher zu erstellen sind. Wir haben ein Phänomen gefunden, wie wir den Aufwand fast beliebig reduzieren können! Oder ist es nur ein Zaubertrick?

Dieses Paradoxon würde aber nur dann funktionieren, wenn die Apps voneinander echt unabhängig sind und kein Code doppelt auftritt. Aber die inhärente Komplexität einer Anwendung lässt sich so leider nicht wegzaubern. Und es kommt noch schlimmer. Möchten wir Apps verschiedener Hersteller beliebig auswählen und einbinden, wächst der Aufwand erneut exponentiell mit jedem zusätzlichen Hersteller, denn der Gesamtumfang der Programmzeilen wächst mit jeder neuen App weiter. Riechen Sie schon den Schwefel der Software-Hölle?

Komplexität aus dem Nichts: Das Ganze ist mehr als die Summe seiner Teile

Die Idee von «Teile und herrsche» («Divide et impera») ist im Bereich Software Entwicklung nicht neu. Kurz vor der Jahrtausendwende herrschte Einigkeit darüber, dass grosse, monolithische Systeme passé sind. Stattdessen sollten «kleinere», unkomplizierte Applikationen (im besten Fall Standardsoftware) eingekauft werden und diese mittels Schnittstellen miteinander verknüpft werden um Kosten zu sparen. Leider hat das nicht den gewünschten Effekt gehabt.

Mit diesem Vorgehen verlagerte sich die Komplexität in die Schnittstellen. Wer schon einmal eine solche Schnittstelle gebaut hat, oder wer eine Datenmigration zwischen zwei Systemen implementiert hat, weiss ein Lied davon zu singen. Es fängt mit einfachen Problemen an (z. B. unterschiedlichen Formaten des Kalenderdatums und der Zeit), steigert sich über abweichende semantische Bedeutung von Daten (z. B. die internationale Codierung des Zivilstandes) bis hin zu strukturellen Unterschieden der Daten. Verschiedene Versuche, Standards einzuführen, sind bisher wenig erfolgreich. Sogar im simplen Bereich der Zeichencodierung wimmelt es noch immer von verschiedenen Standards – wer hat noch nie in einem Dokument plötzlich alle Umlaute durch seltsame Symbole ersetzt gesehen?

Was immer wieder zu Überraschungen führt, ist der Umstand, dass Änderungen in einer Applikation unerwartete Auswirkungen auf andere Applikationen haben. Das Gesamtsystem scheint eine verborgene Gesamtlogik zu entwickeln, welche schwer zu erfassen ist.

Es entsteht aus dem Nichts Komplexität. Dies führt dazu, dass Änderungen, deren Wirkung nicht vollständig über alle Applikationen hinweg verstanden werden, gefürchtet und vermieden werden. Bezogen auf Apps würde das bedeuten, dass beim beliebigen Zusammenklicken eine App plötzlich nicht mehr korrekt funktioniert, weil irgendeine andere App geändert hat. Die Hersteller der verschiedenen Apps müssten also gemeinsam jede neue Version sauber testen. Viel Aufwand in einem schwierigen Umfeld. Sie denken vielleicht: «Mag ja sein, aber was um Himmels willen interessiert mich der Aufwand des Herstellers?». Das kann man natürlich so sehen. Sind es also allein die App-Entwickler die die Hitze des Höllenfeuers spüren?

Wiederverwendung: Sind Apps Legobausteine?

Die Idee, Anwendungen aus wiederverwendbaren Komponenten (in unserem Falle Apps) zu erstellen, ist nicht neu. Bereits in den 1970-er Jahren wurden Komponenten an einer Software Engineering Konferenz der Nato diskutiert. Auch ich habe schon solche Konferenzen in der Neuzeit besucht und bin meist etwas verworren nach Hause gegangen. Doch mit unerbittlicher Hartnäckigkeit taucht die Idee immer wieder in neuer Verpackung auf, setzt sich aber nie durch. Wieso nicht? Ein Aspekt, der dagegen spricht ist folgender:

Es ist keine Kunst eine App (eine «grössere» Komponente) zu erstellen. Wenn diese App aber wahlweise mit einer oder hundert anderen Apps zusammenarbeiten soll, muss diese ihr Verhalten je nach Kombination anpassen können. Wird zum Beispiel im ERP-System zusätzlich die Lohnbuchhaltungs-App für die Schweiz integriert, muss die App zur Verwaltung der Schweizer Mitarbeiter zusätzliche Funktionalität aufweisen (oder wir brauchen eine andere App). Das heisst, dass das Verhalten der Apps abhängig ist von der jeweiligen Zusammensetzung. Bei 100 zur Auswahl stehenden Apps haben wir bereits über 2 (Hoch)100 ≈ 10 (Hoch)30 Varianten!

Auch wenn diese Zahl sicher deutlich zu hoch ist (tatsächlich wären es weniger Varianten), tut sich hier ein tiefer Abgrund auf. Wie soll sich eine App bei so vielen Kombinationen immer korrekt verhalten? Während bei Legobausteinen eine Türe eben eine Türe ist und bleibt, müssten sich Apps dynamisch an ihr Umfeld anpassen können. Ausser Sie selbst wählen ausschliesslich passende Apps, sprich das richtige Puzzleteil aus.

Wiederverwendung: Was Apps und Puzzles gemeinsam haben

Vor langer Zeit, in den Ferien bei meiner Grossmutter, habe ich jeweils diese x-Tausend-Teile Puzzles gelöst. Abgesehen davon, dass häufig ein Puzzleteil gefehlt hat, braucht man einfach viel Geduld die richtigen Teile zu finden. Dabei legen diese Puzzleteile alles Relevante offen, die Form und das Bild darauf sind klar ersichtlich.

Apps machen uns die richtige Auswahl deutlich schwieriger. Zwar mag das Userinterface noch klar ersichtlich sein, das Innenleben (Datenstrukturen und Funktionalität) bleibt uns aber gänzlich verborgen. Wie können wir entscheiden, ob die App zu unserem beliebig zusammengeklickten ERP passt? Aber damit nicht genug. Falls es viele Apps gibt, wird es auch schwierig, die richtige überhaupt zu finden – falls es diese gibt.

Es braucht also eine exakte Beschreibung der App: erstens, um die App zu finden und zweitens um festzustellen, ob die App die gewünschte Funktionalität aufweist. Dieses Problem wurde auch schon bei komponentenorientierten Ansätzen zu lösen versucht (z. B. bei Webservices). Leider nur mit sehr bescheidenem Erfolg. Wenn Sie seitenweise Spezifikationen studieren müssen, um ihr eigenes System in aller Tiefe zu kennen, nur um eine App auszuwählen, dann sind Sie der Hölle schon recht nah gekommen.

Was geht?

Ausgeträumt? Kein ERP aus dem Shop zusammenklicken! Wenn wir die obigen Ausführungen als Rahmenbedingungen verstehen, könnten Apps für ERP-Systeme eine wichtige, wenngleich andere Rolle spielen. Schlussfolgerungen:

1. Apps werden in aller Regel für ein ERP-System eines bestimmten Herstellers und nur für diesen geeignet sein. Daher lässt sich mittels Apps auch kein ERP- System «wild» zusammenklicken.
2. Apps werden bestehende ERP-Systeme nicht verdrängen oder überflüssig machen. Apps ergänzen bestehende ERP-Systeme in ganz spezifischen Prozessschritten. 
3. Hersteller können durchaus Apps mit erweiterter Funktionalität als Ergänzung zu bestehenden ERP-Systemen anbieten. Diese Apps werden aber, wie im ersten Punkt aufgeführt, für ein bestimmtes ERP-System gebaut sein. 

Wenn Sie jetzt vielleicht von der Vision eines zusammenklickbaren ERP-Systems mit Apps enttäuscht sind, ein kleiner Trost. Vielleicht liegt die Zukunft ja in so genannten hybriden ERP-Systemen, einem Mix aus On-Premise-Kernsystem und Erweiterungen durch Cloud- Applikationen. <<

Portrait SpielbergerProf. Jürgen Spielberger
MSc ETH / MA HSG
Zürcher Hochschule für Angewandte Wissenschaften
School of Engineering,
InIT Institut für angewandte Informationstechnologie
Schwerpunkt Distributed
Software Systems
www.zhaw.ch
Softwareentwicklung topsoft-Magazin 4-14

Fussnoten
1 Hype Cycle for ERP, 2013, Gartner, Inc.
2 Barry W. Boehm: Software Engineering Economics,
Englewood Cliffs, NJ, Prentice-Hall, 1981.
ISBN 0-13-822122-7