Bei der Foobar Agency sind wir ganzheitliche Problemlöser. Doch Probleme sind nicht immer nur etwas Negatives. Während abnehmende Umsätze, Engpässe im Conversion-Funnel und ineffiziente Prozesse typische negative Probleme darstellen, können Probleme auch positiv sein. Zum Beispiel: Wie lässt sich ein neues Geschäftsmodell erfolgreich umsetzen? Oder wie kann ein neues Produkt erfolgreich auf den Markt gebracht werden? Auch dies sind Herausforderungen, die es zu meistern gilt. Wenn wir in der Lage sind, solche Probleme zu lösen, können die Ergebnisse äußerst positiv sein.

Technologie ist ein zentraler Bestandteil unserer Arbeit bei der Foobar Agency. Wir verstehen, wie wichtig Technologie ist, um positiven Wandel zu bewirken und komplexe Probleme zu lösen. Für uns ist Technologie nicht nur eine unterstützende Funktion, sondern ein integraler Teil der Lösung. Wir sind leidenschaftlich darin, Code zu schreiben, der beeindruckende Benutzeroberflächen und Nutzererlebnisse schafft, sei es in Form von Webseiten, mobilen Apps oder anderen Produkten.

Doch es gibt Grenzen beim Schreiben von Code. Wir schreiben Code nicht nur, um Code zu schreiben. Erfolg misst sich nicht an der Anzahl der geschriebenen Codezeilen („SLOC“), denn die Länge des Codes bedeutet nicht automatisch, dass er wertvoll ist. Stattdessen messen wir Erfolg an KPIs, die den tatsächlichen Nutzen für den Endnutzer widerspiegeln. Für webbasierte, kundenorientierte Anwendungen könnten das beispielsweise Web-Vitals oder die Stabilität von Systemen und Prozessen sein. Diese technischen Faktoren bringen konkrete Vorteile mit sich, wie höhere Suchmaschinen-Rankings, mehr organischen Traffic und eine einfachere Nutzung der Anwendung. Letztendlich messen wir den Erfolg an validierten Hypothesen und den daraus resultierenden Geschäftsergebnissen. Diese Faktoren sind entscheidend! Was nützt es, den schönsten Code zu schreiben, wenn er dem Endnutzer keinen Mehrwert bietet? Was nützt eine großartige CI/CD-Pipeline, wenn nichts von Wert für den Benutzer implementiert wird? Genau: nichts.

Das bedeutet, dass wir uns ständig die Frage stellen müssen, ob die erste Lösung, die uns in den Sinn kommt, tatsächlich die richtige für die aktuelle Situation ist. Es kann sein, dass unsere erste Idee architektonisch eleganter ist. Es könnte sein, dass sie besser skalierbar ist in einer Zukunft, die wir noch nicht absehen können. Es könnte der aktuelle „Stand der Technik“ für ein technisches Problem sein. Aber, um Marie Kondo zu paraphrasieren: „Schafft sie echten Mehrwert?“

Es gibt viele Themen, die in diesem Zusammenhang diskutiert werden könnten. Zum Beispiel SaaS und PaaS. Oder die Frage, ob eine CI/CD-Pipeline wirklich das Erste sein sollte, was ein Team einrichtet. Heute möchten wir jedoch über Low-Code-Plattformen sprechen.

Was sind Low-Code-Entwicklungsplattformen?

Fragen wir doch mal bei ChatGPT nach einer Definition:

Eine Low-Code-Entwicklungsplattform ist eine Softwareentwicklungsumgebung, die Entwicklern ermöglicht, Anwendungen mit minimalem oder keinem manuellen Codieren zu erstellen. Die Plattform bietet visuelle Werkzeuge und vorgefertigte Komponenten, die es Entwicklern ermöglichen, Anwendungen schneller und mit weniger Aufwand zu erstellen, zu testen und bereitzustellen. Das Ziel von Low-Code-Plattformen ist es, die App-Entwicklung einem breiteren Spektrum von Nutzern, einschließlich nicht-technischer Nutzer und Geschäftsanwendern, zugänglich zu machen, um Organisationen zu helfen, schnell auf sich ändernde Geschäftsanforderungen zu reagieren.“ — ChatGPT, Stand 4. Februar

