Gestione agile dei progetti

Gestione agile dei progetti con HERMES e SCRUM

Perché agile

Per gestire la complessità dello sviluppo di prodotti e sistemi molti sviluppatori fanno uso di metodi agili. Prendendo ad esempio il metodo SCRUM viene mostrato come HERMES interagisce con lo sviluppo agile.

Posizionamento dello sviluppo agile nel modello per fasi

HERMES copre l'intero ciclo di vita di un progetto. SCRUM regolamenta l'organizzazione e la guida del team di sviluppo. Le transizioni tra le fasi non devono tuttavia essere visibili al team di sviluppo. Esso infatti è coinvolto solo limitatamente nella guida del progetto, poiché la guida del team di sviluppo avviene tramite il backlog del prodotto e lo Sprint backlog.

La figura 33 mostra che durante tutte le fasi di HERMES lo sviluppo avviene in maniera agile.

Figura 33: Sviluppo agile nelle varie fasi di HERMES
Figura 33: Sviluppo agile nelle varie fasi di HERMES

Resta di competenza del project manager e del committente portare a termine le fasi di HERMES e i compiti decisionali, con le milestone di guida, gestione ed esecuzione. Anche nel caso di uno sviluppo agile il committente e il project manager si occupano dei compiti di guida e di gestione del progetto, perché SCRUM non copre questi aspetti.

Nel caso dello sviluppo agile con SCRUM, i punti focali del team di sviluppo nelle fasi sono i seguenti:

Avvio

il punto fondamentale della fase di Avvio sta nell'elaborazione dello studio con soluzioni alternative. In questo senso, lo sviluppo non è ancora presente in questa fase.

Concezione

Nella fase di Concezione, quando il partner di sviluppo è ormai stabilito e l'estensione dello sviluppo è definito in maniera sufficientemente stabile, si può introdurre SCRUM per lo sviluppo agile. Per questo viene utilizzato il modulo Sviluppo agile.

Innanzitutto si esegue il compito Decidere SCRUM. Lo sviluppo agile con SCRUM ha delle conseguenze sui tutti i partner: utente, produttore e operatore. La decisione viene quindi presa in maniera consapevole coinvolgendo le parti coinvolte. L'introduzione di SCRUM viene quindi pianificata ed eseguita con il compito Introdurre SCRUM. Da quel momento si possono già eseguire i primi sprint, che possono servire per verificare l'architettura del sistema con un prototipo (proof of concept).

Nella fase di Concezione si decide l'architettura del sistema. L'architettura deve essere elaborata in modo sufficientemente dettagliato, in modo che gli organi regolatori e di controllo di gestione competenti possano verificarla e che si possa prendere la decisione riguardo all'architettura del sistema. In questo modo si assicura la sostenibilità del sistema IT, prima di investire molte risorse nello sviluppo.

Realizzazione

il punto fondamentale dello sviluppo agile sta nella fase di Realizzazione. Nello sviluppo agile, l'elaborazione della specifica dettagliata avviene quasi contemporaneamente allo sviluppo. Lo sviluppo del sistema/prodotto avviene dopo disponibilità della relativa specifica dettagliata negli sprint.

Introduzione

nella fase di Introduzione vengono eseguiti ulteriori sprint. Ad esempio vengono gestiti in modo agile le modifiche e il bugfixing e ciò fino all'accettazione del sistema.

Scenari

HERMES offre due scenari standard che includono la guida agile dello sviluppo con SCRUM:

  1. applicazione IT agile
  2. servizio/prodotto agile

Con questi scenari l'utente dispone di un metodo che può utilizzare immediatamente per la guida agile dello sviluppo.

Di seguito viene descritto come utilizzare insieme HERMES e SCRUM nell'ambito di un progetto di sviluppo IT.

Modulo Sviluppo agile

SCRUM è contenuto in HERMES come modulo Sviluppo agile, che contiene come risultati tutti gli artefatti di SCRUM e ne integra gli eventi nei compiti.

