Über unsMediaKontaktImpressum
René Jahn 11. Oktober 2016

Low-Code Development Plattform

Seit Jahren wird versucht, die Softwareentwicklung zu beschleunigen und die Qualität von Produkten durch unterschiedlichste Anstrengungen zu verbessern. Egal ob neue Technologien oder Methoden eingesetzt wurden. Am Ende des Tages hätte es noch schneller gehen sollen. In unserer schnelllebigen Zeit werden auch schnelle Ergebnisse erwartet und gefordert. Wenn ein Kunde auf die Umsetzung eines Features eventuell einen Monat warten muss, so wird er schon ungeduldig. Am liebsten hätte der Kunde das Feature sofort. Um diesen Anforderungen gerecht zu werden, entstanden 4GL, RAD Tools oder aPaaS. Den nächsten Schritt in diese Richtung setzt nun Low-Code Development Plattform.

Die Entwicklung von qualitativ hochwertiger Software ist ein zeitaufwändiges und mitunter ressourcenhungriges Unterfangen. Das liegt aber nicht nur an der Tätigkeit der Softwareentwicklung sondern auch an sich ständig ändernden Anforderungen. Die Entwicklung kann häufig nicht schnell genug auf die Veränderung der Geschäftswelt reagieren und ist daher schlichtweg hinten nach. Doch selbst wenn die Entwicklung sehr schnell möglich wäre, würden die Qualitätsanforderungen und die Zeit bis zur Auslieferung blockieren. Um diesen Umständen entgegenzuwirken, entstanden in den letzten Jahren immer wieder neue Technologien, Methoden oder Verfahren. Der Begriff agile Softwareentwicklung wurde geprägt. Es gibt unzählige Begriffe aus unterschiedlichsten Gebieten, die immer wieder zum Thema werden (s. Abb.1).

Es ist unumstritten, dass die Qualität in der Softwareentwicklung durch den Einsatz von modernen Technologien und Verfahren sehr hoch gehalten werden kann. Doch der Preis dafür ist nicht gering. Auch wenn der bürokratische Aufwand begrenzt wird, entsteht doch erheblicher Mehraufwand. Und letzten Endes ändert all das sehr wenig an dem eigentlichen Problem. Die tatsächliche Softwareentwicklung braucht einfach Zeit.

Natürlich wird immer wieder versucht, auch die Entwicklungszeit zu reduzieren, sei es durch den Einsatz von Open Source-Lösungen, Anpassung von Standard-Software, Verwendung neuer Frameworks mit modernen Entwicklungsstandards oder durch den Wechsel der Programmiersprache. Doch moderner bedeutet leider nicht immer auch schneller. Es entstehen zusätzliche Aufwände für Einarbeitung oder Schulung. Des Öfteren wird auch zusätzliches Personal benötigt, um die neuen Technologien in den Griff zu bekommen. Wenn man bedenkt, dass der Begriff Rapid Application Development (RAD) [1] schon aus den 1980er Jahren stammt, dann könnte schon die Frage aufkommen, was in der Zwischenzeit schiefgelaufen ist?

Low-Code Development Plattform – die eierlegende Wollmilchsau der Softwareentwicklung.

Es gibt vermutlich unterschiedliche Antworten und Meinungen zu dieser Frage, aber wie so oft braucht es ganz einfach mehrere Iterationen, bis eine Lösung gefunden wird. Auch waren die Anforderungen an die Softwareentwicklung in den 1980er Jahren nicht vergleichbar mit dem aktuellen Fortschritt der Technologie und der aktuellen Geschäftswelt. Aber glücklicherweise wurde in all den Jahren sehr viel dazugelernt und nun steht mit Low-Code Development Plattform ein vielversprechender Trend vor der Tür. Dieser kommt natürlich nicht ohne Analysen von Forrester [2,3] und Gartner [4] in den IT-Alltag. Aber auch ohne diese Empfehlungen oder Analysen ist recht einfach zu erraten, dass es darum geht, die Softwareentwicklung zu beschleunigen. Die Idee ist zwar nicht neu, aber im Jahr 2016 hat sich die Cloud einen Namen gemacht und mit Infrastructure as a Service (IaaS) [5], Platform as a Service (PaaS) [6] oder Software as a Service (SaaS) [7] gibt es weit mehr Möglichkeiten als vor 30 Jahren.

