Rapid Application Development (RAD)
Rapid Application Development (RAD), zu Deutsch: schnelle Anwendungsentwicklung, ist in der Softwareentwicklung ein Konzept, das aus der Frustration mit dem Designansatz des Wasserfallmodells entstanden ist. Das Wasserfallmodell ist ein linearer Ansatz, der in Phasen organisiert ist und bei dem die Ergebnisse einer Phase wie bei einem Wasserfall immer als Vorgaben in die nächsttiefere Phase eingehen.
Das Wasserfallmodell hat sich in der Praxis oft nachteilig ausgewirkt. Es führte häufig zu Produkten, die veraltet waren oder sich mit der Zeit als ineffizient herausstellten. Der Begriff Rapid Application Development wurde von James Martin inspiriert, der mit Kollegen an einer neuen Methode mit dem Namen Rapid Prototyping Iterative Production (RIPP) arbeitete. Im Jahr 1991 führte dieser Ansatz zu dem Buch Rapid Application Development.
Martins Entwicklungsphilosophie basiert auf einem prototypischen Ansatz und stellt die Geschwindigkeit und die verwendeten Strategien wie iterative Entwicklung und Time Boxing in den Mittelpunkt. In dem Konzept werden Anforderungen an eine Software gesammelt und möglichst schnell in ausführbaren Code umgesetzt. Dieser wird dem Auftraggeber bereits in einer relativ frühen Phase vorgelegt, um Missverständnisse bei den Anforderungen zu identifizieren. Dem Auftraggeber werden in jedem Zyklus die implementierten Änderungen gezeigt, bis dieser mit dem Endprodukt zufrieden ist.
Martin ist überzeugt, dass Softwareprodukte insbesondere durch folgende Strategien schneller entwickelt werden können und eine höhere Qualitätsstufe erreichen:
- das Sammeln von Anforderungen über Workshops oder Fokusgruppen;
- Prototyping und frühe, iterative Benutzertests der Designs;
- die Wiederverwendung von Softwarekomponenten;
- ein starr vorgegebener Zeitplan, der notwendige Designverbesserungen auf die nächste Produktversion aufschiebt;
- weniger Formalität bei Reviews und bei der Teamkommunikation.
Rapid Application Development wird noch heute verwendet. Softwarehersteller bieten Produkte an, die einige oder alle Werkzeuge für die schnelle Anwendungsentwicklung zur Verfügung stellen. Diese Produkte umfassen Werkzeuge zum Zusammenstellen von Anforderungen, Prototyping-Tools, Computer-aided Software-Engineering-Tools (rechnergestützte Softwareentwicklung, CASE), Entwicklungsumgebungen für Sprachen wie Java, Groupware für die Kommunikation zwischen den Mitgliedern des Entwicklerteams sowie Testwerkzeuge.
RAD nutzt in der Regel die objektorientierte Programmiermethode, die von Natur aus die Wiederverwendung von Software unterstützt. Entsprechend werden die beliebtesten objektorientierten Programmiersprachen C++ und Java in den Visual Programming Packages oft für die schnelle Anwendungsentwicklung beworben. Das RAD-Konzept lässt sich auch auf die Hardwareentwicklung anwenden.