Agile la Pianificazione del Rilascio, in Hybrid e Progetti Agile

Quando si lavora in un progetto agile o intendono utilizzare metodi agile, agile la pianificazione del rilascio, può essere una critica tecnica – e di prodotto-centrica progetti. La pianificazione del rilascio agile è elencata come tecnica di pianificazione nel PMBOK (Project Management Body of Knowledge di PMI). È quindi rilevante anche per la certificazione Project Management Professional (PMP).

Sebbene questo metodo non sia necessariamente un requisito in tutti gli approcci agile originali, è un buon strumento per progetti agile e ibridi basati sul rilascio. Questo perché agile release planning può colmare il divario tra una pianificazione di progetto più tradizionale e uno sviluppo di prodotti agile o iterativo.

Continua a leggere per saperne di più su questa tecnica.

Come funzionano le release?

Una versione consiste in genere di un insieme di funzionalità o componenti software che vengono sviluppati e testati entro un certo periodo di tempo. Dopo lo sviluppo e il test, queste funzionalità vengono distribuite in un colpo solo come parte della versione.

Le versioni possono includere funzionalità e miglioramenti del software, nonché porzioni e pezzi di progetti di sviluppo più grandi. Ad esempio, l’aggiornamento di un sistema auto-sviluppato o off-the-shelf può essere suddiviso in diverse versioni per garantire una transizione fluida, la continuità delle operazioni e per evitare i rischi inerenti alle migrazioni del “big bang”.

Che cos’è un piano di rilascio?

Il piano di rilascio è il documento che definisce l’ambito, la tempistica e, in alcune organizzazioni, le risorse e i costi connessi a un rilascio.

Un piano di rilascio descrive quali componenti del sistema vengono sviluppati, testati e implementati durante un periodo di tempo fisso (spesso tra 1 e 6 mesi). Il piano di rilascio può essere visto come un elenco di funzionalità con priorità, simile ai backlog di prodotto in alcuni framework agili. Di solito richiede una certa priorità in quanto spesso accade che non tutti i requisiti di sistema possono essere coperti da una singola versione. Ciò è particolarmente vero in ambienti organizzativi e IT più complessi.

Oltre alle funzionalità o ai prodotti di nuova concezione, un piano di rilascio può includere anche correzioni di difetti e miglioramenti critici o modifiche ai sistemi esistenti.

I piani di rilascio sono spesso impostati in anticipo per un paio di versioni imminenti (ad esempio piani per 4 versioni entro 1 anno). Ciò consente l’allocazione dei componenti a una versione di destinazione in base alla priorità, al rischio e alla criticità individuali delle funzionalità. Di solito, il piano per la versione più vicina è dettagliato mentre i piani per le versioni successive tendono ad essere approssimativi. Tuttavia, questi piani sono normalmente perfezionati e diventano più dettagliati man mano che la rispettiva versione si avvicina. Questo è paragonabile al concetto di elaborazione progressiva nella gestione del progetto.

Piani di rilascio nei progetti tradizionali e agili

Nei progetti IT tradizionali, i piani di rilascio sono una tecnica molto comune per gestire lo sviluppo e la distribuzione del software.

Inoltre, alcuni framework agili fanno uso di release e piani di rilascio. In Extreme Programming (XP), ad esempio, una versione consiste in diverse iterazioni che sono più brevi e più facili da gestire poiché i deliverable sono suddivisi in porzioni più piccole dell’ambito di una versione.

L’approccio Scrum generico, d’altra parte, definisce sprint invece di iterazioni e rilasci che possono richiedere tra 2 e 4 settimane. Pertanto, lo sviluppo di software con Scrum non comporta necessariamente rilasci e pianificazione del rilascio, ma ci possono essere rilasci Scrum in pratica (leggi di più sotto).

Tuttavia, i requisiti vengono gestiti anche in elenchi con priorità: il backlog sprint e il backlog prodotto sono tali elenchi che sono dinamicamente priorità dal proprietario del prodotto.

Che cos’è un Release Candidate in Agile?