Der Trend

Mit einer Low-Code Development Plattform soll erreicht werden, dass wenig bis gar nicht händisch programmiert werden muss. Der Einsatz von professionellen Softwareentwicklern ist dafür nicht erforderlich, denn selbst Mitarbeiter von Fachabteilungen ohne spezielle IT-Ausbildung zählen zur Zielgruppe. Die rasche Umsetzung von Anforderungen sowie das schnellstmögliche Deployment oder Installationszeit stehen bei "Low-Code" ebenfalls im Vordergrund. Es wird auch berücksichtigt, dass Qualitätsstandards eingehalten werden. Also im Prinzip sind Low-Code Development Plattformen die eierlegende Wollmilchsau der Softwareentwicklung.

Soweit die Theorie. In der Praxis sieht das Ganze natürlich etwas anders aus. Der Trend besagt lediglich, in welche Richtung es geht und nicht, wie es technisch funktioniert. Es gibt aber mittlerweile einige Anbieter die sich Low-Code Development Plattform auf die Fahne geschrieben haben. Dazu zählen unter anderem Salesforce mit force.com, QuickBase, Caspio, K2, SIB Visions mit VisionX, Zoho, Mendix und viele weitere. Ein relativ neuer Mitstreiter ist auch Oracle mit Cloud IDE [8].

Die Lösungen sind generell sehr unterschiedlich und meist mit Cloud-Diensten verknüpft. Aber im Kern dreht sich alles um dieselben Themen. Es wird ein visueller Editor für Oberflächen angeboten, ein visueller Editor für die Erstellung und Verschachtelung von Abläufen/Logiken, ein Store für fertige Anwendungen (App-Store) und die Automatisierung von Test, Build und Deployment. Manche Lösungen bieten auch Unterstützung für Projektmanagement, verteiltes Arbeiten, Versionierung und Monitoring. Es lässt sich schon erahnen, dass es sich bei Low-Code Development Plattformen um umfangreiche Tools handelt. Es macht dabei keinen Unterschied, ob diese direkt in der Cloud laufen oder lokal am eigenen Rechner. Dennoch ist "Low-Code" der richtige Ansatz, denn Softwareentwicklung ist komplex und aufwändig. Es benötigt einiges an Know-how um Entwicklung, Test, Versionierung, Build und Deployment durchzuführen. Obwohl es mächtige IDEs und CI-Lösungen gibt [9], sind bis zum fertigen Produkt oder einer Installation viele einzelne Schritte nötig. Mit Low-Code Development Plattformen werden diese Schritte minimiert und vor allem automatisiert. Die Last wird von den Entwicklern genommen und das Hauptaugenmerk liegt auf der Umsetzung von Anforderungen. Der eine oder andere Leser könnte jetzt behaupten, dass auch ohne Low-Code Development Plattform eine Automatisierung erreichbar ist, beispielsweise durch den Einsatz von einheitlichen Entwicklungsumgebungen, Richtlinien oder CI-Servern. Dem ist zuzustimmen, aber gleichzeitig gilt es zu berücksichtigen, dass dafür Know-how, Resourcen und Infrastruktur vorhanden sein müssen. Letztendlich benötigen die Systeme auch Pflege. Eine Low-Code Development Plattform verheiratet unterschiedliche Werkzeuge und spart dadurch schon mal einiges an Zeit.

Es sollte bedacht werden, dass eine Low-Code Development Plattform auch eine Bindung mit sich bringen kann, denn kaum ein Hersteller setzt auf Open Source oder ermöglicht den vollständigen Export der Source-Dateien – Opt-Out. Wer sich für eine Low-Code Development Plattform entscheidet, sollte also sehr genau prüfen, ob es möglich ist, auch ohne diese Plattform in Zukunft zu entwickeln oder ob es dann kein Zurück mehr gibt.

Wie funktioniert eine Low-Code Development Plattform

