agile fundamentals - davide roitero -...
TRANSCRIPT
Febbraio [email protected]
Agile Agile Agile Agile IntroductionIntroductionIntroductionIntroduction
Ingegneria del software UNIPI
Febbraio [email protected] 1
Team BuildingTeam BuildingTeam BuildingTeam Building
Davide Roitero
55 anni ben portati, informatico da circa 40.
Ho conosciuto Agile nel 2010, ne sonorimasto affascinato e, da allora, non ci siamopiù separati.
Sono Agile Coach in una grande azienda eseguo la componente metodologica deiprogetti.
Il gessato lo indosso solo perché sfina il miofisico da Obelix e nel mio tempo libero, perrilassarmi, produco ottimi gorgonzola.
Febbraio [email protected] 2
Perché sono qui oggiPerché sono qui oggiPerché sono qui oggiPerché sono qui oggi
Potremmo limitarci a imparare qualcosa, e già non sarebbe poco,ma io, da quando lavoro con Agile, sono più protagonista delle miegiornate e più contento di alzarmi al mattino per andare a lavorare.
Vorrei che anche per voi, almeno tentativamente, fosse lo stesso.
E’ un obiettivo ambizioso? Probabilmente si ma mi pare l’unicaragione intelligente per essere qui oggi.
Se ci sarò riuscito me lo direte tra un bel po’ di tempo.
La mia email è qui sotto.
Febbraio [email protected] 3
Parliamo di Agile al fine di ….Parliamo di Agile al fine di ….Parliamo di Agile al fine di ….Parliamo di Agile al fine di ….
«al fine di …» sono tre parole ma a me hanno cambiato modo dipensare e lavorare.
Agile ci chiede di pensare sempre per chi e perché facciamo unosviluppo software e spesso questo ci aiuta a trovare la stradamigliore. Io lo applico a ogni cosa che faccio.
Parliamo di Agile per conoscere un altro modo di fare progetti, peravere nella nostra cassetta qualche attrezzo in più da usareall’occorrenza.
Ne parliamo anche perché viviamo in un mondo veloce e complessoe Agile è particolarmente a suo agio in questo contesto.
Febbraio [email protected] 4
Agile Ways of WorkAgile Ways of WorkAgile Ways of WorkAgile Ways of Work
Febbraio [email protected] 5
Agile nasce da Lean Agile nasce da Lean Agile nasce da Lean Agile nasce da Lean ThinkingThinkingThinkingThinking
Il Lean Thinking (Pensare Snello) è una strategia operativa nata dalmondo automotive (in Toyota) ma oggi universalmente applicata insettori e ambiti diversi per aumentare l’efficienza ed eliminare glisprechi.
È una strategia operativa perché racchiude, insiemeall’inquadramento sul pensiero e sulle teorie organizzative, anchel’approccio pratico (il lavoro umano che serve per realizzare laconversione snella).
I principi su cui si basa il Lean Thinking sono semplici: il punto dipartenza è l’identificazione degli sprechi per poi eliminarli eprodurre di più con un minor consumo di risorse.
Febbraio [email protected] 6
Lean Lean Lean Lean ThinkingThinkingThinkingThinking
Lean Thinking è una filosofia produttiva che ricerca la perfezione.
Lean Thinking è un sistema di lavoro che cerca di ridurre il tempo tral’idea e la vendita
Febbraio [email protected] 7
I principi del Lean I principi del Lean I principi del Lean I principi del Lean ThinkingThinkingThinkingThinking
Identificare ciò che vale (value) individuare ciò per cui i clienti sono disposti a
pagare un prezzo
Identificare il flusso del valore (value stream) allineare le attività che
creano valore nella giusta sequenza
Far scorrere il flusso del valore (flow) mettere in atto le attività a valore senza
interruzioni
Fare in modo che il flusso sia tirato (pull) fare scorrere il flusso in base alle
richieste del cliente
Puntare alla perfezione (perfection) assumere la perfezione come riferimento
per programmi di miglioramento continuo
Estendere alla catena dei fornitori (lean supply chain) affrontare anche
la catena dei fornitori in ottica lean
Febbraio [email protected] 8
I cambiamenti generati dal Lean I cambiamenti generati dal Lean I cambiamenti generati dal Lean I cambiamenti generati dal Lean ThinkingThinkingThinkingThinking
L’applicazione in azienda dei sei principi provoca un grandecambiamento sia sul “piano fisico” sia sul piano organizzativo(riduzione dei livelli gerarchici, orientamento ai processi, teaminterfunzionali, responsabilizzazione, delega e sviluppo competenzea livelli operativi, snellimento delle funzioni ecc.).
Tutto questo comporta quindi un radicale
cambiamento di mentalità da parte di tutto il
personale ed una vera e propria “rivoluzione
culturale”.
È una scelta coraggiosa, operata da una direzione forte, dinamica,innovativa e moderna
Febbraio [email protected] 9
Agile è un Agile è un Agile è un Agile è un mindsetmindsetmindsetmindset
Agile è un mindset che trae ispirazionedai principi del Lean Thinkingadattandoli per lo sviluppo del sw.
I principi a cui si ispira Agile sono:
• MURI (Pull)
• MURA (Flow)
• MUDA (Value)
• KAY ZEN (Perfection)
Febbraio [email protected] 10
MuriMuriMuriMuri
Muri è lo spreco legato allasovraproduzione di pezzi.
Oltre alle risorse immobilizzate finoall’utilizzo, se intervengonocambiamenti di mercato l’azienda nonpuò adeguarsi fino a che le scorte nonsono finite.
(sviluppo della UI di tutto il progetto apriori)
Febbraio [email protected] 11
MuraMuraMuraMura
Mura è lo spreco legato alla incostanzadella produzione.
Se ogni giorno parte un container chepuò trasportare due auto, quando neproduco una parte semivuoto equando ne produco tre me ne rimaneuna nel piazzale.
(nel sw si alternano deliverable didimensioni molto diverse tra loro)
Febbraio [email protected] 12
MudaMudaMudaMuda
Muda sono gli sprechi.
Gli sprechi non sono solo i prodottiche devo buttare ma anche tutte leattività del processo produttivo per cuiil cliente non è disposto a pagare, a cuinon riconosce un valore.
(trasporti, attività non necessarie,movimentazioni, difetti, inventari eattese)
Febbraio [email protected] 13
KaiKaiKaiKai ZenZenZenZen
Il Kai Zen è il miglioramento continuo.
Tutto il team di produzione èincentivato a pensare a comemigliorare la produzione.
Il momento migliore per perfezionare ilprocesso produttivo è quando stafunzionando.
Quando non funziona vorranno soloche lo aggiustiamo in fretta.
Febbraio [email protected] 14
CynefinCynefinCynefinCynefin FrameworkFrameworkFrameworkFramework
Ovvio: so cosa c’è da fare. Lo so fare
lo faccio
Complicato: so cosa c’è da fare. Non lo so fare.
Chiamo un esperto.
Complesso: non so cosa c’è da fare e non lo sa nessuno.
Posso fare degli esperimenti e imparare per migliorare.
Caotico: Non si capisce nulla.
Devo fare la prima cosa che posso fare e poi vedere cosa succede.
Febbraio [email protected] 15
Noi conviviamo con la complessitàNoi conviviamo con la complessitàNoi conviviamo con la complessitàNoi conviviamo con la complessità
Se devo venire quidall’aeroporto, in macchina,imposto il navigatore edinizio a guidare.
Se a metà strada incontro uningorgo cambio strada e luiricalcola il percorso tenendofissa la meta così come se sirisolve un ingorgo mi facambiare strada.
Il navigatore è molto Agile!
Febbraio [email protected] 16
Taylor Taylor Taylor Taylor bathtubbathtubbathtubbathtub
Nel mercato odierno i Doer e iThinker sempre più spessocoincidono.
Il mercato è globale.
Abbiamo a disposizionetecnologie a basso costo che cipermettono prototipazionirapidissime.
Possiamo raccoglierefacilmente feedback dai nostricustomer.
Febbraio [email protected] 17
I progetti I progetti I progetti I progetti waterfallwaterfallwaterfallwaterfall nella teorianella teorianella teorianella teoria
Febbraio [email protected] 18
I progetti I progetti I progetti I progetti waterfallwaterfallwaterfallwaterfall nella praticanella praticanella praticanella pratica
Febbraio [email protected] 19
I progetti I progetti I progetti I progetti waterfallwaterfallwaterfallwaterfall che finiscono beneche finiscono beneche finiscono beneche finiscono bene
Nei progetti waterfall tengofissi tempi, costi e funzionalitàdel progetto.
Se sono un bravissimo capoprogetto riesco a fare neltempo stabilito e con i soldipattuiti le funzionalità richieste.
Peccato che è passato un annoe i clienti che vogliono quelloche ti avevo chiesto non ci sonopiù.
Scope
Time Cost
Febbraio [email protected] 20
I progetti I progetti I progetti I progetti waterfallwaterfallwaterfallwaterfall che finiscono meno beneche finiscono meno beneche finiscono meno beneche finiscono meno bene
Quasi sempre:
• Non finisco in tempo
• I costi aumentano
• Le funzionalità non ci sonotutte
Secondo voi quantapercentuale di progettifiniscono male?
Scope
Time Cost
Febbraio [email protected] 21
Chaos ManifestoChaos ManifestoChaos ManifestoChaos Manifesto
Agile non è la soluzione di tuttii mali.
Anche Agile può essereapplicato male e ce ne sonoesempi in ogni dove.
Di sicuro diminuiscedrasticamente la percentuale diprogetti che falliscono eaumenta drasticamente lapercentuale di quelli chefiniscono on time, on budget,on scope.
Febbraio [email protected] 22
Requisiti vs ConoscenzaRequisiti vs ConoscenzaRequisiti vs ConoscenzaRequisiti vs Conoscenza
«In principio erano irequirements»
Ma il cliente, all’inizio non sacosa vuole.
Tantomeno sa cosa vogliono isuoi clienti.
Lo scopre vedendo e lo scoprevendendo.
Febbraio [email protected] 23
Minimum Minimum Minimum Minimum ValuableValuableValuableValuable ProductProductProductProduct
Devo realizzare la minimaporzione di prodotto che mi diamodo di raccogliere i feedbackdei miei consumatori per capirese sto sviluppando quello chegli serve
L’MVP di Dropbox era unfilmato di due minuti, realizzatoin una mattinata, fotografandoi disegni di un membro delteam.
Febbraio [email protected] 24
AGILE manifestoAGILE manifestoAGILE manifestoAGILE manifesto
Gli individui e le iterazioni più che i processi e gli strumenti
Il software funzionante più che la documentazione esaustiva
La collaborazione con il cliente più che la negoziazione dei contratti
Rispondere al cambiamento più che seguire un piano
Ovvero, fermo restando il valore delle voci di destra, consideriamo più importanti le voci a sinistra
Febbraio [email protected] 25
AGILE AGILE AGILE AGILE principleprincipleprincipleprinciple #1#1#1#1
La nostra massima priorità è soddisfare il cliente rilasciando software di valore, fin da subito e in maniera continua
Febbraio [email protected] 26
AGILE AGILE AGILE AGILE principleprincipleprincipleprinciple #2#2#2#2
Accogliamo i cambiamenti nei requisiti, anche a stadi avanzati dello sviluppo.I processi AGILI sfruttano il cambiamento a favore del vantaggio competitivo del cliente
Febbraio [email protected] 27
AGILE AGILE AGILE AGILE principleprincipleprincipleprinciple #3#3#3#3
Consegnamo frequentemente software funzionante, con cadenza variabile da un paio di settimane a un paio di mesi, preferendo i periodi brevi.
Febbraio [email protected] 28
AGILE AGILE AGILE AGILE principleprincipleprincipleprinciple #4#4#4#4
Committenti e sviluppatori devono lavorare insieme quotidianamente per tutta la durata del progetto.
Febbraio [email protected] 29
AGILE AGILE AGILE AGILE principleprincipleprincipleprinciple #5#5#5#5
Fondiamo i progetti su individui motivati.Diamo loro l'ambiente e il supporto di cui hanno bisogno e confidiamo nella loro capacità di portare il lavoro a termine.
Febbraio [email protected] 30
AGILE AGILE AGILE AGILE principleprincipleprincipleprinciple #6#6#6#6
Una conversazione faccia a faccia è il modo più efficiente e più efficace per comunicare con il team ed all'interno del team.
Febbraio [email protected] 31
AGILE AGILE AGILE AGILE principleprincipleprincipleprinciple #7#7#7#7
Il software funzionante è il principale metro di misura di progresso
Febbraio [email protected] 32
AGILE AGILE AGILE AGILE principleprincipleprincipleprinciple #8#8#8#8
I processi agili promuovono uno sviluppo sostenibile.Gli sponsor, gli sviluppatori e gli utenti dovrebbero essere in grado di mantenere indefinitamente un ritmo costante
Febbraio [email protected] 33
AGILE AGILE AGILE AGILE principleprincipleprincipleprinciple #9#9#9#9
La continua attenzione all'eccellenza tecnica e alla buona progettazione esaltano l'agilità
Febbraio [email protected] 34
AGILE AGILE AGILE AGILE principleprincipleprincipleprinciple #10#10#10#10
La semplicità - l'arte di massimizzare la quantità di lavoro non svolto - è essenziale
Febbraio [email protected] 35
AGILE AGILE AGILE AGILE principleprincipleprincipleprinciple #11#11#11#11
Le architetture, i requisiti e la progettazione migliori emergono da team che si auto-organizzano
Febbraio [email protected] 36
AGILE AGILE AGILE AGILE principleprincipleprincipleprinciple #12#12#12#12
A intervalli regolari il team riflette su come diventare più efficace, dopodiché regola e adatta il proprio comportamento di conseguenza
Febbraio [email protected] 37
Agile Agile Agile Agile frameworksframeworksframeworksframeworks
Per più team
• Less
• SAFe
• DAD
• Scrum@Scale
• Nexus
• …
Per un team
• Scrum
• Kanban
• Extreme Programming
• …
Febbraio [email protected] 38
KanbanKanbanKanbanKanban semplicesemplicesemplicesemplice
Febbraio [email protected] 39
KanbanKanbanKanbanKanban maturomaturomaturomaturo
Febbraio [email protected] 40
ScrumScrumScrumScrum
Febbraio [email protected] 41
ScrumScrumScrumScrum Team Team Team Team crossfunzionalecrossfunzionalecrossfunzionalecrossfunzionale
Uno Scrum Team crossfunzionale è un team dove ci sono membricon skill molto specifici che, uniti insieme, possono ottenere ilmassimo risultato. Nel tempo ognuno di loro allarga il suo knowhow attraverso la condivisione delle conoscenze.
Nel Team devono essere presenti tutti gli skills necessari a portare acasa il risultato richiesto.
From Concept to Cash.
Febbraio [email protected] 42
ScrumScrumScrumScrum Team auto organizzatoTeam auto organizzatoTeam auto organizzatoTeam auto organizzato
Uno Scrum Team riceve dal P.O. le specifiche so COSA deve esserefatto, ma decide in modo autonomo COME realizzare le specifiche.
Al suo interno divide le attività in piccoli task.
Ogni membro prende in carico il task a più alta priorità su cui puòlavorare.
Al Daily Meeting ci si allinea e ci si confronta.
Il risultato, alla fine dello Sprint è del team e mai del singolo.
Febbraio [email protected] 43
Lo Lo Lo Lo ScrumScrumScrumScrum MasterMasterMasterMaster
• Aiuta lo Scrum Team adaderire a Scrum
• Aiuta il Product Owner ascrivere le storie
• Aiuta lo Scrum Team arisolvere gli Impediments
Febbraio [email protected] 44
Il Product Il Product Il Product Il Product OwnerOwnerOwnerOwner
Il Product Owner raccoglie input dachiunque: clienti, manager, team ma èl’unico abilitato ad inserire storie nelbacklog e a prioritizzarlomassimizzando il R.O.I.
Il team NON RICEVE RICHIESTE DAALTRI che non siano il Product Owner esolo attraverso il Product Backlog
Febbraio [email protected] 45
Lo Sprint PlanningLo Sprint PlanningLo Sprint PlanningLo Sprint Planning
Il Product Owner, ad ogni inizioSprint, propone al Team le storiepartendo dalla più alta nelbacklog.
Il Team le accetta, le pesa e leinserisce nello Sprint Backlogfino ad esaurire la sua capacitàper quello sprint.
Febbraio [email protected] 46
Lo SprintLo SprintLo SprintLo Sprint
Lo sprint, di solito è di due settimane(10 gg lavorativi).
Al termine dello Sprint deve essereconsegnato un Potentially ShippableProduct Increment.
Vengono usati degli InformationRadiators (es. Burndown/up chart,Sprint Kanban Board) per visualizzarela situazione al Team.
Febbraio [email protected] 47
PotentiallyPotentiallyPotentiallyPotentially shippableshippableshippableshippable productproductproductproduct incrementincrementincrementincrement
Febbraio [email protected] 48
SE USERNAME = 12345ALLORA «UTENTE ERRATO»
ALTRIMENTISE PASSWORD NON UGUALE «PIPPO»
ALLORA «PASSWORD ERRATA»
PotentiallyPotentiallyPotentiallyPotentially shippableshippableshippableshippable productproductproductproduct incrementincrementincrementincrement
Febbraio [email protected] 49
DailyDailyDailyDaily MeetingMeetingMeetingMeeting
Ogni giorno il Team si riunisce percirca 15 minuti per allinearsi suglisviluppi precedenti e concordarequelli successivi.
Nel Daily Meeting i Team Membercomunicano allo Scrum Master gliImpediments che non sono riusciti arisolvere e lui li prende in carico.
Febbraio [email protected] 50
Sprint Sprint Sprint Sprint ReviewReviewReviewReview
Al termine dello sprint il Teamrestituisce al Product Owner il lavorofatto e lui lo accetta.
Alla Sprint Review può parteciparechiunque ed è un momentoprivilegiato per raccogliere feedbackche possono essere usati permodificare il backlog prima delloSprint Planning del giorno dopo
Febbraio [email protected] 51
Sprint Sprint Sprint Sprint RetrospectiveRetrospectiveRetrospectiveRetrospective
E’ il momento del Kay Zen.
Partecipa tutto il Team (PO, SM eMember).
Si riguarda lo Sprint appena finito, daun punto di vista metodologico, e siindividuano azioni di miglioramentoche verranno messe in atto già dalloSprint successivo.
L’analisi riguarda il COME e non ilCOSA.
Febbraio [email protected] 52
Ma quando finiamo?Ma quando finiamo?Ma quando finiamo?Ma quando finiamo?1
2
1
3
2
5
14
Febbraio [email protected] 53
Pianificazione di progettoPianificazione di progettoPianificazione di progettoPianificazione di progetto
Febbraio [email protected] 54
Come è fatta una storiaCome è fatta una storiaCome è fatta una storiaCome è fatta una storia
Io _______________________________
In qualità di _______________________
Desidero __________________________
Al fine di __________________________
Febbraio [email protected] 55
Come è fatta una storiaCome è fatta una storiaCome è fatta una storiaCome è fatta una storia
Io Davide Roitero
In qualità di cliente registrato della Coop di Pisa
Desidero avere una applicazione dove compilare la mia listadella spesa ritrovandola poi sul mio dispositivo Salvatempo
Al fine di non dimenticare nulla e fare velocemente i mieiacquisti
Febbraio [email protected] 56
Criteri di accettazioneCriteri di accettazioneCriteri di accettazioneCriteri di accettazione
• I miei familiari possono proporre le cose chedesidererano e io devo approvarle
• Il mio salvatempo mi deve proporre la lista della spesaordinata per corsie espositive
• Il mio salvatempo deve ricordarmi le cose che non hoacquistato
• Durante la spesa vorrei che mi proponesse i prodotti inofferta alternativi a quelli da me scelti
Febbraio [email protected] 57
La storia deve essere I.N.V.E.S.T.La storia deve essere I.N.V.E.S.T.La storia deve essere I.N.V.E.S.T.La storia deve essere I.N.V.E.S.T.
Febbraio [email protected] 58
Definition of ReadyDefinition of ReadyDefinition of ReadyDefinition of Ready
La D.o.R. è elaborata dalTeam con il P.O. e identifica lecaratteristiche che deveavere una storia per essereaccettata in uno SprintPlanning.
Quando il Team matura i suoicriteri diventano via via piùrestrittivi.
I.N.V.E.S.T. +
Febbraio [email protected] 59
Definition of Definition of Definition of Definition of DoneDoneDoneDone & P.S.P.I.& P.S.P.I.& P.S.P.I.& P.S.P.I.
La D.o.D. è elaborata dalTeam con il P.O. e identifica lecaratteristiche che deveavere una storia per essereaccettata in uno SprintReview.
Quando il Team matura i suoicriteri diventano via via piùrestrittivi.