Una release candidate è comunemente definita come una versione software o un insieme di funzionalità funzionali ma non pronte per essere commercializzate, ad esempio per finalizzare i test e ricevere il feedback degli utenti (fonte).

Nella pianificazione del rilascio agile, una release candidate può spesso riferirsi a una funzionalità che è stata sviluppata, è fondamentalmente funzionale ed è in fase di test all’interno di un’iterazione. Una volta che è stato completamente testato e tutti gli errori sono stati corretti, si passa a essere incluso nella versione complessiva.

Se i release candidate falliscono in un’iterazione, la loro correzione e finalizzazione degli errori viene spesso eseguita nell’iterazione successiva.

Cos’è la pianificazione del rilascio agile?

Agile release planning si riferisce all’impostazione dell’ambito e della timeline per un progetto di sviluppo del prodotto iterativo o incrementale. Viene utilizzato in progetti agili o ibridi in cui è richiesta una pianificazione a medio – lungo termine dello sviluppo o dell’integrazione del prodotto o del sistema.

Pianificazione del rilascio agile nel contesto della visione del prodotto e della roadmap, dei rilasci e delle iterazioni / piani di iterazione
Panoramica della pianificazione del rilascio agile.

La pianificazione agile del rilascio è spesso vista come il processo di creazione del quadro generale che collega la visione del prodotto e la roadmap alla pianificazione del rilascio e il rilascio alle iterazioni che a loro volta utilizzano un piano di iterazione che definisce funzionalità e attività a un livello più granulare.

Il termine è menzionato nel Project Management Body of Knowledge del PMI come tecnica nell’ambito del processo “Develop Schedule” (PMBOK®, 6th ed, cap. 6.5.2.8). Sebbene il PMBOK tenda a concentrarsi sugli approcci di gestione del progetto più predittivi e tradizionali, questa tecnica viene introdotta nel framework di PMI per considerare i progetti agili basati sull’iterazione.

Il termine “agile basato sull’iterazione” è definito nella Guida pratica agile di PMI (cap. 5.2.6). Implica una pianificazione iniziale (approssimativa) delle iterazioni, che sono parti di una versione. Quando sono note ulteriori informazioni che consentono una proiezione più precisa, i team agile riprogrammano le loro iterazioni per tenere conto di questo perfezionamento. Ciò potrebbe anche richiedere modifiche al piano di rilascio.

Come viene utilizzata nella pratica la pianificazione del rilascio agile?

La pianificazione del rilascio agile può servire a una serie di scopi, a seconda dell’approccio al progetto e dei requisiti organizzativi

Ecco alcuni esempi:

Pianificazione del rilascio in progetti agili

Negli approcci agili e nei progetti che utilizzano rilasci e iterazioni, la pianificazione del rilascio è una tecnica per implementare la road map del prodotto derivata dalla visione del prodotto. La roadmap del prodotto contiene i requisiti di alto livello suddivisi in versioni.

Il piano di rilascio stabilisce il numero di iterazioni all’interno di una release. A un livello più granulare, il piano di iterazione definisce le funzionalità che devono essere sviluppate all’interno di una release.

Mentre i rilasci e i piani di rilascio hanno una prospettiva a medio – lungo termine, le iterazioni sono molto più brevi e quindi più strette in termini di ambito. Ciò facilita lo sviluppo agile e, in particolare, l’elaborazione di feedback e modifiche a breve termine di requisiti e funzionalità.

Fare riferimento al grafico seguente per un esempio di come viene eseguita la pianificazione del rilascio in framework agili come XP.

Diagramma di flusso del progetto di programmazione estrema
Esempio di pianificazione di rilascio e iterazione in XP (fonte & credito: extremeprogramming.org).

La pianificazione delle versioni agili può essere eseguita manualmente o utilizzando il software di gestione del progetto. Ad esempio, Lucidchart ha pubblicato una guida per lo sviluppo di un piano di rilascio agile utilizzando il proprio software.

Pianificazione del rilascio nei progetti ibridi

