Was ist Rapid Application Development?

Rapid Application Development bzw. schnelle Applikationsentwicklung ist ein agiler Softwareentwicklungsansatz, der sich stärker auf laufende Softwareprojekte und Benutzerfeedback und weniger auf das Befolgen eines strikten Plans konzentriert. Daher liegt der Schwerpunkt auf schnellem Prototyping statt auf kostspieliger Planung.

Rapid Application Development (RAD) wird oft für ein spezifisches Modell gehalten. Tatsächlich bezeichnet es aber die Idee, dass wir davon profitieren, wenn wir unsere Softwareprojekte eher wie Lehm behandeln, und nicht – wie bei traditionellen Entwicklungsmethoden der Fall – wie Stahl.

Eine (sehr) kurze Geschichte von RAD

Wie ist die RAD-Programmierung entstanden?

In den 1980er Jahren hatten Barry Boehm, James Martin und andere die offensichtliche Erkenntnis, dass Software kein Rohstoff ist. Sie betrachteten Software als das, was sie war: unendlich formbar. Diese inhärente Formbarkeit von Software machten sich Boehm und Martin zunutze, als sie ihre Entwicklungsmodelle entwarfen – das Spiralmodell bzw. das James-Martin-RAD-Modell. Seither hat die schnelle Applikationsentwicklung weitere Formen angenommen und fungierte als ein Vorläufer der agilen Entwicklung.

RAD-Methodik

Auch wenn die genauen Praktiken und Tools zwischen den einzelnen Methoden variieren, bleiben die zugrunde liegenden Phasen der schnellen Applikationsentwicklung gleich:

1. Definieren von Anforderungen

Anstatt mit Benutzern monatelang Spezifikationen zu entwickeln, beginnt RAD mit der Definition eines losen Anforderungskatalogs. „Lose“ deshalb, weil einer der wichtigsten Grundsätzen der schnellen Applikationsentwicklung darin besteht, Anforderungen an jedem Punkt des Zyklus ändern zu können.

Einfach gesagt, erfassen die Entwickler zunächst das „Wesentliche“ des Produkts. Der Kunde legt seine Vision für das Produkt dar und einigt sich mit Entwicklern auf die Anforderungen, die diese Vision erfüllen.

Erleben Sie die Leistungsfähigkeit von Low-Code
Kostenlos starten

2. Prototyping

In dieser Phase der schnellen Applikationsentwicklung besteht das Ziel eines Entwicklers darin, etwas zu erstellen, was dem Kunden präsentiert werden kann. Dabei kann es sich um einen Prototyp handeln, der alle oder einen Teil der Anforderungen erfüllt (wie in der frühen Phase des Prototypings).

Dieser Prototyp ist möglicherweise nicht ganz so ausgereift, wie er sein sollte – und das ist akzeptabel. Die meisten RAD-Programmieransätze haben eine Finalisierungsphase, in der die Entwickler technische Schulden früherer Prototypen begleichen.

3. Aufnahme von Feedback

Anhand eines aktuellen Prototyps präsentieren RAD-Entwickler dem Kunden oder den Endanwendern ihre Arbeit. Anschließend sammeln sie Feedback zu allen Bereichen, von der Benutzeroberfläche bis zur Funktionalität. Hierbei werden alle Produktanforderungen auf den Prüfstand gestellt.

Es kann sein, dass Kunden ihre Meinung ändern oder feststellen, dass etwas, was auf dem Papier richtig erschien, in der Praxis keinen Sinn ergibt. Mit dem Feedback im Hinterkopf kehren die Entwickler zu einer Form von Schritt 2 zurück und widmen sich wieder dem Prototyping. Sobald das Feedback ausschließlich positiv ist und der Kunde mit dem Prototyp zufrieden ist, können die Entwickler zu Schritt 4 übergehen.

4. Fertigstellen des Produkts

In dieser Phase können Entwickler ihre Implementierung optimieren oder komplett überarbeiten, um die Stabilität und Wartbarkeit zu verbessern. Ebenso können sie in dieser Phase auch das Backend mit den Produktionsdaten verbinden, eine gründliche Dokumentation verfassen und alle anderen erforderlichen Wartungsaufgaben durchführen, bevor sie das fertige Produkt übergeben.

Sowohl das Spiralmodell von Boehm als auch das RAD-Modell von James Martin nutzen diese vier Schritte, um Entwicklerteams dabei zu helfen, Risiken zu reduzieren und herausragende Produkte zu erstellen. Dennoch hat die schnelle Applikationsentwicklung auch Nachteile.

Vorteile schneller Applikationsentwicklung

