Low Code und No Code: Bloß nicht programmieren

Innovation

Herkömmliche Programmierung ist aufwändig und langwierig und kann so den Ansprüchen agiler Unternehmen nicht genügen. Mit dem Low-Code- und No-Code-Ansatz lassen sich Applikationen in kurzer Zeit aus fertigen Komponenten zusammenstellen. “Citizen Developer” sorgen dabei für direkte Integration in die Fachabteilungen.

Software war schon immer ein Problem. Die Abbildung von Anforderungen der “normalen” Welt auf die technischen Systeme der IT-Welt war aufwändig und langwierig, sie erforderte viel Know-how, viel Erfahrung und weil das auch nicht immer ausreichte, oft auch einiges Glück und gute Laune, beispielsweise bei der nächtlichen Suche nach dem Bug im Code. Mit den höheren Programmiersprachen – “höher” als Maschinencode und Assembler – war es in den 70er-Jahren immerhin möglich, Aufgaben für die Computer-Systeme so zu formulieren, dass sie auch für Nicht-Ingenieure einigermaßen nachvollziehbar blieben. Aber auch Sprachen wie FORTRAN oder COBOL waren mit ihrer komplexen Syntax und den zahllosen kryptischen Statements den Spezialisten vorbehalten. Das Codieren, also die Übersetzung von Anforderungen in die Zeilen eines Programms, blieb eine Herausforderung; bei der Entwicklung von Software musste man demzufolge in Monaten, wenn nicht Jahren rechnen.

Ein Case Life Cycle wird konfiguriert und nicht codiert  (Quelle: Pegasystems)
Ein Case Life Cycle wird konfiguriert und nicht codiert (Quelle: Pegasystems)

Der Bedarf an Anwendungen wuchs trotzdem. Weiterentwicklungen wie Objektorientierung, Programm- und Maskengeneratoren, Computer Aided Software Engineering (CASE), 4GL- und Skript-Spra­chen oder Ansätze wie Rapid Protoyping automatisierten Programmierung, unterstützten die Entwickler an vielen Stellen und machten so die Erfolgsstory der IT bis zur Jahrtausendwende überhaupt erst möglich. Dennoch blieb es dabei: Software, das hieß immer auch schwierig, langwierig, teuer. Und irgendwann kam man in kaum einem Softwareprojekt trotz CASE und 4GL dann doch an C++, C#, Java oder Java Script vorbei – sah sich also doch auf das harte Los des Codierens verwiesen.

Neue Anforderungen an die Softwareentwicklung

Mit der Digitalisierung und nicht zuletzt mit dem Aufkommen mobiler Systeme haben sich nicht nur die Rahmenbedingungen für Buchhandlungen, Reisebüros und Eheanbahnungsinstitute geändert, sondern auch für die Softwareentwicklung. Die Unternehmen brauchen Software, die sie nun gerne “App” nennen, neuerdings immer sofort – monatelange Softwareprojekte vertragen sich nun mal nicht mit agilem Agieren auf sich schnell verändernden Märkten. Ein Versicherungsunternehmen, das den neuen Tarif erst im nächsten Jahr ausrollen kann, hat bis dahin die Zielkunden schon verloren. Agilität macht eine enge Verzahnung von Business und Softwareentwicklung unerlässlich; die in Jahrzehnten bewährte Arbeitsteilung zwischen beiden, die langen und gründlichen iterativen Abstimmungsprozesse sind in der digitalen Welt obsolet geworden.

Und ein weiterer Aspekt ist zu beachten: Digitalisierung bedeutet auch, dass die IT unmittelbar an den Kunden herantritt; dieser gibt keinen Überweisungsbeleg mehr ab, den die Mitarbeiter der Bank ins System einspeisen, sondern macht Online Banking. Hier steht kein Mitarbeiter mehr zwischen IT und Kunden, und Systeme, die nicht konsequent kundenorientiert arbeiten, sind Kundenvertreibungssysteme. Auch das macht schnellste Reaktionen seitens der Softwareerstellung unerlässlich.

Die Anforderungen an eine abermals neue Generation von Werkzeugen für die Software sind damit klar:
• Sehr kurze Projektlaufzeiten und schnelle Inbetriebnahme
• Direkte Beteiligung der Fachabteilungen
• Große Nähe zu den Endkunden

