cnt

Low-Code: Software-Entwicklung im Do-it-yourself-­Modus?

Low-Code-Plattformen sollen die Programmierung für Laien und Profis schneller und effizienter machen. Was steckt hinter dem Ansatz und hält er, was er verspricht?

Artikel erschienen in Swiss IT Magazine 2024/07

     

Unsere digitale Welt, mit immer kürzeren Entwicklungszyklen und damit steigendem Effizienzdruck, zwingt IT-­Verantwortliche und Entwickelnde zur Suche nach neuen Wegen, um ihren Software-Entwicklungsprozess zu beschleunigen und gleichzeitig hohe Qualitäts- und Leistungsstandards für professionelle Anwendende aufrechtzuerhalten. Ein Lösungsansatz, um diese Kluft zu schliessen, ist Low Code. Was aber genau verbirgt sich hinter diesem Ansatz? Nachfolgend tauchen wir tiefer in die Welt der Low-Code-Entwicklung ein und zeigen Vorteile, potenzielle Anwendungsfälle und zukünftige Entwicklungen.

Vorteile und Anwendungs­gebiete von Low Code

Low Code ist ein Software-Entwicklungsansatz, der die Erstellung von Anwendungen mit minimalem manuellen Programmieraufwand ermöglicht. Anstatt umfangreiche und komplexe Program­mier­kenntnisse zu erfordern, ­verwendet Low Code eine visuelle Entwicklungsumgebung mit Drag-and-Drop-­Funktionalität und vorgefertigten Komponenten. Dies erleichtert es primär Entwicklerinnen und Entwicklern, aber auch Fachanwendern, selbst Anwendungen zu erstellen und zu implementieren. Wichtig ist, dabei explizit vom No-Code-Ansatz zu unterscheiden, der sich primär auf Fachanwendende fokussiert.

Low Code wird zunehmend populär, da Unternehmen bestrebt sind, schneller auf Marktveränderungen zu reagieren und die Effizienz ihrer Entwicklungsprozesse zu steigern. Der Ansatz ist somit eine Lösung, die die Lücke zwischen traditionellen Programmiermethoden und den Anforderungen der digitalen Transformation schliesst.
Typische Anwendungsbereiche von Low Code sind:


Geschäftsanwendungen: Entwicklung von digitalen Systemen, geschäftlichen Tools und Web-Portalen.
Mobile Apps: Erstellung von Anwendungen für mobile Endgeräte.
Prototyping: Schnelles Erstellen und Testen von Prototypen, um Ideen zu validieren und zu iterieren.
Automatisierung: Optimierung/Automatisierung von Geschäftsprozessen.

Low Code verschiebt mitunter die Diskussion, ob eine Anwendung gekauft oder selbst gebaut werden sollte, in Richtung Eigenentwicklung. Hierbei ist zu beachten, dass sich eine Eigenentwicklung lohnen muss, unabhängig davon, ob sie mit oder ohne Low Code entwickelt wird. Um die Sinnhaftigkeit einer Eigenentwicklung zu eruieren, sollten im Kern fünf Hauptpunkte beachtet werden und idealerweise sollte mehr als ein Punkt gelten:

- Spezifische Anforderungen: Wenn Anforderungen sehr spezifisch und einzigartig sind und keine vorhandene Software­lösung diese vollständig erfüllen kann.
- Wettbewerbsvorteil: Wenn die massgeschneiderte Software einen wesentlichen Wettbewerbsvorteil bietet, der nicht durch Standardsoftware erreicht werden kann.
- Skalierbarkeit und Flexibilität: Wenn eine Lösung benötigt wird, die hochgradig skalierbar und flexibel ist, um zukünftiges Wachstum und Änderungen zu unterstützen.
- Integration: Wenn die Software nahtlos in eine bestehende, komplexe IT-Infrastruktur integriert werden muss und massgeschneiderte Schnittstellen benötigt.
- Kontrolle: Wenn vollständige Kontrolle über die Software und ihre Weiterentwicklung erforderlich ist.

Zusätzlich zu beachten ist die Total Cost of Ownership: Wenn die Anwendungsentwicklung inklusive der zu erwartenden Wartungs- und Betriebsaufwände (inklusive eventueller Lizenzkosten und Infrastrukturaufwände) unter den Lizenz- und Betriebskosten einer Produktlösung liegt beziehungsweise die gelisteten Gründe die finanzielle Differenz aufwiegen, dann macht eine Eigenentwicklung durchaus Sinn.

Plattformen und Anwendungen

Es gibt verschiedene Low-Code-Plattformen. Ihr Einsatzbereich und ihre Fähigkeiten werden durch die Art des Toolings definiert:

