Die Geschäftswelt verändert sich rasant und um letztlich erfolgreich am Markt zu sein, müssen Unternehmen nicht nur nicht nur schnell und flexibel auf diese Änderungen reagieren können, sondern zusätzlich Innovationen vorantreiben. Gerade die beschleunigte Bereitstellung von Businness-Anwendungen ist dabei ein Muss für die meisten Unternehmen – und es ist offenkundig, dass dazu eine Änderung der herkömmlichen Entwicklungs- und Programmierweise grundlegend ist.

In Unternehmen wird technologische Innovation durch die Entwicklung neuer Anwendungen vorangetrieben – hier einige Beispiele:

  • Anwendungen, die neue Innovationen vorantreiben oder die Bemühungen zur digitalen Transformation unterstützen.
  • Anwendungen, die das Geschäft näher an den Kunden bringen und umfangreichen Kundenservice und -support ermöglichen, um so die Mitbewerber zu übertrumpfen.
  • Anwendungen, die maximale Produktivität bei minimalen Kosten ermöglichen.

Das Problem? Die Anwendungsentwicklung ist immer noch zu schwierig, zu teuer und erfordert zu viele Ressourcen. Paradoxerweise ist die die Entwicklung von Software exponentiell schwieriger geworden während im Gegenzug die Anwendung der Programme durch einen verstärkten Fokus auf die Benutzererfahrung immer einfacher wurde.

Infolgedessen sind Unternehmen gezwungen, sich verschiedensten Programmiersprachen, Open Source Frameworks, Plug-Ins usw. anzuvertrauen, die alle unabhängig voneinander entwickelt wurden bzw. weiterentwickelt werden. Denn nur so lassen sich neue oder bestehende komplexe Anwendungen für Web- und Mobile-Einsatz programmieren, erweitern und anpassen.

Geschäftsinnovationen erfordern, dass neue Anwendungen schneller als je zuvor bereitgestellt werden – die IT-Abteilungen haben mit der zusätzlichen Belastung zu kämpfen. Im schlimmsten Fall entsteht ein Anwendungsstau, und Kontrolle und Koordination gehen verloren. Dies ist der Zeitpunkt, an dem dann teilweise die anderen Abteilungen selbst dazu übergehen, alternative Möglichkeiten zu prüfen, um ihre Anwendungsanforderungen erfüllt zu sehen – einschließlich der Erstellung selbst.

Was benötigt wird, ist eine bessere Möglichkeit, Unternehmensanwendungen zu erstellen. Eine, die in der Lage ist, das Tempo der Softwarebereitstellung massiv zu steigern und gleichzeitig die Kosten zu senken und den Entwicklungsprozess zu vereinfachen. Es ist dieses Bedürfnis, das letztlich zur Entstehung von Low-Code-Softwareentwicklungsplattformen geführt hat.

Der Begriff „Low-Code“ wurde 2014 vom Forrester Research Institute geprägt, um Software zu beschreiben, die mit einem Bruchteil des Codes erstellt wird (oder sogar ohne Code auskommt), den herkömmliche Methoden erfordern. Seitdem haben sich Low-Code-Entwicklungsplattformen für die einfache Lösung in bestimmten Detailbereichen etabliert, für die Programmierung und Weiterentwicklung leistungsstarker IT-gesteuerte Unternehmensanwendungen – und für alles dazwischen.

Daher sollte man das komplette Spektrum der Anwendungsentwicklungsmethoden untersuchen und ihre unterschiedlichen Verwendungen und ihre Vor- und Nachteile aufzeigen. Es umfasst No-Code, Low-Code und Full-Code (traditionelle Entwicklungsmethoden) und erklärt deren Eignung für verschiedene Projektarten, wer sie verwenden sollte und wie sie am effektivsten sein können.

No-Code –was ist damit gemeint?

Die Software-Entwicklung ohne Code wurde für „normale“ Anwender entwickelt, um schnell genau die Anwendungen / Auswertungen zu bekommen, die sie aktuell benötigen, herkömmliche Entwickler aber nicht verfügbar sind. Es können damit einfache Abteilungsanwendungen für den eigenen Gebrauch oder für eine begrenzte Anzahl von zusätzlichen Benutzern geschaffen werden.

