Drag-and-Drop statt Programmierung

Low-Code- und No-Code-Plattformen machen das manuelle Programmieren von Code für viele Anwendungsbereiche überflüssig und erschliessen die Software-Entwicklung auch Nicht-IT-Profis. Bekommen damit Digitalisierung und Automatisierung zusätzlichen Schub?

Artikel erschienen in Swiss IT Magazine 2023/05

     

2019 prognostizierten Marktforscher, dass in den nächsten fünf Jahren 500 Millionen neue digitale Anwendungen und Dienste entwickelt würden. Das bedeutet: Bis Ende dieses Jahres nimmt die Menge an Anwendungen um gleich viel zu wie in den 40 Jahren davor. Es braucht keine Hellseherfähigkeiten, um zu erkennen, dass die vorhandenen Kapazitäten professioneller Entwickler niemals ausreichen, um diese Herausforderung auch nur annähernd zu bewältigen. Der Mangel an entsprechenden Fachkräften ist seit Jahren notorisch.

Mit Citizen Developern gegen Fachkräftemangel

Angesichts der mit Hochdruck verfolgten digitalen Transformation und Prozessautomatisierung fragt man sich in manchen Chefetagen, wie denn diese Digitalisierungsziele zu erreichen sind, wenn das Fachpersonal dazu fehlt. Nun, es gibt Hoffnung: Low-Code und No-Code (LCNC) heisst sie und bezeichnet Entwicklungsansätze in der IT, die mit wenig oder komplett ohne Programmier-Know-how auskommen. LCNC-Alternativen erweitern den Entwicklerpool auf Anwender in den Fachabteilungen (HR, Finanzwesen, Marketing, etc.), auf die Nicht-IT-Profis. Durch die Unterstützung dieser Citizen Developer stellen Unternehmen sicher, dass die qualifiziertesten Team-Mitglieder in den Anwendungsentwicklungsprozess eingebunden werden können, predigen die LCNC-Apostel. Die steigende Zahl von Citizen Developern trage dazu bei, die Nachfrage nach neuen Anwendungen zu befriedigen, den Mangel an qualifizierten Entwicklern zu beheben, die Arbeitsbelastung der IT-Teams zu verringern und schneller auf Kunden- und Marktanforderungen zu reagieren.

Low-Code vs. No-Code

Angesichts solcher Aussichten ist es angebracht, die LCNC-Bewegung und ihr Potenzial für die Prozessautomatisierung genauer unter die Lupe zu nehmen. Nicht ganz einfach, denn bereits bei den Begrifflichkeiten ist man sich alles andere als einig. Gartner etwa bezeichnet No-Code-Entwicklung als reinen Marketing-Begriff, Code brauche es immer. Andere sehen in No-Code eine Unterkategorie von Low-Code oder verstehen das eine als Weiterentwicklung des anderen. Tatsächlich sind die Grenzen zwischen den beiden Ansätzen fliessend. Neben vielen Ähnlichkeiten gibt es aber auch Unterschiede insbesondere in Bezug auf Zielbenutzer, Anwendungsbereiche und Systemeigenschaften.

Low-Code ist eine Methode zur schnellen Anwendungsentwicklung (Rapid Application Development, RAD). Mit Hilfe von intuitiven grafischen Tools und eingebetteten Funktionen (wie zum Beispiel Drag-and-Drop und Pull-Down-Menüs) lässt sich damit Code automatisch generieren. Dank dieser Automatisierung können sich Low-Code-Benutzer auf das Wesentliche konzentrieren, bei Bedarf aber immer noch Code zum automatisch generierten Code hinzufügen. Manuell erstellter Code bleibt weiterhin eine Option, die genutzt werden kann, aber nicht muss. Wo sie nicht genutzt wird, schmilzt der Unterschied zu No-Code-Plattformen.


