SlideShare a Scribd company logo
1 of 23
Risolvi i tuoi problemi di
sviluppo con agilità
Stefano Brocchi – Giuneco
2
Risolvi i problemi, migliora il processo
Quali tecniche Agili utilizzare a fronte di un
particolare aspetto da migliorare?
3
Risolvi i problemi, migliora il processo
• Per non-agilisti: breve introduzione alle tecniche agili da
approfondire per migliorare determinati aspetti
• Per agilisti: riflessione sulle tecniche da proporre a partire dal
problema
Il giusto approccio
Siate proattivi e seguite il principio del Kaizen
4
Tenete presente che molte persone reattive reagiscono
principalmente ai problemi
Che bello abbiamo un problema
Perché non sfruttare un problema per migliorare il nostro approccio?
Visione globale: lavorare sul processo per ottenere miglioramenti
permanenti
5
Come risolvere il problema dei…
Troppi bug
6
Troppi bug
Possibile causa: codice complesso da gestire
Soluzioni
• Clean code
• Architettura migliore
• Distribuire la complessità
• Minimizzare il debito tecnico
• Pair programming
• Migliorare concentrazione (discusso in seguito)
7
Troppi bug
Possibile causa: codice non controllato
Soluzioni
• Testing automatizzato e Test Driven Development
• Testing manuale
• Disaccoppiamento sviluppo/testing
8
Come risolvere il problema dello…
Sviluppo e manutenzione lenti
9
Sviluppo e manutenzione lenti
Soluzioni
• Alleggerire il debito tecnico
• Strumenti tecnici appropriati (librerie, framework)
• Single object responsability
– Meno copia e incolla
• Limitare rilavorazioni richieste dal cliente
– Impact mapping, capire valore e obiettivo da raggiungere
10
Come risolvere il problema dei…
Clienti o utenti insoddisfatti
11
Clienti insoddisfatti
Soluzioni
• Rilasci e feedback frequenti (continuous delivery)
• Impact mapping, sviluppo orientato al valore
• Attività con un perché chiaro
12
Come risolvere il problema della…
Comunicazione malfunzionante
13
Comunicazione malfunzionante
Possibile causa: mancanza di uno strumento di gestione
attività
Molto tempo ed energia solo per sincronizzarsi sullo stato di
avanzamento
«lo faccio io? Lo fai tu? L’ha già fatto lui? A che punto è? E’ stato testato? Lo hanno pubblicato? Ma serviva davvero?»
14
Comunicazione malfunzionante
Possibile soluzione: usare una board
Credits: Creative Commons Attribution-Share Alike 4.0 International license
https://commons.wikimedia.org/wiki/File:Kanban_Board.jpg
15
Comunicazione malfunzionante
Possibile soluzione: usare una board
• Visione stato di avanzamento
• Tracciamento attività e discussione problematiche
• Trasparenza sviluppo e responsabilità
• Possibile retrospettiva per miglioramento
16
Comunicazione malfunzionante
Possibile causa: troppa poca comunicazione
Soluzioni
• Aggiornamenti regolari e condivisi nel team (standup)
• Retrospettive
17
Comunicazione malfunzionante
Possibile causa: mancanza di fiducia del cliente
Possibili soluzioni
• Trasparenza (board)
• Maggiore coinvolgimento
• Frequenti rilasci e feedback
• Stime realizzabili
• Gestione delle aspettative
• Linguaggio comune (Ubiquitous Language)
18
Come risolvere il problema dell’…
Essere in ritardo
19
Essere in ritardo
Possibili soluzioni
• Pianificazione migliore (planning games, board)
• Meno bug, meno lavoro urgente inaspettato
• Sviluppo sostenibile
20
Come risolvere il problema della…
Scarsa concentrazione
21
Scarsa concentrazione
Possibile causa: multitasking e interruzioni
«Il multitasking è il male»
Possibili soluzioni
• Tecniche timeboxing
• Allocazione timeslot per email e ticket
• Incanalare richieste su un’unica persona
• Limitare le urgenze riducendo i bug
22
Grazie!
Risorse utili
• Agile manifesto: https://agilemanifesto.org/
– Innumerevoli risorse online sullo sviluppo Agile
– Uno dei guru più influenti è Uncle Bob (Robert C. Martin)
• The Art of Agile Development – James Shore, Shane Warden
• www.giuneco.tech
– Sviluppo software e tecniche agili
• Domande, dubbi, curiosità? Parliamone!
– giuneco@giuneco.it
– www.giuneco.it
– www.linkedin.com/company/giuneco-s-r-l-/
Slide template credits:
https://poweredtemplate.com/it/modello-powerpoint-sfondo-astratto-con-righe-diagonali-rosse-52045/#
23

