Cosa è Extreme Programming

Extreme Programming è una disciplina dello sviluppo software basata sui valori della semplicità, comunicazione, feedback e coraggio. Si tratta di focalizzare l’intero team con semplici pratiche ed un feedback efficace che abilita l’orientamento e l’adattamento alla situazione che si presenta.

Estratto, tradotto ed adattato da http://ronjeffries.com/xprog/book/whatisxp/

Extreme Programming

In Extreme Programming, ogni contributore del progetto è parte del team allargato (Whole Team). Il Team si forma intorno ad un rappresentante di Business chiamato “il cliente” che siede assieme al team e lavora con loro quotidianamente. (Pratica chiave: Whole Team)

I team di Extreme Programming usano una forma semplice di pianificazione e controllo per decidere cosa debba essere sviluppato e stimano quando il lavoro sarà completo. Focalizzandosi sul valore di Business, il Team produce il software in una serie di piccoli rilasci completamente integrati che superano tutti i test definiti dal cliente. (Pratiche chiave: Planning Game, Small Releases, Customer Tests)

In Extreme Programming gli sviluppatori lavorano in coppie ed in gruppo, seguendo criteri di semplicità e ampia copertura di test, migliorando il design del codice continuamente e mantenendolo aggiornato per i bisogno correnti. (Pratiche chiave: Simple Design, Pair Programming, Test-Driven Development, Design Improvement)

In Extreme Programming il codice viene tenuto integrato e funzionante per tutto il periodo di sviluppo. I programmatori scrivono codice in coppie e lavorano tutto il giorno insieme. Il codice adotta uno stile uniforme in modo che chiunque può comprendere e migliorare qualsiasi parte, secondo le necessità. (Pratiche chiave: Continuous Integration, Collective Code Ownership, Coding Standard)

I Team condividono una visione semplice e condivisa su cosa il sistema debba essere. Ognuno lavora ad un ritmo che può essere mantenuto indefinitamente. (Pratiche chiave: System Metaphor, Sustainable Pace)