Rapid application development
# Rapid application development

In informatica il rapid application development (indicato anche con l'acronimo RAD, letteralmente sviluppo rapido delle applicazioni) è una metodologia di sviluppo del software introdotta inizialmente da James Martin negli anni ottanta. Questa metodologia coinvolge modelli di sviluppo iterativi, la costruzione di prototipi e l'utilizzo di strumenti CASE. Solitamente questo approccio allo sviluppo comporta compromessi tra usabilità, funzionalità e velocità d'esecuzione.

## Storia

Lo sviluppo del software fa riferimento allo sviluppo di applicazioni per la programmazione e differisce dalla programmazione in sé e per sé dato che prevede maggiori responsabilità, includendo la comprensione dei requisiti e la fase di testing.

Il RAD nacque in risposta alle metodologie di programmazione sviluppate negli anni settanta, come ad esempio il modello a cascata, che soffrivano principalmente del problema della lentezza di sviluppo. Spesso accadeva che i requisiti dell'applicazione cambiassero ancor prima che questa fosse stata completata, rendendola di fatto inutilizzabile. Sulla base delle idee di Brian Gallagher, Barry Boehm e Scott Shultz, James Martin sviluppò l'approccio RAD durante gli anni ottanta presso IBM ed infine lo formalizzò pubblicando un libro sull'argomento nel 1991.

Una compagnia incentrata sullo sviluppo della programmazione RAD, la Magic Software, sviluppò un paradigma unico che abilitò sia i programmatori che i non-programmatori a scrivere rapidamente programmi sofisticati, tramite la definizione di "business rules" in tabelle, piuttosto che scrivere del nuovo codice o riusarne dell'altro. A metà degli anni '90 si tenne un evento dedicato alla programmazione, il Droege Competition, in cui programmatori di tutto il mondo si sfidarono nel completare un'applicazione utilizzando linguaggio e piattaforma di loro scelta. Il paradigma della Magic Software non solo vinse la competizione tutti e cinque gli anni in cui questa ebbe luogo, ma dominò tutte le prime posizioni con uno schiacciante distacco sui secondi. Il paradigma della Magic Software stava per diventare un IDE stabile grazie alla capacità di ridurre significativamente non solo i tempi di programmazione, ma anche quelli della manutenzione su progetti di livello aziendale.

## Vantaggi e svantaggi

Pro:

* Maggiore velocità di sviluppo attraverso metodi includenti la rapid prototyping, la virtualizzazione delle procedure correlate al sistema, l'utilizzo di CASE tool, e altre tecniche.
* Ridotte funzionalità per l'utente finale (derivante da una più mirata progettazione), da cui una ridotta complessità.
* Maggiore enfasi sulla semplicità e l'usabilità del design delle GUI (Graphic User Interface).

Contro:

* Ridotta Scalability, e ridotte funzionalità quando un'applicazione sviluppata tramite RAD inizia come prototype ed evolve in una applicazione completa.
* Ridotte funzionalità si presentano a causa del time boxing quando queste sono accelerate verso la nuova versione allo scopo di ultimare in tempi brevi la release del software.