More Related Content

Similar to Risolvi i tuoi problemi di sviluppo con agilità - di Stefano Brocchi

Tg team per lo sviluppo organizzativo
Tg team per lo sviluppo organizzativoTg team per lo sviluppo organizzativo
Tg team per lo sviluppo organizzativoMassimo Del Monte
 
Come Vendere con le domande
Come Vendere con le domandeCome Vendere con le domande
Come Vendere con le domandePaolo Vallicelli
 
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...Roberto Bettazzoni
 
User eXperience fast and smart - Come integrare la UX in lean startup
User eXperience fast and smart - Come integrare la UX in lean startupUser eXperience fast and smart - Come integrare la UX in lean startup
User eXperience fast and smart - Come integrare la UX in lean startupGiuseppe Sorrentino
 
User eXperience fast and smart | Giuseppe Sorrentino
User eXperience fast and smart | Giuseppe Sorrentino  User eXperience fast and smart | Giuseppe Sorrentino
User eXperience fast and smart | Giuseppe Sorrentino Codemotion
 
Agile project management 1 giornata - board game - v2
Agile project management   1 giornata - board game - v2Agile project management   1 giornata - board game - v2
Agile project management 1 giornata - board game - v2Giulio Roggero
 
Far scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementFar scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementMatteo Emili
 
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...Pietro Di Bello
 
Agile e Lean in sintesi
Agile e Lean in sintesiAgile e Lean in sintesi
Agile e Lean in sintesiStefano Muro
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
 
PMexpo16 - DPO - Workshop
PMexpo16 - DPO - WorkshopPMexpo16 - DPO - Workshop
PMexpo16 - DPO - WorkshopPMexpo
 
2015 mag 28 PMI Rome Agile Project Management - Agile tra Sviluppo e Esercizio
2015 mag 28 PMI Rome Agile Project Management - Agile tra Sviluppo e Esercizio2015 mag 28 PMI Rome Agile Project Management - Agile tra Sviluppo e Esercizio
2015 mag 28 PMI Rome Agile Project Management - Agile tra Sviluppo e EsercizioACT Point
 
Agile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software developmentAgile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software developmentAgile Lean Conference
 
Intoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliIntoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliStefano Leli
 
Introduzione alla Metodologia Scrumban
Introduzione alla Metodologia ScrumbanIntroduzione alla Metodologia Scrumban
Introduzione alla Metodologia ScrumbanNextre Engineering
 
Applicare il Problem Solving. Metodo, Applicazioni, Root Causes, Contromisure...
Applicare il Problem Solving. Metodo, Applicazioni, Root Causes, Contromisure...Applicare il Problem Solving. Metodo, Applicazioni, Root Causes, Contromisure...
Applicare il Problem Solving. Metodo, Applicazioni, Root Causes, Contromisure...drgivan
 
Presentazione di Edotto - Storia di un progetto social media
Presentazione di Edotto - Storia di un progetto social mediaPresentazione di Edotto - Storia di un progetto social media
Presentazione di Edotto - Storia di un progetto social mediaSQcuola di Blog
 
Discover Facilitation: gestire le riunioni in modo efficace
Discover Facilitation: gestire le riunioni in modo efficaceDiscover Facilitation: gestire le riunioni in modo efficace
Discover Facilitation: gestire le riunioni in modo efficaceThinkOpen
 
