Le 12 pratiche
-
Upload
andrea-francia -
Category
Technology
-
view
161 -
download
0
Transcript of Le 12 pratiche
![Page 1: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/1.jpg)
Le pratiche di XP
![Page 2: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/2.jpg)
Perché XP?
![Page 3: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/3.jpg)
Royce, Winston (1970), "Managing the Development of Large Software Systems" (PDF), Proceedings of IEEE WESCON, 26 (August): 1–9
![Page 4: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/4.jpg)
![Page 5: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/5.jpg)
![Page 6: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/6.jpg)
![Page 7: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/7.jpg)
Valori alla base XP• Communication: Dare alle giuste persone le
giuste informazioni per poterle usarle al meglio. • Simplicity: Tralasciare quello che vorremmo
rispetto e concentrarci solo su quello che effettivamente serve.
• Feedback: Apprendere ad ogni occasione possibile.
• Courage: Fare la cosa giusta, anche quando è difficile, e.g. saper dire agli stakeholder come stanno effettivamente le cose.
• Respect: Rispettare se stessi e gli altri.
![Page 8: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/8.jpg)
Cosa sono le pratiche?• Portano all’estremo le buone pratiche
dell’ingegneria del software
• Esprimono i valori di XP.
• Ha senso cominciare a sperimentare XP partendo dalle pratiche.
• Si rinforzano a vicenda, ha senso usarle assieme.
![Page 9: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/9.jpg)
Quante e quali sono le pratiche XP?
![Page 10: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/10.jpg)
All’inizio ne avevamo solo 12
• The Planning Game, Small Releases, Metaphor, Simple Design, Testing, Refactoring, Pair Programming, Collective Ownership, Continuous Integration, 40-hour week, On-site customer, Coding standards
Kent Beck, 1999, Kent Beck. 1999. Extreme Programming Explained: Embrace Change
http://ronjeffries.com/xprog/what-is-extreme-programming/
![Page 11: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/11.jpg)
Poi nel 2004 …• Dopo 5 anni dalla prima pubblicazione nel 2004 è
uscita la seconda edizione del libro di Kent Beck
• Una riscrittura completa, completamente un altro libro.
• Le pratiche ora sono 24.
• Non c’è una corrispondenza banale tra nuove e vecchie pratiche.
Kent Beck and Cynthia Andres. 2004. Extreme Programming Explained: Embrace Change (2nd Edition)
![Page 12: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/12.jpg)
Le pratiche della 2ed• Primary Practices (13):
• Sit Together, Whole Team, Informative Workspace, Energized Work, Pair Programming, Stories, Weekly Cycle, Quarterly Cycle, Slack, Ten-Minute Build, Continuous Integration, Test First Programming, Incremental Design
• Corollary Practices (11):
• Real Customer Involvement, Incremental Deployment, Team Continuity, Shrinking Teams, Root-Cause Analysis, Shared Code, Code and Tests, Single Code Base, Daily Deployment, Negotiated Scope Contract, Pay-Per-Use
Kent Beck and Cynthia Andres. 2004. Extreme Programming Explained: Embrace Change (2nd Edition)
![Page 13: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/13.jpg)
Pratiche aggiuntive• Ad esempio:
• Pratiche che derivano da altre discipline (come il Daily Standup preso in Scrum)
• Pratiche che si trovano comunemente nei team XP o Agili (e.g. Tecnica del Pomodoro)
• Pratiche implicite (come la Retrospettiva)
![Page 14: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/14.jpg)
Da dove cominciamo?
![Page 15: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/15.jpg)
Da dove cominciamo? • Le 12 pratiche classiche sono il passo più
semplice.
• Scorrerle velocemente ci permette di farci un idea di come sia lo sviluppo in un team XP
• Ve le presento una ad una brevemente
• Approfondiremo i dubbi man mano che saltano fuori.
![Page 16: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/16.jpg)
Le 12 pratiche
http://ronjeffries.com/xprog/what-is-extreme-programming/
![Page 17: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/17.jpg)
Customer On-site
• “A real customer must sit with the team, available to answer questions, resolve disputes, and set small-scale priorities”.
• Chi è un “real customer”?
• E se ti dicono … “Ma non posso bloccare una persona per dedicarla agli sviluppatori!!!!”
![Page 18: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/18.jpg)
Planning Game• “Software development is always an evolving
dialog between the possible and the desirable”• Business people
• Scope
• Priority
• Composition of releases
• Dates of releases
• Technical people
• Estimates
• Consequences
• Process
• Detailed scheduling
![Page 19: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/19.jpg)
Small Releases
• “Every release should be as small as possible, containing the most valuable business requirements.”
• Qual’è il vantaggio di avere i rilasci brevi?
![Page 20: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/20.jpg)
Metaphor• Si sceglie una metafora per descrivere il sistema e
la si usa come fonte per trovare i termini di cui discutere il sistema.
• In pratica si definisce un linguaggio comune da usare in modo estensivo durante tutto il progetto.
![Page 21: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/21.jpg)
Simple DesignAd un dato momento il giusto design per un software è quello che:
1.Fa passare tutti i test.
2.Non contiene logica duplicata
3.Rende chiaro il motivo per è stato scritto
4.Contiene il numero minimo di elementi
![Page 22: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/22.jpg)
Testing
• Nel programma non esiste nessuna feature che non abbia un test automatico che la verifica.
• Unit Testing -vs- Customer Tests
• Ma siamo sicuri che testare proprio tutto tutto?
• “TDD”, “Test-First” o “Test Driven Development”
![Page 23: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/23.jpg)
Refactoring• Quando si fa refactoring? Prima, dopo o durante
l’implementazione di una feature?
• Refactor fatto prima di aggiungere feature.
• Refactor fatto dopo aver aggiunto la feature.
• Refactor solo del codice di produzione?
• Fare refactor quando il sistema te lo chiede? Te lo sta chiedendo quando sei obbligato a fare duplicazione.
![Page 24: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/24.jpg)
Pair Programming
• Tutto il codice di produzione è scritto da due persone in coppia. Una macchina, una tastiera e un mouse.
![Page 25: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/25.jpg)
Collective Code Ownership
• Tutto il codice codice appartiene al progetto, non al singolo programmatore.
• Se una coppia incontra un pezzo di codice che può essere migliorato lo migliora.
• Se una coppia ha bisogno di modificare un pezzo di codice per implementare una feature lo modifica.
![Page 26: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/26.jpg)
Continous Integration
• Il codice è integrato è testato almeno ogni poche ore, mal che vada almeno una volta nella giornata.
![Page 27: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/27.jpg)
Sustainable Pace
• Niente straordinari
• È necessario essere freschi per scrivere codice.
![Page 28: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/28.jpg)
Coding Standards
• I programmatori si accordano su uno standard di sviluppo condiviso e accettato volontariamente.
![Page 29: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/29.jpg)
Domande?
![Page 30: Le 12 pratiche](https://reader030.fdocumenti.com/reader030/viewer/2022020203/589abc2f1a28abcf058b45a1/html5/thumbnails/30.jpg)
Per approfondire XP