No-Code wird normalerweise von Mitarbeitern in Fachbereichen verwendet, die mit digitalen Technologien halbwegs vertraut sind. Sie sind möglicherweise bereits Experten für das Erstellen von Formeln in Tabellenkalkulationen und Erstellen von Berichten und Abfragen aus vorhandenen Systemen. Sie sind in der Lage, diese Fähigkeiten zu nutzen und No-Code-Tools zu verwenden, um damit Anwendungen zur Erfüllung einfacher Anforderungen zu erzeugen, wie z.B. formularbasierte Eingaben (Bestellungen, Umfragen, Checklisten usw.) – typischerweise, um papierbasierte Prozesse zu ersetzen oder das Erstellen von Berichten und Dashboards für Geschäftsberichte und -analysen.

Auf die Frage „Warum sollte No-Code verwendet werden?“ lautet die Antwort: No-Code-Entwicklung erfordert normalerweise keine traditionellen Programmierfähigkeiten. Die Beseitigung der Codierung und die Einführung eines grafischen modellbasierten Drag-und-Drop-Ansatzes erleichtert das Erstellen neuer Anwendungen auf ähnliche Weise wie es bei Analyse- und Modellierungswerkzeugen der Fall ist. In der Lage zu sein, solche Apps selbst zu erstellen, ohne auf knappe IT-Ressourcen warten zu müssen, ist attraktiv für Geschäftsabteilungen.

No-Code kann nützlich sein, wenn Abteilungen die Kontrolle über die Benutzeroberfläche und die Anwendungsbedienung behalten möchten. Es kann äußerst vorteilhaft sein, das Front-End zu steuern und häufige Änderungen vorzunehmen, um es an die Bedürfnisse der Benutzer anzupassen.

Dieser Ansatz kann besonders effektiv sein, wenn er mit Back-End-Diensten gekoppelt ist, die von der IT bereitgestellt werden. Wenn die IT-Abteilung Back-End-Services bereitstellen kann, um den kontrollierten Zugriff auf Unternehmenssysteme zu ermöglichen, können Abteilungsbenutzer mithilfe des No-Code-Ansatzes Anwendungen erstellen, die auf zentrale Datensysteme zugreifen und gleichzeitig die Bedienung der Anwendung verwalten.

No-Code ist besonders hilfreich für einfache Anwendungen, bei denen sich Mitarbeiter aus Fachabteilungen von der Anforderung befreien können, darauf zu warten, dass die IT einfache Systeme für den eigenen Gebrauch bereitstellt. Dies ermöglicht geschäftliche Agilität und befähigt, schnell auf sich ändernde Anforderungen zu reagieren. Wenn dies gut gemacht ist, können Systeme wachsen und mit anderen Abteilungen geteilt werden. In einigen Fällen werden sie vielleicht sogar von der IT übernommen, um sie unternehmensweit verfügbar zu machen.

Der Nachteil ist, dass viele Projekte gestartet und möglicherweise nie effektiv dokumentiert werden. Wenn sich die verantwortlichen Mitarbeiter verändern, können der laufende Support und die Wartung von Apps darunter leiden. Viele vom Endbenutzer erstellte Anwendungen berücksichtigen nur die anfänglichen Anforderungen und werden möglicherweise nie um neue Funktionen ergänzt. Dies kann zu Frustrationen führen, wenn der Urheber der Anwendung nicht mehr da ist. Diese Probleme werden verstärkt, wenn Skalierbarkeit und Integration zum Thema werden, insbesondere wenn die Kernprozesse möglicherweise nicht so gut gesteuert werden, wie es erforderlich ist, und Sicherheitsbedenken möglicherweise nicht berücksichtigt wurden.

Low-Code (modellbasiert) – was ist damit gemeint?