La figura 34 mostra il posizionamento del modulo Sviluppo agile nello scenario Applicazione IT agile. Il modulo è situato al livello gerarchico Gestione e completa il modulo Gestione del progetto, i cui risultati e compiti continuano a essere necessari perché non coperti da SCRUM.

Figura 34: Posizionamento del modulo «Sviluppo agile»
Figura 34: Posizionamento del modulo «Sviluppo agile»

I moduli del livello gerarchico Esecuzione continuano a essere necessari, perché SCRUM non dà nessuna indicazione sui compiti e sui risultati concreti per quanto concerne gli acquisti, lo sviluppo del sistema IT, i test, la migrazione ecc., ma si concentra sulla guida agile dello sviluppo.

Ruoli

SCRUM dispone di tre ruoli. Essi completano i ruoli di HERMES e sono applicati secondo la definizione della SCRUM Guide™.

HERMES parte dal presupposto che una persona possa occupare più ruoli (cumulo di ruoli). Il titolare di un ruolo HERMES può quindi assumere anche un ruolo SCRUM. La tabella mostra i possibili cumuli di ruolo.

Tabella 49: Possibili cumuli di ruoli con SCRUM

Ruolo SCRUM

Candidato HERMES per il ruolo SCRUM

Product Owner

Business analyst

Project manager dell'utente

Responsabile dei processi operativi

Responsabile dell'applicazione

Architetto IT

Team di sviluppo

Sviluppatore, business analyst, responsabile dei test, tester

SCRUM Master

Sviluppatore, business analyst

HERMES e SCRUM hanno una comprensione fondamentalmente diversa della gestione del team. Mentre HERMES parte dal presupposto che il project manager impartisca i mandati di lavoro, l'attività del Team SCRUM è diretta dal Product Owner attraverso il backlog del prodotto e il team organizza il proprio lavoro in modo autonomo.

Il rispetto dei ruoli definiti in SCRUM è un fattore di riuscita essenziale per l'utilizzo di SCRUM. In caso di cumulo di ruoli, bisognerà badare a che il ruolo definito in SCRUM sia rispettato dal suo titolare.

Compiti

Orientamento di ampia portata dei compiti

Nel modulo Sviluppo agile i compiti sono maggiormente orientati allo sviluppo software di quanto non avvenga in SCRUM. La tabella mostra i compiti del modulo Sviluppo agile e il loro rapporto con la SCRUM Guide™.

Tabella 50: Compiti di HERMES e loro rapporto con la SCRUM Guide™

Compito HERMES

Descrizione del compito HERMES

SCRUM Guide™

Decidere lo sviluppo agile con SCRUM

La decisione costituisce la base dello sviluppo agile con SCRUM. Essa definisce come viene svolto il lavoro agile per lo sviluppo con SCRUM e come viene introdotto.

Non disponibile

Introdurre SCRUM

L'introduzione mirata di SCRUM costituisce il presupposto per lo sviluppo agile.

Non disponibile

Gestire il backlog del prodotto

Il backlog del prodotto costituisce il presupposto per l'elaborazione del piano di rilascio e per l'esecuzione degli sprint.

Parte di SCRUM.
Un'attività del ruolo Product Owner

Elaborare il piano di rilascio

Il piano di rilascio costituisce la base per eseguire gli sprint, per pianificare la trasmissione di un rilascio all'utente e per coordinare le attività con i servizi interessati.

Non disponibile

Eseguire gli sprint

L'esecuzione di uno sprint porta a un risultato concordato, concreto e verificabile.

Lo sprint è il cuore di SCRUM.
Esso contiene tutti gli eventi di SCRUM ed è descritto nella SCRUM Guide™.
In HERMES, gli eventi SCRUM sono menzionati come attività in questo compito.

Durante lo sviluppo agile si devono considerare particolarmente i seguenti compiti del modulo Gestione del progetto:

Gestire le modifiche