Organizzare riunioni efficaci (anche per chi partecipa)
Organizzare riunioni efficaci (anche per chi partecipa)Organizzare riunioni efficaci (anche per chi partecipa)
Organizzare riunioni efficaci (anche per chi partecipa)Andrealauri
 

Similar to Risolvi i tuoi problemi di sviluppo con agilità - di Stefano Brocchi (20)

Tg team per lo sviluppo organizzativo
Tg team per lo sviluppo organizzativoTg team per lo sviluppo organizzativo
Tg team per lo sviluppo organizzativo
 
Come Vendere con le domande
Come Vendere con le domandeCome Vendere con le domande
Come Vendere con le domande
 
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
 
User eXperience fast and smart - Come integrare la UX in lean startup
User eXperience fast and smart - Come integrare la UX in lean startupUser eXperience fast and smart - Come integrare la UX in lean startup
User eXperience fast and smart - Come integrare la UX in lean startup
 
User eXperience fast and smart | Giuseppe Sorrentino
User eXperience fast and smart | Giuseppe Sorrentino  User eXperience fast and smart | Giuseppe Sorrentino
User eXperience fast and smart | Giuseppe Sorrentino
 
Agile project management 1 giornata - board game - v2
Agile project management   1 giornata - board game - v2Agile project management   1 giornata - board game - v2
Agile project management 1 giornata - board game - v2
 
Far scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementFar scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle management
 
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
 
Agile e Lean in sintesi
Agile e Lean in sintesiAgile e Lean in sintesi
Agile e Lean in sintesi
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
 
PMexpo16 - DPO - Workshop
PMexpo16 - DPO - WorkshopPMexpo16 - DPO - Workshop
PMexpo16 - DPO - Workshop
 
2015 mag 28 PMI Rome Agile Project Management - Agile tra Sviluppo e Esercizio
2015 mag 28 PMI Rome Agile Project Management - Agile tra Sviluppo e Esercizio2015 mag 28 PMI Rome Agile Project Management - Agile tra Sviluppo e Esercizio
2015 mag 28 PMI Rome Agile Project Management - Agile tra Sviluppo e Esercizio
 
Agile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software developmentAgile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software development
 
Intoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliIntoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie Agili
 
Introduzione alla Metodologia Scrumban
Introduzione alla Metodologia ScrumbanIntroduzione alla Metodologia Scrumban
Introduzione alla Metodologia Scrumban
 
Applicare il Problem Solving. Metodo, Applicazioni, Root Causes, Contromisure...
Applicare il Problem Solving. Metodo, Applicazioni, Root Causes, Contromisure...Applicare il Problem Solving. Metodo, Applicazioni, Root Causes, Contromisure...
Applicare il Problem Solving. Metodo, Applicazioni, Root Causes, Contromisure...
 
Caso lago
Caso lagoCaso lago
Caso lago
 
Presentazione di Edotto - Storia di un progetto social media
Presentazione di Edotto - Storia di un progetto social mediaPresentazione di Edotto - Storia di un progetto social media
Presentazione di Edotto - Storia di un progetto social media
 
Discover Facilitation: gestire le riunioni in modo efficace
Discover Facilitation: gestire le riunioni in modo efficaceDiscover Facilitation: gestire le riunioni in modo efficace
Discover Facilitation: gestire le riunioni in modo efficace
 
Organizzare riunioni efficaci (anche per chi partecipa)
Organizzare riunioni efficaci (anche per chi partecipa)Organizzare riunioni efficaci (anche per chi partecipa)
Organizzare riunioni efficaci (anche per chi partecipa)
 

More from Giuneco S.r.l

App Mobile Powerapps
App Mobile PowerappsApp Mobile Powerapps
App Mobile PowerappsGiuneco S.r.l
 
GraphQL in .Net Core - di Lorenzo Zarone
GraphQL in .Net Core - di Lorenzo ZaroneGraphQL in .Net Core - di Lorenzo Zarone
GraphQL in .Net Core - di Lorenzo ZaroneGiuneco S.r.l
 
