HEC Blog: Technik & Methoden
Verfasst von Sven Sieverding am 25. November 2020

Low-Code-Programmierung: Software selbst bauen

Wenn Sie sich ein wenig mit Program­mie­rung ausken­nen, dann werden Ihnen Begriffe wie IDE (Inte­gra­ted Soft­ware Deve­lop­ment Envi­ron­ment), Compi­ler und Quell­code sicher­lich etwas sagen. Für Nicht-Fach­leute ist wich­tig zu wissen: Um Quell­code zu entwi­ckeln, nutzen Program­mie­rer*in­nen klas­si­scher­weise einen Text­e­di­tor oder Entwick­lungs­um­ge­bun­gen, die ihnen die wich­tigs­ten Werk­zeuge unter einer Ober­flä­che zur Verfü­gung stel­len. Der Code wird mit Hilfe eines Compi­lers aus der verwen­de­ten Program­mier­spra­che in Maschi­nen­code über­setzt. Der Compu­ter kann das Programm dann ausfüh­ren.

Klingt einfach? Ist es nicht.

Klas­si­sches Program­mie­ren ist anspruchs­voll und braucht Zeit: Ein Soft­ware-Devel­oper muss die Anfor­de­run­gen des Fach­be­reichs verste­hen, die Program­mier­spra­che spre­chen und deren Eigen­hei­ten kennen. Teile des Programms beschäf­ti­gen sich beispiels­weise nur mit dem Spei­chern der Daten auf der Fest­platte, mit der Ober­flä­che an sich oder mit dem Netz­werk. Diese Elemente müssen oft für jede Anfor­de­rung einzeln ange­passt werden. Das Ergeb­nis muss der Entwick­ler testen, einche­cken und auf einem Test­sys­tem deployen, wo es von einem Tester getes­tet wird. Danach kann die Ände­rung auf das Produk­tivsys­tem einge­spielt und vom Fach­be­reich benutzt werden.

Alternative: Low-Code und No-Code

Es gibt aber eine Alter­na­tive. Ein Fach­be­reich mit ein paar IT-affi­nen Kolle­gen kann für eine konkrete Anfor­de­rung selbst eine kleine Appli­ka­tion entwi­ckeln – und zwar ganz ohne zu program­mie­ren. Zu diesem Zweck gibt es Low-Code- oder No-Code-Platt­for­men. Auf denen kann man ohne große Program­mier­kennt­nisse kleine Appli­ka­ti­o­nen zusam­men­bauen.

Sie basie­ren häufig auf grafi­schen Elemen­ten, die mit der Maus zu neuen Funk­ti­o­nen ange­ord­net werden können. Viele Neben­funk­ti­o­nen, wie etwa die Logik zum Datei­spei­chern, Netz­werk­zu­griffe oder ähnli­ches, um die sich norma­le­r­weise ein Entwick­ler kümmert, ist häufig für den Benut­zer wegab­s­tra­hiert.

Nach einer kurzen Einar­bei­tung kann sich damit jeder rela­tiv schnell eigene Appli­ka­ti­o­nen zusam­men­stel­len. Die sind zwar nicht ganz so schnell oder skalier­bar wie eine von Soft­ware-Entwick­lern erstellte Appli­ka­tion. Dafür sind sie schnel­ler erstellt und können – falls nötig – tages­ak­tu­ell vom Fach­be­reich selber ange­passt werden.

Solche Low-Code-Systeme gibt es schon seit vielen Jahren. Beispiele dafür sind Lotus Notes und Share­Point, aber auch das in vielen Firmen einge­setzte Micro­soft Access. Im Zeit­al­ter der Cloud gibt es mehr und mehr neue Anbie­ter für solche Platt­for­men. Beispiels­weise hat sich Nintex Work­flow von einer reinen Share­Point-Lösung zu einer webba­sier­ten Auto­ma­ti­sie­rungs­platt­form weiter­ent­wi­ckelt. Ähnli­ches gilt für IFTTT ("If This Than That"), einer sehr popu­lä­ren Platt­form, um persön­li­che Prozesse im Inter­net und für das Smart-Home zu auto­ma­ti­sie­ren.

Microsofts Power-Plattform: Komplexe Apps leicht umsetzen

Micro­soft hat im Rahmen seiner Power-Platt­form eine mäch­tige Basis geschaf­fen, um auch sehr komplexe Appli­ka­ti­o­nen mit der Low-Code-Methode umzu­set­zen. Zum einen gibt es Power Apps. Mit dieser Applikation können grafische Oberflächen und ganze Applikationen zusammengeklickt werden, die sich dann entweder als Webseite, als Applikation auf dem Computer oder auch als Handy-App ausführen lassen.

Der Citi­zen-Devel­oper – so nennen Fach­leute den Low-Code-Entwick­ler – muss zur Erstel­lung im Wesent­li­chen Excel-Formeln kennen und ein grobes Verständ­nis für Daten­quel­len und den umzu­set­zen­den Prozess haben.

Mit einer weite­ren Anwen­dung, Power Automate, können Hintergrundprozesse erstellt werden. Mittels eines grafischen Editors kann man den Prozess als Ablaufdiagramm generieren, das Visio ähnelt. Die Anzahl der verwendbaren Aktionen ist hier gewaltig und geht weit über die Microsoft Produkte heraus. Sie können beispielsweise viele weitere webbasierte Dienste wie Salesforce oder Googlemail in Ihre Prozesse einbeziehen, oder auch Ihre hauseigenen Systeme.

