Top Banner
Le pratiche di XP
31

Le 12 pratiche

Apr 13, 2017

Download

Technology

Andrea Francia
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Le 12 pratiche

Le pratiche di XP

Page 2: Le 12 pratiche

Perché XP?

Page 3: Le 12 pratiche

Royce, Winston (1970), "Managing the Development of Large Software Systems" (PDF), Proceedings of IEEE WESCON, 26 (August): 1–9

Page 4: Le 12 pratiche
Page 5: Le 12 pratiche
Page 6: Le 12 pratiche
Page 7: Le 12 pratiche

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

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

Quante e quali sono le pratiche XP?

Page 10: Le 12 pratiche

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

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

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

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

Da dove cominciamo?

Page 15: Le 12 pratiche

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

Le 12 pratiche

http://ronjeffries.com/xprog/what-is-extreme-programming/

Page 17: Le 12 pratiche

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

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

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

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

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

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

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

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

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

Continous Integration

• Il codice è integrato è testato almeno ogni poche ore, mal che vada almeno una volta nella giornata.

Page 27: Le 12 pratiche

Sustainable Pace

• Niente straordinari

• È necessario essere freschi per scrivere codice.

Page 28: Le 12 pratiche

Coding Standards

• I programmatori si accordano su uno standard di sviluppo condiviso e accettato volontariamente.

Page 29: Le 12 pratiche

Domande?

Page 30: Le 12 pratiche

Per approfondire XP