1. Generische Low-Code-Plattformen: Diese Plattformen sind flexibel und universell einsetzbar, um eine Vielzahl von Anwendungstypen zu erstellen.
Verwendungszweck: Entwicklung von Web- und mobilen Anwendungen, die in verschiedenen Branchen und für unterschiedliche Geschäftsanforderungen eingesetzt werden können.


2. Fachbereichsspezifische Low-­Code-Plattformen: Diese Plattformen sind auf bestimmte Branchen oder Geschäftsbereiche spezialisiert und bieten spezifische Funktionen und Module.
Verwendungszweck: Entwicklung von Anwendungen, die spezielle ­Branchenanforderungen erfüllen, wie zum Beispiel Customer Relationship Management, Finanzdienstleistungen oder Gesundheitswesen.

3. Prozess- und Workflow-Automatisierungsplattformen: Diese Plattformen konzentrieren sich auf die Automatisierung von Geschäftsprozessen und Workflows.
Verwendungszweck: Automatisierung und Optimierung von Geschäftsprozessen durch visuelle Workflow-Designer und Integrationen mit bestehenden Systemen.

4. Datenzentrierte Low-Code-Plattformen: Diese Plattformen sind darauf ausgelegt, datenintensive Anwendungen zu erstellen und Datenmanagement zu erleichtern.
Verwendungszweck: Erstellung von datenbankbasierten Anwendungen, Verwaltung und Analyse grosser Datenmengen, Integration mit verschiedenen Datenquellen.

5. Customer-Facing Low-Code-Plattformen: Diese Plattformen konzentrieren sich auf die Entwicklung von Anwendungen, die direkt mit Kunden interagieren, wie zum Beispiel Portale oder mobile Apps.
Verwendungszweck: Entwicklung von kundenorientierten Anwendungen wie Self-Service-Portale, Kundenservice-Apps und E-Commerce-­Plattformen.

6. Integrations- und API-zentrierte Low-Code-Plattformen: Diese Plattformen erleichtern die Integration verschiedener Systeme und APIs, um Daten und Funktionen nahtlos zu verbinden.
Verwendungszweck: Integration von Anwendungen und Datenquellen, Automatisierung von Arbeitsabläufen über verschiedene Systeme hinweg.

7. Mobile-First Low-Code-Plattformen: Diese Plattformen sind speziell für die Entwicklung von mobilen Anwendungen optimiert.
Verwendungszweck: Entwicklung von mobilen Apps für iOS und Android mit speziellen Funktionen für mobile Endgeräte.

Manche Plattformen generieren Code, der zur Laufzeit ausgeführt wird, bei anderen werden die darunterliegenden strukturierten Modelle interpretiert. Prinzipiell sollte der Endnutzer keinen Unterschied bemerken, ob eine Lösung mit einer Low-Code-Plattform oder klassisch entwickelt wurde. Denn eine Low-Code-­Entwicklung liefert das gleiche Produkt wie ein klassischer Programmieransatz, jeweils im Kontext der gewählten Plattformtechnologie. Damit eignen sich die generalisierten Plattformen dazu, jegliche Art von Web- und Mobilapplikation mit Businessfokus industrieunabhängig zu implementieren. Hierzu einige konkrete Beispiele:

- Kunden- und Mitarbeiterportale, zum Beispiel für Self Service im Bereich Versicherung oder Banking
- Field-Services-Applikationen, zum Beispiel Applikationen für Inspektionen im Bereich Immobilienverwaltung oder Maschinen in der Fertigungsindustrie.
- Mobilapplikationen, wie zum Beispiel Mobile Banking Apps, Fitness Tracker oder Genehmigungen für Workflows für mobile Mitarbeitende.
- Customer Onboarding, zum Beispiel für Energieleistungen oder in der öffentlichen Verwaltung.

Da das Spektrum der Möglichkeiten nahezu unbegrenzt ist, sind die Limitierungen primär beschränkt auf die Vorstellungskraft der Nutzenden oder die Bereitschaft, die Technologien in einem bestimmten Bereich einzusetzen.

Einschränkungen von Low Code

Low-Code-Plattformen sind eine hervorragende Wahl für viele Anwendungsfälle, insbesondere wenn es darum geht, schnell und kosteneffizient Anwendungen zu entwickeln. Sie haben jedoch auch Grenzen, obwohl sie im Allgemeinen Turing-vollständig sind. Wenn ein System Turing-vollständig ist, kann es prinzipiell jedes Problem lösen, das ein Computer lösen kann, solange ausreichend Ressourcen zur Verfügung stehen.

Einige der wichtigsten Einschränkungen von Low-Code-Plattformen zusammengefasst:


