Kundenerlebnis in Eigenregie Rapid Prototyping und Low-Code-Entwicklung

Autor / Redakteur: Dr. Veikko Krypczyk * / Stephan Augsten

Rapid Prototyping erlaubt es, einen Software-Prototypen direkt mit Hilfe so genannter Low-Code-Plattformen zum produktionsreifen Endprodukt weiterentwickeln. Das Prinzip: Stets nah am Problem und in Zusammenarbeit mit dem Kunden.

Firma zum Thema

Ein probater Weg der Prototypen-Entwicklung ist das problemorientierte und Brainstorm-behaftete Design Thinking.
Ein probater Weg der Prototypen-Entwicklung ist das problemorientierte und Brainstorm-behaftete Design Thinking.
(Bild gemeinfrei: Kaleidico - Unsplash.com / Unsplash)

Das Erstellen von Software ist grundsätzlich mit der Entwicklung neuer physischer Produkte vergleichbar. Für den Kunden – den Nutzer einer Software – ist ein Produkt ein Werkzeug, um ein bestehendes Problem erstmalig oder in verbesserter Weise zu lösen. Ein interessanter Ansatz ist zum Beispiel das Design Thinking, das zur Entwicklung neuer Ideen beitragen soll.

Der Ansatz wurde von der Innovationsagentur IDEO entwickelt, stellt heutzutage aber mehr als nur einen kreativen Prozess dar. Design Thinking steht mittlerweile für eine ganz neue Art und Weise, den Menschen in Bezug zur Arbeit zu sehen. Es setzt auf interdisziplinäre Teams, Visualisierung und neuartige Ideenfindung. Der iterative Prozess des Design Thinkings besteht aus den folgenden Schritten:

  • Problem verstehen: Klare Definition der Bedürfnisse und Herausforderungen des Projektes.
  • Situation beobachten: Eine intensive Recherche und Feldbeobachtung.
  • Sichtweise definieren: Die Beobachtungen werden auf den einzelnen Nutzer angewendet.
  • Ideen finden: Als Kernelemente des Design Thinkings besteht dieser Schritt vor allem aus dem Brainstorming.
  • Prototypen entwickeln: Hier werden die Ideen getestet und veranschaulicht. Die einfachsten Prototypen sind schon hilfreich.
  • Produkt testen: Weitere Verbesserung des Konzepts bis zur Entstehung eines nutzerorientierten Produktes.

Das Erstellen der Prototypen ist damit ein Kernelement dieses innovativen Prozesses. Von Rapid Prototyping spricht man, wenn nach einer sehr kurzen Phase der Anforderungsanalyse bereits ein erster Entwurf zur Verfügung steht. Dieser dient zum Testen, Bewerten, Evaluieren und Erklären.

Das sehr zeitnahe Erstellen von Prototypen passt genau zu einem der wichtigsten Grundprinzipien des Design Thinking: „fail early and often“. Mit anderen Worten: Man sollte möglichst früh anfangen, die Lösung zu konkretisieren. Der Vorteil: Das Team bekommt regelmäßige Rückmeldung von „außen“ und somit können mögliche Schwächen frühzeitig beseitigt werden. Prototypen werden damit zum Kern des Innovationsprozesses.

Arten von Prototypen

Sinn und Zweck von Prototypen ist es, kritische Aspekte einer Software möglichst frühzeitig zu erkennen bzw. zu beseitigen. Denn bekanntermaßen gestaltet sich die Anforderungsdefinition für Software mitunter sehr schwierig und ist über weite Projektabschnitte unsicher und damit stetigen Veränderungen unterworfen.

Prototypen sind ein gutes Instrument, diese Unsicherheiten zu beseitigen. Die Anforderungen der Anwender und mögliche Realisierungsoptionen lassen sich damit frühzeitig abgleichen. Man unterscheidet zwischen evolutionären und experimentellen Prototypen. Bei den evolutionären Prototypen wird Funktionalität schrittweise auf- und ausgebaut.