Variable Fonts - di Jessica Risica
Variable Fonts - di Jessica RisicaVariable Fonts - di Jessica Risica
Variable Fonts - di Jessica RisicaGiuneco S.r.l
 
Testi per il web - di Elena Granchi
Testi per il web - di Elena GranchiTesti per il web - di Elena Granchi
Testi per il web - di Elena GranchiGiuneco S.r.l
 
Kivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele GaggioKivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele GaggioGiuneco S.r.l
 
Selenium e testing web - di Alessio Benedetti
Selenium e testing web - di Alessio BenedettiSelenium e testing web - di Alessio Benedetti
Selenium e testing web - di Alessio BenedettiGiuneco S.r.l
 
Svelte js - di Mattia Bonanni
Svelte js - di Mattia BonanniSvelte js - di Mattia Bonanni
Svelte js - di Mattia BonanniGiuneco S.r.l
 
Blazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo GrecoBlazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo GrecoGiuneco S.r.l
 
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele CoppolaNotifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele CoppolaGiuneco S.r.l
 
Unit Test di Gabriele Seroni
Unit Test di Gabriele SeroniUnit Test di Gabriele Seroni
Unit Test di Gabriele SeroniGiuneco S.r.l
 

More from Giuneco S.r.l (10)

App Mobile Powerapps
App Mobile PowerappsApp Mobile Powerapps
App Mobile Powerapps
 
GraphQL in .Net Core - di Lorenzo Zarone
GraphQL in .Net Core - di Lorenzo ZaroneGraphQL in .Net Core - di Lorenzo Zarone
GraphQL in .Net Core - di Lorenzo Zarone
 
Variable Fonts - di Jessica Risica
Variable Fonts - di Jessica RisicaVariable Fonts - di Jessica Risica
Variable Fonts - di Jessica Risica
 
Testi per il web - di Elena Granchi
Testi per il web - di Elena GranchiTesti per il web - di Elena Granchi
Testi per il web - di Elena Granchi
 
Kivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele GaggioKivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele Gaggio
 
Selenium e testing web - di Alessio Benedetti
Selenium e testing web - di Alessio BenedettiSelenium e testing web - di Alessio Benedetti
Selenium e testing web - di Alessio Benedetti
 
Svelte js - di Mattia Bonanni
Svelte js - di Mattia BonanniSvelte js - di Mattia Bonanni
Svelte js - di Mattia Bonanni
 
Blazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo GrecoBlazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo Greco
 
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele CoppolaNotifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
 
Unit Test di Gabriele Seroni
Unit Test di Gabriele SeroniUnit Test di Gabriele Seroni
Unit Test di Gabriele Seroni
 

