Herausforderung Softwareentwicklung

Macht Low Code Anwendungen komplex?

Kommentar  10.05.2022
Von 
Lee Atchison ist Experte in Sachen Cloud Computing und Applikationsmodernisierung mit mehr als 30 Jahren Berufserfahrung. Er schreibt unter anderem für die US-Schwesterpublikation Infoworld.com.
Durch standardisierte Kodierungstechniken und die Wiederverwendung von Code verändern Low-Code-Technologien die Softwareentwicklung. Entsteht dadurch mehr Komplexität?
Erhöhen Low-Code-Umgebungen die Komplexität? Bei Outsystems sieht es eher aufgeräumt aus...
Erhöhen Low-Code-Umgebungen die Komplexität? Bei Outsystems sieht es eher aufgeräumt aus...
Foto: Outsystems

Viele Softwareentwickler fragen sich, ob der Einsatz von Low Code ihren Entwicklungsprozess verbessert, oder ob die Software-Erstellung eher langwierig und das Ergebnis schlechter wird. Nicht wenige fürchten auch negative Auswirkungen auf die IT-Sicherheit. Sie unterstellen, dass mit Low-Code-Tools entwickelte Anwendungen komplexer und damit auch anfälliger seien.

Komplexität ist kein Low-Code-Problem

Meiner Einschätzung nach gibt es diesen direkten Zusammenhang zwischen Low Code und Komplexität nicht. Vielmehr ist das Problem generell vorhanden, in der traditionellen Anwendungsentwicklung genauso wie im Low-Code-Umfeld. Es kommt in beiden Welten darauf an, dass die Entwickler alles tun, damit die Codebasis nicht zu komplex wird - ganz egal wie und mit welchen Tools sie entwickelt werden. Aspekte wie Performance, Skalierbarkeit, Verfügbarkeit und Innovationsgeschwindigkeit sind in jeder Entwicklungsumgebung wichtig.

Mit dem Einsatz von Low Code steigt der Anteil an vorgefertigtem Code, der nicht von den eigenen Entwicklern geschrieben wurde. Er wird von der Plattform automatisch generiert oder in Bibliotheken vorgehalten, die ausschlaggebend dafür sind, dass Anwendungen funktionieren. Daher gibt es in der Regel mehr "unbekannten" Code, wenn Low-Code-Techniken verwendet werden.

Unbekannter Code muss aber noch nicht heißen, dass die Komplexität zunimmt. Im Gegenteil: Guter Code, der von anderen bereitgestellt und in die eigene Anwendung integriert wird, macht in der Regel vieles einfacher. Indem Entwickler ganze Programmbausteine einfügen, sinkt ihre kognitive Belastung, auch der zeitliche Druck wird geringer. Die Plattformen ermöglichen es, sich auf das große Ganze zu konzentrieren: die Geschäftslogik der Anwendung.

Sie interessieren sich für Low-Code-Programmierung? Dann lesen Sie auch:

Wie Low Code Entwickler entlastet

Viele Details werden den Developern von der Low-Code-Umgebung abgenommen. Dabei verwendet die Plattform standardisierte und bewährte Techniken. Die automatisch generierten Code-Bestandteile und auch der Library-Code stehen für Entwickler in getesteter und optimierter Form bereit. Low-Code-Plattformen zu nutzen heißt, mehr standardisierte Codierungstechniken und branchenübliche Best Practices zu verwenden - und damit die Wiederverwendung von Software zu vervielfachen.

Auf standardisierten Code zu setzen und Softwarebestandteile mehrfach zu verwenden, heißt tendenziell sogar, die Komplexität in der Anwendungsentwicklung zu reduzieren. Der kognitive Aufwand, um die Funktionsweise einer Anwendung zu verstehen, sinkt. Zudem reduziert die Wiederverwendung von Code die Anzahl der "beweglichen Teile", die in komplexen Anwendungen ein Risiko darstellen. Infolgedessen ist eine mit Low Code erstellte Anwendung weniger komplex als eine funktional gleichwertige Applikation, die mit herkömmlichen Programmiertechniken entwickelt wurde.

Komplexität entsteht durch die Anzahl von Komponenten, aus denen sich eine Anwendung zusammensetzt, sowie aus deren Größe und der notwendigen Änderungshäufigkeit. Durch den vermehrten Einsatz von wiederverwendbarem Code verringern sich Größe und Anzahl der Komponenten einer Applikation und durch den Einsatz von standardisierten Kodierungstechniken sinkt die Änderungsrate. Das gilt zumindest für Module und Komponenten, die auf standardisierter Kodierung basieren.

Softwareabstraktion ist nicht neu

Zugegeben, was Sie hier lesen, ist weder neu noch einzigartig. Seit Jahrzehnten nutzen wir Softwareabstraktion, um die Komplexität des Codes vor den Entwicklern zu verbergen. Wann immer wir eine höhere Sprache verwenden - beispielsweise C, Java, Ruby oder Go -, abstrahieren wir den eigentlichen Code. Wir konzentrieren uns auf "Konstrukte auf einer höheren Ebene" und überlassen die Details dem Compiler oder Interpreter.

Und es hört nicht bei Compilern auf. Wenn wir uns für High-Level-Softwarepakete, -Umgebungen und -Frameworks entscheiden, abstrahieren wir auch hier die Komplexität, um uns auf die übergeordneten Aufgaben konzentrieren können. Nutzen wir beispielsweise Ruby on Rails, Spring, Hibernate, Gin, jQuery, Bootstrap oder sogar HTML/CSS, befreien wir uns von Komplexität, um auf einer höheren Ebene arbeiten zu können. Im Ergebnis bekommen wir idealerweise leistungsfähigere Anwendungen und eine hohe Zuverlässigkeit bei geringem Entwicklungsaufwand und niedrigen Supportkosten. Letztendlich sind das die gleichen Argumente, mit denen heute über Low-Code-Komplexität diskutiert wird.

Dass uns die Softwareentwicklung immer wieder vor neue Herausforderungen stellt, ist nicht neu. Entwickler verwenden regelmäßig Tools, Ressourcen, Umgebungen und Techniken, um sich die Arbeit zu erleichtern und auf das Wesentliche konzentrieren zu können. In letzter Zeit haben sich die Low-Code-Techniken verbessert und die Plattformen sind zu einem nützlichen Werkzeug geworden, um mehr Effizienz in den Prozess der Softwareentwicklung zu bekommen, ohne Anwendungen übermäßig zu verkomplizieren.

Dieser Artikel basiert auf einem Beitrag der Computerwoche-Schwesterpublikation Infoworld.