Die Wahrheit über Low-Code: Zwischen Hype und Realität
Dieser Artikel beleuchtet die Vor- und Nachteile von Low-Code-Plattformen und zeigt, dass sie weder die ultimative Lösung noch eine Bedrohung für die Software-Entwicklung sind. Low-Code kann Entwicklungsprozesse beschleunigen und Kosten senken, aber es gibt auch Einschränkungen, wie die begrenzte Flexibilität und mögliche Abhängigkeit von der jeweiligen Plattform. Unternehmen sollten sorgfältig prüfen, ob und wie sie Low-Code einsetzen möchten, sei es für Citizen Development, das Fachabteilungen befähigt, oder für Professional Development, das professionelle Entwickler unterstützt. Ein hybrider Ansatz, Fusion Development, kann beide Welten verbinden. Entscheidend ist, die gewählte Strategie bewusst und konsequent zu verfolgen.
Das Internet ist voll von Informationen über Low-Code. Am Ende einer Recherche kommt man entweder zu dem Schluss, dass Low-Code-Plattformen der lang gesuchte heilige Gral sind und viele Unternehmen bald keine Entwickler mehr brauchen (insbesondere, wenn man noch eine Prise KI dazu gibt) oder man kommt zu der Erkenntnis, dass Low-Code-Plattformen den Untergang des Abendlandes bedeuten. In den kommenden Zeilen möchte ich erklären, warum beide Seiten zwar Recht, aber auch Unrecht haben.
Einführung
Wenn man sich mit dem Thema Low-Code auseinandersetzt und nach Argumenten dafür sucht, warum es sich lohnt, begegnen einem schnell viele gute Gründe. Man stößt auf Argumene wie kürzere Entwicklungszeiten, geringere Kosten, keine Abhängigkeit zur IT-Abteilung und die Möglichkeit, mit Low-Code sehr flexible und anpassungsfähige Anwendungen zu entwickeln. Diese Argumente sind durchaus richtig und wichtig. Allerdings sollte man auch die Nachteile bzw. Konsequenzen, die sich daraus ergeben, nicht außer Acht lassen. Ich möchte jedoch darauf hinweisen, dass man mit diesen Vorteilen oder Aussagen wie „Mit Low-Code ist die Entwicklung um den Faktor X schneller” sehr behutsam umgehen sollte. Denn es stellt sich die Frage: Womit wurde verglichen? Oft werden Low-Code-Plattformen genutzt, um endlich das längst überfällige Legacy-System abzulösen. Dabei wird einfach die Entwicklungszeit vom Legacy-System mit der Entwicklungszeit von der Low-Code-Anwendung verglichen. In dieser Rechnung sollte man aber nicht vergessen, dass viele Legacy-Anwendungen bereits 20 Jahre und länger in Gebrauch sind und unter ganz anderen Voraussetzungen entwickelt wurden. Tatsächlich sind Entwicklungsumgebungen heute viel schneller als noch vor wenigen Jahren. Automatisierte Deployments und auf Knopfdruck bereitgestellte Umgebungen gehören heute zum Standard, was die Arbeit deutlich erleichtert. Auch die modernen Arbeitsmethoden kommen heute oftmals mit viel weniger Overhead aus, was wirklich erfreulich ist. Deshalb lautet die Kernaussage eher so: Die Entwicklung von Software ist in den letzten Jahren bzw. Jahrzehnten insgesamt deutlich schneller geworden, ganz unabhängig davon, welche Technologie zugrunde liegt. Ich glaube, wir sollten noch einmal über die „Verkaufsargumente” bzw. die Vorteile von Low-Code-Plattformen nachdenken. Oft werden alle Low-Code-Plattformen in einen Topf geschmissen und man geht davon aus, dass der Vorteil von Plattform A auch gleichzeitig für die Plattform B, C und D gilt. Low-Code ist eben Low-Code, oder doch nicht? Fast jede verfügbare Low-Code-Plattform hat ganz besondere Stärken in einem speziellen Bereich. Es gibt Plattformen, die sich ganz wunderbar für kleinere Office-Automationen und (Teil-)Prozess-Automatisierungen eignen. Und dann gibt es noch solche, die sich eher an Entwickler richten und sich deshalb besonders gut für die Entwicklung größerer Applikationen eignen. Zusätzlich bieten außerdem mittlerweile fast alle großen Player wie Salesforce oder SAP eigene Low-Code-Plattformen an. Auf Grund dieser Spezifität der verschiedenen Plattformen haben sie aber auch jeweils unterschiedliche Vorteile. Eine Low-Code-Plattform, mit der sich ohne große Vorkenntnisse ein Formular digitalisieren oder ein Genehmigungs-Workflow entwickeln lässt, ist eine tolle Sache. Damit lässt sich viel Zeit sparen. Allerdings ist es so, dass diese Plattformen bei komplexen (fachlichen oder technischen) Themen schnell an ihre Grenzen kommen. Es zeigt sich also relativ schnell, dass es ganz wichtig ist, sich sowohl über die eigenen Anforderungen im Klaren zu sein als auch zu wissen, was die jeweilige Plattform kann und was nicht. Nur so kann man eine gute Entscheidung treffen, ob man eine Low-Code-Plattform nutzen möchte oder nicht. Bevor man als Unternehmen mit der Auswahl einer Low-Code Plattform beschäftigt sollte, sollte eine Grundsatzentscheidung zur generellen Low-Code Strategie im Unternehmen stehen. Will ich Low-Code einsetzen, um das Thema Citizen-Development voranzubringen oder habe ich ein Team von professionellen Entwicklern (egal ob intern oder extern) die auf Basis von Low-Code-Plattformen Anwendungen entwickeln sollen?
Low-Code für Citizen Development
Für Unternehmen, die sich mit Veränderungen von Prozessen schwertun und tendenziell eher langsam in der (Weiter-) Entwicklung von IT-Anwendungen sind, könnte die Befähigung von Citizen Development ein möglicher Hebel für die Digitalisierung und (Teil-) Prozessautomatisierung sein. Hierfür kommen dann solche Low-Code-Plattformen in Frage, die sich gut in die bestehende Arbeitsumgebung der Fachabteilungen integrieren lassen und ihre Stärken im Bereich der Arbeitsautomation haben. Damit sind insbesondere einfache (Genehmigungs-)Workflows sowie automatisierte Mail Benachrichtigungen gemeint. Zwar sind Low-Code-Plattformen dieser Kategorie in der Regel keine dauerhafte Lösung für eine starre Prozess- oder eine veraltete IT-Landschaft, aber sie können durchaus zur Arbeitserleichterung und Effizienzsteigerung beitragen. Allerdings sollte man bei dieser Strategie den Aspekt der Governance nicht unterschätzen. Es gilt die richtige Balance zwischen Freiraum und nötiger IT-Governance zu finden. Zu viel Freiraum kann sehr schnell in einem unbeherrschbaren Anwendungs-Zoo resultieren; Im schlimmsten Fall entstehen unternehmenskritische Anwendungen deren Komplexität die Grenzen der Plattform um ein vielfaches übersteigen und man verpasst den Excel Absprungpunkt. Zu viel Governance wiederum führt zu Frustration bei den Citizen Developern, da das suggerierte Potenzial der Plattform nicht ausgeschöpft werden kann bzw. die Governance Prozesse die Entwicklungsgeschwindigkeit drastisch reduzieren. Das folgende Diagramm soll als eine Art Kompass dienen und die Aspekte die bei der Entscheidung für den Einsatz von Low-Code für Citizen Development wichtig sind visualisieren:
Der Kompass zeigt, dass diese Strategie vor allem dann vielversprechend ist, bei einer eher starren Organsiation mit einem hohen Digitalisierungsbedarf. Allerdings bringt sie auch einen hohen IT-Governance Aufwand mit sich und ist puncto Anwendungskomplexität stark limitiert.
Low-Code für Professional Development
Muss ich als Unternehmen schnell und flexibel auf neue Kunden- oder Marktanforderungen reagieren können, beispielsweise in Form von neuen Anwendungen oder neuen IT-gestützten Prozessen, könnte eine Low-Code Plattform für komplexere Anwendungsfälle das richtige Werkzeug sein. Solche Plattformen haben in der Regel eine steile Lernkurve und richten sich an professionelle Entwickler. Mit einer sauberen, auf die Low-Code-Plattform(en) ausgerichteten, Architektur lässt sich so eine flexible und dennoch beherrschbare IT-Landschaft entwickeln; und das mit überschaubarem Aufwand. Allerdings bringt der Einsatz solch mächtiger Low-Code-Plattformen auch immer gewisse Konsequenzen mit sich. So ist richtet sich die Architektur des Gesamtsystems nach der Low-Code-Plattform; Das muss weder ein Vor- noch ein Nachteil sein, sollte jedoch vor die Entscheidung für oder gegen eine Plattform (im Übrigen gilt das nicht nur für Low-Code-Plattformen sondern generell) berücksichtigt werden. Darüber hinaus ist man in den Bereichen Versionskontrollsystem, Deployment-Pipelines, Security und allem, was die Plattform darüber hinaus noch bietet an eben diese gebunden. Ob das ein Vor- oder ein Nachteil ist, hängt immer von diversen Faktoren ab. Wer ist der Hersteller? Wie gut kenne ich mich selbst in diesen Bereichen aus und möchte gern die Kontrolle haben (oder auch bewusst nicht)? Es geht im Grunde immer nur darum, sich der Konsequenzen und der Tragweite der Entscheidung bewusst zu sein. Auch das gilt natürlich weit über den Anwendungsfall Low-Code hinaus. Die folgende Abbildung verdeutlicht welche Aspekte bei Low-Code Plattformen für Professional-Development eine Rolle spielen:
Im Gegensatz zur Citizen Development Strategie, lassen sich deutlich komplexere Anwendungen realisieren und der Aufwand für die IT-Governance reduziert sich drastisch, da die Anwendungen innerhalb der IT-Abteilung entwickelt werden und bei professionellen Entwicklern davon auszugehen ist, dass sie sich an Governance Vorgaben des Unternehmens halten. Da sich mit entsprechenden Low-Code Plattformen relativ unkompliziert kleinere Mikroanwendungen für einzelne Kunden entwickeln und in die Low-Code Landschaft integrieren lassen, ist es außerdem möglich sehr schnell und flexibel auf Kunden- oder Marktanforderungen reagieren zu können, allerdings ist hierfür auch eine gewisse Organisationsflexibilität nötig, da die Anforderungen von außerhalb nicht immer zu den eigenen Prozessen passen; Darauf sollte man als Unternehmen reagieren können. Druch den Fokus auf eher komplexere Anwendungsfälle ist diese Strategie allerdings nicht der richtige Weg, wenn es nur darum geht, bestehende Prozesse zu digitalisieren.
Fusion Development als Mittelweg
Es muss tatsächlich nicht immer entweder oder sein. Eine weitere Option, die den großen Vorteil mit sich bringt, dass Fach- und IT-Seite eng zusammenarbeiten ist Fusion Development. Bei diesem Ansatz arbeiten professionelle und Citizen Developer gemeinsam an Low-Code Anwendungen. In der Regel gibt es dabei eine zentrale Abteilung, die oft als „Center of Excellence” oder „Center of Competence” bezeichnet wird. Diese Abteilung besteht aus einer Reihe von Low-Code-Spezialistinnen und Spezialisten. Dieses Team hat in der Regel zwei Aufgaben. Erstens geht es darum, in der Organisation Know-how aufzubauen. Das kann beispielsweise in Form von Webinaren oder Trainings erfolgen. Zweitens ist es wichtig, die Citizen Developer bei der Entwicklung von Low-Code-Anwendungen zu unterstützen. Auch hier gibt es verschiedene Möglichkeiten, wie beispielsweise Pair Programming. Es gibt verschiedene Faktoren, die beeinflussen, welche Art von Low-Code-Plattform am besten geeignet ist. Welche Art von Anwendungen sollten entwickelt werden? welches Know-how habe ich in der Organisation (auch Fach- und IT-Seite)? In der Regel sollte jedoch immer, wenn das Thema Citizen Development eine Rolle spielt eine entsprechende Plattform gewählt werden. Durch Fusion Development können hier zwei Dinge erreicht werden. Zum einen wird durch die direkte Zusammenarbeit von Business und IT die Governance wird, im Vergleich zum Citizen Development, deutlich vereinfacht und dem Entstehen von einem “Anwendungs-Zoo” zumindest entgegengewirkt. Und zum anderen wird durch die gemeinsame Entwicklung die Qualität der Anwendungen erhöht. Zudem lassen sich einheitliche Best Practices und Code-Konventionen besser durchsetzen. Allerdings hat diese Strategie wortwörtlich “ihren Preis”. Denn für das Fusion Development ist ein professionelles Team, dass sich um die Plattform sowie die Citizen Developer kümmert, essenziell. Fusion Development muss sich ein Unternehmen also im wahrsten Sinne des Wortes “leisten können”. Das folgende Bild verdeutlicht noch einmal, dass Fusion Development ein Mittelweg zwischen Citizen und Professional Development sein kann, jedoch auch hier klare Grenzen in Sachen Anwendungskomplexität gesetzt sind:
Exit-Strategie
Egal welchen der skizzierten Wege man als Unternehmen geht, man sollte vor Beginn definitiv schon den Weg zurück im Kopf haben, also eine Exit-Strategie haben. Auch dieser Gedanke ist wie viele andere angesprochene Punkte völlig unabhängig vom Thema Low-Code. Im Grunde ist es nichts weiter als eine Versicherung. Im Idealfall ist die Exit-Strategie ein Staubfänger (sowie die Versicherung nur Geld kostet), aber sobald der Keller unter Wasser steht, ist es für den Abschluss einer Versicherung eben zu spät. Im Falle von genutzten Technologien kann es immer sein, dass der Anbieter plötzlich nicht mehr genutzt werden darf, die Technologie plötzlich überholt ist oder der Anbieter nicht auf bekannte Sicherheitslücken reagiert. Eine solche Exit-Strategie muss nicht unbedingt die komplette Portierung meiner Anwendung auf eine neue Plattform bedeuten, je nach Wichtigkeit (oder Unwichtigkeit) kann die Exit-Strategie auch lauten: Wir nutzen Stift, Zettel und Telefon. Das muss aber am Ende jedes Unternehmen für sich entscheiden, auch hier gilt nur: Man sollte sich zumindest mit dem Thema beschäftigt haben!
Fazit
Bei der Frage, ob Low-Code Technologien helfen können die Herausforderungen, vor denen ein Unternehmen steht zu meistern, verhält es sich wie mit allen anderen Technologien auch: Es gilt, objektiv zu bewerten, ob die Technologie die richtigen Antworten auf meine Fragen hat; Und zwar über das Überschriften-Niveau hinaus. Es hilft nicht sich von großartigen Marketintgversprechen mit Buzzwords wir “günstiger” oder “schneller” einfangen zu lassen. Wichtig ist, sich am Ende bewusst für oder gegen Technologie X zu entscheiden und sich der Konsequenzen bewusst zu sein. Wie im Intro angedeutet, möchte ich Low-Code weder verteufeln noch zum Wundermittel der Digitalisierung erheben. Ich bin der festen Überzeugung, dass Low-Code-Plattformen durchaus ihren Platz haben. Die Entscheidung zum Einsatz sollte einfach bewusst getroffen und der eingeschlagene Weg dann auch konsequent zu Ende gegangen werden. Wovon wir uns aber auf jeden Fall lossagen müssen, ist die Illusion, dass mit Low-Code-Plattformen alles besser (oder schlechter) ist als mit herkömmlicher Software-Entwicklung, es ist einfach ein anderer Weg der Entwicklung. Der Komfort von vorgefertigten Komponenten und einer Entwicklungsumgebung, die dem Entwickler einen Großteil der Aufgaben abnimmt, geht zu Lasten der Kenntnis über mein System, Low-Code Komponenten (beispielsweise Konnektoren) sind immer eine Blackbox und im Fehlerfall immer schwerer zu durchleuchten als eine komplett selbst entwickelte Software. Andererseits bieten Low-Code-Plattformen den Vorteil, dass sie Fach- und IT-Seite enger zusammenbringen und eine fachliche Diskussion auf Augenhöhe ermöglichen. Durch schnelle sichtbare Ergebnisse und das gemeinsame “Tüfteln” ist die Akzeptanz einer neuen Software allerdings auch potenziell höher als bei Anwendungen, die im berühmten “Elfenbeinturm” entwickelt wurden. Abschließen möchte mit einem Blich zurück auf den Anfang: Low-Code-Plattformen sind weder der heilige Grahl noch der Untergang des Abendlandes. Am Ende kommt es einzig und allein darauf an, sich bewusst für einen Weg zu entscheiden und diesen dann konsequent zu gehen!