No-Code ist ebenfalls ein RAD-Ansatz, geht aber einen Schritt weiter. Während bei Low-Code die Entwickler in Form von Skripten oder manueller Programmierung selbst noch Hand anlegen können, ist der No-Code-Ansatz vollständig von visuellen Tools abhängig. Das Präfix «No» weist bereits darauf hin, dass diese Methode gänzlich auf manuelle Programmierarbeit verzichtet. No-Code-Plattformen machen eine weitere Programmierung nicht nur nicht erforderlich, sondern ermöglichen sie oft gar nicht mehr.
No-Code-Automatisierung eines Rechnungsgenehmigungsprozesses
Ein gutes Anwendungsbeispiel für den Einsatz von No-Code-Tools ist die Automatisierung eines Rechnungsgenehmigungsprozesses. In der Praxis läuft das in etwa so ab:

1. Zu Beginn gilt es im entsprechenden Tool den Prozess, den es zu automatisieren gilt, zu benennen und kurz zu beschreiben. Dann geht es weiter zur Funktion für die eigentliche Prozess­automatisierung.

2. Jeder Prozess beginnt mit einem Auslöser, in diesem Fall mit einem Anforderungsformular zur Genehmigung einer Rechnung. Mit visuellen Funktionen lassen sich sodann im Drag-and-Drop-Stil Abläufe erstellen und das Formularlayout sowie die Eingaben den jeweiligen Vorstellungen anpassen – zum Beispiel den Namen des Mitarbeiters, den Pfad zur Rechnung und das Datum.

3. Nachdem der Prozess durch das Anforderungsformular angestossen wurde, müssen im nächsten Schritt automatisch Informationen aus der Rechnung extrahiert werden. KI-gestützte Automatisierung ermöglicht es, die benötigten Informationen automatisch aus der Rechnungsdatei zu extrahieren. Diese Automatisierungsfunktion beschleunigt nicht nur den Prozess, sondern verringert auch die Anfälligkeit für Fehler bei der manuellen Dateneingabe. Leistungsfähige Plattformen warten mit einem Service auf, der vortrainierte Modelle für verschiedene Beleg­arten (Rechnungen, Bestellungen, Zahlungsavis) verwendet, um Daten zu extrahieren.

4. In einem nächsten Schritt kann man definieren, welche Stakeholder die Rechnungen abhängig vom Rechnungsbetrag genehmigen können. So kann beispielsweise festgelegt werden, dass Rechnungen unter einem bestimmten Wert automatisch genehmigt werden, bei höheren Beträgen jedoch die Genehmigung eines Vorgesetzten erfordern. Mit dieser Funktion können Benutzer Prozesse an die aktuell geltenden Unternehmensrichtlinien anpassen, ohne IT-Experten hinziehen oder die Anwendung neu programmieren zu müssen.

5. Damit wäre die bisher papierbasierte, fehler­anfällige manuelle Rechnungsgenehmigung ­automatisiert und optimiert.

Die wichtigsten Vorteile

Low-Code und No-Code sind sich insofern engverwandt, als beide darauf abzielen, die komplexen Aspekte der Codierung mit Hilfe visueller Schnittstellen und vorkonfigurierter Vorlagen zu verbergen. Beide Entwicklungsplattformen sind als PaaS-Lösungen verfügbar und verwenden ein workflowbasiertes Design, um die logische Abfolge von Daten zu definieren. Mit diesen Gemeinsamkeiten geht eine Reihe von Vorteilen einher:

- Höhere Produktivität durch schnellere Entwicklung, kürzere Projektlaufzeiten und schnellere Produkteinführungen.


- Verstärkte Automatisierung bei der Gestaltung von Workflows, die in mehrere Informationssysteme implementiert werden können.

- Höhere Kosteneffizienz aufgrund kleinerer Teams, weniger Ressourcen, geringerer Infrastruktur- und niedrigerer Wartungskosten.

- Schnelleres Kundenfeedback durch einfach zu erstellende Prototypen und, damit verbunden, Entscheidung für oder gegen ein Projekt zu einem früheren Zeitpunkt.