Experimentelles Prototyping probiert verschiedene Optionen zur Umsetzung aus und vergleicht deren Ergebnisse miteinander. Differenziert man nach dem Anwendungszweck, so sind folgende Arten von Prototypen laut der Enzyklopädie für Wirtschaftsinformatik zu unterscheiden:

Demonstratoren: Es handelt sich lediglich um grobe Modelle, welche noch weit von der finalen Realisierung entfernt sind.

Labormuster: Diese Prototypen dienen meistens zur Untersuchung von technischen Fragestellungen.

Pilotsysteme: Diese Prototypen zeigen einen höheren Reifegrad, daran kann das System bereits realistisch getestet und bewertet werden.

Prototypen lassen sich zudem grundsätzlich nach zwei Mustern aufbauen. Zum einem gibt es vertikale Prototypen. Diese sind dazu geeignet, eine komplexe Funktionalität zu demonstrieren bzw. sie werden dem Anwender zur Überprüfung übergeben. Ausgewählte Aspekte werden im Ganzen gezeigt. Dieser Ansatz setzt voraus, dass ein Teil vom System über alle Schichten der Anwendung funktionsfähig erstellt wird.

Ein Beispiel: Ein Programm zur Verwaltung von Kundenaufträgen und Buchungen enthält als Teilsystem die Verwaltung der Kundendaten. Dem Kunden wird ein vertikaler Prototyp zum Testen übergeben, welcher alle Aspekte der Verwaltung, also zum Beispiel Daten erfassen, ändern, stornieren, löschen, enthält. Diese Funktionen sind bereits vollständig implementiert und können umfangreich getestet werden. Die anderen Funktionen des Softwaresystems sind dabei noch nicht vorhanden.

Demgegenüber stehen horizontale Prototypen. Diese sind zur Überprüfung der Funktionen einer Ebene geeignet. Typische horizontale Prototypen sind Muster der Benutzeroberfläche, so genannte User Interface (UI)-Prototypen. Den Nutzern wird ein UI-Entwurf übergeben, welcher alle wesentlichen Elemente des künftigen UI enthält. Daran können das Handling und das Design umfassend beurteilt und abgestimmt werden.

Der Prototyp ist jedoch „leer“, d.h. eine echte Funktion ist noch nicht hinterlegt. Klickt der Anwender beispielsweise auf den Button zum Anlegen eines neuen Kunden, wird das zugehörige Dialogfenster eingeblendet. Eine Datenerfassung ist möglich, jedoch ein Speichern der Daten im System erfolgt noch nicht.

Von der Idee bis zum fertigen Produkt ohne Systembrüche

Innovation mit Low-Code-Plattformen auf einfache Art und Weise in Software umsetzen.
Innovation mit Low-Code-Plattformen auf einfache Art und Weise in Software umsetzen.
(Bild: Krypczyk)

Um Softwareprototypen zu erstellen, gibt es eine Reihe von spezialisierten Tools, zum Beispiel Balsamiq. Deren Einsatz ist jedoch auf diesen Vorgang beschränkt. Eine bessere Integration des gesamten Entwicklungsprozesses kann man ggf. mit Hilfe so genannter Low-Code-Plattformen erreichen. Sie zielen darauf ab, das Erstellen von Anwendungen so weit zu standardisieren und zu vereinfachen, dass der Umfang an Quellcode in einem hohen Maße reduziert wird.

Der Fokus der Low-Code-Plattformen sind spezialisierte Business Applikationen für die unterschiedlichsten Aufgaben und Fachbereiche. Typische Anwendungsfelder sind Lösungen für die Aufgaben des Marketings, des Vertriebs oder der datenbasierten Produktionsplanung. Um die Anwendungen in der heute oft gebotenen kurzen Zeitspanne bereitstellen zu können, richten sich Low-Code-Plattformen gleichermaßen an Entwickler und technikaffine Anwender in den Fachabteilungen, so genannte Citizen Developer.