Richtig ist dabei auch: Mit der herkömmlichen Art und Weise des Programmierens, also wesentlich durch das Schreiben von Code, lassen sich diese Anforderungen nicht erfüllen. Das dauert einfach zu lang und es fehlen dafür meist auch geeignete Mitarbeiter. Der 2014 von Forrester eingeführte Begriff “Low Code” beschreibt den alternativen Ansatz modellbasierter Softwareentwicklung treffend: Software wird nicht mehr codiert, sondern aus fertigen, wiederverwendbaren Modulen zusammengestellt, wobei der Schwerpunkt auf dem Design der Oberfläche und den Prozessen liegt. Alles andere macht die Plattform automatisch im Hintergrund. Softwareentwicklung fühlt sich in diesem Kontext nicht mehr nach Programmieren, sondern eher nach dem Arbeiten mit WordPress an. Man erstellt zunächst ein Modell und klickt dann die Applikation aus Komponenten zusammen, die die jeweilige Plattform fertig bereitstellt. “Eigentliches” Programmieren ist nur noch gelegentlich für besondere Anpassungen erforderlich. Das Deployment erfolgt meist über die Cloud, was aber nicht zwingend ist, das erhöht nur die Flexibilität der Bereitstellung.

Software vom Citizen Developer

Die Projektdauer liegt hier nicht mehr bei einem Jahr, sondern vielleicht bei zwei Monaten. Nicht nur die Entwicklung selbst ist um ein vielfaches schneller, da mit vorkonfektionierten Komponenten gearbeitet wird, geht auch das Testen und das Debugging erheblich schneller. Etwaige Probleme lassen sich überdies sehr frühzeitig erkennen. Besonders wichtig: Die Entwicklung erfolgt nicht durch Programmier-Experten, sondern durch die sogenannten Citizen Developer; das sind technisch afine Mitarbeiter, die vor allem über eine große fachliche Kompetenz verfügen; sie können nach einem entsprechenden Training Modelle erstellen und ohne Hilfe durch die IT in lauffähige Anwendungen umsetzen.
Zum Teil haben auch schon ältere Werkzeuge eine ähnliches Verfahren unterstützt, beispielsweise 4GL-Sprachen oder auch das beliebte Access. Der Fokus lag hier jedoch auf den Daten und der Datenbank, die Lösungen waren insofern statisch, als sie sich schwer taten, komplexe Workflows abzubilden. Low-Code- und No-Code-Plattformen sind Workflow orientiert und sind damit beispielsweise prädestiniert für Lösungen im Case Management oder on CRM-Anwendungen mit umfangreichem Decisioning. Typische Vertreter des Low-Code-Ansatzes sind zum Beispiel OutSystems oder Appian. Einen Schritt weiter geht Pegasystems mit seiner Pega-7-Plattform, die sich gleich dem “No Code” verschrieben hat. Hier wird überhaupt nicht mehr programmiert, sondern nur noch designt und konfiguriert. Den Code – bei der Pega-Plattform handelt es sich um Java, Java Script HTML5 oder XML – generiert die Plattform; er existiert in den Tiefen der Plattform, aber weder Administratoren noch Citizen Developer müssen sich mit ihm noch befassen.
Entsprechend des im Zuge der Digitalisierung weiter steigenden Bedarfs an Software wächst auch der Markt für diese Plattformen stark. Forrester rechnet dabei mit einem Anstieg des Marktvolumens von rund 4,35 Milliarden Dollar in 2018 auf 15 Milliarden in 2021.

Natürlich lässt sich nicht jede Art von Software auf diese Weise “zusammenbauen”. Zum einen gibt es in Unternehmen weiterhin komplexe Aufgaben, für die man etwa C++ oder Java benötigt; zum anderen gibt es auch weiterhin die großen Transaktions-lastigen Anwendungen, die man vielleicht mit einer 4GL-Sprache problemlos im Griff hat. Aber für Workflow-orientiere Lösungen, etwa im Kundenmanagement bieten Low-Code- und No-Code-Plattformen eine sehr gute Möglichkeit, um schnell an gute Software zu kommen und so damit agil in den Märkten zu behaupten.

* Der Autor Carsten Rust ist Director Solution Consulting DACH bei Pegasystems in München