- Bessere Zusammenarbeit zwischen Business und IT durch Einbindung von Geschäftsanwendern in die Entwicklung inklusive besseres Verständnis zwischen beiden Welten.

Andere Ziel-User, andere Einsatzbereiche

Es gibt viele Überschneidungen zwischen den beiden Ansätzen für die teil- oder vollständig automatisierte Anwendungsentwicklung, aber auch gewichtige Unterschiede. Die offensichtlichste Differenz ist die bei den Zielanwendern. Low-Code richtet sich in erster Linie an professionelle Entwickler, um repetitive Programmierarbeiten zu vermeiden und Raum für komplexere Entwicklungen zu schaffen. No-Code hingegen richtet sich an Geschäftsanwender, die über umfangreiches Fachwissen in ihrem Bereich verfügen, aber nicht in der Lage sind, selbst Code zu schreiben. Es eignet sich auch gut für ­gemischte Teams aus Software-Entwicklern und Geschäftsanwendern. Low-Code braucht allerdings mehr Zeit für Schulung, Einführung und Bereitstellung als No-Code, ist aber immer noch deutlich schneller als herkömmliche Ent­wicklungsansätze.

Zum Einsatz kommen No-Code-Tools gerne bei Front-­End-Entwicklungen wie etwa UI-Anwendungen, die Daten abrufen und Berichte erstellen, analysieren, importieren und exportieren. Ausserdem ist No-Code ideal, um monotone Aufgaben wie Berichte auf Excel-Basis abzulösen. Solche Projekte geniessen in den IT-Abteilungen kaum Priorität, können für Business-­Teams aber matchentscheidend sein. Auf den Punkt gebracht ist No-Code in erster Linie für einfache Anwendungsfälle vorgesehen, die nur in einer einzigen Abteilung genutzt werden sollen.


Low-Code-Plattformen mit ihren umfangreichen Komponentenbibliotheken dagegen können für Anwendungen mit komplexerer Geschäftslogik eingesetzt und auf Unternehmensebene skaliert werden. Auch für die Integration mit anderen Anwendungen und externen APIs, für die Verbindung mit mehreren Datenquellen und die Erstellung von Systemen, die bestimmten Sicherheitsanforderungen genügen müssen und daher eine Prüfung durch die IT-Abteilung erfordern, ist Low-Code eine bessere Alternative als No-Code.

Die programmierarme Praxis ist bereits da

In der Praxis steht den LCNC-Plattformen ein breites Einsatzspektrum offen. In der Fertigung kann LCNC zur Modellierung von Prozessen und zur Weiterentwicklung intelligenter Fabriken und digitaler Fertigungsumgebungen eingesetzt werden. Personalabteilungen können mit LCNC Einstellungsprozesse automatisieren und komplette Schulungsprogramme erstellen, ohne auf die Ressourcen der IT-Teams zurückzugreifen. Und im Finanzbereich lassen sich Geschäftsanwendungen entwickeln, die eine Vielzahl von Workflows und Informationsmanagementprozessen unterstützen.

Dass solche Szenarien keine Fantasiegebilde sind, sondern reale Praxis, zeigt eine Anwendung, welche die Behörden des Kantons Zürich in der ersten Welle der Corona-Pandemie zur Bewältigung der explosionsartig angestiegenen Kurzarbeits­gesuche zusammen mit Partnern entwickelte. Während beim Amt für Wirtschaft und Arbeit in wirtschaftlich ruhigeren Zeiten pro Monat zehn Voranmeldungen von Kurzarbeit eingehen, schnellte diese Zahl in den ersten drei Monaten auf über 32’000 hoch. Die Verarbeitung der Anträge im bisherigen Stil hätte Monate gedauert, was möglicherweise für viele Unternehmen das Aus bedeutet hätte. Um dies zu vermeiden, setzten die Verantwortlichen auf robotergestützte Prozessautomatisierung (RPA, mehr dazu ab Seite 27 und 30) sowie auf schnelle Entwicklung auf Low-Code-Basis.


