Wild Card

Low Code?

Uhr

Konfigurieren statt programmieren – ein alter Traum der Software Engineering Community. Die sogenannten "Low Code"-Plattformen der neuesten Generation versprechen den nächsten Produktivitätsschub.

"Low Code" heisst das neue Zauberwort, wenn es um die Steigerung der Produktivität im Softwarebau geht. Geprägt haben diesen Begriff die Analysten von Forrester Research. Eine Low-Code-Plattform vereinigt nach deren Definition die Entwicklungswerkzeuge, die Entwicklungsumgebungen und den Entwicklungsprozess zu einer umfassenden Plattform.

Das Prinzip ist einfach: Oberflächen werden mithilfe grafischer Editoren erstellt. Die Abläufe und die Logik werden als Modelle definiert. Also Drag-and-drop statt aufwändiges Schreiben von Code in einer Programmiersprache. Klingt vielversprechend, leider sind jedoch konkrete Beispiele für signifikante Produktionssteigerungen kaum zu finden. Und das hat wahrscheinlich gute Gründe.

Was waren die Tops und Flops der Programmiersprachen im vergangenen Jahr? Hier erfahren Sie es.

Warum ist Softwarebau schwierig?

Software und allen voran Individualsoftware produktiv bereitzustellen, ist eine der grossen Herausforderungen unserer Branche. Spätestens seit der Veröffentlichung des legendären Artikels "No Silver Bullet – Essence and Accident in Software Engineering" von Fred Brooks vor 33 Jahren ist das zähe Ringen um signifikante Fortschritte in Sachen Entwicklungsproduktivität in vollem Gange. Mit durchzogenem Erfolg, wie die sich kaum verändernden Durchlaufzeiten für Softwareprojekte zeigen. Brooks ist auch Autor von "The Mythical Man-Month", des wahrscheinlich bekanntesten Buches über den Bau von Software. Er zeigt in seiner Analyse auf, dass die vier Eigenschaften Komplexität, Konformität, Formbarkeit und Unsichtbarkeit die Hauptgründe dafür sind, dass sich die Produktivität in diesem Bereich nicht einfach steigern lässt. Software gehört aufgrund der Vielzahl der Zustände, die sie einnehmen kann, wahrscheinlich zum Komplexesten, was je von Menschen geschaffen wurde. Brooks beschreibt Komplexität als essenzielle Eigenschaft von Software, die nicht ohne Weiteres vereinfacht werden kann.

Mangelnde Konformität und hohe Formbarkeit sind weitere Aspekte, die den produktiven Bau von Software erschweren. Konkret bedeutet dies, dass Software im Gegensatz zu anderen Produkten, wie etwa Bauwerke oder Industrieprodukte, nicht in einem fixen und stabilen Umfeld über lange Zeit unverändert funktionieren kann. Sowohl das Umfeld als auch die Software selbst unterliegt einer immerwährenden Veränderung. Da sie so einfach geändert werden kann, werden auch sehr viele Änderungen durchgeführt. Die Unsichtbarkeit als vierte Haupteigenschaft von Software macht es zudem äusserst schwierig, den Entwurf so vollständig und detailliert in Form von exakten Plänen zu beschrieben, wie es für andere Indus­trieprodukte üblich ist.

Für wen lohnt es sich trotzdem?

An den vier grundlegenden Schwierigkeiten des Software­baus wird auch die Low-Code-Bewegung nichts ändern. Das hat das grandiose Scheitern ähnlicher Ansätze wie CASE (Computer Aided Software Engineering) oder MDSE (Model Driven Software Engineering) in der Vergangenheit gezeigt. Sobald der Funktionsumfang des Zielsystems über relativ einfache Adaptionen bestehender Funktionen hinausgeht, wird der Modellierungsaufwand so gross, dass der scheinbare Initialvorteil dieser Umgebungen vollständig weg ist. Selbst pragmatischere Ansätze wie etwa der Einsatz von Prozess- und Rule Engines mit grafischen Editoren haben sich aus demselben Grund nur sehr beschränkt durchgesetzt. Der Einsatz einer Low-Code-Plattform kann sich jedoch lohnen, wenn die Plattform zur Konfiguration von Standardprodukten oder -services eingesetzt werden kann. Das gilt es jedoch im Einzelfall zu prüfen.

Tags
Webcode
DPF8_127698