Wir haben bereits einige Vorteile von RAD erwähnt, die wir hier noch noch einmal aufgreifen und erläutern wollen.

Vorteil Beschreibung
Geschwindigkeit Bei der traditionellen Wasserfallmethode war es unwahrscheinlich, dass Entwickler nach der Auslieferung des Produkts in den Urlaub fuhren. Kunden verlangten nach der ersten Auslieferung immer wieder Änderungen, die von der Schnittstelle bis zur Funktionalität reichen konnten. Mit RAD steigt die Wahrscheinlichkeit, dass Projekte pünktlich und zur Zufriedenheit des Kunden abgeschlossen werden.
Kosten Bei der schnellen Applikationsentwicklung erstellen Entwickler genau die Systeme, die der Kunde benötigt – und nicht mehr. Bei der Wasserfallmethode riskiert die IT-Abteilung, komplexe Funktionen zu entwickeln und auszubauen, die der Kunde am Ende gar nicht haben wollte. Die Zeit für die Entwicklung solcher Zombie-Funktionen lässt sich nicht zurückgewinnen. Das dafür ausgegebene Budget ist verloren. Die RAD-Programmierung verringert dieses Risiko und senkt dadurch Kosten.
Zufriedenheit der Entwickler Bei der traditionellen Wasserfallmethode arbeiten Entwickler in Silos, ohne Feedback oder positive Bestätigung für ein gelungenes Produkt. Wenn sie endlich die Gelegenheit haben, ihre Arbeit zu präsentieren, rollt der Kunde nicht unbedingt den roten Teppich aus. Wie stolz Entwickler auch auf ihre Arbeit sein mögen – wenn der Kunde nicht zufrieden ist, bleibt auch die Anerkennung aus. Bei der schnellen Applikationsentwicklung ist der Kunde bei jedem Schritt präsent – und Entwickler haben die Möglichkeit, ihre Ergebnisse regelmäßig zu präsentieren. So haben sie die Gewissheit, dass ihre Arbeit gewürdigt wird, wenn sie das Endprodukt liefern.

Nachteile schneller Applikationsentwicklung

Die Vorteile klingen alle sehr positiv. Betrachten wir das Ganze nun von der anderen Seite.

Nachteil Beschreibung
Skalierbarkeit Ein eng zusammenarbeitendes Team von Entwicklern, Designern und Produktmanagern kann RAD-Praktiken leicht umsetzen, da alle direkten Zugang zueinander haben. Wenn sich ein Projekt über ein Team hinaus ausdehnt oder eine teamübergreifende Kommunikation erfordert, verlangsamt sich der Entwicklungszyklus unweigerlich und bringt die Richtung des Projekts durcheinander. Eine große Gruppe von Personen lässt sich nur schwer auf dem gleichen Stand halten, wenn Ihre Story sich ständig ändert.
Commitment Im Wasserfallverfahren verbrachte der Kunde nach der Fertigstellung der Spezifikationen die meiste Zeit getrennt vom Entwicklerteam. So konnten sich Kunden auf ihre Hauptaufgaben und Entwickler auf die Entwicklung konzentrieren. Bei der schnellen Applikationsentwicklung erfordert der häufige Zyklus von Prototypen häufige Meetings von Entwicklern und Kunden. Dies kann den Anschein erwecken, dass unnötige Zyklen verbraucht werden.
Fokus auf die Schnittstelle Die Methodik der schnellen Applikationsentwicklung motiviert Entwickler, die perfekte Lösung für den Kunden zu finden. Der Kunde beurteilt die Qualität der Lösung anhand von Dingen, mit denen er interagieren kann – und dabei handelt es sich oft um eine Fassade. Das hat zur Folge, dass einige Entwickler auf bewährte Verfahren im Backend verzichten, um die Entwicklung des auf das Frontend ausgerichteten Prototyps zu beschleunigen. Wenn es schließlich an der Zeit ist, ein funktionierendes Produkt zu liefern, wird der behelfsmäßige Servercode zusammengeflickt, um ein Refactoring zu vermeiden.

Ist Rapid Application Development das Richtige für Ihr Team?

Nachdem wir die Vor- und Nachteile der RAD-Programmierung betrachtet haben, wollen wir uns nun anschauen, welche Arten von Projekten am meisten vom Ansatz der schnellen Applikationsentwicklung profitieren.

