Trends und Technologien
Low-Code-Programmierung: Software selbst bauen
25. November 2020 / Sven Sieverding
Wenn Sie sich ein wenig mit Programmierung auskennen, dann werden Ihnen Begriffe wie IDE (Integrated Software Development Environment), Compiler und Quellcode sicherlich etwas sagen. Für Nicht-Fachleute ist wichtig zu wissen: Um Quellcode zu entwickeln, nutzen Programmierer*innen klassischerweise einen Texteditor oder Entwicklungsumgebungen, die ihnen die wichtigsten Werkzeuge unter einer Oberfläche zur Verfügung stellen. Der Code wird mit Hilfe eines Compilers aus der verwendeten Programmiersprache in Maschinencode übersetzt. Der Computer kann das Programm dann ausführen.
Klingt einfach? Ist es nicht.
Klassisches Programmieren ist anspruchsvoll und braucht Zeit: Ein Software-Developer muss die Anforderungen des Fachbereichs verstehen, die Programmiersprache sprechen und deren Eigenheiten kennen. Teile des Programms beschäftigen sich beispielsweise nur mit dem Speichern der Daten auf der Festplatte, mit der Oberfläche an sich oder mit dem Netzwerk. Diese Elemente müssen oft für jede Anforderung einzeln angepasst werden. Das Ergebnis muss der Entwickler testen, einchecken und auf einem Testsystem deployen, wo es von einem Tester getestet wird. Danach kann die Änderung auf das Produktivsystem eingespielt und vom Fachbereich benutzt werden.
Alternative: Low-Code und No-Code
Es gibt aber eine Alternative. Ein Fachbereich mit ein paar IT-affinen Kollegen kann für eine konkrete Anforderung selbst eine kleine Applikation entwickeln – und zwar ganz ohne zu programmieren. Zu diesem Zweck gibt es Low-Code- oder No-Code-Plattformen. Auf denen kann man ohne große Programmierkenntnisse kleine Applikationen zusammenbauen.
Sie basieren häufig auf grafischen Elementen, die mit der Maus zu neuen Funktionen angeordnet werden können. Viele Nebenfunktionen, wie etwa die Logik zum Dateispeichern, Netzwerkzugriffe oder ähnliches, um die sich normalerweise ein Entwickler kümmert, ist häufig für den Benutzer wegabstrahiert.
Nach einer kurzen Einarbeitung kann sich damit jeder relativ schnell eigene Applikationen zusammenstellen. Die sind zwar nicht ganz so schnell oder skalierbar wie eine von Software-Entwicklern erstellte Applikation. Dafür sind sie schneller erstellt und können – falls nötig – tagesaktuell vom Fachbereich selber angepasst werden.
Solche Low-Code-Systeme gibt es schon seit vielen Jahren. Beispiele dafür sind Lotus Notes und SharePoint, aber auch das in vielen Firmen eingesetzte Microsoft Access. Im Zeitalter der Cloud gibt es mehr und mehr neue Anbieter für solche Plattformen. Beispielsweise hat sich Nintex Workflow von einer reinen SharePoint-Lösung zu einer webbasierten Automatisierungsplattform weiterentwickelt. Ähnliches gilt für IFTTT ("If This Than That"), einer sehr populären Plattform, um persönliche Prozesse im Internet und für das Smart-Home zu automatisieren.
Microsofts Power-Plattform: Komplexe Apps leicht umsetzen
Was könnte ich damit tun?
Es gibt zahllose mögliche Anwendungsfälle für die Power Plattform. Wenn Sie beispielsweise eine Excel-Datei haben, in die ihre Kolleg*innen Daten eintragen sollen, dann könnten Sie mit Power Apps in weniges Klicks eine einfache Eingabemaske dafür erzeugen. Die kann sogar als App auf ihrem Handy funktionieren. Wenn Sie darüber benachrichtigt werden wollen, dass ein Kollege etwas geändert hat, dann können Sie einen Power Automate Flow erzeugen, der Ihnen die Änderungen per Mail schickt.
Über die Power App könnten Sie auch Fotos von Belegen hochladen. Der AI Builder kann Ihnen automatisch aus den Belegen Informationen extrahieren und in die Excel-Datei eintragen. Oder Sie wagen sich an noch komplexere Anforderungen…
Klingt wunderbar. Wo ist der Haken?
Low-Code Applikationen bergen aber auch Gefahren – dazu eine kleine Anekdote.
Ein Logistik-Unternehmen setzte in seiner Kollaborationssoftware eine No-Code-Workflowkomponente ein. Damit konnten sich die Mitarbeitenden für ihre Dokumente selbst automatische Prozesse erstellen. Das Unternehmen hatte einen Hauptstandort, an dem an mehreren Toren LKWs rückwärts andockten, die Paletten entladen und just-intime auf andere LKWs verladen wurden. Alles funktionierte wunderbar.
Nach einiger Zeit fuhr die IT nach Absprache mit den Fachbereichen den Server herunter, auf dem auch die Kollaborationssoftware lag, um einen Patch einzuspielen. Das sei doch kein Problem, denn dort liege ja „nur“ ein System für interne Kommunikation, das auch mal zwei Stunden nicht erreichbar sein könne.
Als die IT-Kollegen wegen eines dringenderen Problems von dem Patch abgezogen wurden, brach alles zusammen: Keines der Tore ließ sich mehr öffnen. Die LKWs konnten nicht mehr entladen werden. Das Unternehmen hatte einen großen finanziellen Schaden.
Später wurde die Ursache an einer nicht erwarteten Stelle gefunden: Ein Kollege aus der Fachabteilung hatte den Genehmigungsprozess zum Öffnen der Tore durch dieses Kollaborationstool geleitet (weil das so schön einfach ging). Davon wusste aber keiner. Dass der Kollege mittlerweile nicht mehr für das Unternehmen arbeitete, machte das Ganze noch komplizierter.
Schatten-IT: Wie vermeide ich sie?
Dieses Problem nennt sich Schatten-IT und ist eines der größten Probleme bei No-Code- oder Low-Code-Lösungen. In den Fachbereichen können Applikationen entstehen, von denen die IT zum einen nichts weiß und dementsprechend nicht in ihre Betriebsplanung aufnehmen kann. Zum anderen hat auch häufig in den Fachabteilungen niemand den Blick auf erforderliche, vermeintlich nicht-funktionale Anforderungen an Applikationen wie etwa Dokumentation, Datenschutz oder andere Policies und Nebenbedingungen. Die gewährleistet normalerweise die IT.
Schatten-IT lässt sich durch eine enge Kommunikation zwischen Fachbereich und IT-Abteilung vermeiden. Dem Fachbereich muss bewusst sein, welche Applikationen er gefahrlos selbst bauen kann, ohne Unternehmensrichtlinien oder gar Gesetzte zu verletzen. Die IT sollte von allen Applikationen wissen, die der Fachbereich entwickelt hat.
Die Lösung ist häufig eine Key-User-Regelung: In den Fachabteilungen werden bestimmte Kolleg*innen gezielt geschult und so in die Lage versetzt, Low-Code-Applikationen unternehmenskonform zu erstellen und zusammen mit der IT zu betreiben. Die IT kann dann auch den Bedarf nach neuen Applikationen von diesen Key-Usern aufnehmen und eventuell in neue, zentrale Systeme übernehmen.