Das klingt überzeugend. Doch wie immer gibt es zwei Seiten der Medaille. Ein System sollte niemals unbedacht implementiert werden. Genauso wichtig wie der Blick auf die Vorteile ist der Blick auf Sicherheit, Compliance und Governance sowie auf die Einhaltung der DSGVO. Es gibt auch kritische Stimmen, die sagen, dass die Nutzung solcher Plattformen zu einem Mangel an Verständnis für den Entwicklungsprozess und den zugrunde liegenden Code führen kann. Dies könnte wiederum zu Sicherheits- und Compliance-Problemen führen. Unabhängig davon, welche Meinung Sie zu diesem Thema haben, ist es wichtig zu wissen, mit welchem Ziel Sie eine solche Plattform nutzen und sich der Vorteile und auch der Grenzen bewusst zu sein. Es ist entscheidend zu verstehen, dass solche Plattformen viele Vorteile bieten können, aber kein Allheilmittel für alle Herausforderungen sind.

Aus unserer Sicht eignen sich Low-Code-Plattformen besonders gut zur Validierung von Hypothesen. Gerade in Projekten zur Geschäftsentwicklung beginnen wir mit dem Kunden, indem wir Hypothesen formulieren, die dann schnell und effizient validiert werden müssen. Hier kommen Low-Code-Plattformen ins Spiel, da sie uns die Möglichkeit bieten, je nach Bedarf schnell Prototypen, Testversionen oder einzelne Komponenten einer Anwendung zu entwickeln. So helfen uns Low-Code-Plattformen, Hypothesen zügig und präzise zu validieren und uns die notwendigen Erkenntnisse zu liefern, um die bestmöglichen Entscheidungen zu treffen.

Ein Anwendungsbeispiel

Betrachten wir ein Beispiel, bei dem wir traditionell vorgehen könnten, und wie ein Ansatz mit Low-Code-Entwicklungsplattformen aussehen könnte.

Der Kunde hat ein Altsystem, das als System of Record (SOR) fungiert. Es ist also die autoritative Datenquelle für bestimmte Informationen. Nehmen wir an, es enthält Produktdaten, einschließlich Bestandsinformationen für einen Online-Shop. Weiter nehmen wir an, dass wir das Online-Geschäft des Kunden neu aufbauen und skalieren sollen. Das Altsystem reagiert jedoch langsam und ist nicht darauf ausgelegt, hohe Lasten zu bewältigen.

1) Das Altsystem mit einer REST-Schnittstelle und einem Performance-Upgrade versehen:

Ein offensichtlicher Ansatz besteht darin, das Altsystem zu erweitern und es in die Lage zu versetzen, die neuen oder zukünftigen Anforderungen zu erfüllen. Oft sind die bestehenden Entwickler jedoch mit Wartung und kleineren Erweiterungen beschäftigt, sodass wir abwägen müssen, ob wir diese Aufgaben pausieren oder neue Entwickler ins Team holen. Beide Lösungen haben Konsequenzen:

Wenn wir Entwickler von der Wartung und kleineren Erweiterungen abziehen, bleiben andere Aufgaben liegen. Kann sich das Unternehmen diese Opportunitätskosten leisten? Normalerweise lautet die Antwort „Nein“, da das laufende Geschäft die Weiterentwicklung finanziert und daher nicht ins Stocken geraten darf.Wenn wir also neue Entwickler hinzuziehen möchten, gibt es eine Reihe weiterer Aspekte zu klären:

Wie hoch ist das Risiko von Änderungen? Gibt es eine geeignete Testumgebung, um die Änderungen schnell und umfassend zu testen? Welche Auswirkungen haben fehlerhafte Deployments auf andere Geschäftsbereiche?Es gibt sicherlich noch weitere Fragen, die beantwortet werden müssen. Die entscheidenden Fragen sind jedoch, wie lange die Lösungen dauern werden, welche Komplexität sie mit sich bringen und wie viel sie kosten.