Komplexität und Flexibilität:
- Begrenzte Anpassungsmöglichkeiten: Low-Code-Plattformen können bei sehr komplexen oder spezifischen Anforderungen an ihre Grenzen stossen, da die vorgefertigten Komponenten und Module nicht immer vollständig angepasst werden können.
- Proprietäre Einschränkungen: Manchmal sind die Funktionen und Möglichkeiten der Plattform durch deren proprietäre Natur begrenzt, was die Flexibilität bei der Umsetzung spezieller Anforderungen einschränken kann.

Leistung und Skalierbarkeit:
- Performance-Engpässe: Bei sehr komplexen Anwendungen oder gros­sen Datenmengen kann die Leistung der erstellten Anwendungen beeinträchtigt sein, da Low-Code-Plattformen möglicherweise nicht so optimiert sind wie massgeschneiderte Lösungen.
- Skalierbarkeitsprobleme: Nicht alle Low-­Code-Plattformen sind darauf ausgelegt, sehr grosse oder stark wachsende Anwendungen effizient zu unterstützen.

Kosten:
- Lizenzkosten: Während Low-Code-­Plattformen oft mit geringeren Entwicklungs- und Wartungskosten werben, können die Lizenzkosten insbesondere bei wachsender Nutzerzahl oder umfangreicher Nutzung erheblich sein.
- Verborgene Kosten: Es können zusätzliche Kosten für Schulungen, Anpassungen oder spezialisierte Erweiterungen anfallen, die bei der ursprünglichen Planung nicht berücksichtigt wurden.

Der Ablauf eines Projekts unterscheidet sich im Kern nicht von einem klassischen Softwareprojekt, allerdings unterstützt das Tooling teilweise die Aktivitäten, die stattfinden, zum Beispiel beim Testen/Validieren von Code beziehungsweise der Software oder beim Deployment der Lösungen.

Generell ist ein agiler Projektmanagementansatz für eine Projektumsetzung zu empfehlen, auch wenn man ein Low-Code-Projekt mit jeder Projektmanagementmethode umsetzen kann. Mit einem Wasserfallansatz oder anderen eher statischen Ansätzen verwässert man einige der Vorteile, wie zum Beispiel die Fähigkeit, schnelle Änderungen durchzuführen, um damit auf das Stakeholder-Feedback zu reagieren und am Ende eine bessere Applikation zu erstellen. Oft ändern sich Anforderungen im Projektverlauf, weswegen eine agile Vorgehensweise sinnvoll ist – mit Low-Code-Plattformen aufgrund der Vorteile und Fähigkeiten umso mehr.

Einige Rollen in einem Projekt verschieben sich mit Low Code, so können zum Beispiel Businessanalysten teilweise direkt mit den Tools arbeiten und den Entwickelnden bereits Rumpfcode oder Screen-Mockups zur Verfügung stellen. Auch ist die Kollaboration zwischen Entwickelnden, Analystinnen und Analysten sowie den Fachabteilungen typischerweise leichter, da sich an visuellem Code oder ersten Mockups sehr viel besser über die Anforderungen diskutieren lässt. Speziell auf die Fachabteilungen übt ein Low-Code-Projekt mehr Druck aus, zum Beispiel Anforderungen zu liefern, aber auch Anforderungen zu testen und abzunehmen. Wenn ein Team drei bis viermal so viele Features in derselben Zeit umsetzen kann, kann dies die Fachabteilungen belasten.

Um mit einer Low-Code-Plattform zu arbeiten, benötigt man eine Kombination aus grundlegenden technischen Fähigkeiten, Kenntnissen in den spezifischen Funktionen der Plattform und einem Verständnis der Geschäftsanforderungen. Die Hauptanwendergruppe, um vor allem komplexere Anwendungen umzusetzen, sind nach wie vor Entwicklerinnen und Entwickler, denn Low Code ist ein IT-Enabler. Hier einige der wichtigsten Kenntnisse und Fähigkeiten, die hilfreich sind:

Grundlegende technische Fähigkeiten:
- IT-Grundlagen: Verständnis von grundlegenden IT-Konzepten wie Datenbanken, Netzwerke, Betriebssysteme und Softwarearchitekturen.
- Grundlagen der Programmierung: Basiswissen in einer oder mehreren Programmiersprachen kann hilfreich sein, auch wenn es nicht zwingend erforderlich ist. Kenntnisse in Skriptsprachen wie JavaScript oder Python sind oft nützlich.
- Verständnis von APIs: Grundkenntnisse in der Arbeit mit APIs und Webservices, da viele Low-Code-Plattformen die Integration mit anderen Systemen über APIs ermöglichen.


