We were doing incremental development
as early as 1957, ... the technique used
was, as far as I can tell, indistinguishable
Craig Larman: Iterative and Incremental Development: A Brief History
"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
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 Engineering
Kent Beck, Extreme Programming Explained
Involve the customer through small, incremental
releases of a working program
The Planning Game
1. Planning Game
2. Small Releases
Jenkins Server di collaudo
2. Pull changes3. Build
4. Unit test
7. Success! or Failure!
4. Simple Design
1. Runs all the tests
2. Has no duplicated logic
3. States every intention important to the
4. Has the fewest possible classes and
(TDD, BDD, ATDD)
The result is a program that becomes more and
more conﬁdent over time---it becomes
more capable of accepting change, not less.
The customer writes Acceptance Tests
When 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
7. Pair Programming
All production code is written with
two people looking at one machine
8. Collective Ownership
Code belongs to the team, not the individual
9. Continuous Integration
Make integration painless by doing it often
10. 40-Hours Week
Teams working overtime are failing
11. Customer On Site
A real customer must sit with the team
12. Coding Standards
The team controls the work environment
Se XP funziona così
bene, perché non lo
XP is hard
Involve the customer.
Take responsibility.Learn. Study. Learn.
Milano XPUG User Group
Italian Agile Day
Agile Coach Camp, 5-7 giugno
Grazie per l’attenzione!
17-18 aprile, Bologna
12-13 giugno, Milano