Wer den Begriff „Low-Code“ hört oder liest, wird entweder aufhorchen oder fragend blicken. Diejenigen, die aufhorchen, wissen bereits, dass sich hinter „Low-Code“ eine mögliche Revolution in der Softwareentwicklung versteckt. Viele sprechen schon von Low-Code als Enabler der digitalen Transformation oder von der nächsten Evolutionsstufe der Softwareentwicklung.
Diejenigen, die noch fragend blicken, werden mit dem Begriff nicht viel anfangen können. Low-Code hört sich auch irgendwie seltsam an: Wenig-Code? Ihnen sei gesagt, dass es bei Low-Code nicht um weniger Programm-Code, sondern eher um einen geringeren Codierungsaufwand geht. Mehr dazu später.
In dem folgenden Artikel möchten wir Ihnen den Low-Code-Ansatz näherbringen und zeigen, wie man damit die nächste Evolution anstoßen kann: Die Entwicklung einer flexiblen, maßgeschneiderten und passgenauen ERP-Lösung auf Basis von Low-Code anstelle der veralteten Legacy-Software.
Vom Code zum Low-Code
Jahrzehntelang wurden Softwarelösungen aufwendig von gelernten Programmierern mit Hilfe unterschiedlichster Programmiersprachen entwickelt. Die Entwicklung komplexer Software wie beispielsweise einer ERP-Software dauerte (und dauert) relativ lange und ist in der Regel kostenintensiv, weil ausgebildete und damit gut bezahlte Entwickler notwendig sind, die oftmals Wochen oder Monate an einem Projekt arbeiten. In Zeiten des Fachkräftemangels verschärfte sich die Situation für die Softwareunternehmen zusehends. Ist ein Produkt einmal fertig, wird es viele Jahre durch Updates, Ergänzungen und Erweiterungen gepflegt und damit immer komplexer. Dahinter steckt die Strategie der Hersteller, eine möglichst breite Menge von Kunden bedienen zu können.
Beispielsweise im ERP-Bereich ging man davon aus, dass alle Prozesse größtenteils standardisiert abgebildet werden können. Allenfalls wurden Individualisierungen für unterschiedliche Branchen erstellt. Eine tiefere Individualisierung und Anpassung an spezifische Prozesse war nur über Sonderprogrammierung möglich, bei der das Entwicklerteam des Herstellers anrückte und in vielen Personenstunden den Programmcode anpasste. Solche Projekte wurden langwierig, teuer und führten am Ende doch nicht zu einer 100prozentigen Abdeckung aller Prozesse. Dennoch werden viele von Ihnen als Altlasten immer noch gepflegt und am Leben gehalten.
Um aus diesem Teufelskreis ausbrechen zu können, suchten Experten nach Alternativen zur klassischen Softwareentwicklung, mit denen schneller, effizienter und gegebenenfalls auch ohne – oder zumindest ohne weitreichende – Programmierkenntnisse entwickelt werden könnte. Eine dieser Alternativen ist die sogenannte Low-Code-Entwicklung (zu Deutsch geringer Codierungsaufwand).
Der Begriff Low-Code wurde bereits 2014 vom US-amerikanischen Marktforschungsunternehmen Forrester Research geprägt. Die Low-Code-Entwicklung propagiert das Erzeugen von Anwendungen nahezu ohne handgeschriebenen Programmcode durch einfaches Zusammenklicken vorgefertigter Softwarebausteine. „Konfigurieren statt programmieren“ lautet die zugrunde liegende Idee. Möglich wird dies durch Low-Code-Plattformen.
Die alte Klick-Idee
Dabei bezieht sich das „low“ nicht auf die Qualität des finalen Programmcodes, sondern auf die Code-Erstellung. Im Low-Code-Development werden Applikationen mithilfe einer grafischen Benutzeroberfläche aus fertigen Bausteinen in der Cloud „zusammengesteckt“. Business-Applikationen wie ERP-Systeme werden im Unternehmen nach einer Art Baukastenprinzip vollständig ohne oder mit nur wenig Programmieraufwand zu einer maßgeschneiderten Lösung „konfiguriert“. Der Anteil manueller Code-Entwicklung ist im Vergleich zur konfigurierten Code-Menge gering, also „low“.
Man kann sich die „Konfiguration“ vorstellen wie den Zusammenbau eines Hauses mit den Standard-Bausteinen eines dänischen Spielzeugherstellers aus Billund. Wer eine Softwareanwendung entwickeln will, erhält über Low-CodePlattformen einen Baukasten mit vorgefertigten Formteilen, die man zu den unterschiedlichsten Systemen zusammensetzen kann.
Statt also selbst Quellcode zu schreiben und auf Basis aktueller Programmiersprachen zu codieren, bieten diese Plattformen bereits eine grafische Oberfläche (GUI), über die viele Bausteine über PullDown-Menüs und per „Drag-and-drop“ aus dem Baukasten herausgefischt und zu individuellen Anwendungen grafisch sichtbar zusammengesetzt werden können.
Low-Code ist die logische Weiterentwicklung der Applikationsentwicklung, sozusagen die nächste Evolutionsstufe, um Business-Prozesse schneller, einfacher, flexibler und günstiger mit Software zu unterlegen. Solche Entwicklungsschritte gab es in der Softwareentwicklung regelmäßig. Denken wir an den Schritt von den Lochkarten zum Assembler zu Cobol zu C zu objektorientierten Sprachen wie Java und Python. Immer ging es um eine höhere Flexibilität, Effizienz und Einfachheit.
Low-Code-Plattformen
Wer Low-Code entwickeln möchte, nutzt dazu eine Low-Code-Plattform. Die Zahl der Anbieter und Lösungen ist derzeit überschaubar, der Markt ist noch recht jung, wenn auch stark wachsend. Gartner prognostiziert beispielsweise, dass bis 2024 mehr als 65 Prozent aller Software-Programme mit Low-Code realisiert werden. Auch wenn die verschiedenen Plattformen unterschiedlichen Konzepten folgen, sind einige Punkte allen gemeinsam: Sie bieten eine Cockpit-ähnliche Entwicklungsplattform, mit der Browseranwendungen oder Apps interaktiv zusammengeklickt werden. Darunter liegt eine Geschäftslogikschicht für den Entwurf von Prozessen sowie eine Datenschicht zur Erzeugung von Geschäftsentitäten.
Die meisten Low-Code-Plattformen werden in der Cloud betrieben und sind als „Application-Platform-as-a-Service“ (SaaS) konzipiert. Dies sind dann Weboder Cloud-Dienste, die sämtliche Schritte des Low-Code-Development abwickeln können: Präsentation, Logik, Business-Integration, Datenverarbeitung und Authentifizierung oder Autorisierung. Es gibt jedoch auch Low-Code-Plattformen, die On-Premises installiert werden können.
Der wohl wesentlichste Unterschied liegt in der Art und Weise, wie der ProgrammCode, der am Ende auch bei Low-CodePlattformen vorhanden sein muss, erzeugt wird, wenn der Nutzer auf der Oberfläche seine Anwendung baut.
Fertiger Code „wie von Geisterhand“
Bei einigen Systemen wird im Hintergrund beim Zusammenklicken der Elemente von einem Algorithmus „wie von Geisterhand“ ein Code geschrieben, der kompiliert wird und dann ausführbar ist.