Plattform-spezifische Kenntnisse:
- Bedienung der Plattform: Vertrautheit mit der Benutzeroberfläche und den Werkzeugen der gewählten Low-Code-Plattform, einschliesslich Drag-and-Drop-Editoren, Formular- und Workflow-Designern.
- Komponenten und Module: Kenntnis der verfügbaren vorgefertigten Komponenten und Module sowie deren Anpassungsmöglichkeiten.
- Spezifische Skript- und Ausdruckssprache: Einige Low-Code-Plattformen haben eigene Skript- oder Ausdruckssprachen, die zur Implementierung komplexerer Logik verwendet werden können.

Geschäftsverständnis:
- Anforderungsanalyse: Fähigkeit, Geschäftsanforderungen zu verstehen, zu analysieren und in technische Spezifikationen umzusetzen.
- Prozessverständnis: Verständnis der Geschäftsprozesse, die automatisiert oder optimiert werden sollen, und Fähigkeit, diese Prozesse in der Low-Code-Plattform abzubilden.
- Benutzererfahrung (User Experience): Kenntnisse in der Gestaltung benutzerfreundlicher Oberflächen, Prozesse und einer durchgängig positiven User Expe­rience.

Projektmanagement und Zusammenarbeit:
- Projektmanagement: Grundlegende Kenntnisse im Projektmanagement, um die Entwicklung und Bereitstellung der Anwendung planen und steuern zu können.
- Teamarbeit und Kommunikation: Fähigkeiten in der Zusammenarbeit mit anderen Teammitgliedern, einschliesslich Entwicklern, Geschäftsanalysten und Endbenutzern.

Spezifische Anwendungsfälle:
- Integration von Datenquellen: Fähigkeit, verschiedene Datenquellen zu integrieren und zu verwalten, einschliesslich der Einrichtung von Datenverbindungen und der Verwendung von Konnektoren.
- Workflow-Automatisierung: Kenntnisse in der Automatisierung von Geschäftsprozessen und Workflows innerhalb der Plattform.
- Sicherheits-/Compliance-Anforderungen: Verständnis relevanter Sicherheits- und Compliance-Anforderungen für die zu entwickelnde Anwendung.

Um die notwendigen Kenntnisse und Fähigkeiten zu erwerben, können folgende Ressourcen hilfreich sein:
- Online-Kurse und Tutorials: Viele Plattformen bieten eigene Schulungen, Tutorials und Zertifizierungen an.
- Dokumentation und Community: Die offizielle Dokumentation und Community-Foren der Plattform können wertvolle Informationen und Unterstützung bieten.
Praxisprojekte: Praktische Erfahrung durch eigene Projekte oder durch die Teilnahme an realen Projekten im Arbeitsumfeld.

Bei etablierten Plattformen gibt es zusätzlich eine rege Partnerlandschaft, in der Dienstleistungen speziell in Bezug auf die jeweilige Plattform bezogen werden können. Allgemeine IT-Dienstleister, die die notwendigen Ressourcen entlang der Wertschöpfungskette eines Softwareprojekts bereitstellen können – vom Entwickeln der Idee über die Anforderungsanalyse bis zur Entwicklung und final zum Betrieb und der Wartung einer Lösungslandschaft – sind ebenfalls nutzbare Hilfen. Idealerweise findet sich ein Partner, der alle Lücken zwischen den unternehmenseigenen Ressourcen und einem erfolgreichen Projekt schliessen kann.

Der richtige Mix machts

Während Low-Code-Plattformen darauf abzielen, die Entwicklung von Anwendungen zu vereinfachen und auch Nicht-Programmierern zugänglich zu machen, erfordert die effektive Nutzung dennoch ein gewisses Mass an technischem Verständnis und spezifischen Kenntnissen der jeweiligen Plattform.

Mit der richtigen Kombination aus technischem Know-how, Geschäftsverständnis und Plattformkenntnissen kann man jedoch schnell produktiv werden und leistungsfähige Anwendungen erstellen.

Der Autor

Markus Henschel ist Principal Low Code Consultant und Head of Low Code bei Zühlke und aktuell hauptverantwortlich für das Thema Low Code weltweit. Markus Henschel beschäftigt sich seit 2015 in verschiedenen technischen, Management- und Vertriebsrollenin Vollzeit mit Low Code und hat dadurch einen breiten Blick auf die Technologie, ihre Chancen und Möglichkeiten. Die Zühlke Group ist ein globaler Innovations- und Transformationspartner. Das Unternehmen berät und unterstützt seine Kunden, sich durch die Nutzung neuer Technologien besser für die Zukunft aufzustellen.


Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Wieviele Fliegen erledigte das tapfere Schneiderlein auf einen Streich?
GOLD SPONSOREN
SPONSOREN & PARTNER