Wenn Sie ein internes Geschäftstool oder sogar ein kundenorientiertes Portal wie eine App oder eine Website entwickeln, werden die Techniken der schnellen Applikationsentwicklung Ihrem Team dabei helfen, Endanwendern ein besseres Erlebnis zu bieten. Wenn Ihr Team jedoch mit der Entwicklung unternehmenskritischer Software (wie Flugsteuerung oder Firmware von Implantaten) beauftragt ist, ist die RAD-Methode nicht nur unangemessen, sondern auch unverantwortlich. Ein Pilot mit einem ausgefallenen Steuermodul oder ein Überlebender eines Herzinfarkts mit einem nicht funktionierenden Herzschrittmacher kann Ihnen aus dem Jenseits kein Feedback zu Ihrem Prototyp mehr geben.

Bevor Sie sich für eine schnelle Entwicklungsumgebung für Ihr Projekt entscheiden, sollten Sie die folgenden Fragen beantworten.

1. Ist mein Produkt unternehmenskritisch?

Wenn Endanwender ihre Sicherheit oder ihr Leben in die Hände Ihres Produkts legen, hat Ihr Team nur sehr wenig Spielraum für Fehler. Und eine schnelle Entwicklungsumgebung ist nur dann erfolgreich, wenn wir ihr erlauben, Fehler zu machen und zu korrigieren.

Es gibt Ausnahmen für Produkte, die wir simulieren können, ohne andere in Gefahr zu bringen. Wenn Ihr Projekt jedoch zu 100% fehlerfrei sein muss, bevor Sie es dem Endanwender zur Verfügung stellen, ist Rapid Application Development nicht die richtige Wahl für Sie.

2. Kann ich Feedback von Endbenutzern und Kunden erhalten?

Wie bereits erwähnt, basiert die schnelle Applikationsentwicklung auf der Bereitschaft des Endanwenders, Feedback zu geben und Benutzertests durchzuführen.

Kunden müssen sich verpflichten, während des iterativen, fortlaufenden RAD-Prozesses häufiges Feedback zu geben.

3. Lässt sich die Lieferung aufteilen?

In einer schnellen Entwicklungsumgebung stellt Ihr Team dem Endanwender früh und häufig Prototypen vor, bei denen Benutzerabläufe häufig unvollständig sind oder noch ganz fehlen. Deshalb ist Ihr Projekt so aufzuteilen, dass Ihr Team das Produkt in Portionen (oder Modulen) statt in einem Ganzen erstellen und präsentieren kann. Eine Barriere für die Modularisierung ist oft das Backend, wo Ihr Projekt mit diversen Drittanbietern integriert werden muss, bevor dem Endanwender ein geschäftlicher Anwendungsfall geliefert werden kann.

Diese Anforderung lässt sich mithilfe von Datensynthese umgehen. Dabei handelt es sich um einen Prozess, der Testdaten erzeugt, die dem Datensatz, den Ihre Endanwender erwarten, annähernd gleichen. Auf diese Weise können Sie Verhaltensweisen mit Ihrem Prototyp modellieren, ohne Konnektoren erstellen zu müssen, bevor Sie sie wirklich brauchen.

4. Kann mein Team schnell iterieren?

Dies ist die letzte und naheliegendste Frage, die Sie sich stellen sollten. Ist Ihr Team in der Lage, in einem RAD-Programmierungstempo zu iterieren? Natürlich erzeugen herkömmliche Softwaretechniken Code, der formbarer als Stahl ist. Dennoch erstellen wir oft Produkte mit einen Kern wie aus Knochen – sie lassen sich brechen, aber nur mit quälenden Schmerzen. Boilerplate-Code – das bloße Minimum an Code, der das Gerüst unseres Projekts bildet – verschlingt einen nicht geringen Prozentsatz des Aufwands.

Die Entwicklung des Kerns Ihrer Applikation sowie die Korrektur falscher Annahmen rauben Zeit und Energie für die Bereitstellung funktionierender Prototypen. Neben Entwicklern brauchen Sie zudem ein Design- und Produktteam, das bereit und in der Lage ist, schnell zwischen den Kontexten der Ideenfindung und der Assimilation (Verarbeitung von Feedback von Kunden und Endanwendern) hin und her zu wechseln.

Diese Praxis ist nicht in allen Teams verankert – aber alle Teams können sie erlernen. Dabei können mehrere Tools helfen. Wenn Ihr Team nicht schnell iterieren kann oder Sie sich die entsprechenden Tools nicht leisten können, ist RAD-Entwicklung nicht unbedingt die richtige Wahl für Sie.

RAD vs. Agile

Wer sich mit Entwicklungsmethodiken beschäftigt, vergleicht verschiedene Frameworks miteinander. Dabei wird die schnelle Applikationsentwicklung häufig der agilen Softwareentwicklung gegenübergestellt.

