getlatestversion Agile raccontato a mia nonna Felice Pescatore www.felicepescatore.it - [email protected] - @felicepescatore
Jul 18, 2015
getlatestversion
Agile raccontato a mia nonnaFelice Pescatore
www.felicepescatore.it - [email protected] - @felicepescatore
About me…
Innovation Manager
Agile/Lean Coach Agile Enterprise Architect
Microsoft MVP Visual Studio ALM
felicepescatore.it
@felicepescatore
Felice Pescatore
Agile@Scale Italy Group
Agenda
Dobbiamo telefonare a qualcuno?
No? Allora… niente agenda!
Customer Value
Cosa la nostra nonnina vorrebbe…
Customer Value
…cosa realmente succede.
Perché ci troviamo in queste condizioni?
• Il nostro modello di sviluppo prevedeva di consegnare
tutto in una volta, certi di aver capito cosa la nostra
nonnina voleva;
• Non abbiamo provato la soluzione;
• Abbiamo esaurito il budget e non possiamo completare
lo sviluppo.
Nel frattempo la nostra nonnina è rinvigorita e si
è dedicata ad altro, per cui non ha più bisogno
del nostro prodotto!
Nonna, pensaci tu!
… andiamo a fare il bucato!
!?!?! un po’ come «togli la cera e metti la cera»
Pila di indumenti sporchi Lavaggio di oggi
Asciugatura
Lavaggio
Indumenti indossabili
Come fare un buon bucato!
1. Raccolgo tutti gli indumenti da lavare;
2. Scelgo gli indumenti per il prossimo lavaggio, in base alle esigenze e in
funzione della capacità di carico della lavatrice;
3. Effettuo il lavaggio;
4. Effettuo l’asciugatura;
5. Gli indumenti lavati sono potenzialmente indossabili (non sono stirati).
Pila di Panni sporchi Lavaggio di oggi
Asciugatura
Lavaggio
Indumenti indossabili
Sorpresa! Agile è come fare il bucato!
Agile Manifesto Values
Agile Manifesto Principles
Con Agile Software Development si sottendono un gruppo di tecniche e
metodologie per lo sviluppo del software che condividono un approccio iterativo ed
incrementale, in cui i requisiti e la soluzione stessa evolvono costantemente e le
attività sono affidate a self-organizing e cross-functional Teams.
Agile = Early Value
Coinvolgimento e
Impegno degli
Stakeholder
Trasparenza
Fast Delivery
Abbracciare il
cambiamento
Gestione del Rischio
Focus sul Valore
Focus sul Cliente
Qualità
Analysis
Design
Coding
Testing
20% done(100% usable!)
Analysis
Design
Coding
Testing
Do we have halfa solution yet?
Traditional Process Agile Process
Perché le aziende scelgono Agile
Fonte
: 9TH
AN
NU
AL
Sta
te o
f A
gile
™ S
urv
ey
-©
2015
Vers
ionO
ne, In
c. A
ll rig
hts
rese
rved
Caratteristiche di un progetto Agile
Time Boxed
Just-in-Time
Adaptative
• Il Team si concentra su un obiettivo alla volta;
• I requisiti vengono specializzati solo quando si è pronti per
realizzarli.
• Team cross-functional, sia tecnico che funzionale;
• Planning Adattativo, rivisto in funzione dei risultati, dei
feedback e delle esigenze nel micro-periodo di riferimento
• Obiettivi più rilevanti da raggiungere legati all’iterazione;
• Soluzione incrementale funzionante a fine di ogni iterazione;
• Interazione continua con i (key) stakeholders;
• Rivedere il planning in funzione dei feedback ricevuti;
Vantaggi per il cliente
• Il cliente è attivamente coinvolto e ha un maggiore
controllo sulle priorità;
• Opportunità di fornire rapidamente feedback;
• E’ costantemente aggiornato sullo stato dello sviluppo;
• I requisiti sono potenzialmente rivisti dopo ogni
iterazione;
• Viene abbattuto il time-to-market, rendendo
potenzialmente disponibile una soluzione incrementale
ad ogni iterazione;
• La data di consegna può essere fissata, lasciano però
margine sulle funzionalità e sul budget utilizzabile;
• La qualità della soluzione è decisamente alta, grazie
all’enfasi sui test, sia automatici che manuali.
Vantaggi per l’azienda
• Capire i reali progressi in termini di prodotto e non di
planning;
• I Team di progetto sono coinvolti attivamente in tutte le
fasi, lavorando in modo collaborativo;
• Ritmo di lavoro sostenibile;
• I Team sono costantemente al lavoro sulle funzionalità a
maggior Valore per il cliente, grazie ai feedback
frequenti;
• La documentazione realizzata è la minima
indispensabile;
• Minori costi di sviluppo complessivo, grazia alla
riduzione del peso di tutte le attività non direttamente
legate allo sviluppo.
Sfide coinvolte nello sviluppo Agile del software
Difficoltà
Disciplina
Pianificazione
Agile è difficile da adottare, richiedendo la partecipazione attiva dei
committenti e impattando fortemente sull’azienda. Al management
viene richiesta una maggiore apertura mentale consentendo ai Team di
prendere molte decisioni in modo indipendente.
Agile richiede molta più disciplina delle tecniche tradizionali,
richiedendo che la soluzione realizzata sia sempre in uno stato
rilasciabile. Ciò implica l’utilizzo di pratiche di Continuos Integration e
codice funzionante sempre in modo perfetto.
Nelle metodologie Agili è necessaria una maggiore e più raffinata
forma di pianificazione, attuata ed aggiornata frequentemente
(Planning Onion),
Miglioramenti ottenuti dall’adozione dell’Agile
Fonte
: 9TH
AN
NU
AL
Sta
te o
f A
gile
™ S
urv
ey
-©
2015
Vers
ionO
ne, In
c. A
ll rig
hts
rese
rved
4 Valori, 12 Principi e… tante metodologie
Scrum
XP
FDDLean
Crystal
SAFeDAD
UPEvo
DSDM
Kanban
Fonte
: 9TH
AN
NU
AL
Sta
te o
f A
gile
™ S
urv
ey
-©
2015
Vers
ionO
ne, In
c. A
ll rig
hts
rese
rved
Scrum in meno di 100 parole
Valore
Priorità
Working
Alla fine di ogni iterazione, la soluzione incrementale realizzata
deve essere funzionante e chiunque può utilizzarla, decidendo
se rilasciarla al cliente o continuare a migliorarla.
Scrum consente di focalizzarsi sul delivery del massimo Valore
di Business nel minor tempo possibile relativo, permettendo di
validare rapidamente e costantemente la soluzione ottenuta ad
ogni iterazione.
Le priorità vengono fissate in funzione di quello che è il Valore
da raggiungere e il Team, auto-gestito, individua il modo
migliore per sviluppare le feature ad alta priorità.
Scrum BigPicture
Processi, Eventi e Artefatti: il Product Backlog
Gli elementi del PB sono chiamati Product Backlog Item
(PBI) e sono scritti tipicamente in forma di User Story,
corredati da Test di Accettazione. I PBI sono tipicamente
caratterizzati da: descrizione, priorità, effort, e valore di
progetto.
Scrum inizia con la creazione del Product Backlog, ovvero
l’elenco priorizzato delle funzionalità previste per il
prodotto. Il PB evolve in funzione del know-how acquisito
sul prodotto e alla maturità del Team.
Processi, Eventi e Artefatti: le User Story
Daily Scrum
Sprint Review
Sprint Retrospective
Processi, Eventi e Artefatti: lo Sprint
Lo Sprint è l'evento principale di Scrum, tipicamente di
durata compresa tra 1 e 4 settimane. Lo Sprint è sempre
accompagnato da uno Sprint Goal che ne definisce gli
obiettivi e produce un incremento funzionale e testato
della soluzione.
Ogni Sprint inizia con lo Sprint Planning Meeting,
prevede una serie di cerimonie specifiche ed è
Time-boxed: una volta iniziato non può essere
modificato se non in casi rari e con conseguenze da
valutare.
Processi, Eventi e Artefatti: Sprint
Planning e Sprint Backlog
Ogni Sprint inizia con lo Sprint Planning Meeting durante il
quale viene definito lo Sprint Goal e creato lo Sprint
Backlog, ovvero l'insieme degli elementi (PBI) del Product
Backlog selezionati dal Team per lo Sprint.
Il Team scegli i work item in funzione dello Sprint Goal e
della propria storia (HPT, Know-how, Velocity, ecc…),
suddividendoli in task di sviluppo stimati in ore (tipicamente
da 4h a 16h). I task sono auto-assegnati.
Gli Information Radiator sono pensati per comunicare rapidamente
informazioni a chiunque li osservi, consentendo di avere un quadro
immediato dello stato delle attività e di eventuali problematiche.
Scrum/Kanban Board
Burndown Chart
Regola del 3+3: 3mt in 3minuti
Processi, Eventi e Artefatti: Information Radiator
Kanban Board
Processi, Eventi e Artefatti: PSI e Definition of Done
Un Potentially Shippable Increment, o anche Increment, è il
risultato dell’attività di Continuos Integration di ogni Sprint,
cosa che rende potenzialmente pronta la soluzione per il
delivery, indipendentemente dal fatto che verrà presentata
o meno agli stakeholder.
Un PSI deve soddisfare la Definition of Done (DoD), una
serie di criteri che consentono di dichiarare che una «User
Story è completata». Tali criteri vanno chiaramente ad
impattare sull’effort, per cui è fondamentale che la DoD si
condivisa da tutto il Team.
Scrum Team
E’ la responsabile
della Vision di prodotto e ha
come obiettivo quello di
massimizzarne il Valore
realizzato.
Ha come obiettivo quello di implementare fattivamente Scrum, in modo efficace ed efficiente, all’interno del Team stesso.
Core Team
Professionisti in grado di
realizzare soluzioni Value
Driven e Strong Quality
compliance.
Scrum Team: Product Owner
Il Product Owner (PO) armonizza la voce degli
stakeholder e governa, in modo esclusivo, il
Product Backlog:
• definisce le feature;
• priorizza le feature e le user stories in funzione del
Valore;
• collabora nella definizione e nella verifica dei test
di accettazione;
Voce degli Stakeholder
Gestisce gli aspetti economici
Partecipa al Planning
Governance del Product Backlog
Definisce e verifica gli
Acceptance Test
Collabora con il Dev Team
Scrum Team: Scrum Master
Lo Scrum Master (SM) si comporta da Servant
Leader / Facilitatore:
promuove l’adozione di Scrum;
protegge il Team dalle interferenze e le distrazioni
esterne;
promuove l’autogestione volta alla crescita delle
competenze complessive;
elimina gli ostacoli agli avanzamenti.
Coach
Servant Leader
Agile Values
Protegge dalle interferenze
Rimuove gli impedimenti
Scrum Team: Development Team
Il Development Team (DT) è il braccio operativo
• auto-organizzato, è in grado di trasformare il
Product Backlog in un prodotto rilasciabile;
• cross-funzionale, ingloba tutte le competenze
necessarie (progettazione, sviluppo, testing, ecc..)
• T-shaped, i membri hanno competenze verticali
profonde (Deep) ma sono in grado di supportare il
resto del Team su tutte le attività (Broad);
• piccole dimensioni, tipicamente da 3 a 7/9
componenti.
Produce la
soluzione
funzionante di
qualità
Recap
Efficace
Value based
Difficile
Agile è oggi il modo più efficace per la realizzazione di
progetti complessi. L’obiettivo è quello di creare Valore per
tutti gli stakeholder coinvolti.
Il punto di partenza sono i 4 valori e i 12 principi del
Manifesto Agile. Tra le metodologie che abbracciano il
Manifesto, Scrum è la metodologia più diffusa.
Adottare Agile è estremamente difficile, richiedendo
disciplina ed impego.
Risorse e Riferimenti
Agile Application Lifecycle Management con VSO/TFS
Agile@Scale: visione olistica del valore
Lean Philosophy
Introduzione a Kanban
Application Lifecycle Management (ALM) con Visual Studio Online
Grazie agli sponsor
Quote
http://svy.mk/1BLujLb
Per voi sono solo 10 minuti persi, per noi è
utilissimo per poter crescere e migliorare!