Oltre al collegamento sopra menzionato tra roadmap di prodotto e iterazioni, i piani di rilascio agile possono anche aiutare a integrare i progetti di sviluppo agile in un’organizzazione o architettura orientata al rilascio.

La gestione centrale dei rilasci e i requisiti di pianificazione organizzativa sono collegati alle iterazioni e allo sviluppo agile dei prodotti attraverso la tecnica di pianificazione agile dei rilasci
Illustrazione di come la pianificazione agile dei rilasci può essere utilizzata per colmare il divario tra i requisiti di pianificazione organizzativa dei rilasci e lo sviluppo agile dei prodotti.

Ad esempio, un sistema rivolto al cliente potrebbe essere sviluppato utilizzando approcci agili. Tuttavia, tale sistema dovrebbe essere integrato nella complessa architettura IT dell’azienda, coinvolgendo anche interfacce con altri sistemi. Pertanto, lo sviluppo e l’implementazione di tale sistema rivolto al cliente sarebbero necessariamente soggetti alla pianificazione centrale del rilascio dell’organizzazione.

In questi casi, la tecnica di pianificazione del rilascio agile può collegare i rilasci dell’organizzazione alle iterazioni e alle funzionalità sviluppate in un progetto agile (sub).

Che cos’è un piano di rilascio Agile in Scrum?

Un piano di rilascio in Scrum rappresenta l’allocazione degli elementi di un product backlog (l’elenco delle funzionalità e dei requisiti di un prodotto) alle release. Queste caratteristiche vengono poi sviluppate in sprint.

In linea con i valori e i principi di Scrum, un piano di rilascio è inteso come una linea guida e un documento vivente che viene aggiornato dinamicamente quando le cose cambiano o nuove informazioni diventano note.

Secondo lo Scrum Institute™, un piano di rilascio scrum richiede un product backlog con priorità e stima, l’indicatore di velocità del team e la “condizione di soddisfazione” (o definizione di done) che comprende l’obiettivo dello sviluppo del prodotto.

In base alle stime dello sforzo per le funzionalità (la quantità di lavoro necessaria) e la velocità del team (la produttività del team), le funzionalità possono essere assegnate a diverse versioni e sprint.

Qual è la differenza tra rilasci, iterazioni e sprint?

Le versioni si riferiscono allo sviluppo e alla distribuzione pianificati di funzionalità software o modifiche in un periodo tipico di 1-3 (o anche più) mesi. Nei progetti agile, iterativo e alcuni ibridi, le versioni sono suddivise in diverse iterazioni che hanno un ambito più piccolo e un lasso di tempo più breve, spesso tra 1 o 2 settimane e 1 mese. In alcuni framework agili come Scrum, le iterazioni vengono anche definite sprint.

Quanto dura uno Sprint in Agile/Scrum?

Uno sprint in Mischia è in genere da 2 settimane a 1 mese. Tuttavia, può anche essere più breve o più lungo se questo è ritenuto più appropriato per il progetto di sviluppo.

Conclusione

Sia che tu stia lavorando come project manager o product owner in un progetto agile, iterativo o ibrido o se ti stai preparando per il tuo esame PMP, capire la pianificazione del rilascio agile è fondamentale per abilitare lo sviluppo agile o basato sull’iterazione in combinazione con la pianificazione del rilascio e del progetto a medio – lungo termine. Leggi i nostri articoli sulle altre tecniche di gestione del programma se desideri saperne di più sullo sviluppo e la gestione delle pianificazioni dei progetti.

Grazie al piano di rilascio agile, è possibile definire un ambito, soggetto a ulteriori perfezionamenti, e una timeline con alcuni mesi di anticipo. Allo stesso tempo, i team di sviluppo agile sono in grado di mantenere la loro libertà di pianificare e ripetere regolarmente l’ambito esatto di ogni iterazione. In una certa misura, la pianificazione del rilascio agile è una tecnica che consente ai project manager e ai proprietari di prodotti di combinare i vantaggi sia della gestione tradizionale del progetto (ad esempio pianificazione a medio/lungo termine) che degli approcci di progetto agile (ad esempio reattività al cambiamento e feedback).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.