extreme programming
DESCRIPTION
My presentation at Agile For Innovation http://www.agileforinnovation.com/ 14 march 2014TRANSCRIPT
![Page 1: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/1.jpg)
Matteo Vaccari@xpmatteo
http://matteo.vaccari.name/
eXtreme Programming
1
![Page 2: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/2.jpg)
Cheap, fast, good.
You can have it all.
2
![Page 3: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/3.jpg)
c2.com/cgi/wiki?ExtremeProgramming3
![Page 4: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/4.jpg)
martinfowler.com/articles/xp2000.html4
![Page 5: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/5.jpg)
5
![Page 6: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/6.jpg)
We were doing incremental development as early as 1957, ... the technique used was, as far as I can tell, indistinguishable from XP.
Jerry Weinberg
Craig Larman: Iterative and Incremental Development: A Brief History6
![Page 7: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/7.jpg)
"Perlis: I’d like to read three sentences to close this issue.1. A software system can best be designed if the testing is interlaced with the designing instead of being used after the design.2. A simulation which matches the requirements contains the control which organizes the design of the system.3. Through successive repetitions of this process of interlaced testing and design the model ultimately becomes the software system itself.
1968 NATO Conference on Software Engineering7
![Page 8: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/8.jpg)
Barry Boehm
Kent Beck
Kent Beck, Extreme Programming Explained8
![Page 9: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/9.jpg)
Involve the customer through small, incremental releases of a working program
http://mgintravels.wordpress.com/2013/03/04/camping-in-the-olive-gardens-of-patara/
9
![Page 10: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/10.jpg)
Presupposti
•Team.
•Personalità risolte.
•Cliente coinvolto.
10
![Page 11: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/11.jpg)
XP
The Planning Game
Small releases
Metaphor
Simple Design
Testing
Refactoring
Pair Programming
Collective Ownership
Continuous Integration
40-Hour Week
On-Site Customer
Coding Standards
PracticesValuesSimplicity
Courage
Communication
Feedback
11
![Page 12: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/12.jpg)
1. Planning Game(Scrum)
Planning game
Business people
Scope
Priority
Dates
Technical people
Estimates
Consequences
Process
12
![Page 13: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/13.jpg)
2. Small Releases(Continuous Delivery)
Subversion
Sviluppatori
Jenkins Server di collaudo
1. Commit
2. Pull changes3. Build4. Unit test
5. Deploy6. Acceptance tests
7. Success! or Failure!
13
![Page 14: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/14.jpg)
3. Metaphor(Domain-Driven Design)
Ubiquitous Language
Simple models14
![Page 15: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/15.jpg)
4. Simple Design
1. Runs all the tests2. Has no duplicated logic3. States every intention important to the
programmers4. Has the fewest possible classes and
methods
15
![Page 16: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/16.jpg)
5. Testing(TDD, BDD, ATDD)
The result is a program that becomes more and more confident over time---it becomes
more capable of accepting change, not less.
The customer writes Acceptance Tests
16
![Page 17: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/17.jpg)
6. RefactoringWhen implementing a program feature, the programmers always ask if there is a way of
changing the existing program to make adding the feature simpler.
After they have added a feature, they ask if they can now see how to
make the program simpler
17
![Page 18: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/18.jpg)
7. Pair Programming
All production code is written with two people looking at one machine
18
![Page 19: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/19.jpg)
8. Collective Ownership
Code belongs to the team, not the individual
19
![Page 20: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/20.jpg)
9. Continuous Integration
Make integration painless by doing it often
20
![Page 21: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/21.jpg)
10. 40-Hours Week
Teams working overtime are failing
21
![Page 22: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/22.jpg)
11. Customer On Site
A real customer must sit with the team
22
![Page 23: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/23.jpg)
12. Coding Standards
The team controls the work environment
23
![Page 24: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/24.jpg)
Se XP funziona così bene, perché non lo
fanno tutti?
24
![Page 25: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/25.jpg)
XP is hard
Involve the customer.
Take responsibility.Learn. Study. Learn.
Give feedback.
25
![Page 26: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/26.jpg)
It’s not the answer they want to hear
26
![Page 27: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/27.jpg)
It’s just “good programming
practice”
http://blog.8thlight.com/uncle-bob/2013/12/10/Thankyou-Kent.html
27
![Page 28: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/28.jpg)
Community!
Milano XPUG User Group
Italian Agile Day
Agile Coach Camp, 5-7 giugno
milano-xpug.pbworks.com
agileday.it
accitaly.wordpress.com
https://it.groups.yahoo.com/neo/groups/extremeprogramming-it/info
28
![Page 29: Extreme Programming](https://reader033.vdocuments.mx/reader033/viewer/2022060107/554a11a5b4c9058c5d8b4b13/html5/thumbnails/29.jpg)
Grazie per l’attenzione!
Sono freelance!
Contattami!
Corso TDD:17-18 aprile, Bologna12-13 giugno, Milanowww.avanscoperta.it
29