È una metodologia agile ideata da Jim Highsmith, direttore del Cutter Consortium's Agile Project Management Advisory Service.

Questa metodologia è composta da un insieme di regole di sviluppo software inserite in un sistema complessivo detto Agile Project Management i cui concetti base sono tre: Leadership-Collaboration Management - Uno stile di gestione misto fra gerarchico e collaborativo; From Processes to Pattern - Passaggio dall'idea di processo definito e misurabile a quella di processo non perfettamente definito, quasi un processo fuzzy; Peering into the Future - Osservazione del futuro per capire come l'idea che produrrà un affare di successo debba essere legata al momento in cui diventerà una forma di business.

Jim Highsmith e Ken Orr affermano che Adaptive Software Development può funzionare solo ed esclusivamente se l'intero team è consapevole dell'importanza del lavoro di gruppo e spiegano come si discosti, ad esempio, da Extreme Programming su punti essenziali (cliente presente, Pair Programming, test automatizzati) concentrandosi sulla strategia della Leadership-Collaboration Management e sull'adattamento totale al progetto in lavorazione.

Condizioni ottimali di utilizzo Esistono tre situazioni esemplari che suggeriscono di utilizzare Agile Project Management: per progetti ad alto valore esplorativo (nel senso di sperimentazione); per progetti in cui il feedback del cliente è di capitale importanza; per organizzazioni che apportino innovazioni estreme.

Le fasi del ciclo di vita La formalizzazione di un sistema complessivo costruito intorno ad Adaptive Software Development porta a considerare Agile Project Management come un nuovo framework.

Le cinque fasi del ciclo di vita sono generalizzate per permettere di utilizzarle con qualunque metodologia agile: prevedere (definire una vision del prodotto finale, decidere chi farà cosa, scegliere come il gruppo di lavoro lavorerà insieme); ipotizzare (sviluppare una versione basata solo sulle caratteristiche, decidere delle milestones ed un interation plan); esaminare (cioè consegnare spesso versioni con nuove caratteristiche testate, e che il cliente testerà anche meglio con l'utilizzo); adattare (verificare i risultati delle versioni consegnate, ricontrollare l'ambiente reale di utilizzo, testare così le prestazioni del gruppo di lavoro; adattare e riadattare se necessario); chiudere (concludere il progetto, affrontare gli ultimi dettagli in sospeso e festeggiare).

Principi base sviluppare qualcosa di utile; coltivare la fiducia degli stakeholders; utilizzare Leadership-Collaboration Management come stile gestionale; costituire gruppi di lavoro competenti e collaborativi; far sì che il team abbia la possibilità e sia in grado di prendere decisioni; consegnare spesso nuove versioni all'aggiunta di nuove funzionalità; incoraggiare l'adattabilità; cercare di ottenere l'eccellenza tecnica; quando possibile, aumentare il volume di dati immessi.

Voci correlate Metodologia agile

Categoria:Metodi di sviluppo software