Die modellbasierte Low-Code-Entwicklung umfasst den Bereich von einfachen Anforderungen für Fachabteilungen bis hin zu komplexeren Anforderungen, die von der IT übernommen werden müssen. Die modellbasierte Low-Code-Entwicklung kann verwendet werden, um Front-End-Apps, Back-End-Serverprozesse und Middleware zu deren Verbindung zu erstellen. Möglicherweise können einfache Anforderungen weiterhin von Anwendern in den einzelnen Abteilungen und komplexere Anwendungen von IT-Mitarbeitern erstellt werden.

Low-Code-Tools machen das Erlernen mehrerer Sprachen, Frameworks und Plug-Ins zum Erstellen von Webanwendungen normalerweise überflüssig. Durch die Kombination eines grafischen, modellbasierten Ansatzes und einer eingeschränkten Codierung kann die IT weitaus produktiver sein als mit einem Full-Code-Ansatz. Die modellbasierte Entwicklung eignet sich für Web- und mobile Apps, die in der Cloud oder vor Ort / auf dem Gerät bereitgestellt werden.

Die folgenden Gründe sprechen für den Einsatz der modellbasierte Low-Code-Entwicklung:

  • Modellbasierter Low-Code wird verwendet, weil es die Markteinführungszeit für neue Apps verkürzt. Apps können in der Regel 3-10x schneller als herkömmliche Methoden (Full-Code) zu geringeren Kosten und mit weniger Ressourcen erstellt werden.
  • Laufende Wartungs- und Bereitstellungsoptionen werden ebenfalls vereinfacht.
  • Modellbasierter Low-Code wird für eine Vielzahl von Anwendungen verwendet, einschließlich Front-End- und Back-End-Komponenten. Die Integration erfolgt überwiegend über REST-APIs mit Webdiensten.
  • Modellbasierter Low-Code ist hilfreich, wenn Sie den Rückstand bei IT-Anwendungen beheben möchten. Die Zeitersparnis beim Erstellen, Integrieren, Verwalten und Bereitstellen von Apps erleichtert es dem IT-Team erheblich, den geschäftlichen Anforderungen für Innovationen nachzukommen.

Modellbasierte Low-Code-Plattformen weisen allerdings oft Einschränkungen auf, insbesondere wenn es um komplexe Prozess- und Integrationsanforderungen geht. Wenn Entwickler auf diese Einschränkungen stoßen, muss die Codierung möglicherweise außerhalb der Low-Code-Plattform mithilfe von Full-Code-Techniken – also durch bestimmte Softwarespezialisten – erfolgen. Dies führt dann zu zusätzlichem Codier- und vor Allem Kosten-Aufwand und laufender zusätzlicher Wartung dieser extern entwickelten komplexen Routinen.

Dies ist ein klarer Widerspruch zu den Versprechungen von Low-Code, insbesondere wenn die Vermeidung mehrerer Entwicklungssprachenkenntnisse einer der Hauptgründe war, warum Low-Code überhaupt im Unternehmen eingeführt wurde.

Low-Code (sprachenbasiert) – was ist damit gemeint?

Dieser Ansatz bietet die kompletten Kontrollmechanismen, die auch bei einer Full-Code-Entwicklung vorhanden sind, und ermöglicht zusätzlich eine fundamentale Vereinfachung bei den Kernprozessen „Entwicklung“ und „Integration“ durch die Verwendung von Low-Code-Techniken. Es macht das Codieren in unterschiedlichen Programmiersprachen überflüssig und liefert Funktionen zum Erstellen attraktiver und moderner Benutzeroberflächen und ermöglicht so eine ansprechende Benutzererfahrung.

Mithilfe des sprachenbasierten Ansatzes können Unternehmen leistungsstarke Business-Anwendungen erstellen und ihre IT-Mitarbeiter und professionelle Entwickler mit den Tools ausstatten, die sie zum Erstellen von komplexen Anwendungen ohne Kompromisse benötigen. Dieselbe übergeordnete Skriptsprache wird zum Erstellen von Front-End-Apps, Back-End-Serverprozessen und Middleware zu deren Verbindung verwendet.

Mit einer Kombination aus Codierungs-Assistenten (Wizards) und einer leistungsstarken High-Level-Codierungssprache sind Entwickler weitaus produktiver als mit einem herkömmlichen Full-Code-Ansatz. Ein sprachenbasierter Entwicklungsansatz mit Low-Code eignet sich für Web- und mobile Apps, die in der Cloud oder vor Ort / auf dem Gerät bereitgestellt werden.