Außer­dem enthal­ten ist Power BI, AI Buil­der und Power Virtual Agents, mit denen sich Dash­boards, Künst­li­che Intel­li­gen­zen und Chat­bots erstel­len und in die Appli­ka­ti­o­nen inte­grie­ren lassen.

Was könnte ich damit tun?

Es gibt zahl­lose mögli­che Anwen­dungs­fälle für die Power Platt­form. Wenn Sie beispiels­weise eine Excel-Datei haben, in die ihre Kolleg*in­nen Daten eintra­gen sollen, dann könn­ten Sie mit Power Apps in weni­ges Klicks eine einfa­che Einga­be­maske dafür erzeu­gen. Die kann sogar als App auf ihrem Handy funk­tio­nie­ren. Wenn Sie darüber benach­rich­tigt werden wollen, dass ein Kollege etwas geän­dert hat, dann können Sie einen Power Auto­mate Flow erzeu­gen, der Ihnen die Ände­run­gen per Mail schickt.

Über die Power App könn­ten Sie auch Fotos von Bele­gen hoch­la­den. Der AI Buil­der kann Ihnen auto­ma­tisch aus den Bele­gen Infor­ma­ti­o­nen extra­hie­ren und in die Excel-Datei eintra­gen. Oder Sie wagen sich an noch komple­xere Anfor­de­run­gen…

Klingt wunderbar. Wo ist der Haken?

Low-Code Appli­ka­ti­o­nen bergen aber auch Gefah­ren – dazu eine kleine Anek­dote.

Ein Logis­tik-Unter­neh­men setzte in seiner Kolla­bo­ra­ti­ons­soft­ware eine No-Code-Work­flow­kom­po­nente ein. Damit konn­ten sich die Mita­r­bei­ten­den für ihre Doku­mente selbst auto­ma­ti­sche Prozesse erstel­len. Das Unter­neh­men hatte einen Haupt­stand­ort, an dem an mehre­ren Toren LKWs rück­wärts andock­ten, die Palet­ten entla­den und just-intime auf andere LKWs verla­den wurden. Alles funk­tio­nierte wunder­bar.

Nach eini­ger Zeit fuhr die IT nach Abspra­che mit den Fach­be­rei­chen den Server herun­ter, auf dem auch die Kolla­bo­ra­ti­ons­soft­ware lag, um einen Patch einzu­spie­len. Das sei doch kein Problem, denn dort liege ja „nur“ ein System für interne Kommu­ni­ka­tion, das auch mal zwei Stun­den nicht erreich­bar sein könne.

Als die IT-Kolle­gen wegen eines drin­gen­de­ren Problems von dem Patch abge­zo­gen wurden, brach alles zusam­men: Keines der Tore ließ sich mehr öffnen. Die LKWs konn­ten nicht mehr entla­den werden. Das Unter­neh­men hatte einen großen finan­zi­el­len Scha­den.

Später wurde die Ursa­che an einer nicht erwar­te­ten Stelle gefun­den: Ein Kollege aus der Fach­ab­tei­lung hatte den Geneh­mi­gungs­pro­zess zum Öffnen der Tore durch dieses Kolla­bo­ra­ti­ons­tool gelei­tet (weil das so schön einfach ging). Davon wusste aber keiner. Dass der Kollege mitt­ler­weile nicht mehr für das Unter­neh­men arbei­tete, machte das Ganze noch kompli­zier­ter.

Schatten-IT: Wie vermeide ich sie?

Dieses Problem nennt sich Schat­ten-IT und ist eines der größ­ten Probleme bei No-Code- oder Low-Code-Lösun­gen. In den Fach­be­rei­chen können Appli­ka­ti­o­nen entste­hen, von denen die IT zum einen nichts weiß und dement­spre­chend nicht in ihre Betriebs­pla­nung aufneh­men kann. Zum ande­ren hat auch häufig in den Fach­ab­tei­lun­gen niemand den Blick auf erfor­der­li­che, vermeint­lich nicht-funk­ti­o­nale Anfor­de­run­gen an Appli­ka­ti­o­nen wie etwa Doku­men­ta­tion, Daten­schutz oder andere Poli­cies und Neben­be­din­gun­gen. Die gewähr­leis­tet norma­le­r­weise die IT.

Schat­ten-IT lässt sich durch eine enge Kommu­ni­ka­tion zwischen Fach­be­reich und IT-Abtei­lung vermei­den. Dem Fach­be­reich muss bewusst sein, welche Appli­ka­ti­o­nen er gefahr­los selbst bauen kann, ohne Unter­neh­mens­richt­li­nien oder gar Gesetzte zu verlet­zen. Die IT sollte von allen Appli­ka­ti­o­nen wissen, die der Fach­be­reich entwi­ckelt hat.

Die Lösung ist häufig eine Key-User-Rege­lung: In den Fach­ab­tei­lun­gen werden bestimmte Kolleg*in­nen gezielt geschult und so in die Lage versetzt, Low-Code-Appli­ka­ti­o­nen unter­neh­mens­kon­form zu erstel­len und zusam­men mit der IT zu betrei­ben. Die IT kann dann auch den Bedarf nach neuen Appli­ka­ti­o­nen von diesen Key-Usern aufneh­men und even­tu­ell in neue, zentrale Systeme über­neh­men.