SlideShare a Scribd company logo
YAGNIYou Aren’t Gonna Need It
Le origini
• Metodologie pesanti dominavano negli anni ‘90
• BUFD - Big Up Front Design
• Emersione di Agile e XP
• Simple design
It’s a trap!
• “Ne avrò sicuramente bisogno in futuro”
• “Se lo faccio ora risparmierò tempo nel lungo termine”
You Aren’t Gonna Need It
• Implementa funzionalità quando ne hai bisogno
• Non quando pensi che ne avrai bisogno in futuro
• Puoi sempre svilupparle più tardi
Perchè rimandare?
• Il lavoro fatto potrebbe risultare inutile ¯_(ツ)_/¯
• Domani siamo più intelligenti di oggi
• Un’implementazione precoce è

spesso più costosa
I costi di un’implementazione precoce
Carry
Primo caso: Feature sbagliata
Build Delay
Carry Delay
I costi di un’implementazione precoce
Secondo caso: Feature giusta
CarryRepair Delay
I costi di un’implementazione precoce
Terzo caso: Feature giusta, implementata erroneamente
Effetti di YAGNI (in teoria)
+ Qualità del codice
+ Focus su priorità
− Costi
− Overengineering basato su

intuizioni potenzialmente sbagliate
YAGNI: Quando?
✓ Features non (ancora) necessarie
✓ Speculative generality
x Semplificazione codice
x Good practices
YAGNI: Quanto?
• Non si tratta di un principio assoluto
• Talvolta può convenire ignorare YAGNI
• L’eccessiva semplicità non piace a tutti
• addTwoAndThree() or add(x, y)?
“Everything should be made as simple as possible, but no simpler.”
— Albert Einstein
Conclusioni
• Buone ragioni per posticipare
• Chiedersi: “mi serve davvero?”
• …senza confondere posticipare con procrastinare
“Courage is postponing the decisions of tomorrow, to tomorrow”
— Kent Beck
Thank you

More Related Content

More from XPeppers

La tecnica del pomodoro - Come viene adottata in XPeppers
La tecnica del pomodoro - Come viene adottata in XPeppersLa tecnica del pomodoro - Come viene adottata in XPeppers
La tecnica del pomodoro - Come viene adottata in XPeppers
XPeppers
 
Collective code ownership in Extreme Programming
Collective code ownership in Extreme ProgrammingCollective code ownership in Extreme Programming
Collective code ownership in Extreme Programming
XPeppers
 
What is Agile?
What is Agile?What is Agile?
What is Agile?
XPeppers
 
Improve your TDD skills
Improve your TDD skillsImprove your TDD skills
Improve your TDD skills
XPeppers
 
Test driven infrastructure
Test driven infrastructureTest driven infrastructure
Test driven infrastructure
XPeppers
 
Banche agili un ossimoro?
Banche agili un ossimoro?Banche agili un ossimoro?
Banche agili un ossimoro?
XPeppers
 
Hiring Great People: how we improved our recruiting process to build and grow...
Hiring Great People: how we improved our recruiting process to build and grow...Hiring Great People: how we improved our recruiting process to build and grow...
Hiring Great People: how we improved our recruiting process to build and grow...
XPeppers
 
Continuous Delivery in Java
Continuous Delivery in JavaContinuous Delivery in Java
Continuous Delivery in Java
XPeppers
 
Life in XPeppers
Life in XPeppersLife in XPeppers
Life in XPeppers
XPeppers
 
Cloud e innovazione
Cloud e innovazioneCloud e innovazione
Cloud e innovazione
XPeppers
 
Company culture slides
Company culture slidesCompany culture slides
Company culture slides
XPeppers
 
Agileday2013 Bravi si diventa
Agileday2013 Bravi si diventaAgileday2013 Bravi si diventa
Agileday2013 Bravi si diventa
XPeppers
 
Agileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastrutturaAgileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastruttura
XPeppers
 

More from XPeppers (13)

La tecnica del pomodoro - Come viene adottata in XPeppers
La tecnica del pomodoro - Come viene adottata in XPeppersLa tecnica del pomodoro - Come viene adottata in XPeppers
La tecnica del pomodoro - Come viene adottata in XPeppers
 
Collective code ownership in Extreme Programming
Collective code ownership in Extreme ProgrammingCollective code ownership in Extreme Programming
Collective code ownership in Extreme Programming
 
What is Agile?
What is Agile?What is Agile?
What is Agile?
 
Improve your TDD skills
Improve your TDD skillsImprove your TDD skills
Improve your TDD skills
 
Test driven infrastructure
Test driven infrastructureTest driven infrastructure
Test driven infrastructure
 
Banche agili un ossimoro?
Banche agili un ossimoro?Banche agili un ossimoro?
Banche agili un ossimoro?
 
Hiring Great People: how we improved our recruiting process to build and grow...
Hiring Great People: how we improved our recruiting process to build and grow...Hiring Great People: how we improved our recruiting process to build and grow...
Hiring Great People: how we improved our recruiting process to build and grow...
 