Risolvi i tuoi problemi di sviluppo con agilità - di Stefano Brocchi

  • 1. Risolvi i tuoi problemi di sviluppo con agilità Stefano Brocchi – Giuneco
  • 2. 2 Risolvi i problemi, migliora il processo Quali tecniche Agili utilizzare a fronte di un particolare aspetto da migliorare?
  • 3. 3 Risolvi i problemi, migliora il processo • Per non-agilisti: breve introduzione alle tecniche agili da approfondire per migliorare determinati aspetti • Per agilisti: riflessione sulle tecniche da proporre a partire dal problema
  • 4. Il giusto approccio Siate proattivi e seguite il principio del Kaizen 4 Tenete presente che molte persone reattive reagiscono principalmente ai problemi
  • 5. Che bello abbiamo un problema Perché non sfruttare un problema per migliorare il nostro approccio? Visione globale: lavorare sul processo per ottenere miglioramenti permanenti 5
  • 6. Come risolvere il problema dei… Troppi bug 6
  • 7. Troppi bug Possibile causa: codice complesso da gestire Soluzioni • Clean code • Architettura migliore • Distribuire la complessità • Minimizzare il debito tecnico • Pair programming • Migliorare concentrazione (discusso in seguito) 7
  • 8. Troppi bug Possibile causa: codice non controllato Soluzioni • Testing automatizzato e Test Driven Development • Testing manuale • Disaccoppiamento sviluppo/testing 8
  • 9. Come risolvere il problema dello… Sviluppo e manutenzione lenti 9
  • 10. Sviluppo e manutenzione lenti Soluzioni • Alleggerire il debito tecnico • Strumenti tecnici appropriati (librerie, framework) • Single object responsability – Meno copia e incolla • Limitare rilavorazioni richieste dal cliente – Impact mapping, capire valore e obiettivo da raggiungere 10
  • 11. Come risolvere il problema dei… Clienti o utenti insoddisfatti 11
  • 12. Clienti insoddisfatti Soluzioni • Rilasci e feedback frequenti (continuous delivery) • Impact mapping, sviluppo orientato al valore • Attività con un perché chiaro 12
  • 13. Come risolvere il problema della… Comunicazione malfunzionante 13
  • 14. Comunicazione malfunzionante Possibile causa: mancanza di uno strumento di gestione attività Molto tempo ed energia solo per sincronizzarsi sullo stato di avanzamento «lo faccio io? Lo fai tu? L’ha già fatto lui? A che punto è? E’ stato testato? Lo hanno pubblicato? Ma serviva davvero?» 14
  • 15. Comunicazione malfunzionante Possibile soluzione: usare una board Credits: Creative Commons Attribution-Share Alike 4.0 International license https://commons.wikimedia.org/wiki/File:Kanban_Board.jpg 15
  • 16. Comunicazione malfunzionante Possibile soluzione: usare una board • Visione stato di avanzamento • Tracciamento attività e discussione problematiche • Trasparenza sviluppo e responsabilità • Possibile retrospettiva per miglioramento 16
  • 17. Comunicazione malfunzionante Possibile causa: troppa poca comunicazione Soluzioni • Aggiornamenti regolari e condivisi nel team (standup) • Retrospettive 17
  • 18. Comunicazione malfunzionante Possibile causa: mancanza di fiducia del cliente Possibili soluzioni • Trasparenza (board) • Maggiore coinvolgimento • Frequenti rilasci e feedback • Stime realizzabili • Gestione delle aspettative • Linguaggio comune (Ubiquitous Language) 18
  • 19. Come risolvere il problema dell’… Essere in ritardo 19
  • 20. Essere in ritardo Possibili soluzioni • Pianificazione migliore (planning games, board) • Meno bug, meno lavoro urgente inaspettato • Sviluppo sostenibile 20
  • 21. Come risolvere il problema della… Scarsa concentrazione 21
  • 22. Scarsa concentrazione Possibile causa: multitasking e interruzioni «Il multitasking è il male» Possibili soluzioni • Tecniche timeboxing • Allocazione timeslot per email e ticket • Incanalare richieste su un’unica persona • Limitare le urgenze riducendo i bug 22
  • 23. Grazie! Risorse utili • Agile manifesto: https://agilemanifesto.org/ – Innumerevoli risorse online sullo sviluppo Agile – Uno dei guru più influenti è Uncle Bob (Robert C. Martin) • The Art of Agile Development – James Shore, Shane Warden • www.giuneco.tech – Sviluppo software e tecniche agili • Domande, dubbi, curiosità? Parliamone! – giuneco@giuneco.it – www.giuneco.it – www.linkedin.com/company/giuneco-s-r-l-/ Slide template credits: https://poweredtemplate.com/it/modello-powerpoint-sfondo-astratto-con-righe-diagonali-rosse-52045/# 23

