Wenn man heutzutage Apps entwickeln will, gibt es dafür zahlreiche Möglichkeiten. Mobile Apps für Android, iOS oder beides. Webanwendungen, Desktopanwendungen oder eine hybride Mischung. Und für jede dieser Arten gibt es zudem noch unterschiedlichste Technologien für bestimmte Use-Cases und mit verschiedenen Vor- und Nachteilen.
Low-Code-Anwendungen könnten eine Lösung für diesen Irrgarten an Möglichkeiten sein. Doch was sind Low-Code-Anwendungen überhaupt, wo liegen ihre Stärken und Schwächen und sind sie wirklich eine Alternative zur herkömmlichen Softwareentwicklung? Mit diesen Fragen wird sich dieser Artikel befassen.
Ein kurzer Blick zurück
Meine ehemalige Hochschule in Esslingen suchte eine Möglichkeit, verschiedene Dokumente und Formulare zu digitalisieren. Und das am besten mit möglichst wenig Aufwand. Mit diesem Problem habe ich mich im Zuge meiner Bachelorarbeit auseinandergesetzt. Schnell präsentierten sich Low-Code-Anwendungen als mögliche Lösung.
Low-Code-Anwendungen sind Apps, die mit wenig Code entwickelt werden. Das bedeutet nicht, dass diese Apps auf magische Art und Weise ohne Code funktionieren, sondern dass Entwickler:innen selbst den Code nicht schreiben müssen. Stattdessen erfolgt das Entwickeln in einer grafischen Umgebung.
In meiner Bachelorarbeit vergleiche ich drei Plattformen, mit denen man Low-Code-Anwendungen entwickeln kann, und habe selbst eine App entwickelt, die ein Formular meiner Hochschule digitalisiert.
Was sind Low-Code-Anwendungen?
Low-Code-Anwendungen sind letzten Endes ganz normale Apps, wie man sie aus der Web- oder Mobile-Entwicklung kennt. Anders jedoch als bei dieser traditionellen Softwareentwicklung, werden Low-Code-Anwendungen mit Hilfe von sogenannten Low-Code-Plattformen entwickelt.
Low-Code-Plattformen
Eine Low-Code-Plattform ist eine Art Entwicklungsumgebung. In ihr werden Datenquellen angebunden und Daten verwaltet, das Frontend designt und die App konfiguriert. Verschiedene Unternehmen bieten Low-Code-Plattformen für unterschiedliche Anforderungen. In meiner Bachelorarbeit habe ich Mendix, OutSystems und Budibase untersucht.
Viele Plattformen bieten eine eigene integrierte Datenbank an. Zusätzlich kann man aber auch externe Datenquellen anbinden. Je nach Plattform können Datenmodelle und Tabellen direkt in der Entwicklungsumgebung verwaltet werden. Eine Datenquelle kann entweder eine Datenbank sein oder aber auch beispielsweise ein REST-Service.
Das Frontend wird in einer grafischen Benutzeroberfläche erstellt. Hierfür bieten die Plattformen vorgefertigte UI-Komponenten an. Sprich, um einen Button zu erstellen, muss man keinen Code schreiben, sondern kann den Button einfach mittels Drag’n’Drop an die gewünschte Stelle im Screen ziehen. Die Komponenten können über ein Menü angepasst und gestylt werden.
Die Menge an Code, die Entwickler:innen noch selbst schreiben müssen, variiert je nach Plattform. Die Plattform Mendix beispielsweise schafft es, den Code komplett außen vor zu lassen. Stattdessen lassen sich alle Einstellungen über Menüs erledigen. Budibase dagegen setzt an einigen Stellen Code ein – zum Beispiel, wenn eine Komponente nur unter bestimmten Umständen angezeigt werden soll. Den Code dafür muss man aber nicht unbedingt selbst schreiben, sondern kann ihn auch über eine Menüführung generieren lassen.
Je nach Plattform können die entwickelten Apps in einer Cloud oder auch lokal veröffentlicht werden. Viele Plattformen bieten dafür eine eigene Cloud an. Die Plattform Budibase ermöglicht es aber auch, die App lokal beispielsweise in einem Docker-Container laufen zu lassen.
Das sind die wichtigsten Eigenschaften und Funktionen von Low-Code-Plattformen. Manche Plattformen bieten darüber hinaus auch noch weitere Services an. Beispielsweise ein User- und Log-In-System. Oder das Entwickeln auf verschiedenen Umgebungen, um somit eine Dev-, Staging- und Prod-Umgebung zu ermöglichen.
Was sind die Vorteile von Low-Code-Anwendungen?
Aus der Funktionsweise und dem Vorgehen bei der Entwicklung von Low-Code-Anwendungen ergeben sich einige Vorteile gegenüber der herkömmlichen Softwareentwicklung.
Zeitersparnis
Der wohl größte Vorteil ist die Zeitersparnis bei der Entwicklung. Da ein Großteil der Infrastruktur von der Plattform gestellt wird, kann man sehr schnell mit der eigentlichen Entwicklung starten. Und auch während der Entwicklung wird viel Zeit gespart. Entwickler:innen müssen beispielsweise UI-Komponenten nicht erst selbst coden, sondern können diese direkt verwenden.
Mitarbeit durch Kunden/ zivile Entwickler:innen
Da ein Großteil der Entwicklung über eine grafische Benutzer:innenoberfläche stattfindet, ist wenig technisches Verständnis notwendig. Somit können auch Nicht-Softwareentwickler:innen, zivile Entwickler:innen genannt, an einer Low-Code-Anwendung arbeiten. In einem Kundenprojekt könnte der Kunde selbst an der Anwendung mitarbeiten. Das hätte den Vorteil, dass der Kunde näher an seinem Produkt sitzt und die Ergebnisse dadurch eher seinen Vorstellungen entsprächen. Projekte, bei denen der Kunde viel mitarbeitet und stark in den Entwicklungsprozess eingebunden ist, haben eine höhere Erfolgsquote. Davon profitiert der Kunde selbst, aber auch die Entwickler:innen.
Kostenersparnis
Diese zwei Vorteile resultieren in einem dritten: Kostenreduktion. Wenn die Entwicklung einer Low-Code-Anwendung schneller als die einer traditionellen Custom-Software ist, wird Geld gespart. Wenn zudem auch noch zivile Entwickler:innen an der App mitarbeiten können, spart das nochmal Geld, da man keine teuren Softwareentwickler:innen bezahlen muss. Durch eine hohe Einbindung des Kunden, werden Fehler früher entdeckt und können behoben werden. Eventuell fällt es dem Kunden auch leichter, seine Wünsche zu formulieren, wenn er eine bessere Vorstellung davon hat, wie diese umgesetzt werden könnten. Dadurch müssen Features weniger häufig angepasst werden, was zu einer Zeit- und somit auch zu einer Kostenersparnis führt.
Low-Code-Anwendungen als Wunderwaffe für die Softwareentwicklung?
Sind Low-Code-Anwendungen die Wunderwaffe und werden sie die traditionelle Softwareentwicklung verdrängen? Die Antwort ist einfach: Nein. Low-Code-Anwendungen haben ein großes Potential und bieten einen großen Mehrwert. Aber eben nur für bestimmte Use-Cases.
Nachteile von Low-Code-Anwendungen
Der Versuch, die Entwicklung so einfach wie möglich zu gestalten, resultiert in einer Limitation der Anpassungsfähigkeit und Business-Logik. Komplexe Abläufe oder ein aufwändiges Frontend sind mit Low-Code-Anwendungen nur schwer umsetzbar.
Viele Plattformen erlauben zwar das Anbinden von externen Services, dann stellt sich aber schnell die Frage, ab welchem Punkt die Komplexität so groß wird, dass man nicht gleich eine Custom-Software entwickeln kann.
Auch sollten die Kosten gut durchdacht werden. Auf der einen Seite spart man sich durchaus Entwicklungskosten. Gleichzeitig kostet eine Low-Code-Plattform alleine bereits Geld. Je nach Plattform, Anzahl der User und Anwendungen können das auch mal mehrere tausend Euro im Monat werden.
Use-Cases für Low-Code-Anwendungen
Letztendlich haben Low-Code-Anwendungen einen klaren Use Case, in dem sie Custom-Software überlegen sind: Kleine, in ihrer Aufgabe gut abgegrenzte und vielleicht sogar zeitlich beschränkte Anwendungen.
Je größer eine Anwendung sein soll, desto eher stellt sich die Frage, ob sich eine Low-Code-Anwendung überhaupt noch lohnt, oder ob eine traditionell entwickelte Custom-Lösung nicht besser wäre. Oder anders formuliert: Je kompakter eine Anwendung ist, desto eher lohnt sich eine Umsetzung mittels Low-Code. Das Verwalten des Fuhrparks eines Unternehmens wäre ein guter Anwendungsfall. Aber auch das Abbilden von Unternehmensprozessen, wie ein digitaler Urlaubsantrag, lässt sich gut als Low-Code-Anwendung umsetzen. Gerade für Unternehmen, die Teile ihrer eigenen Infrastruktur digitalisieren, aber nicht auf Software von der Stange zurückgreifen wollen oder können, bieten sich Low-Code-Anwendungen an.
In der Zukunft werden traditionelle Softwareentwicklung und Low-Code-Anwendungen erstmal nebeneinander existieren und sich nicht gegenseitig ausschließen. Man muss jedoch auch sehen, dass sich beide Felder mit hoher Geschwindigkeit weiterentwickeln. Auch wenn Low-Code-Anwendungen heute noch klare Grenzen und Limitationen haben, könnte das in ein, zwei Jahren, zum Beispiel durch den Einsatz von KI, bereits ganz anders aussehen. Daher wird sich ein erneuter Blick auf dieses Thema in der Zukunft lohnen.