Es gibt sicherlich noch weitere Fragen, die beantwortet werden müssen. Die entscheidenden Fragen sind jedoch, wie lange die Lösungen dauern werden, welche Komplexität sie mit sich bringen und wie viel sie kosten.

2) Entkopplung des Altsystems

Dies ist ein Ansatz, den wir oft wählen, wenn die vorherige Option zu teuer, zu riskant oder zu komplex ist. In diesem Fall entkoppeln wir das System vom direkten Zugriff auf den Online-Shop.

Wir würden eine Anwendung erstellen, die regelmäßig Daten aus dem Altsystem liest, z.B. über eine Datenbankverbindung, eine SOAP-Schnittstelle, FTP oder Ähnliches, und diese in eine neue Datenbank schreibt. Dann würden wir eine REST- oder GraphQL-Schnittstelle entwickeln, über die der Online-Shop auf diese Daten zugreifen kann.

Um die Daten regelmäßig aus dem Altsystem zu lesen, bräuchten wir einen Cron-Job oder Ähnliches (z.B. AWS Batch Job Scheduler, GCP Cloud Scheduler usw.). Es gibt einige Dinge zu beachten, wie z.B. Race Conditions, Batch Processing und Slicing.

Für all diese Herausforderungen gibt es Lösungen, die Entwickler umsetzen können. Doch das kostet Zeit und Ressourcen, die vielleicht besser in Aufgaben investiert wären, die dem Nutzer oder dem Geschäft einen echten Mehrwert bringen.

3) Einsatz einer kreativen Lösung mit Low-Code-Plattformen und SaaS-Produkten

In diesem Ansatz würden wir weitgehend auf maßgeschneiderte Entwicklungen verzichten.

Wir würden die bestehende Schnittstelle (z.B. Datenbank, SOAP, FTP oder andere) nutzen und iPaaS-Tools wie Zapier, Prismatic, Celigo oder IFTTT einsetzen.

👉 In diesem Beispiel verwende ich Zapier, aber die Wahl hängt von den jeweiligen Umständen ab. Es gibt auch Open-Source-iPaaS-Lösungen, wie z.B. Cenit IO.

Wir müssten wahrscheinlich einen Connector schreiben, in Zapier „Trigger“ genannt, um Zapier dazu zu bringen, neue Daten aus dem Altsystem abzurufen.

Zapier würde dann mit einer Cloud-Datenbank wie Firebase oder DynamoDB verbunden, die hier als Beispiele dienen. Beide bieten eine REST-Schnittstelle.

Auf diese Weise hätten wir mit relativ wenig Aufwand ein System aufgebaut, das sich wie eine maßgeschneiderte Anwendung verhält, aber mit hoher Stabilität und geringem Zeitaufwand. Das liegt daran, dass wir die Systeme nicht selbst bereitstellen und hosten müssen, und wir brauchen uns keine Sorgen darüber zu machen, ob die Daten regelmäßig und ohne Race Conditions aus dem Altsystem abgerufen werde

Welches Szenario ist das beste?

Leider lässt sich diese Frage nicht pauschal beantworten. Das Beispiel und die möglichen Szenarien sind stark vereinfacht.

In einem realen Projekt gibt es viele weitere Aspekte zu berücksichtigen, und die Szenarien könnten sich überschneiden. Zum Beispiel könnten wir anstelle eines Cloud-iPaaS auch Kafka verwenden. Die Entscheidung hängt von den spezifischen Umständen, der Strategie und den Richtlinien in Bezug auf Sicherheit, Compliance und Governance ab.

In einem Umfeld knapper Ressourcen und begrenzter Zeit ist es jedoch sinnvoll, alternative Werkzeuge in Betracht zu ziehen und einzusetzen.

Mit welchen Herausforderungen bist du konfrontiert?


Wir bieten gerne Unterstützung an und zeigen alternative Ansätze auf. Dabei behalten wir stets das große Ganze im Blick, damit Technologie ein integraler Bestandteil der Lösung wird, zum Erreichen der Geschäftsziele beiträgt und nicht nur Kosten verursacht.