Reality check sull’opportunità di rendere la propria organizzazione più agile, su cosa è necessario per farlo e sul ruolo (limitato) di pratiche e metodologie cosiddetti “Agile”
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...Roberto Bettazzoni
2006
Prima serata di una serie di Talk serali all' ERLUG (Emilia Romagna Linux User Group) Presentazione delle Metodologie Agili (confronto con la situazione esistente)
Presentazione delle Pratiche Agili
Esempio d'applicazione di tecniche Agili
Agile e OSS distribuito
eXtreme Programming
Che cosa è e come si raggiunge la certificazione Agile PMI-ACP.
Un buon piano di studio è la chiave di successo per certitifcarsi in poco tempo e con la minima spesa. Noi suggeriamo l'apporccio in autoapprendimento.
This document summarizes a talk given by Francesco Degrassi about his experience developing complex software in a difficult environment. Some key points:
- He worked on a project with a large team across many departments that lacked clear guidelines and had conflicting priorities.
- His team did their best with practices like pairing, testing, continuous integration but the client was unhappy because the software was late, irrelevant, and automated a useless process.
- The team decided to change their approach to work more closely with the client, challenge assumptions, and continuously deliver value rather than just building software.
- This involved finding true stakeholders, building trust through transparency and delivery, fostering respect, and focusing on solutions rather than compromise.
7 lessons learned building high availability / performance systems - CM2015Francesco Degrassi
Slides for my talk "Never gonna give you up, never gonna let you down - 7 lessons learned building high availability, high performance systems".
Presented at Codemotion Berlin 2015
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...Roberto Bettazzoni
2006
Prima serata di una serie di Talk serali all' ERLUG (Emilia Romagna Linux User Group) Presentazione delle Metodologie Agili (confronto con la situazione esistente)
Presentazione delle Pratiche Agili
Esempio d'applicazione di tecniche Agili
Agile e OSS distribuito
eXtreme Programming
Che cosa è e come si raggiunge la certificazione Agile PMI-ACP.
Un buon piano di studio è la chiave di successo per certitifcarsi in poco tempo e con la minima spesa. Noi suggeriamo l'apporccio in autoapprendimento.
This document summarizes a talk given by Francesco Degrassi about his experience developing complex software in a difficult environment. Some key points:
- He worked on a project with a large team across many departments that lacked clear guidelines and had conflicting priorities.
- His team did their best with practices like pairing, testing, continuous integration but the client was unhappy because the software was late, irrelevant, and automated a useless process.
- The team decided to change their approach to work more closely with the client, challenge assumptions, and continuously deliver value rather than just building software.
- This involved finding true stakeholders, building trust through transparency and delivery, fostering respect, and focusing on solutions rather than compromise.
7 lessons learned building high availability / performance systems - CM2015Francesco Degrassi
Slides for my talk "Never gonna give you up, never gonna let you down - 7 lessons learned building high availability, high performance systems".
Presented at Codemotion Berlin 2015
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
Vuoi migliorare la gestione dei progetti a lungo termine con team multidisciplinari e prendere decisioni rischiose in modo sicuro e ponderato? Non perderti il nostro workshop gratuito!
Antonio Dell’Ava, Frontend Developer di eDreams Odigeo, condividerà strategie per aiutarti a ottimizzare la collaborazione nel tuo team, scegliere gli strumenti giusti per ogni situazione e garantire l’evoluzione del progetto nel tempo
Slide aggiornate del workshop di una giornata con il gioco da tavolo Agile the Board Game che spiega in pratica, usando i lego, come funziona Scrum.
Non manca durante la giornata anche l'esercitazione su A3 Reporting, il metodo Lean per apportare continui cambiamenti ai processi eliminando le cause di spreco.
Potete usare le slide per divulgare Agile e Lean, anche a livello commerciale. Ricordatevi solo di rispettare i termini della licenza Creative Common :-)
Commenti e miglioramenti sempre ben accetti!
Open Innovation Campus - 05/04/2018 - Agile challenges: essere agili nello sv...Vittorio Polizzi
Perché i progetti falliscono? Gli approcci tradizionali nei progetti di sviluppo hardware e software sono davvero efficaci in un mercato in continua evoluzione e con prodotti ad elevata obsolescenza? Le caratteristiche dell’approccio Agile possono essere applicate per ideare e creare soluzioni innovative in modo efficace ed economico?
In occasione di questo incontro affronteremo questi quesiti e le metodologie agili che possono dare una risposta.
Successi (e insuccessi) nel lavoro in team con Product Manager, Engineering, ...Francesco Corti
Chi non vorrebbe lavorare in un dream team composto da Product Manager, Engineering, Designer, Researcher e Data Scientist. Il fatto è che la modalità di lavoro in un team con tali eccellenze e profesionalità non è affatto scontata (diverso linguaggio, background differente, diverso approccio alla definizione del prodotto). E non è affatto scontata nemmeno l'alchimia che occorre creare per far funzionare il team, al fine di creare un prodotto di qualità.
In questo talk Francesco condividerà le sue esperience avute lavorando con vari team internazionali di sviluppo software, come Product Manager per Spotify, Docker e Alfresco/Hyland. Attraverso esempi concreti, successi e fallimenti, verranno condivise alcune lezioni apprese sul campo su come collaborare al meglio con le diverse figure professionali e magari migliorare nel proprio lavoro come Product Manager o semplicemente evitare di ripetere errori già fatti da altri.
Far scalare la Continuous Delivery per il middle managementMatteo Emili
Sessione tenuta a DevOpsHeroes 2017 su approcci per rendere Continuous Delivery praticabile in modo trasversale all'azienda, con attenzione particolare al middle management.
Agile Project Management: Insieme di attività che rendono la gestione di un processo più flessibile. Nel complesso la sua caratteristica principale è che consente al project manager e ai membri del team di capire le priorità e seguire l’avanzamento delle differenti fasi.
La presentazione descrive la metolodogia DDMRP e la RoadMap messa a punto dagli esperti di Advance Supply Chain Solutions per implementarla con successo. Advance SC Solutions è la divisione di consulenza di Advance Operations Management School, ASCM/APICS Premier ELITE Partner e Partner ufficiale del Demand Driven Institute.
Configuration e change management con Disciplined Agile FrameworkAlessandro Alpi
How to manage changes and configuration management using the Disciplined Agile Framework for DevOps (classic and prescriptive vs automated and iterative solutions). Software Configuration Management (SCM) summit: http://www.snescm.org/Common/Italian-chapter/Summits/2018/index.html
Maurizio Ciraolo, Priscila Ferreira | Come introdurre un sistema di Portfolio...PMexpo
L’introduzione in azienda di un sistema di Project Portfolio Management (PPM), per la gestione “integrata” di insiemi di progetti, coinvolge molti aspetti che trascendono il solo software da adottare.
Grazie all’esperienza di oltre 20 anni e l’implementazione di varie tipologie di sistemi in centinaia di clienti differenti, proveremo ad analizzare quali sono gli elementi a cui porre attenzione e i possibili rischi da gestire nell’introduzione di un sistema di PPM.
Vedremo poi quali driver tenere sotto controllo nella scelta del software, nella sua configurazione e nella successiva gestione.
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
Vuoi migliorare la gestione dei progetti a lungo termine con team multidisciplinari e prendere decisioni rischiose in modo sicuro e ponderato? Non perderti il nostro workshop gratuito!
Antonio Dell’Ava, Frontend Developer di eDreams Odigeo, condividerà strategie per aiutarti a ottimizzare la collaborazione nel tuo team, scegliere gli strumenti giusti per ogni situazione e garantire l’evoluzione del progetto nel tempo
Slide aggiornate del workshop di una giornata con il gioco da tavolo Agile the Board Game che spiega in pratica, usando i lego, come funziona Scrum.
Non manca durante la giornata anche l'esercitazione su A3 Reporting, il metodo Lean per apportare continui cambiamenti ai processi eliminando le cause di spreco.
Potete usare le slide per divulgare Agile e Lean, anche a livello commerciale. Ricordatevi solo di rispettare i termini della licenza Creative Common :-)
Commenti e miglioramenti sempre ben accetti!
Open Innovation Campus - 05/04/2018 - Agile challenges: essere agili nello sv...Vittorio Polizzi
Perché i progetti falliscono? Gli approcci tradizionali nei progetti di sviluppo hardware e software sono davvero efficaci in un mercato in continua evoluzione e con prodotti ad elevata obsolescenza? Le caratteristiche dell’approccio Agile possono essere applicate per ideare e creare soluzioni innovative in modo efficace ed economico?
In occasione di questo incontro affronteremo questi quesiti e le metodologie agili che possono dare una risposta.
Successi (e insuccessi) nel lavoro in team con Product Manager, Engineering, ...Francesco Corti
Chi non vorrebbe lavorare in un dream team composto da Product Manager, Engineering, Designer, Researcher e Data Scientist. Il fatto è che la modalità di lavoro in un team con tali eccellenze e profesionalità non è affatto scontata (diverso linguaggio, background differente, diverso approccio alla definizione del prodotto). E non è affatto scontata nemmeno l'alchimia che occorre creare per far funzionare il team, al fine di creare un prodotto di qualità.
In questo talk Francesco condividerà le sue esperience avute lavorando con vari team internazionali di sviluppo software, come Product Manager per Spotify, Docker e Alfresco/Hyland. Attraverso esempi concreti, successi e fallimenti, verranno condivise alcune lezioni apprese sul campo su come collaborare al meglio con le diverse figure professionali e magari migliorare nel proprio lavoro come Product Manager o semplicemente evitare di ripetere errori già fatti da altri.
Far scalare la Continuous Delivery per il middle managementMatteo Emili
Sessione tenuta a DevOpsHeroes 2017 su approcci per rendere Continuous Delivery praticabile in modo trasversale all'azienda, con attenzione particolare al middle management.
Agile Project Management: Insieme di attività che rendono la gestione di un processo più flessibile. Nel complesso la sua caratteristica principale è che consente al project manager e ai membri del team di capire le priorità e seguire l’avanzamento delle differenti fasi.
La presentazione descrive la metolodogia DDMRP e la RoadMap messa a punto dagli esperti di Advance Supply Chain Solutions per implementarla con successo. Advance SC Solutions è la divisione di consulenza di Advance Operations Management School, ASCM/APICS Premier ELITE Partner e Partner ufficiale del Demand Driven Institute.
Configuration e change management con Disciplined Agile FrameworkAlessandro Alpi
How to manage changes and configuration management using the Disciplined Agile Framework for DevOps (classic and prescriptive vs automated and iterative solutions). Software Configuration Management (SCM) summit: http://www.snescm.org/Common/Italian-chapter/Summits/2018/index.html
Maurizio Ciraolo, Priscila Ferreira | Come introdurre un sistema di Portfolio...PMexpo
L’introduzione in azienda di un sistema di Project Portfolio Management (PPM), per la gestione “integrata” di insiemi di progetti, coinvolge molti aspetti che trascendono il solo software da adottare.
Grazie all’esperienza di oltre 20 anni e l’implementazione di varie tipologie di sistemi in centinaia di clienti differenti, proveremo ad analizzare quali sono gli elementi a cui porre attenzione e i possibili rischi da gestire nell’introduzione di un sistema di PPM.
Vedremo poi quali driver tenere sotto controllo nella scelta del software, nella sua configurazione e nella successiva gestione.
2. Presentazioni
● Francesco Degrassi
○ Sviluppatore software, coordinatore, consulente
○ Attivo nell’ambito dello sviluppo lean e agile da una decina d’anni
● OptionFactory
○ Sviluppo software con approccio lean
■ High availability, performance, scaling, security
○ Supporto operativo alle aziende che sviluppano o fanno sviluppare
■ assessment, consulenza, formazione
○ Piccole, medie e grandi aziende, italiane ed estere
3. Agile è fuori moda
● Siamo oltre il picco di
interesse
● Molti l’hanno provato
● Non è più un tratto distintivo
○ neppure in Italia
4. ...ma il plateau di produttività è lontano
● Contrariamente ad altre metodi / approcci / tecnologie
○ E’ ancora molto controverso
○ Opinioni molto polarizzate
○ Nessun consenso sulla sua validità e applicabilità
● Uno dei fattori è quello delle aspettative
○ non tanto esagerate, quanto errate
Non un proiettile d’argento, quanto una strategia
con precisi trade-off che richiede capacità non banali
5. Agile Manifesto
● Un set condiviso di principi guida per un modo “migliore” di sviluppare
● Nel tempo vi si sono associati
○ pratiche
○ strumenti
○ metodologie, nuove ed esistenti
6. Principi e pratiche universali
● automazione dei processi ripetitivi, non di concetto
○ maggiore velocità, meno sprechi, meno errori
● pairing
○ resilienza, meno errori
● esplicitazione e discussione del valore
○ chiarezza, maggiori opportunità di massimizzazione
● testing pragmatico, automatico, durante lo sviluppo
● passo sostenibile
● refactoring
● ...
7. Agile Software Development Manifesto
Individuals and interactions
over processes and tools
Working software
over comprehensive documentation
Customer collaboration
over contract negotiation
Responding to change
over following a plan
8. Un approccio agile privilegia alcuni aspetti su altri
allo scopo di ottenere un risultato netto migliore
in uno specifico contesto.
9. Trade-off: Latenza / Throughput
Never underestimate the bandwidth of a station
wagon full of tapes hurtling down the highway.
–Andrew Tanenbaum, 1981
10. Trade-off: Latenza / Throughput
● Assunzione
○ ci sono assunzioni da validare e molto da imparare
○ molte delle feature realizzate non saranno usate o andranno cambiate
● Sviluppo iterativo, per avere feedback più frequente
○ scrum
● team cross-funzionali, per evitare colli di bottiglia
● Simple design, YAGNI
● Value stream mapping
● kanban board
● “See the whole”, System Thinking
11. Trade-off: Flessibilità / Uniformità
● Assunzione
○ Soluzioni non standardizzate
● Team cross-funzionali, per minimizzare le dipendenze esterne
● DevOps, per integrare elementi di operations nello sviluppo della soluzione
12. Trade-off: Reattività / Controllo
● Assunzione
○ Il personale sul campo ha (o può avere) il set di informazioni più
completo e la capacità per prendere decisioni
● Decentralizzazione delle decisioni
○ Team auto-organizzati
○ Empower the team
13. Trade-off: Collaborazione / Tutela
● Assunzione
○ C’è modo di allineare gli obiettivi delle parti e condividere il rischio
● Trasparenza, partecipazione e visibilità nel processo
● Contratti cosiddetti “agili”
○ incrementali
○ revenue sharing
○ clausole di bail-out
14. Appropriatezza al contesto - 1
Più appropriato Dimensione Meno appropriato
Differenziato Tipo di mercato Indifferenziato, commoditizzato
Ridotte Dimensioni Ampie
Flessibile Processo* Regolamentato
Distribuita Distribuzione della
conoscenza
Centralizzata
Alta Trasparenza in azienda Bassa
Performance oriented
Messengers trained
Cultura aziendale Rule / Power oriented
Messenger neglected / messenger shot
15. Appropriatezza al contesto - 2
Più appropriato Dimensione Meno appropriato
Colocato Distribuzione del personale Distribuito
Facile
Cliente interno, accesso all’utente finale
Facilità di ottenere feedback Difficile
Intermediari, subappalti, ambienti militari
Interno TIpologia di cliente* Esterno
Alto Allineamento degli obiettivi
tra cliente e fornitore
Basso
Incerti
servizio innovativo verso il pubblico
Certezza dei requisiti Certi
modulo di integrazione tra prodotti di mercato
Instabili
piattaforma di HFT
Stabilità dei requisiti Stabili
16. Appropriatezza al contesto - 3
Più appropriato Dimensione Meno appropriato
Nuovo, da esplorare Stack tecnologico* Noto, stabile
Minimi
Web application, SaaS
Vincoli di deployment Significativi
Appliance, embedded, ambienti militari
Ridotto
SaaS
Numero di installazioni Elevato
Applicazioni mobile*
17. Capabilities per un approccio agile
● Competenza tecnica, gli errori si pagano e rallentano
● Responsabilità e autonomia, per le decisioni decentralizzate
● Attrazione, selezione del personale (e retention!)
● Comunicazione efficace, sia orizzontale e verticale
● Rapporto positivo e trasparente con il cliente
Diverse, non necessariamente superiori, ad approcci di altro tipo.
18. Metodologie
● Framework / template di processo con annessi ruoli, pratiche, strumenti
● Guidano nel mettere in pratica principi e valori
● Principi e valori, sempre al primo posto
● Rischioso se calate dall’alto (“Make us agile!”)
● Vanno adattate se limitanti
● Shu in Shu-Ha-Ri
19. Problemi comuni
● Metodologia come Il Processo, o
anche best practice
● Metodologia per imbrigliare gli
elementi più disruptive
● Scrum come “Agile with control”
○ Un ossimoro
Cynefin Framework
20. Pratiche - Daily standup
● Obiettivi:
○ comunicazione ed allineamento nel team
○ spinge le persone ad identificare e affrontare gli impedimenti
● Rischi:
○ semplice reporting
○ meccanismo di controllo
○ sit-down meeting
● Altre opzioni:
○ comunicazione costante ed informale tramite colocazione / chatter
○ Ad-hoc standup
21. Pratiche - Kanban board
● Obiettivi:
○ visualizzazione del work in progress
○ minimizzazione del WIP
○ prioritizzazione
○ allineamento
● Rischi:
○ backlog (il cimitero delle storie)
○ nessun limite o definition of done
○ board multiple per le stesse persone / team
● Altre opzioni:
○ small releases
22. Pratiche - Retrospettiva
● Obiettivi:
○ creare un ciclo di sperimentazione e apprendimento
○ creare consapevolezza sui successi oltre che sui fallimenti
● Rischi:
○ blame game
○ valvola di sfogo
● Altre opzioni:
○ spike, deliberate discovery
○ root cause analysis
23. Pratiche - Pairing
● Obiettivi:
○ allineamento
○ resilienza
○ spinge il team a prendere responsabilità sull’intera codebase
● Rischi:
○ pairing anche dove non porta valore
○ coaching travestito da pairing
● Altre opzioni:
○ design / code review
24. Pratiche - Coding standard
● Obiettivi:
○ aumentare la comprensibilità
○ ridurre il carico cognitivo
○ aumentare il rapporto segnale/rumore
● Rischi:
○ standard controproduttivi
○ ingessamento
25. Come procedere?
1. Applicare liberamente i principi e le pratiche di buona ingegneria del
software che non comportano trade-off
2. Valutare il posizionamento di azienda e progetto sulle varie dimensioni
3. Valutare le proprie capabilities ed i punti di attenzione
● una prospettiva esterna può essere utile
Se si decide di procedere
4. Sperimentare, eventualmente appoggiandosi ad un partner già esperto
● rende evidenti i punti di attrito
● aiuta a superare la diffidenza al cambiamento
26. Agility cannot be imposed from the top, simply because good
agile practices have to be discovered by the people using them.
Dave Thomas