![](https://www.striped-giraffe.com/wp-content/uploads/2024/06/low-code-software-development-header-image-1.jpg)
Low-Code: Die Grenzen des Hypes
Softwareentwicklung im Low-Code-Verfahren ist am besten, wenn sie vollständig programmierbar ist.
Individuelle Softwareentwicklung kann teuer sein. Sie brauchen ein qualifiziertes Entwickler-Team und entsprechende Technologien. Hinzu kommt der komplexe Prozess von Konzeption, Programmierung, Test, Bereitstellung und Wartung Ihres Systems. Die damit verbundenen Kosten und der Zeitaufwand sind beträchtlich und veranlassen viele Unternehmen, nach alternativen Lösungen zu suchen.
Immer mehr Unternehmen interessieren sich daher für Low-Code-Entwicklung – ein vielversprechender Weg zur Rationalisierung des Softwareentwicklungsprozesses.
Low-Code-Plattformen haben die Aufmerksamkeit auf sich gezogen, indem sie eine interessante Lösung für Unternehmen anbieten, die ihre digitale Transformation vorantreiben wollen. Die Realität sieht jedoch meist anders aus.
Unternehmen, die auf Low-Code-Entwicklung setzen, sehen sich schon bald mit einer großen Herausforderung konfrontiert: der wachsenden Kluft zwischen ihren Anpassungswünschen und den begrenzten Möglichkeiten der Plattform. Was anfangs wie die perfekte Lösung für Softwareprobleme aussieht, kann bei komplexen Anforderungen und sich wandelnden Systemarchitekturen schnell an seine Grenzen stoßen.
Und was genau versprechen Anbieter von Low-Code-Plattformen ihren potenziellen Kunden?
Das Versprechen
In den Werbeversprechen von Low-Code-Softwareentwicklungstools stößt man häufig auf die folgenden Behauptungen:
- Beschleunigtes Prototyping
- Kein Bedarf mehr an Softwareentwicklern
- Schnellere und einfachere Bereitstellung
- Selbstständige Erstellung von Anwendungen durch Business-Anwender ohne IT-Kenntnisse oder Unterstützung durch IT-Teams
- Mutmaßliche Anpassungsfähigkeit an praktisch jeden Anwendungsbedarf
Solche überzogenen Behauptungen führen jedoch oft zu erheblichen Missverständnissen über das wahre Potenzial von Low-Code-Plattformen. Es ist an der Zeit, diese überschwänglichen Aussagen zu entmystifizieren und die Realität hinter dem Hype genauer zu beleuchten.
Die Realität
Es ist ein weit verbreiteter Irrglaube, dass Low-Code-Plattformen es ermöglichen, eine beliebig komplexe Anwendung zu erstellen, die allen individuellen Bedürfnissen und Anforderungen gerecht wird. In Wirklichkeit bedeutet Low-Code, dass Sie sich an die vom Hersteller vorgegebenen Konzepte für die Anwendungsentwicklung halten müssen, insbesondere an die Konfiguration eines Datenmodells, von Formularen, Prozessen, der Benutzeroberfläche (UI), Zugriffsrechten und mehr.
Weichen Ihre Anforderungen von diesen vorgegebenen Konzepten ab, stoßen Sie auf Einschränkungen, die nur schwer zu überwinden sind. Es ist zwar möglich, diese Beschränkungen zu umgehen, doch ist dies oft mit erheblichem Aufwand verbunden, selbst bei der Umsetzung einfacher, nicht standardisierter Anforderungen.
Es stimmt jedoch, dass sich mit Low-Code-Tools grundlegende Anwendungen mit einer Handvoll einfacher Formulare, Bildschirme, Objekte oder Prozesse schnell und einfach erstellen lassen. Diese Benutzerfreundlichkeit gilt auch für Personen mit geringen IT-Kenntnissen.
Deshalb mag Low-Code für viele Unternehmen zunächst wie eine verlockende Lösung erscheinen, die sich später jedoch als Falle entpuppen kann.
Wenn Sie mit niedrigen Anforderungen beginnen, scheint die Verwendung von Low-Code unmittelbare Vorteile zu bieten. Sobald sich Ihre Anwendung jedoch weiterentwickelt und anspruchsvollere Funktionen hinzukommen, werden Sie wahrscheinlich auf Hindernisse stoßen. Es werden maßgeschneiderte Funktionen und komplexe Integrationen erforderlich, die die Grenzen von Low-Code aufzeigen.
Dann müssen Sie Workarounds entwickeln, die jedoch zeitaufwändig sind und zu erhöhten Kosten und unter Umständen zu Frustrationen führen. Anstatt die versprochenen Vorteile zu nutzen, sehen Sie sich mit Herausforderungen einer zunehmenden Arbeitsbelastung konfrontiert – speziell dann, wenn die jeweilige Plattform proprietäre Technologien und Konzepte nutzt.
Daher muss man sich darüber im Klaren sein, dass Low-Code keine magische Lösung ist, die ohne Programmierer auskommt. Laien, die sich in die Low-Code-Entwicklung stürzen, können kritische Aspekte des Anwendungsdesigns übersehen, was die künftige Skalierbarkeit und Wartungsfreundlichkeit beeinträchtigen kann.
Ebenso entbindet Low-Code nicht von der Einhaltung der Standardentwicklungszyklen. Obwohl man Änderungen schnell implementieren und zeitnah bereitstellen möchte, kann die Vernachlässigung der richtigen Konzeptions-, Entwicklungs- und Testzyklen im Nachhinein zu Problemen führen.
Wann ist Low-Code also erfolgreich und wann ist es unzureichend? Es ist wichtig, die charakteristischen Grenzen dieser Plattformen zu verstehen.
Das können wir Ihnen anhand eines konkreten Beispiels zeigen. Wir haben dazu eine auf unsere Bedürfnisse zugeschnittenen HR-Lösung entwickelt. Dabei haben wir drei Phasen der Low-Code-Anwendungsentwicklung identifiziert, die jeweils anspruchsvollere Tools erfordern, um erfolgreich zu sein.
![Innovative software developer in casual attire with headphones, standing before a blur of colorful coding screens.. AI generated.](https://www.striped-giraffe.com/wp-content/uploads/2024/06/low-code-software-development-01.jpg)
Stufe 1: Ein Kinderspiel
Überlegen Sie sich einige einfache Prozesse in Ihrem Unternehmen, die von der Digitalisierung und Automatisierung profitieren könnten. Dazu könnten beispielsweise folgende Aufgaben gehören:
- Erfassen von Daten mit Online-Formularen
- Hochladen und Verwalten von Dokumentendateien
- Erstellen von Aufgaben-Checklisten
- Erstellen eines Kalenders für Veranstaltungen, Besprechungen usw.
- Vorbereiten und Einreichen von Anträgen oder Anfragen
- Erstellen eines Genehmigungsprozesses
- Zuweisen und Verfolgen von Status
- Einrichten und Versenden von Benachrichtigungen, Warnungen oder Erinnerungen
- Erzeugen von Standarddokumenten
- Automatisieren der Datenverfolgung
- Automatische Bestätigungen verschicken
- Entwickeln eines einfachen Arbeitsablaufs
- Erstellen eines Ticketingsystems
- Sammeln von Feedback
- Einrichten einer Online-Registrierung
- und viele mehr
Nehmen wir an, dass diese Prozesse von ihrer Art her nicht in eines Ihrer bestehenden Systeme passen. Darüber hinaus wäre eine Erweiterung Ihrer Unternehmenslösungen für diese Aufgaben im Hinblick auf den potenziellen Nutzen unverhältnismäßig teuer und komplex.
Daher beschließen Sie, eine einfache Anwendung mit einem erschwinglichen Low-Code-Tool wie Kissflow oder Microsoft Power Apps zu erstellen.
Fallbeispiel: HR-Anwendung
- Ihr Unternehmen wächst schnell, so dass Sie immer mehr Mitarbeiter einstellen müssen, aber Sie verfügen nicht über ein ausgereiftes HR-System. Daher beschließen Sie, eine einfache Anwendung zur Unterstützung des Einstellungsprozesses zu entwickeln.
- Die Anwendung soll es Ihnen zunächst ermöglichen, Bewerberdaten einzugeben, Dokumentendateien hochzuladen, einen Kalender mit allen Besprechungen und Vorstellungsgesprächen mit den Bewerbern zu verwalten, Rückmeldungen aller Beteiligten einzubeziehen und den Bewerbern einen entsprechenden Status zuzuweisen.
- Die erste Erfahrung mit Low-Code war fantastisch. Sie haben es geschafft, Ihren Prozess in nur wenigen Tagen einzurichten und ihn sofort in Ihrer Organisation zu implementieren.
- Durch diesen Erfolg bestärkt, haben Sie beschlossen, weitere Prozesse einzubinden. Sie fingen an, einfache Aufgaben im Zusammenhang mit dem Onboarding neuer Mitarbeiter zu digitalisieren. Sie haben eine Funktion in Ihre Anwendung aufgenommen, die automatisch Einstellungsdokumente erstellt und den entsprechenden Mitarbeitern bestimmte Aufgaben zuweist, z. B. die Einrichtung von E-Mail-Konten oder den Zugang zum Intranet und anderen digitalen Ressourcen/Tools. Außerdem haben Sie eine Checkliste mit allen Onboarding-Aufgaben erstellt, um deren Status zu verfolgen.
- Anschließend haben Sie einen entsprechenden Offboarding-Prozess für Mitarbeiter, die das Unternehmen verlassen, eingeführt.
![Frustrated annoyed woman confused by computer problem, annoyed b](https://www.striped-giraffe.com/wp-content/uploads/2024/06/low-code-software-development-03.jpg)
Stufe 2: Jetzt kommt der schwierigere Teil
Je weiter Ihr Projekt fortschreitet, desto komplexer werden die Anforderungen an Ihre Anwendung. Dazu gehören ein umfangreiches Datenmodell, Autorisierungsverfahren, umfangreiche Anpassungen der Benutzeroberfläche und die Notwendigkeit einer asynchronen Integration mit anderen Systemen.
Außerdem möchten Sie den Benutzern der Anwendung die Möglichkeit geben, auf bestimmte Informationen zuzugreifen und diese zu bearbeiten. Dazu müssen Sie Ihr Datenmodell umgestalten und Sicherheit auf Zeilenebene (RLS) implementieren. Damit wird gewährleistet, dass der Zugriff auf Informationen in der Datenbank zeilenweise gesteuert wird, so dass die Benutzer nur die Daten sehen können, für die sie berechtigt sind.
Einfache Low-Code-Plattformen bieten diese erweiterten Funktionen nicht. Dazu bedarf es ausgereifterer, wenn auch teurerer Tools wie Mendix, Pega oder OutSystems.
Wichtig ist, dass Sie an diesem Punkt beginnen, einen Entwicklungsansatz zu wählen, der sich an der traditionellen Softwareentwicklung orientiert. Sie können sich nicht mehr nur auf Drag-and-Drop-Funktionen verlassen. Stattdessen sind eine gründliche Planung und die Einhaltung etablierter Softwareentwicklungs- und Release-Zyklen unerlässlich.
Fallbeispiel: HR-Anwendung (Fortsetzung)
- Nachdem Ihr zentraler Einstellungsprozess abgeschlossen ist, soll Ihre Anwendung nun für jeden neuen Mitarbeiter automatisch einen Datensatz in der Mitarbeiterdatenbank erstellen, der seine persönlichen Daten und elektronischen Dokumente umfasst.
- Darüber hinaus sollte Ihre Anwendung nahtlos mit anderen Systemen synchronisiert werden, um automatisch Konten für neue Mitarbeiter zu erstellen und ihnen den entsprechenden Zugriff auf Unternehmensressourcen (E-Mail, Intranet, Wiki, JIRA, Cloud Drive usw.) zu gewähren.
- Außerdem möchten Sie die Funktionalität Ihrer Anwendung auf die Verwaltung von externem Personal wie Freiberuflern oder Subunternehmern ausweiten. In Ihrer Anwendung möchten Sie deren persönliche Profile, Verträge und Zugriffsrechte genauso verwalten wie die Ihrer Mitarbeiter.
- Sie möchten außerdem, dass Ihre Anwendung verschiedene Berichte auf der Grundlage bestimmter Kriterien erstellt, z. B. Beschäftigungsart, Vertragsstatus, Gehaltsangaben und Arbeitszeiten.
- Schließlich möchten Sie jedem Mitarbeiter die Möglichkeit geben, für personalbezogene Aufgaben auf das System zuzugreifen, von der Aktualisierung seiner persönlichen Daten über die Beantragung offizieller Dokumente, z. B. einer Gehaltsbescheinigung für ein Bankdarlehen, bis hin zur Einreichung von Mitarbeiteranträgen, z. B. eines Urlaubsantrags.
Stufe 3: Die Grenzen sind erreicht
Asynchrone Integration ist mit den meisten Low-Code-Tools relativ einfach zu erreichen. Kompliziert wird es jedoch, wenn Sie Daten in Echtzeit anzeigen und den Benutzern die Möglichkeit geben wollen, mit diesen Daten zu arbeiten.
Dies erfordert eine synchrone Integration, d. h. Ihre Anwendung muss die APIs anderer Systeme in Echtzeit aufrufen, um auf Daten zuzugreifen und diese anzuzeigen. Die meisten Low-Code-Plattformen haben mit dieser Art der Integration Schwierigkeiten. Normalerweise ziehen sie Daten aus einem Back-End-System und zeigen sie in einer lokalen Datenbank an. Dies führt jedoch zu einer Vervielfältigung der Daten, die in der Regel nicht erwünscht ist.
Eine weitere große Herausforderung ist die Implementierung von stark angepassten Benutzeroberflächen. Die meisten Low-Code-Plattformen bieten vordefinierte Benutzeroberflächenvorlagen und -komponenten sowie Standard- Screenflow-Konzepte. Wenn Ihre Vision von diesen Standards abweicht, wird die Anpassung schwierig, oft sogar unmöglich.
Die Definition von Regeln für die automatische Datenaufbewahrung ist ebenfalls knifflig. Gesetzliche oder unternehmensinterne Richtlinien können vorschreiben, dass Daten nach einem bestimmten Zeitraum gelöscht werden müssen. Viele Low-Code-Tools sind nicht in der Lage, diesen Prozess problemlos zu automatisieren.
Strenge Anforderungen an die Datensicherheit können weitere Komplikationen mit sich bringen. Wenn Ihre Anwendung sensible Daten verarbeitet, könnte Ihr IT-Sicherheitsteam darauf bestehen, sie auf einer Unternehmensinfrastruktur zu hosten, die besondere Anforderungen an die Verschlüsselung oder die Datenverarbeitung stellt. Viele Low-Code-Plattformen, die als SaaS-Lösungen angeboten werden, unterstützen dies nicht.
Die Lösung von Performance-Problemen trägt zur Komplexität bei. Wenn Ihr Low-Code-System wächst, kann sich die Leistung verschlechtern. Da Sie keinen Zugriff auf den Quellcode haben, ist für die Diagnose und Behebung von Problemen die Unterstützung des Anbieters erforderlich. Das Gleiche gilt für Bugs und Sicherheitslücken.
Diese Einschränkungen verdeutlichen einen kritischen Punkt: Die Entwicklung komplexer Systeme auf der Grundlage individueller Anforderungen, die erheblich vom Standard abweichen, kann mit Low-Code-Plattformen sehr schwierig oder sogar unmöglich werden. In diesem Fall verschwinden die ursprünglichen Vorteile von Low-Code.
![selective focus of irritated programmer breaking keyboard while sitting near african american colleague](https://www.striped-giraffe.com/wp-content/uploads/2024/06/low-code-software-development-02.jpg)
Fallbeispiel: HR-Anwendung (Fortsetzung)
- Sie möchten, dass die gesamte Kommunikation mit den Bewerbern in Ihrem HR-Tool verwaltet wird, wobei E-Mails, Texte, Zusammenfassungen von Gesprächen und Interviews für den Zugriff der Beteiligten gespeichert werden.
- Ihr IT-Sicherheitsteam verlangt eine spezielle Verschlüsselung für sensible Daten und alle Dokumente.
- Bestimmte Bewerberdaten müssen sechs Monate nach Ende der Einstellung gelöscht werden, wenn der Bewerber abgelehnt wird.
- Sie möchten Ihre HR-Anwendung über eine synchrone API mit einem Zeiterfassungssystem integrieren, um Aufgaben, Arbeitsstunden oder Abwesenheiten von Mitarbeitern in deren Profilen anzuzeigen.
- Ebenso möchten Sie eine Integration mit dem Gehaltsabrechnungssystem vornehmen, um Gehälter, Boni, Abzüge, Leistungen und Steuern der Mitarbeiter zu überprüfen.
- Bei beiden Integrationen gehören die Daten zu anderen Systemen und sollten nicht in Ihrem HR-Tool gespeichert werden. Sie müssen diese Daten jedoch durchsuchen und in benutzerdefinierten Tabellen oder Diagrammen darstellen, was erhebliche Anpassungen der Benutzeroberfläche erfordert.
Das Beste aus beiden Welten
Selbst fortschrittliche Low-Code-Tools haben Schwierigkeiten mit komplexen Datenmodellen und Echtzeitintegrationen. Wie lassen sich diese Beschränkungen überwinden?
Die Antwort liegt in der Kodierung. Durch Ändern oder Ersetzen des Codes können Sie die meisten Beschränkungen umgehen. Dazu benötigen Sie jedoch ein Tool, das eine tiefgreifende Anpassung des Codes ermöglicht. Hier kommen High-End-Plattformen wie A12 ins Spiel.
Mit A12 können Sie typische Low-Code-Aufgaben einfach und schnell durchführen:
- Modellierung Ihrer Daten
- Formularerstellung für die Dateneingabe
- Konfiguration der Datenanzeige und -suche
- Einrichten von Anwendungsnavigation und Bildschirmabläufen
Business-Analysten können diese Aufgaben selbständig erledigen. Die daraus resultierenden Modelle können dann an Entwickler zur Integration in die Anwendungserstellung weitergegeben werden.
Wenn erweiterte Funktionen benötigt werden, können Entwickler:
- sich asynchron oder synchron mit Anwendungen von Drittanbietern integrieren
- Echtzeitdaten aus anderen Quellen abrufen
- beliebige UI-Elemente oder Bildschirmabläufe anpassen
- komplexe Geschäftslogik implementieren
- das Standardverhalten der Plattform anpassen
- die Anwendung auf Ihrer eigenen Infrastruktur oder einem beliebigen Cloud-Service bereitstellen
Einfach ausgedrückt: Plattformen wie A12 bieten das Beste aus beiden Welten. Sie erhalten alle Vorteile von Low-Code und können Ihre Anwendung mit Full-Code-Funktionen umfassend anpassen.
Entwickler oder Anwender können entscheiden, ob sie die Standardfunktionen der Plattform nutzen oder in den Full-Code-Modus wechseln wollen. Standardanforderungen und -prozesse können im Low-Code-Modus modelliert werden, wodurch sich der Codierungsbedarf minimiert. Kundenspezifische Anforderungen können durch Bearbeiten oder Hinzufügen von neuem Code berücksichtigt werden.
Da Sie Zugriff auf den Code Ihrer Anwendung haben, können Sie sie so einsetzen, wie Sie es wünschen. Sie können sie zum Beispiel in einer öffentlichen Cloud wie AWS ausführen.
So haben Sie die volle Kontrolle über Ihr System. Wenn Probleme auftreten, können Sie die Anwendung debuggen und testen, um Fehler zu erkennen und zu beheben.
Plattformen wie A12 bieten Flexibilität, Kontrolle und die Möglichkeit, jede Anforderung zu erfüllen, indem sie die Einfachheit von Low-Code mit der Leistungsfähigkeit von Full-Code-Entwicklung kombinieren.
Fazit
Low-Code-Plattformen eignen sich hervorragend für die Entwicklung einfacher Anwendungen ohne umfassende IT-Kenntnisse, haben aber mit komplexen und nicht standardisierten Geschäftsanforderungen zu kämpfen. Sie eignen sich gut für Aufgaben wie Datenerfassung und grundlegende Arbeitsabläufe, aber wenn der Anpassungsbedarf wächst, werden ihre Grenzen deutlich. Für anspruchsvolle Projekte werden oft fortschrittlichere Low-Code-Tools und professionelle Entwickler benötigt.
Das Versprechen einer schnellen Bereitstellung und eines minimalen Bedarfs an Entwicklern ist verlockend, kann aber zu Missverständnissen führen. Unternehmen können anfangs davon profitieren, stehen aber vor erheblichen Hürden, wenn sich die Anwendungen weiterentwickeln. Plattformen wie A12 bieten Flexibilität, indem sie bei Bedarf einen Wechsel in den Full-Code-Modus ermöglichen und so die Benutzerfreundlichkeit mit der Leistungsfähigkeit der traditionellen Programmierung verbinden.
Letztendlich sollte Low-Code nicht als Pauschallösung betrachtet werden. Um eine langfristige Skalierbarkeit und Anpassungsfähigkeit zu gewährleisten, sollten Unternehmen Programmierung in Low-Code-Projekte mit einplanen oder Plattformen wählen, die eine tiefgreifende Anpassung ermöglichen. Dieser Ansatz gewährleistet die Vorteile von Low-Code und erfüllt gleichzeitig komplexe Geschäftsanforderungen.