In einer amtsübergreifenden Anstrengung gelang es, innerhalb von 14 Tagen den manuellen Prozess zu digitalisieren und den drohenden Backlog abzuwenden. Die durchgängige Automatisierung des Antragsprozesses inklusive Qualitätsprüfung reduziert den Personalaufwand für die Verarbeitung von Kurzarbeitsgesuchen im Kanton Zürich um 85 Prozent. Mit 30 Sekunden pro Antrag konnte die Verarbeitungsgeschwindigkeit um den Faktor 50 gesteigert werden. Und das bei tiefen Kosten: Die Investitionen in die digitale Lösung amortisierte sich in weniger als einem Monat. Gemäss Modellrechnungen belaufen sich die Kosten für die digitale Verarbeitung eines Kurzarbeitsantrags lediglich auf 76 Rappen.

Nebenwirkungen beachten

Die schöne neue Welt der LCNC-Plattformen wird im Rahmen der Digitalisierungs- und Prozessautomatisierungsbestrebungen zweifellos auf breiter Front Einzug halten. Sie bieten Hand, um drängende Probleme zumindest teilweise in den Griff zu bekommen. Ganz ohne Nebenwirkungen bleibt dieses Breitband­antibiotikum allerdings nicht.

Das wohl grösste Risiko ist das der Schatten-IT, die gerade durch die geringen Kosten und die einfache Handhabe begründet ist: Fachbereiche entwickeln munter vor sich hin, passen mal da, mal dort etwas an, experimentieren eben im Schatten der IT herum. Im unerfreulichen Fall hat am Ende niemand mehr den Überblick, welche Anwendungen aktiv sind, was sie können und – ganz heikel – welche Daten sie erstellen und verwenden sowie wer diese Daten sehen kann. Dazu kommt, dass nicht bekannt ist, wie der zugrundliegende Code funktioniert, was weitere Risiken mit sich bringt. Um Compliance- und ­Sicherheitsprobleme zu vermeiden, die daraus entstehen können, erfordert der Einsatz von LCNC-Plattformen ein striktes Management mit klaren Regeln. Das wiederum ist mit Aufwand verbunden.


Eine weitere Schwäche: Der von einem Tool produzierte Code ist nicht zwingend optimiert. Die manuelle Codierung kann auf die kürzeste und effizienteste Weise Funktionen erstellen und damit die Gesamtgrösse einer Anwendung reduzieren sowie die Leistung steigern. Low-Code-Plattformen müssen meist übergeordnete Aufgaben in Form von Bibliotheken mit vordefiniertem Code ausdrücken. Diese Bibliotheken müssen so viele Aufgaben und Bedingungen wie möglich bewältigen. Nur so können sie eine breite Palette von Anwendungen mit geringem Code-Bedarf erstellen. Dies führt dann gerne zu einer grösseren Code-Basis, als sie die meisten Anwendungen tatsächlich erfordern.

Risiken und Schwächen schmälern den Reiz von Low-Code- und No-Code-Plattformen allerdings kaum. Ihre Anziehungskraft besteht unbestritten darin, dass Einzelpersonen und Teams, denen es an Programmierkenntnissen mangelt, mit diesen Tools für ihre Tätigkeit nützliche Software erstellen können, ohne Tausende oder Zehntausende Code-Zeilen schreiben zu müssen oder darauf zu warten, bis die überlasteten Programmiercracks Zeit für ihr Anliegen haben.

Der Autor

Martin Schwittay ist seit 2005 bei SAP tätig und verantwortet bei SAP Schweiz seit Oktober 2022 den Geschäftsbereich Business Technology Platform, zu dem auch die Produktfamilie SAP Build gehört. Er war vorher bei unterschiedlichen Management- und IT-Consulting-Firmen in Deutschland beschäftigt.


Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Wieviele Zwerge traf Schneewittchen im Wald?
GOLD SPONSOREN
SPONSOREN & PARTNER