L'assegnazione di priorità al backlog del prodotto porta a delle modifiche nell'ambito delle prestazioni. I project manager dell'utente e del produttore provvedono alla gestione delle modifiche secondo il processo definito per il progetto e registrato nel manuale di gestione del progetto. SCRUM non rende superfluo questo compito.

Anche in caso di utilizzo di SCRUM, bisogna tener presente l'ambito del progetto e la sua delimitazione. Un'estensione dell'ambito o uno spostamento della delimitazione del progetto possono riguardare l'organizzazione permanente e devono essere valutati dagli organi competenti, rappresentati, in particolare, dal committente e dagli organi regolatori e di controllo di gestione responsabili della gestione del portafoglio progetti.

Concordare e gestire le prestazioni

La guida delle prestazioni viene effettuata mediante l'assegnazione di priorità ai requisiti, per mezzo del backlog del prodotto e degli sprint backlog.

In caso di prestazioni convenute a prezzi fissi, ogni modifica del loro ambito comporta delle modifiche del mandato, la cui base è l'elenco dello stato delle modifiche.

Posizionamento di HERMES e di SCRUM

In un progetto in cui viene condotto lo sviluppo agile con SCRUM, il metodo SCRUM è utilizzato come complemento di HERMES.

La tabella mostra il posizionamento, fondamentalmente diverso, di HERMES e di SCRUM. Essa mostra chiaramente come SCRUM non sostituisca HERMES, ma lo completi quando necessario.

Tabella 51: Diverso posizionamento di HERMES e di SCRUM

Settore

HERMES

SCRUM

Ciclo di vita del progetto

HERMES copre l'intero ciclo di vita del progetto, ossia dal mandato per l'avvio del progetto fino alla sua chiusura.

SCRUM copre l'intervallo del

progetto durante il quale viene sviluppato.

Il modello per fasi definisce i punti decisionali differenziati, sulla base dei quali si effettua l'armonizzazione del progetto con l'organizzazione permanente (p. es. per l'armonizzazione dell'architettura del sistema).

SCRUM non definisce nessun punto decisionale

differenziato per l'armonizzazione con l'organizzazione permanente.

Risultati, compiti, ruoli

HERMES definisce tutti i risultati, i compiti e i ruoli per scenari definiti.

SCRUM definisce i risultati (artefatti), i compiti (eventi) e i ruoli necessari per la guida agile dello sviluppo .

I risultati, i compiti e i ruoli sono orientati al contenuto concreto del progetto (ossia alle caratteristiche di un progetto). Essi sono specifici.

I risultati, i compiti e i ruoli non sono orientati al contenuto concreto del progetto (ossia alle caratteristiche di un progetto).

HERMES descrive i compiti concreti per l'elaborazione dei risultati specifici al progetto.

SCRUM non descrive nessun compito concreto per l'elaborazione dei risultati specifici al progetto.

SCRUM non descrive nessun processo di sviluppo, ma permette di rendere misurabile l'efficacia relativa dello sviluppo (citazione dalla guida di SCRUM).

Livelli gerarchici

HERMES distingue i livelli gerarchici Guida, Gestione ed Esecuzione. I ruoli sono attribuiti a questi tre livelli gerarchici.

SCRUM distingue i livelli

Guida ed Esecuzione.

HERMES comprende numerosi moduli ognuno dei quali è attribuito a uno dei livelli gerarchici.
La distinzione tra questi livelli gerarchici è un elemento importante della governance.

Partner

HERMES definisce la collaborazione tra l'utente, il produttore e l'operatore.

SCRUM definisce la collaborazione tra l'utente (product owner) e lo sviluppatore (ruolo Scrum Team).

Panoramica degli elementi metodologici

HERMES e SCRUM sono composti da elementi metodologici simili, in modo che il framework SCRUM possa essere integrato in modo semplice nel metodo HERMES.

Tabella 52: Elementi dei metodi HERMES e SCRUM

Elementi del metodo HERMES

Elementi del metodo SCRUM

Risultato

Artefatto

Compito

Evento

Ruolo

Ruolo