Sprachenbasierter Low-Code verkürzt die Markteinführungszeit für neue Unternehmensanwendungen, ohne die Kontrolle aufzugeben. Apps können in der Regel 3-10x schneller als mit herkömmlichen Methoden (Full-Code) geschrieben werden – zu weit geringeren Kosten und mit weniger Ressourcen als bei den anderen Modellen. Laufende Wartungs- und Bereitstellungsoptionen werden ebenfalls vereinfacht.
Sprachenbasierter Low-Code wird für eine Vielzahl von Anwendungen verwendet, einschließlich Front-End- und Back-End-Komponenten. Die  Integration wird nicht nur durch REST- oder JSON-APIs mit Webdiensten erreicht, sondern mit einer Vielzahl von Optionen, einschließlich direktem Datenbank- und Dateizugriff, SOAP / XML / JSON-Zugriffen und anderen Methoden.

Ziel ist es, alles erstellen zu können, ohne jemals mit mehreren Skillsets arbeiten oder ein einziges Mal die Entwicklungsumgebung (IDE) verlassen zu müssen. Die Einschränkungen modellbasierter Low-Code-Plattformen bei komplexen Codierungs- und Integrationsanforderungen werden beseitigt, da eine voll funktionsfähige Sprache bereitgestellt wird, die alles bietet, was die Entwickler benötigen.

Der Vorteil einer solchen Sprache besteht darin, dass sie die Notwendigkeit, weitere Sprachen zu erlernen, eliminiert, komplexe Prozesse effizient vereinfacht und alle zugrunde liegenden technologischen Änderungen beherrscht – der Entwickler kann sich voll auf den Programmierprozess konzentrieren.

Sprachenbasierter Low-Code ist hilfreich, wenn Sie den Rückstand bei IT-Anwendungen beheben möchten. Ihre Entwickler können Full-Stack-Entwickler (Front-End-, Back-End- und Middleware-Entwickler) werden, ohne dass sie über die für die Bereitstellung von Full-Stack-Anwendungen normalerweise erforderlichen Sprachkenntnisse verfügen. Es reduziert die Zeit zum Erstellen, Integrieren, Verwalten und Bereitstellen von Apps und ermöglicht es dem Entwicklungsteam, Innovationen viel schneller zu ermöglichen als mit einem Full-Code-Ansatz.

Im Gegensatz zu modellbasierten Low-Code-Plattformen gibt es bei sprachenbasiertem Low-Code keine Einschränkungen hinsichtlich der Leistung und Komplexität der Anwendungen, die erstellt werden können. Dies basiert vor Allem auf diesen beiden Komponenten:

  • eine einzige Entwicklungsumgebung (IDE) und
  • Codierung mit einer eigenen Hochsprache.

Dieser so genannte „Single-IDE“-Ansatz ermöglicht eine viel größere Effektivität durch Vereinfachung und Vereinheitlichung der Abläufe bei der Programmierung. Diese Leistungssteigerung wird erhöht durch die Verwendung einer eigenen – in der Regel leicht zu erlernenden – Hochsprache, die die zu schreibende Codemenge im Vergleich zu herkömmlichen Sprachen um einen großen Faktor reduziert. Dies ist die optimale Lösung für Entwickler!

Wenn sich überhaupt ein Nachteil finden lässt, dann vielleicht dieser: Sprachenbasierter Low-Code hat im Vergleich zu modellbasierten Low-Code-Plattformen tendenziell eine minimal längere Lernkurve, ist jedoch um ein Vielfaches einfacher und schneller erlernbar als jede Full-Code-Sprache – und vor allem universeller zu verwenden als alle anderen Entwicklungsmodelle!

Full-Code (traditionelle Programmierung) – was ist damit gemeint?

Die Vollcode-Entwicklung ist die traditionelle Methode zum Erstellen von Unternehmensanwendungen. Sie wird von professionellen Entwicklern verwendet und bietet unbegrenztes Potenzial zum Erstellen von Anwendungen, wenn die richtigen Ressourcen gefunden werden.