Doch dieser Vergleich ist schwierig. RAD ist ein Vorläufer agiler Entwicklung, die aber ihrerseits weit mehr als ein Entwicklungsmodell umfasst. Bei Agilität handelt es sich eher um eine Philosophie als um eine Methodik. Um dies zu verdeutlichen, haben wir die Kernprinzipien der beiden Konzepte gegenübergestellt:

rapid-application-development-01aa

Tools für die schnelle Applikationsentwicklung

Wie Sie gesehen haben, handelt es sich bei der schnellen Applikationsentwicklung eher um eine Methode der Softwareentwicklung als um eine bestimmte Sprache, ein Tool oder eine Schnittstelle. Dennoch können Tools das Rapid Prototyping, die Entwicklung und das Einholen von Feedback erleichtern.

Tools für Design und Prototyping

Die Produkte in dieser Kategorie helfen Teams bei der Erstellung interaktiver Designs in beeindruckender Geschwindigkeit. Einige Tools auf der Liste, wie zum Beispiel Webflow, ermöglichen es Designern, das fertige Design als funktionalen, browserübergreifenden Prototyp zu exportieren.

Tool Prototyping Läuft auf
Adobe Experience Design Web, Mobile macOS, Windows
Balsamiq Web, Mobile macOS, Windows
InVision Web, Mobile, Wearable macOS
JustInMind Web, Mobile, Wearable macOS, Windows
Mockplus Web, Mobile macOS, Windows
Origami Studio Mobile macOS
Proto.io Web, Mobile, Wearable Web
Sketch Web, Mobile macOS
Webflow Web, Mobile Web

Tools für Benutzertests und Feedback

Wie bereits dargelegt, erfordert die RAD-Methodik häufiges Feedback von Kunden und Endanwendern. In modernen Workflows arbeiten Entwickler, die außerhalb des Büros tätig sind, lieber mit Remote-Feedback. So brauchen sie nicht jedes Mal, wenn sie Input von Kunden benötigen, eine Reise und Unterkunft zu buchen.

Tool Prototyping Läuft auf
Conjure Web Clients
InVision Web, Mobile Clients
Red Pen Web, Mobile Clients
Usability Sciences Web, Mobile End-Users
Userbrain Web End-Users
UserTesting Web, Mobile End-Users
Validately Web, Desktop, Mobile End-Users

Tools für die schnelle Applikationsentwicklung

Wenn Ihr Team strenge technologische Anforderungen hat oder nur über begrenzte Fähigkeiten verfügt, ist es einfacher, sich an bereits Bekanntes zu halten. Oft lassen sich die Kosten für die Migration von Technologien nicht rechtfertigen. Doch wenn Sie bereit sind, einen neuen Entwicklungsansatz in Betracht zu ziehen, werden die Tools in dieser Kategorie Ihren Produktionszyklus beschleunigen.

Tool Builds
Alpha Software Windows, Web, Mobile
AppGyver Mobile
Appian Web, Mobile
Kony Web, Mobile
Zoho Creator Web
Mendix Web, Mobile
OutSystems Web, Mobile
Salesforce AppCloud Web, Mobile
Spring Mobile
Visual LANSA Windows, Web, Mobile
WaveMaker Web, Mobile

Wie OutSystems eine schnelle Applikationsentwicklung ermöglicht

Wie Sie gesehen haben, handelt es sich bei der schnellen Applikationsentwicklung eher um eine Methode der Softwareentwicklung als um eine bestimmte Sprache, ein Tool oder eine Schnittstelle. Dennoch können Tools das Rapid Prototyping, die Entwicklung und das Einholen von Feedback erleichtern.

OutSystems ist eine moderne und KI-gestützte Low-Code-Applikationsplattform. Das bedeutet, dass unser Produkt über die Bereitstellung einer schnellen Applikationsumgebung hinausgeht, indem es Hosting, dynamische Skalierung, Release-Automatisierung, Leistungsüberwachung, Benutzerverwaltung, Versionskontrolle und vieles mehr umfasst. Im Mittelpunkt unseres Angebots steht jedoch eine leistungsstarke Entwicklungsumgebung.

Unsere Plattform kombiniert hochproduktive Tools, die Komplexität automatisieren und vereinfachen – mit der Leistungsfähigkeit und Ausdruckskraft der traditionellen Entwicklung. So können sowohl IT-nahe Funktionen als auch IT-Fachkräfte in kürzester Zeit unternehmenstaugliche Web- und mobile Applikationen erstellen.

Sind Sie bereit für schnellere Entwicklung?

Vereinbaren Sie einen Termin für eine Online-Demo oder testen Sie OutSystems Free Edition.