Was sind Low-Code-Plattformen?
Derzeit kommt keine IT-Publikation und keine IT-Veranstaltung mehr an dem Trendthema Low-Code und Low-Code-Plattform vorbei. Doch was ist damit genau gemeint, und worauf bezieht sich das ,Low‘ in Low-Code? In einem Satz lässt es sich wie folgt zusammenfassen: Low-Code-Development-Plattformen ermöglichen die interaktive Entwicklung datenbankbasierter Fachanwendungen nahezu ohne Programmierung, einfach durch interaktives Zusammenklicken vorgefertigter Softwarebausteine. Die Anfänge der Low-Code-Bewegung reichen zurück bis Anfang der 90er Jahre. Damals gab es zwar den Begriff Low-Code noch nicht, aber das grundlegende Prinzip war das gleiche wie heute: Konfigurieren statt programmieren. Einer der Wegbereiter dieser Denk- und Arbeitsweise ist die Firma Scopeland Technology aus Berlin.
Dank dieses Zusammenklick-Prinzip können Anwender und Power-User der Fachabteilungen viel besser in die Entwicklung ihrer Softwarelösungen einbezogen werden. So werden eine wirklich agile Softwareentwicklung und ein gemeinsames Erarbeiten optimaler Lösungen direkt am Datenbank-Projekt selbst möglich – durch Konzeption und Umsetzung in einem Zuge, mit modernen Methoden des Design Thinking über alle Projektphasen hinweg.
Bei Low-Code geht es also nicht nur darum, Kosten zu sparen und schneller zu Ergebnissen zu kommen: Es ist ein völlig anderer Ansatz, Softwarelösungen konzeptionell zu erarbeiten. Zudem geht es auch darum, nicht am realen Bedarf vorbei zu entwickeln, und den gesamten Prozess der Konzeption, Entwicklung und Pflege in einem Maße zu flexibilisieren. Dass dies möglich ist, war bisher nur schwer vorstellbar.
Das ist der Grund, warum der US-Analyst Forrester Research Low-Code-Plattformen eine Schlüsselrolle bei der Digitalisierung aller Geschäftsprozesse zuschreibt, und für das Jahr 2020 einen Gesamtmarkt für Low-Code-Plattformen von 15,5 Milliarden US-Dollar prognostiziert. Daher wird künftig kein Unternehmen mehr ohne Low-Code-Plattformen auskommen.
Geht Softwareentwicklung ohne Programmierung überhaupt?
Schon seit langem arbeiten viele Innovatoren an immer neuen Ideen, um den äußerst langwierigen Prozess der Softwareentwicklung drastisch zu verkürzen. Naturgemäß kommen hierbei völlig unterschiedliche Lösungsansätze zum Tragen. Von den sogenannten 4GL-Sprachen der 90er Jahre über Computer-Aided Software Engineering (CASE) bis hin zur sogenannten modellgetriebenen Softwareentwicklung. Alles wurde schon ausprobiert, um Programmcode automatisch generieren zu lassen. Der Durchbruch aber kommt aus einer völlig andere Ecke: mit Plattformen, die die gesamte voraussichtlich benötigte Funktionalität bereits vorgefertigt parat halten, und die intern intelligent genug gebaut sind, dass man die Objekte und Features quasi nur noch zusammenstöpseln muss, ohne sich um die technischen Belange im Detail kümmern zu müssen.
Auf diese Weise sind komplette Neuentwicklungen schon nach wenigen Wochen produktiv verfügbar, anstatt viele Monate oder gar Jahre auf sie warten zu müssen. Programmerweiterungen sind jederzeit möglich und bereits nach wenigen Tagen anstatt Monaten einsatzbereit. Das ist ein Traum für die Verantwortlichen der Fachabteilungen – aber zugleich eine große Herausforderung für die IT-Verantwortlichen, welche die Sicherheit und Stabilität der gesamten IT zu verantworten haben.
Die aufkommenden Bedenken sind verständlich, aber die Vorteile von Low-Code-Ansätzen im Vergleich zur klassischen Softwareentwicklung sind so immens, dass man nicht umhinkommt, es trotzdem zu tun. Etablierte Low-Code-Plattformen, wie SCOPELAND, genügen heute bereits den höchsten Sicherheitsanforderungen, vielleicht sogar besser als manche handgeschriebene Software. Denn der Standardsoftwareansatz ermöglicht unter anderem auch Datensicherheit, Barrierefreiheit und vieles mehr ‘out of the box’.
Was bedeutet das ‘Low’ in Low-Code?
Der von Forrester Research im Jahr 2014 geprägte Begriff Low-Code ist in mehrfacher Hinsicht gut gewählt. Nicht nur, weil die klangliche Assoziation andeutet, dass manchmal der Verzicht auf etwas Althergebrachtes sinnvoll sein könnte. Besonders treffend ist das ‘Low’: Zum einen ermöglichen Low-Code-Plattformen, mit wenig handgeschriebenem Programmcode auszukommen, und zum anderen kann man sich, auf niedrigschwelligen Programmcode beschränken, wenn doch mal etwas dazu programmiert werden soll.
Dies bedeutet, dass man kein Informatikstudium benötigt oder IT-Experte sein muss, um so einigermaßen mit Low-Code-Plattformen arbeiten zu können – ein IT-Basiswissen reicht vollkommen aus. Auch wenn der Informatiker letztlich mehr herausholen kann, so kann ein Nicht-Informatiker zumindest den Code lesen, diesen verstehen und selbst verändern. Denn: Die Objektstrukturen sind bereits automatisch von der Plattform erzeugt, Programmschleifen ‘über alle selektierten Datensätze’ sind schon vorhanden, und die gängigen Rechen- und Konvertierfunktionen liegen direkt zur Verwendung bereit. Daher kann sich der minimale Programmcode, denn man in den Ausnahmefällen ergänzen muss, auf vergleichsweise einfache Funktions- und Variablendefinitionen mit einfachen Aktionsfolgen und Verzweigungen beschränken.
Funktionsweise von Low-Code-Plattformen
Schaut man sich Low-Code-Plattformen im Detail an, so stellt man fest, dass die verschiedenen Produkte recht unterschiedlichen Konzepten folgen. Allen gemeinsam ist, dass man eine Cockpit-ähnliche Entwicklungsplattform hat, mit der Browseranwendungen oder Apps interaktiv zusammengeklickt werden, und dass das Ergebnis des Zusammenklickens in einer strukturierten und deklarativen Form (z.B. als Metadaten in einer Metadatenbank) vorliegt, so dass die entsprechenden Programmteile jederzeit weiterentwickelt werden können.
Einige Low-Code-Plattformen sind streng an den Einsatz in der Cloud, und auch an eine Entwicklung in der Cloud gebunden, während andere Tools bzw. ihre Runtime-Systeme auch on-premise installiert werden können. Dementsprechend arbeiten einige interpretativ, benötigen also zur Laufzeit ein auf dem Server oder in der Cloud installiertes Laufzeitsystem. Andere Tools hingegen sehen sich als Weiterentwicklung der modellgetriebenen Softwareentwicklung und generieren ausführbaren Code, der dann im Idealfall final ist.
Teilweise wird auf eine Kombination beider Methoden gesetzt, um zum einen hochinteraktiv am echten lebenden Objekt entwickeln und dennoch abschließend reinen Programmcode ausliefern zu können. Vermutlich ist das der erfolgversprechendste Weg, zumindest für den Einsatz der fertigen Anwendungen im eigenen Rechenzentrum.
Nahezu allen Methoden gemeinsam ist, dass man im interaktiven Entwicklermodus nicht nur die Programme selbst, sondern auch das zugrundeliegende Datenmodell quasi in einem Zuge mitentwickelt. Ebenso interaktiv werden Datenbankabfragen und -sichten ganz einfach zusammengeklickt und dann jeweils geeignete Visualisierungen ausgewählt, z.B. Formular- oder Tabellenansicht bzw. Map-, Tree- oder Chart-Controls. Die Anbindung der Controls an die Datensichten erfolgt dabei weitgehend eigenintelligent.
Programmoberflächen werden aufgebaut, indem man sich die jeweiligen Datensichten in der gewählten Visualisierungsform einfach auf den Bildschirm zieht und miteinander verlinkt. Zum Feintuning des Layouts, und auch für solche Herausforderungen wie das Responsive Design, sowie für das Einbringen geeigneter zusätzlicher Bedienelemente, stehen dann Form Designer und andere herstellerspezifische Designwerkzeuge bereit.
Im Zuge diese Konfigurationen entsteht der Grundstock der benötigten Anwendungslogik automatisch, zumindest soweit sie sich bereits aus dem evolutionär entwickelten Datenmodell und aus diversen Eigenschaftsklassifikationen, die sich im Konfigurationsprozess so ansammeln, ableiten lässt.
Alle Anbieter verfolgen damit eine relativ einheitliche Grundmethodik, und man kommt damit erstaunlich weit. Die meisten Anwendungen sind tatsächlich fast fertig, ehe man das erste Mal an die Stelle kommt, wo ein Gap zwischen der automatisch mitgenerierten Integritäts- und Anwendungslogik und den realen Anforderungen an die Geschäftslogik aufkommt.
Ein weiterer neuer Begriff: Citizen Developer
Die meisten Low-Code-Produkte zielen genau auf die Schnittstelle zwischen den zentralen IT-Abteilungen der Unternehmen und den eigentlichen Anwendern ab. Hierbei gibt es unterschiedliche Ausprägungen bei den Tools. Manche sind eher für Endanwender, andere dann doch eher für IT-Profis optimiert.
Die wichtigste Zielgruppe der Low-Code-Bewegung ist immer die, die genau dazwischenliegt: IT-kundige Mitarbeiter der Fachbereiche, sowie IT-Spezialisten, die sich über viele Jahre hinweg so tief in die Themen der Fachabteilungen eingearbeitet haben, dass sie längst nicht mehr aktiv in der komplexen objektorientierten Programmierung zuhause sind. Für diese Gruppe von fach- und zugleich hinreichend IT-kundigen Mitarbeitern steht der neue Begriff Citizen Developer. Das ist jemand, der in der Fachabteilung zuhause, zugleich aber auch in der Lage ist, im Bedarfsfall mal etwas zu programmieren.
Es ist schon lange nicht mehr so, dass es im Unternehmen nur die um den CIO gescharten IT-Gurus auf der einen Seite, und die völlig IT-unkundige Fachleute auf der anderen Seite gibt. In nahezu allen größeren Unternehmen hat sich längst eine sogenannte Schatten-IT entwickelt, in der sich die Fachabteilungen um ihre eigenen Fachanwendungen selbst kümmern, mit mehr oder weniger Unterstützung aus der Zentral-IT. Getrieben wird die Schatten-IT von Power Usern und fachlich orientierten Informatikern und Beinahe-Informatikern, die sich jetzt allesamt Citizen Developer nennen können.
Fazit
In Bezug auf Low-Code-Plattformen sprechen Experten vom einem Faktor 10. Das bedeutet, dass man meist nicht nur zehn Mal schneller, sondern auch zehn Mal agiler entwickeln kann – in direkter Zusammenarbeit mit den späteren Anwendern. Zudem wird eine 10 Mal bessere Qualität erreicht, da es sich um vorgefertigten, weniger Fehler anfälligen Programmcode handelt, sowie um eine zehn Mal bessere Anpassbarkeit und Wartbarkeit der Datenbankanwendung. Die Vorteile der Low-Code-Technologie sind folglich so immens, dass es sich allemal lohnt, die gewisse funktionale Limitierung zu tolerieren bzw. bei Bedarf mal einen fehlenden Softwarebaustein niedrigschwellig hinzu zu programmieren.
Hinweise:
Interessieren Sie sich für weitere Tipps aus der Praxis? Testen Sie unseren wöchentlichen Newsletter mit interessanten Beiträgen, Downloads, Empfehlungen und aktuellem Wissen.
Weitere Informationen zum Thema Low-Code finden Sie unter https://www.scopeland.de/home.
Karsten Noack hat im t2informatik Blog weitere Beiträge veröffentlicht, u. a
Karsten Noack
Karsten Noack ist Gründer und CEO der Scopeland Technology GmbH. Als Visionär entwickelte er bereits Mitte der 90er Jahre die Grundlagen der Technologie, die heute als Low-Code und als Schlüsseltechnologie der Digitalisierung bekannt ist. Er verfügt über umfassende Erfahrungen im Einsatz von Low-Code-Plattformen in großen Unternehmen und Behörden und sieht sich nicht nur als Geschäftsführer im üblichen Sinne, sondern viel mehr als Motor der Produktentwicklung und als Visionär, und irgendwie auch als Evangelist für ein neues Denken in der IT-Industrie. Karsten Noack engagiert sich im Hauptvorstand des BITKOM sowie in mehreren Unternehmernetzwerken in der Berliner Region.