SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
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

Contenu connexe

Plus de 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 XPeppersXPeppers
 
Collective code ownership in Extreme Programming
Collective code ownership in Extreme ProgrammingCollective code ownership in Extreme Programming
Collective code ownership in Extreme ProgrammingXPeppers
 
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 skillsXPeppers
 
Test driven infrastructure
Test driven infrastructureTest driven infrastructure
Test driven infrastructureXPeppers
 
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 JavaXPeppers
 
Life in XPeppers
Life in XPeppersLife in XPeppers
Life in XPeppersXPeppers
 
Cloud e innovazione
Cloud e innovazioneCloud e innovazione
Cloud e innovazioneXPeppers
 
Company culture slides
Company culture slidesCompany culture slides
Company culture slidesXPeppers
 
Agileday2013 Bravi si diventa
Agileday2013 Bravi si diventaAgileday2013 Bravi si diventa
Agileday2013 Bravi si diventaXPeppers
 
Agileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastrutturaAgileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastrutturaXPeppers
 

Plus de 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
 

Dernier

Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniGiornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleGiornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleServizi a rete
 

Dernier (7)

Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniGiornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleGiornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
 

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