Continuous Delivery in Java
Continuous Delivery in JavaContinuous Delivery in Java
Continuous Delivery in Java
 
Life in XPeppers
Life in XPeppersLife in XPeppers
Life in XPeppers
 
Cloud e innovazione
Cloud e innovazioneCloud e innovazione
Cloud e innovazione
 
Company culture slides
Company culture slidesCompany culture slides
Company culture slides
 
Agileday2013 Bravi si diventa
Agileday2013 Bravi si diventaAgileday2013 Bravi si diventa
Agileday2013 Bravi si diventa
 
Agileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastrutturaAgileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastruttura
 

Recently uploaded

Convegno SPEKTRA da A2A - 28 maggio 2024 | RUGGIERI Alfredo
Convegno SPEKTRA da A2A - 28 maggio 2024 | RUGGIERI AlfredoConvegno SPEKTRA da A2A - 28 maggio 2024 | RUGGIERI Alfredo
Convegno SPEKTRA da A2A - 28 maggio 2024 | RUGGIERI Alfredo
Servizi a rete
 
onvegno SPEKTRA da A2A - 28 maggio 2024 | COLLA Simone
onvegno SPEKTRA da A2A - 28 maggio 2024 | COLLA Simoneonvegno SPEKTRA da A2A - 28 maggio 2024 | COLLA Simone
onvegno SPEKTRA da A2A - 28 maggio 2024 | COLLA Simone
Servizi a rete
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | VEIRANA Francesco
Convegno SPEKTRA da A2A - 28 maggio 2024 | VEIRANA FrancescoConvegno SPEKTRA da A2A - 28 maggio 2024 | VEIRANA Francesco
Convegno SPEKTRA da A2A - 28 maggio 2024 | VEIRANA Francesco
Servizi a rete
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | TROIANO Luigia
Convegno SPEKTRA da A2A - 28 maggio 2024 | TROIANO LuigiaConvegno SPEKTRA da A2A - 28 maggio 2024 | TROIANO Luigia
Convegno SPEKTRA da A2A - 28 maggio 2024 | TROIANO Luigia
Servizi a rete
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | NERELLI Andrea
Convegno SPEKTRA da A2A - 28 maggio 2024 | NERELLI AndreaConvegno SPEKTRA da A2A - 28 maggio 2024 | NERELLI Andrea
Convegno SPEKTRA da A2A - 28 maggio 2024 | NERELLI Andrea
Servizi a rete
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | UBERTI FOPPA Bianca
Convegno SPEKTRA da A2A - 28 maggio 2024 | UBERTI FOPPA BiancaConvegno SPEKTRA da A2A - 28 maggio 2024 | UBERTI FOPPA Bianca
Convegno SPEKTRA da A2A - 28 maggio 2024 | UBERTI FOPPA Bianca
Servizi a rete
 
BIM obblighi e opportunità (nicolafurcolo.it) R.pdf
BIM obblighi e opportunità (nicolafurcolo.it) R.pdfBIM obblighi e opportunità (nicolafurcolo.it) R.pdf
BIM obblighi e opportunità (nicolafurcolo.it) R.pdf
Nicola Furcolo
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | ALESIANO Yuri
Convegno SPEKTRA da A2A - 28 maggio 2024 | ALESIANO YuriConvegno SPEKTRA da A2A - 28 maggio 2024 | ALESIANO Yuri
Convegno SPEKTRA da A2A - 28 maggio 2024 | ALESIANO Yuri
Servizi a rete
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | BERTELLA Alessio
Convegno SPEKTRA da A2A - 28 maggio 2024 | BERTELLA AlessioConvegno SPEKTRA da A2A - 28 maggio 2024 | BERTELLA Alessio
Convegno SPEKTRA da A2A - 28 maggio 2024 | BERTELLA Alessio
Servizi a rete
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | ORSENIGO Tiziano
Convegno SPEKTRA da A2A - 28 maggio 2024 | ORSENIGO TizianoConvegno SPEKTRA da A2A - 28 maggio 2024 | ORSENIGO Tiziano
Convegno SPEKTRA da A2A - 28 maggio 2024 | ORSENIGO Tiziano
Servizi a rete
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | CARNI Marco
Convegno SPEKTRA da A2A - 28 maggio 2024 | CARNI MarcoConvegno SPEKTRA da A2A - 28 maggio 2024 | CARNI Marco
Convegno SPEKTRA da A2A - 28 maggio 2024 | CARNI Marco
Servizi a rete
 

Recently uploaded (11)

Convegno SPEKTRA da A2A - 28 maggio 2024 | RUGGIERI Alfredo
Convegno SPEKTRA da A2A - 28 maggio 2024 | RUGGIERI AlfredoConvegno SPEKTRA da A2A - 28 maggio 2024 | RUGGIERI Alfredo
Convegno SPEKTRA da A2A - 28 maggio 2024 | RUGGIERI Alfredo
 