Die Idee, die Softwareentwicklung durch hochintegrierte Tools zu beschleunigen ist nicht neu. Seit vielen Jahren werden dazu so genannte RAD-Tools (Rapid Application Development) eingesetzt. Deren Zielgruppe ist jedoch weiterhin der Softwareentwickler. RAD-Tools unterstützen insbesondere die Arbeit durch den Einsatz von Komponenten, zum Beispiel in Form von Controls für die Gestaltung des User Interface. Die Programmlogik muss aber weiterhin nahezu vollständig mit Hilfe von Quellcode in der gewählten Programmiersprache realisiert werden.

Der Vorteil des Einsatzes von Low-Code-Plattformen besteht darin, dass sich sehr weite Teile einer Applikation mit Hilfe von grafischen Werkzeugen und durch Konfiguration erstellen lassen. Auf diese Weise entsteht ein Grundgerüst der Applikation, deren Fertigstellung durch Codierung weit weniger Aufwand verursacht als der Prozess der herkömmlichen Softwareentwicklung.

Typische Low-Code-Plattformen umfassen beispielsweise die Bereiche Gestaltung des User Interface, Modellierung der Geschäftsprozesse und des zugrundeliegenden Workflows mit einer Abbildung in der Businesslogik und eine Kopplung der Applikation an bestehende Schichten der Datenhaltung. Letzteres geschieht beispielsweise durch den Einsatz von Konnektoren, die für eine sehr flexible Verwendung sorgen.

Viele Low-Code-Plattformen orientieren sich dabei eher am Aussehen von Designwerkzeugen denn am Handling klassischer integrierter Entwicklungsumgebungen. Daraus ergibt sich die Option, diese Werkzeuge bereits von Beginn des Entwicklungsprozesses einzusetzen.

Prototyping und Low-Code-Entwicklung fördern die Zusammenarbeit. Idee nach Dion Hinchcliffe auf ZDnet.com.
Prototyping und Low-Code-Entwicklung fördern die Zusammenarbeit. Idee nach Dion Hinchcliffe auf ZDnet.com.
(Bild: Krypczyk)

Beginnend in der Analyse- und Entwurfsphase können Fachanwender auf intuitive Art und Weise hochwertige Prototypen der späteren Software erstellen. Ein durchgängiger Entwicklungsprozess sorgt dafür, dass keine System- und Medienbrüche auftreten. Die entstehenden Prototypen können evolutionär verbessert und letztendlich zur produktionsfähigen Anwendung vervollständigt werden.

Low-Code-Plattformen

Zusammenfassend bieten Low-Code-Plattformen also das Potenzial, die Effektivität der Softwareentwicklung zu steigern. Sie richten sich mitunter an technikaffine Anwender und unterstützen das schnelle Erstellen von Prototypen. Sie fördern die Zusammenarbeit der Verantwortlichen und Softwareentwicklern durch eine Reduktion von System- und Medienbrüchen.

Low-Code-Plattformen sind damit eine Antwort auf den immens steigenden Bedarf an angepassten Applikationen, der aufgrund der Digitalen Transformation in vielen Bereichen der Wirtschaft aktuell anzutreffen ist. Der Markt der Low-Code-Plattformen zeichnet sich durch eine hohe Heterogenität und große Angebotsvielfalt aus.

Die angebotenen Werkzeuge unterscheiden sich durch Ansatz, Funktionsumfang, Zielgruppe und Preis. Für eine Auswahlentscheidung sollten darüber hinaus die Vorkenntnisse, Zeitbudget und Bereitschaft der Mitarbeiter, sich mit der Erstellung von Applikationen zu beschäftigen, berücksichtigt werden.

Die Frage nach der Unterstützung bzw. Übernahme von Aufgaben durch den Anbieter der Low-Code-Plattform kann ebenfalls wichtig sein. Beispiele für kommerzielle Low-Code-Plattformen sind: Zoho Creator, Microsoft PowerApps, Mendix, ApiOmat, Appian, Outsystems, Intrexx, Simplifier und Comindware Business Application Platform.