Professionelle Entwickler, die in kleinen Teams arbeiten, sind die häufigsten Benutzer von Full-Code. Viele haben diese Sprachen möglicherweise schon seit einiger Zeit verwendet, und neue Entwickler, die direkt von der Universität kommen, wurden wahrscheinlich in deren Verwendung geschult. Anders als in der Vergangenheit, als eine einzige Sprache für eine einzige Plattform (Windows) mehr oder weniger ausreichte, hat die Web- und Open Source-Entwicklung zu einer Vielzahl von Sprachen, Frameworks und Plug-Ins geführt, die verwendet werden können oder gar müssen.

Viele sind „nur für den Moment“ und möglicherweise im nächsten Jahr oder sogar schon im nächsten Monat nicht mehr zeitgemäß. Um mit der Entwicklung Schritt zu halten, müssen die Entwickler Ihre Fähigkeiten auf dem neuesten Stand halten und sich auf die Technologie fokussieren – und verlieren Zeit, sich um den Fortschritt der Geschäftsprozesse zu kümmern. Oder es müssen immer neue Entwickler mit neuen Fach-Kenntnissen engagiert werden, was den Kostenaufwand natürlich immens in die Höhe treiben kann.

Die Full-Code-Entwicklung wird verwendet, weil dies die am weitesten verbreitete Methode zum Erstellen neuer Applikationen ist, wobei der Prozess über viele Jahre hinweg weitgehend unverändert geblieben ist. Die Flexibilität und Leistungsfähigkeit der einzelnen Sprachen ermöglicht es denjenigen, die sie beherrschen, hohe Gehälter zu verlangen und bildet so einen Anreiz, die Toolsets zu verwenden, die am meisten nachgefragt werden.

Professionelle Entwickler, die in Unternehmensentwicklungsteams oder unabhängigen Softwareanbietern (Independent Software Vendors = ISVs) arbeiten, verwenden Full-Code-Tools der größten Anbieter, darunter Microsoft, Google und Apple, sowie eine Reihe von Open-Source-Tools bzw. solchen von Drittanbietern. Auf Systemen wie der AS400 / IBM i gab es lange Zeit gar keine andere Möglichkeit, als direkt mit RPG oder Cobol zu entwickeln, so dass in diesem Bereich hauptsächlich Anwendungen im Einsatz sind, die im Full-Code-Prozess entwickelt wurden.

Es gibt mehr Entwickler, die diesen Ansatz verwenden als bei jedem anderen, da so viele Tools, Sprachen und Open Source-Frameworks zur Auswahl stehen. Der Nachteil ist, dass die Anzahl der Sprachen, die von Entwicklern beherrscht werden sollen, erheblich gestiegen ist. Aus diesem Grund gibt es in zahlreichen Unternehmen spezialisierte Entwicklerteams, die nur an bestimmten Teilen einer Anwendung arbeiten – dem Front-End, dem Back-End usw. – es sei denn, sie können teure und schwer zu findende Full-Stack-Entwickler einstellen.

Der größte Nachteil sind jedoch nicht allein Kosten, sondern vor allem die Zeit, die benötigt wird, um neue Anwendungen zu erstellen und zum Einsatz zu bringen. Angesichts des Fokus auf schnelle geschäftliche Innovationen bleibt die Full-Code-Entwicklung im Vergleich zu den anderen in diesem Dokument behandelten Ansätzen weit zurück. Letztlich sind es ja gerade die langsamen „Lieferzeiten“ und die hohen Entwicklungskosten, die den Grund für das Wachstum von Low-Code-Alternativen darstellen.

Außerdem ist es sehr problematisch, wenn die notwendigen Techniken und Sprachen nicht oder nicht mehr gelehrt werden – eine Erfahrung, die gerade im AS400/IBM i-Bereich sehr viele Unternehmen machen müssen – die erfahrenen RPG- und COBOL-Programmierer verlassen die Firma aus Altersgründen, Nachwuchs steht nicht zur Verfügung.

Jörg Hamacher ist Geschäftsführer der S.M.Hartmann GmbH.

S.M.Hartmann GmbH