onvegno SPEKTRA da A2A - 28 maggio 2024 | COLLA Simone
onvegno SPEKTRA da A2A - 28 maggio 2024 | COLLA Simoneonvegno SPEKTRA da A2A - 28 maggio 2024 | COLLA Simone
onvegno SPEKTRA da A2A - 28 maggio 2024 | COLLA Simone
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | VEIRANA Francesco
Convegno SPEKTRA da A2A - 28 maggio 2024 | VEIRANA FrancescoConvegno SPEKTRA da A2A - 28 maggio 2024 | VEIRANA Francesco
Convegno SPEKTRA da A2A - 28 maggio 2024 | VEIRANA Francesco
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | TROIANO Luigia
Convegno SPEKTRA da A2A - 28 maggio 2024 | TROIANO LuigiaConvegno SPEKTRA da A2A - 28 maggio 2024 | TROIANO Luigia
Convegno SPEKTRA da A2A - 28 maggio 2024 | TROIANO Luigia
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | NERELLI Andrea
Convegno SPEKTRA da A2A - 28 maggio 2024 | NERELLI AndreaConvegno SPEKTRA da A2A - 28 maggio 2024 | NERELLI Andrea
Convegno SPEKTRA da A2A - 28 maggio 2024 | NERELLI Andrea
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | UBERTI FOPPA Bianca
Convegno SPEKTRA da A2A - 28 maggio 2024 | UBERTI FOPPA BiancaConvegno SPEKTRA da A2A - 28 maggio 2024 | UBERTI FOPPA Bianca
Convegno SPEKTRA da A2A - 28 maggio 2024 | UBERTI FOPPA Bianca
 
BIM obblighi e opportunità (nicolafurcolo.it) R.pdf
BIM obblighi e opportunità (nicolafurcolo.it) R.pdfBIM obblighi e opportunità (nicolafurcolo.it) R.pdf
BIM obblighi e opportunità (nicolafurcolo.it) R.pdf
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | ALESIANO Yuri
Convegno SPEKTRA da A2A - 28 maggio 2024 | ALESIANO YuriConvegno SPEKTRA da A2A - 28 maggio 2024 | ALESIANO Yuri
Convegno SPEKTRA da A2A - 28 maggio 2024 | ALESIANO Yuri
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | BERTELLA Alessio
Convegno SPEKTRA da A2A - 28 maggio 2024 | BERTELLA AlessioConvegno SPEKTRA da A2A - 28 maggio 2024 | BERTELLA Alessio
Convegno SPEKTRA da A2A - 28 maggio 2024 | BERTELLA Alessio
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | ORSENIGO Tiziano
Convegno SPEKTRA da A2A - 28 maggio 2024 | ORSENIGO TizianoConvegno SPEKTRA da A2A - 28 maggio 2024 | ORSENIGO Tiziano
Convegno SPEKTRA da A2A - 28 maggio 2024 | ORSENIGO Tiziano
 
Convegno SPEKTRA da A2A - 28 maggio 2024 | CARNI Marco
Convegno SPEKTRA da A2A - 28 maggio 2024 | CARNI MarcoConvegno SPEKTRA da A2A - 28 maggio 2024 | CARNI Marco
Convegno SPEKTRA da A2A - 28 maggio 2024 | CARNI Marco
 

Yagni, You aren't gonna need it

  • 2. Le origini • Metodologie pesanti dominavano negli anni ‘90 • BUFD - Big Up Front Design • Emersione di Agile e XP • Simple design
  • 3. It’s a trap! • “Ne avrò sicuramente bisogno in futuro” • “Se lo faccio ora risparmierò tempo nel lungo termine”
  • 4. You Aren’t Gonna Need It • Implementa funzionalità quando ne hai bisogno • Non quando pensi che ne avrai bisogno in futuro • Puoi sempre svilupparle più tardi
  • 5. Perchè rimandare? • Il lavoro fatto potrebbe risultare inutile ¯_(ツ)_/¯ • Domani siamo più intelligenti di oggi • Un’implementazione precoce è
 spesso più costosa
  • 6. I costi di un’implementazione precoce Carry Primo caso: Feature sbagliata Build Delay
  • 7. Carry Delay I costi di un’implementazione precoce Secondo caso: Feature giusta
  • 8. CarryRepair Delay I costi di un’implementazione precoce Terzo caso: Feature giusta, implementata erroneamente
  • 9. Effetti di YAGNI (in teoria) + Qualità del codice + Focus su priorità − Costi − Overengineering basato su
 intuizioni potenzialmente sbagliate
  • 10. YAGNI: Quando? ✓ Features non (ancora) necessarie ✓ Speculative generality x Semplificazione codice x Good practices
  • 11. YAGNI: Quanto? • Non si tratta di un principio assoluto • Talvolta può convenire ignorare YAGNI • L’eccessiva semplicità non piace a tutti • addTwoAndThree() or add(x, y)? “Everything should be made as simple as possible, but no simpler.” — Albert Einstein
  • 12. Conclusioni • Buone ragioni per posticipare • Chiedersi: “mi serve davvero?” • …senza confondere posticipare con procrastinare “Courage is postponing the decisions of tomorrow, to tomorrow” — Kent Beck