Adaptive Software Development

Da Wikipedia, l'enciclopedia libera.

È 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[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

  • 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[modifica | modifica wikitesto]