Agile Unified Process
Agile Unified Process (AUP) a è una versione semplificata, sviluppata da Scott Ambler, dell'IBM Rational Unified Process (RUP). Essa descrive un approccio allo sviluppo di applicazioni software, semplice, facile da comprendere e che utilizza tecniche e concetti agili pur rimanendo fedele al processo RUP. Scott Ambler ha cercato di mantenere Agile UP il più semplice possibile, sia nell'approccio che nella sua descrizione.
L'AUP applica le tecniche di sviluppo agile tra cui test driven (TDD), Agile Modeling, gestione agile del cambiamento e refactoring del database per migliorare la produttività.
Pratiche
Diversamente da RUP, l'AUP ha soltanto sette discipline o pratiche:
- Modellazione. Comprendere il business dell'organizzazione, il dominio del problema affrontato dal progetto, e individuare una soluzione praticabile per affrontare il dominio del problema.
- Implementazione. Trasformare i modelli in codice eseguibile ed effettuare un livello base di test, in particolare test unitari.
- Test. Eseguire una valutazione oggettiva per garantire la qualità. Questo include trovare difetti, la convalida che il sistema abbia funzionato come previsto, e verificare che i requisiti siano stati soddisfatti.
- Deployment. Pianificare la consegna del sistema ed eseguire tale piano per rendere il sistema disponibile agli utenti finali.
- Configuration Management. Gestire gli artifatti di progetto. Questo include non solo il tener traccia delle versioni degli artefatti nel tempo ma anche controllarne e gestirne le modifiche.
- Project Management. Dirigere le attività che si svolgono nell'ambito del progetto. Questo comprende la gestione dei rischi, dirigere le persone (assegnazione di compiti, monitorare i progressi, ...), e il coordinamento con persone e sistemi esterni alla portata del progetto stesso, per essere sicuri che sia consegnato nei tempi e nel budget previsti.
- Ambienti. Sostenere il resto del progetto, garantendo che un processo corretto, orientamenti (standard e linee guida) e strumenti (hardware, software, ecc) siano disponibili per il team in base alle esigenze.
Filosofia
La metodologia Agile UP è basata sui seguenti principi filosofici:
- Your staff knows what they're doing. People are not going to read detailed process documentation, but they will want some high-level guidance and/or training from time to time. The AUP product provides links to many of the details, if you are interested, but doesn't force them upon you.
- Simplicity. Everything is described concisely using a handful of pages, not thousands of them.
- Agility. The Agile UP conforms to the values and principles of the agile software development and the Agile Alliance.
- Focus on high-value activities. The focus is on the activities which actually count, not every possible thing that could happen to you on a project.
- Tool independence. You can use any toolset that you want with the Agile UP. The recommendation is that you use the tools which are best suited for the job, which are often simple tools.
- You'll want to tailor the AUP to meet your own needs.
Rilasci
L' Agile Unified Process fa distinzione tra due tipi di iterazioni: quelle di Rilascio in Sviluppo e quelle di Rilascio in Produzione. Una iterazione di Rilascio in Sviluppo risulta nel deployment del sistema per il Quality Assurance e/o l'area Demo. Invece un'iterazione di Rilascio in Produzione risulta in un deployment nell'area di Produzione. Questo rappresenta un significativo raffinamento rispetto al Rational Unified Process.