Eine Low-Code Development Plattformen wird im Normalfall für die Erstellung von datenlastigen Anwendungen verwendet. Das sind die klassischen ERP-Systeme oder Anwendungen zur Ablaufsteuerung.

Wie bereits erwähnt, werden unterschiedliche visuelle Editoren eingesetzt. Beim Erstellen von Oberflächen ist das ja noch recht einfach vorstellbar. Der WYSIWYG-Ansatz [10] sollte jedem geläufig sein. Es gibt eine grafische Zeichenfläche, auf der diverse Elemente positioniert und ausgerichtet werden können. Der visuelle Editor erstellt daraus entweder Source-Code oder eine Definition der Oberfläche, beispielsweise im XML-Format oder einem Metamodell. Als Beispiele für Oberflächen-Design werden der Modeler von Mendix [11] (s. Abb.2) und der UI Designer von VisionX [12] verwendet (s. Abb.3).

Die Oberflächengestaltung ist wohl das überschaubarste Problem. Viel interessanter wird es bei der Datenbindung. Denn eine Tabelle sollte auch mit Daten aus einer Datenquelle wie z. B. einer Datenbank befüllt werden. Dieses Problem lösen Low-Code Development Plattformen ebenfalls mit visuellen Editoren. Der Vorteil dabei ist, dass sämtliche Mappings oder Datenzugriffe nicht händisch gemacht werden müssen. Die Zeitersparnis alleine dafür ist schon gewaltig. Die technische Umsetzung ist pro Plattform unterschiedlich. Es gibt beispielsweise Lösungen, die auf ORM [13] aufsetzen und sämtliche Klassen automatisch generieren, oder aber auch generische Ansätze, die ohne ORM auskommen und dafür etwas flexibler sind. Als Beispiel wird der Daten-Editor von VisionX verwendet (s. Abb.4).

Bei der Erstellung von Logiken sieht die Sache schon etwas verzwickter aus, denn wie soll denn ohne Source-Code festgelegt werden, was beim Klick auf einen Button ausgeführt wird? Die Antwort ist natürlich ein visueller Editor. Diese fallen total unterschiedlich aus. Manche Lösungen arbeiten mit simplen Anweisungsblöcken und andere folgen dem Ansatz von Scratch [14] (s. Abb.5).

Eine Lösungsvariante zeigt der Aktions-Editor von VisionX (s. Abb.6).

Damit lassen sich durchaus aufwändige Logiken und Abläufe umsetzen. Für sehr komplexe Problemstellungen bieten die Editoren aber immer eigene Scriptsprachen oder die Möglichkeit zur Eingabe von Source-Code. Ein Beispiel dafür zeigt der Workflow-Builder von Zoho [15] (s. Abb.7).

Die Themen Test, Build und Deployment sind ein wichtiger Bestandteil von Low-Code Development Plattformen, weil dafür unnötigerweise sehr viel Zeit im Projektalltag verschwendet wird. Für Tests gibt es entweder integrierte Automatisierungsroutinen für Standardprobleme oder es müssen manuelle Tests erstellt werden. Die Erstellung wird natürlich wieder mit visuellen Editoren durchgeführt. Beim Build Management sieht die Sache recht einfach aus, denn jede Plattform kennt die interne Struktur und kann daher recht einfach einen Build starten. Der Entwickler muss keinerlei Zeit investieren.

Das Deployment ist auch stark abhängig von der eingesetzten Plattform, da eine Low-Code Development Plattform die in der Cloud läuft auch gleich in der Cloud die Deployments durchführt und keinerlei Zusatzaufwände verursacht. Es gibt jedoch auch Lösungen die nicht in der Cloud laufen und entweder direkt zu Applikationsservern wie Tomcat, WildFly oder GlassFish deployen oder manuelle Installationspakete erstellen.