Editor's Notes

  1. Grazie! Questa presentazione ha l’obiettivo di proporre delle risposte per una semplice domanda…
  2. A fronte di un problema che si verifica nel nostro processo di sviluppo software, o di un aspetto che desideriamo migliorare, che tecniche Agili possiamo mettere in gioco?
  3. Target duplice: agile-digiuno e agile-beginners introdotti alle varie tecniceh Agile. Sommariamente, panoramica, ognuna richiederebbe presentazione. Prendere conoscenza di cosa cercare e approfondire. Per agilisti: riflessione inversa, punto di vista alternativo. Di solito, descritte tecniche agili a loro vantaggi. Qua invece, al contrario, si parte dall’obiettivo e si arriva alle tecniche. Checklist di fronte a criticità.
  4. In Agile esiste una filosofia detta Kaizen. Secondo questa scuola di pensiero, è importante migliorarsi continuamente, e cercare spunti di crescita anche quando va tutto bene. Molte persone la pensano diversamente: sentono il bisogno di un cambiamento solo di fronte ad un problema. Un ostacolo per il Kaizen, visto che molte tecniche proposte sono da usare in squadra. Tuttavia, possiamo usare questo a nostro vantaggio
  5. Quando abbiamo un problema, non limitiamoci a mettere una toppa: può essere un buon momento per proporre al team un approccio diverso. Capiamo cosa ha favorito la comparsa del problema nel nostro lavoro di squadra. Come si può migliorare il processo, in modo che il problema non si verifichi più? Come ci possiamo mettere nella condizione in cui sia difficile fare errori, o che quando vengano fatti siano individuati rapidamente e non abbiamo ripercusioni? Di fronte a difficoltà oggi, cogliere l’occasione per rendere un pochino migliore il lavoro di domani. «Se miglioriamo il nostro modo di lavorare, i benefici che otterremo permangono e si accumulano giorno dopo giorno»
  6. Un problema classico
  7. Codice complesso: difficile da capire, richiede molto know how, fragile Clean Code: tecniche per scrivere codice «pulito» – criteri per minimizzare la possibilità di errori. Quando qualcuno scrive un bug, spesso il problema non è il bug in sé, ma il codice che ci sta intorno Arc: strutturazione ottimale, separazione delle responsabilità, pattern software noti per soluzioni ottimali di problemi complessi Complessità: problemi complessi diventano semplici spezzandoli in parti, metodi brevi e semplici Debito tecnico: non faccio oggi ma dovrò fare domani, si accumula! Pair programming: per aiuto, scorgere subito bug, condividere conoscenza
  8. Testing automatizzato: controlli programmatici su correttezza programma. Aiuta molto per cambiamenti. TDD: scrittura parallela di test e codice app Testing manuale: sempre Disaccoppiamento: buono per individuare errori di comprensione dei requisiti. Se questo aiuta, può essere segno di poca chiarezza
  9. Debito tecnico: detto prima, più ne abbiamo più rallentiamo Strumenti: non dobbiamo implementare tutto noi! Controllare se esistono strumenti che ci possono aiutare. Uso di troppi/dei framework sbagliati può anche essere causa di debito tecnico. SOR: un oggetto deve avere concettualmente un solo compito, e quel compito lo deve fare solo lui. Se ben fatto, una richiesta di modifica impatta limitatamente codice. Altrimenti, richieste semplici richiedono rilavorazioni complesse. Esempio: copia e incolla richiede doppia manutenzione.
  10. Una delle cose peggiori che può succedere: lavoriamo per mesi ad un progetto, poi lo consegnamo ed otteniamo una risposta deludente – il cliente non è soddisfatto, non è quello che voleva. Succede spesso.
  11. Con rilasci frequenti e relativo feedback, è facile aggiustarre il tiro e dare un’idea a tutte le parti in causa di come sta procedendo il progetto. Più facile pianificazione dinamica. Strumenti software di supporto per questo. Impact mapping: tecnica studiata per analizzare come il software porti valore al committente. Identificando il perché di un’attività, si può discuetre prima se e quanto sia utile
  12. Suno strumento apposito è difficile tenere traccia di tutto
  13. Una Kanban board: una tabella dove sono riportate le attività da fare, il loro stato di avanzamento e chi le ha prese in carico. (e volendo, mille altre cose)
  14. Parlo di un problema in particolare, che è pervasivo. Il multitasking, fare più cose contemporaneamente. Non esiste, è in realtà context switch.