Low Code: Die Zukunft der Softwareentwicklung?
Low-Code-Plattformen versprechen eine einfache Handhabung und schnelle Programmierung. Doch halten sie auch bei der Entwicklung komplexer Enterprise-Produkte, was sie versprechen? Wo sich der Einsatz lohnt und wo sie an Grenzen stoßen.
Systeme werden immer komplexer, neue Entwicklungsstandards und -muster entstehen und es mangelt an qualifizierten Programmierer:innen – all das sind große Herausforderungen für Unternehmen. Low Code scheint mit seiner leichten Handhabung und einer verkürzten Entwicklungszeit eine gute Lösung zu sein. Eine Benutzeroberfläche, die um individuelle Funktionalitäten erweitert werden kann – das klingt nach dem Königsweg. Was von Herstellern als One-Size-Fits-All-Lösung deklariert wird, endet aber nicht selten mit einer Täuschung – und einem viel größeren Aufwand.
Low-Code-Plattformen: Wo ihr Einsatz Vorteile bringt
Der Einsatz von Low-Code-Plattformen kann für unterschiedliche Zwecke sinnvoll sein, beispielsweise um Prototypen zu entwickeln. So können Ideen vorab überprüft werden, was vor allem in kleinen Unternehmen ohne komplexe Systeme oder bei kleineren Vorhaben in Konzernen von Nutzen ist.
Low-Code-Plattformen sind zudem für die Entwicklung von Produkten gemäß bestimmten Paradigmen geeignet, wenn also eine bestimmte Aufgabe auf eine bestimme Art und Weise gelöst werden soll. Das beschleunigt die Entwicklungsarbeit in den frühen Produktphasen und reduziert die Time-to-Market für kleinere Lösungen signifikant.
Auf Dauer wird das Betreiben einer Low-Code-Plattform aber teuer. Dabei sind nicht die Lizenzkosten das Problem, sondern der Zusatzaufwand, diese zu betreiben. Zudem stoßen sie bei großen, ausgereiften Systemen an ihre Grenzen.
Enterprise-Entwicklung mit Low Code?
Durch die Automatisierung von Coding und die Bereitstellung einer visuellen Benutzeroberfläche könnten Low-Code-Plattformen theoretisch den Einstieg in die Enterprise-Entwicklung erleichtern. Dies würde es auch weniger erfahrenen Benutzer:innen ermöglichen, zu programmieren. Zudem könnte die automatische Code-Generierung dazu beitragen, dass Systeme mit einem kleineren Entwicklerteam umgesetzt werden können.
Wenn mich jemand fragt, ob Low-Code-Plattformen die Entwicklung von Enterprise-Produkten ermöglichen, erinnere ich mich immer an die Geschichte von einem "durchschnittlichen Piloten":
Gilbert S. Daniels, ein junger Forscher bei der US Air Force, sollte während des Zweiten Weltkriegs ein universelles Cockpit entwerfen. Daniels, der selbst nie ein Flugzeug geflogen war, verwendete dazu Daten, die auf den Durchschnittsmaßen von über 4000 Piloten und 140 verschiedenen Körpermaßen (z. B. Brust- oder Kopfumfang) basierten. Die Annahme war, dass die meisten Piloten in ein Cockpit passen, das auf diesen Durchschnittsmaßen basiert. Auch Daniels erwartete, dass die meisten Piloten in die mittleren 30 Prozent der zehn wichtigsten Körpermaße fallen würden. Nach der Analyse stellte er Überraschendes fest: Keiner passte in das Profil des "durchschnittlichen" Piloten.
So wie Gilbert S. Daniels erkannte, dass es keinen „durchschnittlichen Piloten“ gibt, so können auch Low-Code-Plattformen die spezifischen Anforderungen von Altsystemen mit historisch gewachsenen Besonderheiten nicht immer erfüllen.
Warum Low Code bei Enterprise-Produkten an Grenzen stößt
Enterprise-Produkte bestehen aus zahlreichen Komponenten und Subsystemen, die durch komplexe Geschäftslogik und viele Abhängigkeiten gekennzeichnet sind. Aufgabe der Enterprise-Entwicklung ist es, Schnittstellen und Gemeinsamkeiten dieser Systeme zu identifizieren und diese so zu integrieren, dass sie miteinander harmonieren. Ein Konflikt kann z. B. sein, dass Abteilungen mit verschiedenen Reporting-Tools arbeiten, die von mehreren Herstellern stammen und somit unterschiedlich gestaltet sind.
Dieser speziellen Herausforderungen können Low-Code-Plattformen meiner Erfahrung nach aus zwei Gründen nicht gerecht werden:
- Verzicht auf Industriestandards
- Erschwerte Migration
Verzicht auf Industriestandards
Arbeitet ein großes Team über einen längeren Zeitraum an einem Projekt, müssen Änderungen transparent sein. Bei einer manuellen Programmierung lassen sich diese in der Regel leicht in einem externen Versionskontrollsystem (z. B. git) nachverfolgen oder mithilfe von Differenzierungs-Tools anzeigen. Kommt der Code von einer Low-Code-Plattform, wird es schwierig bis unmöglich, einzelne Änderungen nachzuverfolgen. Der Grund: Low-Code-Lösungen erzeugen häufig nicht menschenlesbare Dateien, also einen Quellcode bestehend aus Zahlen und Buchstaben. Im Gegensatz dazu ist handgeschriebener Code größtenteils les- und somit nachvollziehbar.
Zwar bieten viele Low-Code-Plattformen ihre eigenen Lösungen für die Versionskontrolle an, deren Funktionsumfang ist aber häufig eingeschränkt – z. B. im Vergleich zu git, das als Industriestandard gilt. Diese Intransparenz des Systems erschwert auch die Fehlersuche und -behebung sowie das Refactoring. Das ist aber insbesondere bei komplexen und ausgereiften Systemen häufig erforderlich.
Erschwerte Migration
Technologien neigen dazu, zu veralten. Das macht regelmäßige Aktualisierungen oder Migrationen in eine modernere Umgebung erforderlich. Ein mithilfe einer Low-Code-Plattform entwickelter Enterprise-Monolith lässt sich aber nur schwer in Module aufteilen und ist somit nur schlecht migrierbar. Auch die Low-Code-Plattform selbst benötigt regelmäßige Aktualisierungen. Diese führen gelegentlich zu Problemen mit der Abwärtskompatibilität, also der Fähigkeit neuerer Software oder Hardware, mit älteren Versionen oder Systemen zusammenzuarbeiten.
Je länger man jedoch mit der Migration wartet, desto komplexer, zeitaufwändiger und teurer wird diese. Das liegt u. a. an dem Zwang, beide Plattformen für längere Zeit gleichzeitig zu betreiben.
Fazit: Codeerstellung allein reicht nicht aus
Low-Code-Plattformen helfen zwar, schnell einfache Anwendungen oder Prototypen zu entwickeln, die Anforderungen großer, gewachsener Systeme können sie aber oft nicht erfüllen. Denn genauso wie es keine "durchschnittlichen Piloten" gibt, gibt es keine großen, ausgereiften Systeme, die ihrem ursprünglichen Paradigma folgen.
Die Herausforderung bei der Entwicklung solcher Systeme liegt in der Analyse und Planung. Das Codeschreiben kommt erst am Ende des Prozesses und ist in der Regel vergleichsweise weniger zeitaufwändig und günstiger. Low-Code-Plattformen können zwar den Einstieg erleichtern, aber nicht die tiefgreifende Analysearbeit ersetzen, die für die erfolgreiche Migration und Weiterentwicklung von Unternehmenssoftware notwendig ist.
Unternehmen sollten sich daher nicht von den Versprechungen der Hersteller täuschen lassen. Eine initial gründliche Bewertung der eigenen Anforderungen und eine sorgfältige Auswahl der Werkzeuge sind entscheidend, um den langfristigen Erfolg der Software sicherzustellen.