Pensieri e riflessioni sul mondo della gestione dei contenuti e su come la tecnologia cambia il nostro modo di lavorare e di vivere ... quindi di collaborare!
martedì 10 luglio 2012
martedì 1 maggio 2012
Cosa è lo Sprint
Cosa è lo Sprint
Il cuore di Scrum è lo Sprint, cioè una iterazione che dura da due settimane ad un mese a seconda della complessità e quindi della durata complessiva del progetto.
Secondo la mia esperienza se il numero di persone che formano il team è superiore a 4-5 e se il team non è affiatato e esperto della metodologia è molto difficile gestire sprint che durano meno di tre settimane.
Per un progetto abbastanza complesso con un team di 6-8 persone la durata di 4 settimane secondo me è il giusto compromesso fra la velocità di deliverare nuove funzionalità e l'efficienza dell'attività di sviluppo. Bisogna tenere presente infatti che anche se il team è collaudato e affiatato l'impegno che bisogna dedicare alla fase di test (verifica e validazione interna del software), deploy e (molto probabile) bug fixing del progetto scende raramente sotto i 3-4 giorni, occupando quasi interamente la 4-ta settimana.
Tutti gli Sprint devono utilizzare lo stesso framework Scrum e tutti gli Sprint devono consegnare un incremento del prodotto finale che è potenzialmente rilasciabile al Cliente.
L'ultimo giorno dello Sprint il team è dedicato alla riunione di fine sprint (Sprint Retrospective) dove il Team (e solo il team) si interroga sugli aspetti positivi e negativi che sono emersi durante l'ultimo Sprint e propone al Project Manager delle contromisure per arginare o eliminare le cause dell'inefficienza rilevata. Il tempo da dedicare a questa importante riunione varia a seconda della complessità del progetto, dalla maturità del team e dal grado di affiatamento delle risorse, comunque nella norma una riunione di 20 minuti è sufficiente a individuare le criticità e concordare le azioni da intraprendere per superarli.
Lo Sprint successivo inizia immediatamente dopo la fine del precedente attraverso una riunione (Sprint Planning Meeting) che coinvolge tutto il team, durante la quale il Product Owner spiega al team gli obiettivi che devono essere conseguiti e chiarisce con sufficiente grado di dettaglio le funzionalità che devono essere realizzate durante il prossimo Sprint.
Il Product Owner deve preparare la riunione individuando, insieme al Cliente, le funzionalità la cui realizzazione ha maggiore priorità per la buona riuscita del progetto fra quelle riportate nel Product Backlog. Il product owner deve quindi prioritizzare le attività riportate nel Product Backlog insieme al Cliente e assicurarsi che quelle a più alta priorità, quindi papabili di essere sviluppate nell'imminente Sprint, siano state definite con un sufficiente grado di dettaglio che non lasci spazio ad interpretazioni ambigue da parte del team.
E' sempre consigliabile, compatibilmente con le esigenze del Cliente, affrontare lo sviluppo delle funzionalità con un più alto grado di rischio dal punto di vista tecnologico.
Scrum offre quattro artefatti principali per supportare il Project Manager nella gestione dello Sprint:
Il cuore di Scrum è lo Sprint, cioè una iterazione che dura da due settimane ad un mese a seconda della complessità e quindi della durata complessiva del progetto.
Secondo la mia esperienza se il numero di persone che formano il team è superiore a 4-5 e se il team non è affiatato e esperto della metodologia è molto difficile gestire sprint che durano meno di tre settimane.
Per un progetto abbastanza complesso con un team di 6-8 persone la durata di 4 settimane secondo me è il giusto compromesso fra la velocità di deliverare nuove funzionalità e l'efficienza dell'attività di sviluppo. Bisogna tenere presente infatti che anche se il team è collaudato e affiatato l'impegno che bisogna dedicare alla fase di test (verifica e validazione interna del software), deploy e (molto probabile) bug fixing del progetto scende raramente sotto i 3-4 giorni, occupando quasi interamente la 4-ta settimana.
Tutti gli Sprint devono utilizzare lo stesso framework Scrum e tutti gli Sprint devono consegnare un incremento del prodotto finale che è potenzialmente rilasciabile al Cliente.
L'ultimo giorno dello Sprint il team è dedicato alla riunione di fine sprint (Sprint Retrospective) dove il Team (e solo il team) si interroga sugli aspetti positivi e negativi che sono emersi durante l'ultimo Sprint e propone al Project Manager delle contromisure per arginare o eliminare le cause dell'inefficienza rilevata. Il tempo da dedicare a questa importante riunione varia a seconda della complessità del progetto, dalla maturità del team e dal grado di affiatamento delle risorse, comunque nella norma una riunione di 20 minuti è sufficiente a individuare le criticità e concordare le azioni da intraprendere per superarli.
Lo Sprint successivo inizia immediatamente dopo la fine del precedente attraverso una riunione (Sprint Planning Meeting) che coinvolge tutto il team, durante la quale il Product Owner spiega al team gli obiettivi che devono essere conseguiti e chiarisce con sufficiente grado di dettaglio le funzionalità che devono essere realizzate durante il prossimo Sprint.
Il Product Owner deve preparare la riunione individuando, insieme al Cliente, le funzionalità la cui realizzazione ha maggiore priorità per la buona riuscita del progetto fra quelle riportate nel Product Backlog. Il product owner deve quindi prioritizzare le attività riportate nel Product Backlog insieme al Cliente e assicurarsi che quelle a più alta priorità, quindi papabili di essere sviluppate nell'imminente Sprint, siano state definite con un sufficiente grado di dettaglio che non lasci spazio ad interpretazioni ambigue da parte del team.
E' sempre consigliabile, compatibilmente con le esigenze del Cliente, affrontare lo sviluppo delle funzionalità con un più alto grado di rischio dal punto di vista tecnologico.
Scrum offre quattro artefatti principali per supportare il Project Manager nella gestione dello Sprint:
- Product Backlog: è l’elenco di tutto ciò che potrebbe essere necessario al prodotto, ordinato per priorità;
- Sprint Backlog: è l'elenco delle attività che il team deve effettuare per trasformare la parte di Product Backlog selezionata per lo Sprint in corso in un incremento di prodotto potenzialmente rilasciabile e quindi vendibile;
- Burndown: misura la quantità di attività residue associate al Backlog nel corso del tempo;
- Release Burndown: misura la quantità residua di Product Backlog rispetto al piano di rilascio (Release Plan).
sabato 21 gennaio 2012
cosa è Scrum
Cosa è Scrum
Scrum è una metodologia agile di sviluppo del software molto simile ad Extreme Programming. La metodologia prevede di dividere il progetto in blocchi rapidi di lavoro (Sprint) alla fine dei quali deve essere prodotta una versione funzionante al cliente equipaggiata con le funzionalità concordate prima dell'avvio dello Sprint con il Committente.
La metodologia fornisce indicazioni su come definire le funzionalità da sviluppare nell'immediato futuro (Backlog), su come organizzare riunioni giornaliere del team di sviluppo (Scrum Meeting) per verificare cosa si è fatto ieri e cosa si farà oggi.
Scrum è basato su un insieme di prassi accettate nel settore industriale, utilizzate e collaudate da decenni. Si tratta di una teoria di processo con base empirica. Scrum è stato impiegato per sviluppare prodotti complessi sin dai primi anni ’90. Scrum non è un processo o una tecnica bensì un framework all’interno del quale possiamo utilizzare vari processi e varie tecniche. Il ruolo di Scrum è quello di far emergere l’efficacia relativa delle pratiche di sviluppo adottate, in modo da poterle migliorare, fornendo nel contempo un framework adatto allo sviluppo di prodotti complessi. Scrum si basa sulla teoria dei controlli empirici di processo. Utilizza un metodo iterativo ed un approccio incrementale per ottimizzare la prevedibilità ed il controllo del rischio. Sono tre i pilastri che sostengono ogni implementazione del controllo empirico di processo.
La metodologia Il framework Scrum è costituito da una serie di Scrum Team e dai ruoli a essi associati; Time-Box, Artefatti e Regole. Gli Scrum Team sono concepiti per ottimizzare la flessibilità e la produttività. Proprio per questo sono autoorganizzati, cross-funzionali e lavorano basandosi su iterazioni. Ogni Scrum Team necessita di tre ruoli:
Le attività fondamentali per la corretta applicazione della metodologia di sviluppo agile sono:
mountaingoatsoftware
scrumalliance.org
scrum.org
Scrum è una metodologia agile di sviluppo del software molto simile ad Extreme Programming. La metodologia prevede di dividere il progetto in blocchi rapidi di lavoro (Sprint) alla fine dei quali deve essere prodotta una versione funzionante al cliente equipaggiata con le funzionalità concordate prima dell'avvio dello Sprint con il Committente.
La metodologia fornisce indicazioni su come definire le funzionalità da sviluppare nell'immediato futuro (Backlog), su come organizzare riunioni giornaliere del team di sviluppo (Scrum Meeting) per verificare cosa si è fatto ieri e cosa si farà oggi.
Scrum è basato su un insieme di prassi accettate nel settore industriale, utilizzate e collaudate da decenni. Si tratta di una teoria di processo con base empirica. Scrum è stato impiegato per sviluppare prodotti complessi sin dai primi anni ’90. Scrum non è un processo o una tecnica bensì un framework all’interno del quale possiamo utilizzare vari processi e varie tecniche. Il ruolo di Scrum è quello di far emergere l’efficacia relativa delle pratiche di sviluppo adottate, in modo da poterle migliorare, fornendo nel contempo un framework adatto allo sviluppo di prodotti complessi. Scrum si basa sulla teoria dei controlli empirici di processo. Utilizza un metodo iterativo ed un approccio incrementale per ottimizzare la prevedibilità ed il controllo del rischio. Sono tre i pilastri che sostengono ogni implementazione del controllo empirico di processo.
La metodologia Il framework Scrum è costituito da una serie di Scrum Team e dai ruoli a essi associati; Time-Box, Artefatti e Regole. Gli Scrum Team sono concepiti per ottimizzare la flessibilità e la produttività. Proprio per questo sono autoorganizzati, cross-funzionali e lavorano basandosi su iterazioni. Ogni Scrum Team necessita di tre ruoli:
- Scrum Master: responsabile del fatto che il processo venga compreso e seguito dal team;
- Product Owner: responsabile di massimizzare il valore del lavoro che il Team Scrum esegue;
- Team: fa il lavoro. Il Team è formato da sviluppatori, funzionali earchitetti con tutte le competenze necessarie per tradurre le richieste del Product Owner in una porzione potenzialmente rilasciabile di prodotto entro la fine dello Sprint.
Le attività fondamentali per la corretta applicazione della metodologia di sviluppo agile sono:
- Release Planning Meeting
- Sprint Planning Meeting
- Sprint
- Daily Scrum Meeting
- Sprint Review
- Sprint Retrospective
- Consente di lavorare in modo produttivo anche in situazioni particolarmente caotiche e confuse
- È fortemente orientato ai risultati concreti, ed alla gestione del cambiamento
- Porta ad un forte coinvolgimento del committente
- Porta ad una assunzione di responsabilità del gruppo di lavoro
- Favorisce la creazione di team coesi
- Favorisce la condivisione della conoscenza all'interno del team
Iscriviti a:
Post (Atom)