Das Produktfeld wird auch durch Open-Source-Anbieter besetzt, zum Beispiel von Convertigo. Deren Nutzung ist kostenfrei. Erst die Inanspruchnahme von weitergehenden Services, zum Beispiel Support oder die Unterstützung bei der Digitalisierung der Geschäftsprozesse, fallen Kosten an. Hilfe bei der Auswahl der richtigen Low-Code-Plattform kann man durch ein Studium des Crisp Vendor Universe Report zum Thema Enterprise Mobility Anbieter erlangen.

Low Code mit ApiOmat

Um einen Eindruck von der Arbeit mit einer Low-Code-Plattform zu bekommen, wird hier stellvertretend das Angebot von ApiOmat vorgestellt. Es handelt sich um eine Multi-Experience Plattform, deren Ziel es ist, die IT eines Unternehmens mit dem Business zu verknüpfen.

Im Rahmen dieser ganzheitlichen Plattform zur Digitalisierung bietet ApiOmat die Fähigkeit zu einem schnellen Prototyping und zu einem Low-Code-Development mit Hilfe der hauseigenen Tools Web Studio und Mobile Studio. Derzeit steht diese Low-Code-Plattform für das Betriebssystem macOS zur Verfügung. Eine Kernzielgruppe sind Frontend-Developer und UX Designer.

Eine Besonderheit der Plattform ist, dass nativer Objective-C/ bzw. Java-Code und für Web ein React Projekt mit JavaScript Code generiert wird. Das hat den Vorteil, dass die Entwicklung nicht mit dem Prototyp endet bzw. bei einem weiteren Anpassungsbedarf die entstehenden Projektdateien direkt mit Hilfe der klassischen integrierten Entwicklungsumgebungen Android Studio (Android) und Xcode (iOS) weiterverarbeitet werden können. Die Zusammenarbeit der Fachanwender und der Entwickler wird damit direkt unterstützt.

Ein leistungsfähiger UI-Editor beschleunigt das Erstellen der Benutzeroberfläche.
Ein leistungsfähiger UI-Editor beschleunigt das Erstellen der Benutzeroberfläche.
(Bild: Krypczyk / ApiOMat)

Die eingangs angesprochene Gefahr von Systembrüchen in der Entwicklung können damit weitgehend vermieden werden. Ein besonderes Leistungsmerkmal besteht darin, dass die Datenwelt direkt mit der Low-Code-Plattform verzahnt wird. Bereits während der Designzeit kann der Anwender der Low-Code-Plattform auf die Daten im Backend zurückgreifen. Für das Design der Oberfläche wird ein grafischer Editor angeboten, welcher sich an Bedienkonzepten von Grafikwerkzeugen orientiert.

Die Elemente einer Applikation werden in der Project Map gebündelt.
Die Elemente einer Applikation werden in der Project Map gebündelt.
(Bild: Krypczyk / ApiOMat)

Die sogenannte Project Map bündelt alle Funktionen der Applikation und zeigt die Verbindung zwischen den Schichten, d.h. dem User Interface, der Datenschicht und der Businesslogik. Der grafische Editor bietet die typischen Elemente zur Gestaltung des User Interfaces. Schnelles Prototyping und produktive Umsetzung verschmelzen hier miteinander.

Fazit

Rapid Prototyping und Low-Code-Plattformen sind die technische Antwort auf den stetig steigenden Bedarf an Applikationen in nahezu allen Bereichen der Wirtschaft. Die zügige Bereitstellung wird sehr oft zu einem Wettbewerbsfaktor. IT-Dienstleister wandeln sich in diesem Umfeld zunehmend von einem Servicepartner hin zu einem Treiber für Innovationen. Neben der Bereitstellung der technischen Plattform sind heute umfassende Coaching und Umsetzungskompetenzen auf dem Wege des individuellen Digitalen Wandels gefragt.

Dr. Veikko Krypczyk ist begeisterter Entwickler und Fachautor. Weitere Informationen zu diesen und anderen Themen der IT finden Sie unter Larinet.com.

(ID:45909359)