Auf jeden Fall versuchen Low-Code Development Plattformen, die eingesetzten Technologien vor den Anwendern zu verstecken, um es so einfach wie möglich zu machen und dennoch die ganze Bandbreite zu bieten. Das ist prinzipiell eine sehr gute Idee, die auch funktioniert. Wenn der Anwender allerdings ein Softwareéntwickler ist, wird der Wunsch nach Source-Code und Flexibilität zu einem Problem. Ein Entwickler möchte immer alles selbst im Griff haben, wenn nötig und auch wenn es nicht unbedingt nötig ist. Wenn allerdings die Plattform nicht die gewohnten Möglichkeiten einer IDE bietet oder zumindest die Arbeit mit dem Source-Code möglich macht, schlägt die Stimmung sehr schnell um. Diesen bidirektionalen Ansatz verfolgen leider nur ganz wenige Hersteller. Es ist sicherlich nicht die einfachste Art, eine Low-Code Development Plattform anzubieten, aber meiner Meinung nach erforderlich. Die Komplexität der Technologien darf natürlich versteckt werden, aber wenn nötig sollte ein Projekt mit den bekannten IDEs weiterbearbeitet werden können. Wenn das Ganze dann noch ausschließlich mit Open Source-Technologien arbeitet, ist die Zukunftssicherheit ebenfalls kein Problem.

Weitere Vorteile

Die Bündelung von Technologien und der Einsatz von visuellen Editoren ist sicherlich sehr praktisch, zielführend und spart auch eine Menge Zeit. Doch Low-Code Development Plattformen gehen noch einige Schritte weiter und bieten beispielsweise App-Stores an. Diese ermöglichen den Start mit vorgefertigten Lösungen und erlauben die Anpassung von Standardlösungen. Als Vergleich: Mit RAD-Tools wird zwar die Entwicklung erleichtert und es gibt eine Menge vorgefertigte Komponenten die nicht neu entwickelt werden müssen, aber die Applikationsentwicklung wird einem nicht wesentlich abgenommen. Das Codieren bleibt.

Anforderungen können schneller geliefert werden als je zuvor – bei gleichbleibender Qualität.

Auf den ersten Blick ist der Weg von einem RAD-Tool zu einer Low-Code Development Plattform auch nicht so weit. Der grundsätzliche Unterschied liegt jedoch schon darin, dass eine Low-Code Development Plattform entwickelt wurde, um wenig Code zu erstellen und das so weit möglich ohne händisches codieren. Es kommen natürlich unterschiedliche Algorithmen und Mechanismen zum Einsatz. Diese sind meist hoch effizient und lösen Probleme, die der Entwickler ansonsten selbst lösen müsste. Mit einer Low-Code Development Plattform wird eine erste voll funktionsfähige Applikation in wenigen Minuten erstellt und ist sofort verwendbar. Die nicht direkt ersichtlichen Features sind dabei schon integriert, wie z. B. Responsive Layout, Authentifizierung, Skalierbarkeit, Mehrbenutzerbetrieb, Mehrsprachigkeit.

Es ist schlichtweg effizienter, wenn ein Entwickler nur noch die Logiken einer Applikation umsetzen muss, anstatt sich um irgendwelche Details zu kümmern. Wenn diese dann auch noch ohne oder mit minimalem Codieraufwand realisierbar sind, dann können Anforderungen schneller geliefert werden als je zuvor – bei gleichbleibender Qualität.

Fazit

Der Einsatz einer Low-Code Development Plattform ist auf jeden Fall sinnvoll, wenn die Rahmenbedingungen passen. Wenn datenlastige Anwendungen erstellt werden und schnell auf Änderungen in der Geschäftswelt reagiert werden muss. Die Zukunftssicherheit sollte im Vordergrund stehen und Abhängigkeiten sollten tunlichst vermieden werden. Am besten sollte man auf Open Source-Software und offene Standards Wert legen. Wenn diese Bedingungen zutreffen, sind Low-Code Development Plattformen sicher die effizienteste Art, um Software zu entwickeln.

Autor

René Jahn

René Jahn ist Mitbegründer der SIB Visions GmbH und Head of Research & Development. Er verfügt über langjährige Erfahrung im Bereich der Framework- und API-Entwicklung. Sein Schwerpunkt liegt auf der Integration von State of the...
>> Weiterlesen
botMessage_toctoc_comments_9210