![Page 1: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/1.jpg)
1
eXtreme Programming (summary of Kent Beck‘s XP book)
Prof. Dr. Wolfgang Pree Universität Salzburg
![Page 2: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/2.jpg)
© 2002, W. Pree 2
Contents
The software development problem The XP solution The JUnit testing framework
![Page 3: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/3.jpg)
© 2002, W. Pree 3
The SW development
problem
![Page 4: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/4.jpg)
© 2002, W. Pree 4
Four variables
![Page 5: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/5.jpg)
© 2002, W. Pree 5
Overview
cost time quality scope
external forces (customers, management) pick the values of 3 v.
solution: make the four variables visible
![Page 6: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/6.jpg)
© 2002, W. Pree 6
interaction between the variables
time: more time can improve quality and increase scope too much time will hurt it
quality: short-term gains by deliberately sacrificing quality; but the cost (human, business, technical) is enormous
less scope => better quality (as long as the business problem is still solved)
![Page 7: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/7.jpg)
© 2002, W. Pree 7
Four values
![Page 8: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/8.jpg)
© 2002, W. Pree 8
Overview
communication simplicity feedback courage
![Page 9: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/9.jpg)
© 2002, W. Pree 9
short-term vs. long term thinking (I)
communication: effect of pair programming, unit testing, task estimation: programmers, customers and managers have to communicate
simplicity: it is better to do a simple thing today and pay a little more tomorrow to change it if it needs than to do a more complicated thing today that may never be used anyway
![Page 10: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/10.jpg)
© 2002, W. Pree 10
short-term vs. long term thinking (II)
feedback: when customers write new „stories“ (description of features, simplified use cases), the programmers immediately estimate them; customers and testers write functional tests for all the stories
courage: throwing parts of the code away and start over on the most promising design
![Page 11: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/11.jpg)
© 2002, W. Pree 11
Basic principles (derived from
the four values)
![Page 12: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/12.jpg)
© 2002, W. Pree 12
Basic principles (I)
rapid feedback assume simplicity incremental change embracing change quality work
![Page 13: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/13.jpg)
© 2002, W. Pree 13
Basic principles (II)
small initial investment play to win concrete experiments open, honest communication work with people‘s instincts, not
against them
![Page 14: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/14.jpg)
© 2002, W. Pree 14
Basic activities
![Page 15: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/15.jpg)
© 2002, W. Pree 15
Basic activities in the XP development process
coding testing listening designing
![Page 16: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/16.jpg)
© 2002, W. Pree 16
The solution
![Page 17: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/17.jpg)
© 2002, W. Pree 17
XP practices
![Page 18: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/18.jpg)
© 2002, W. Pree 18
Practices (I)
planning game: determine the scope of the next release; as reality overtakes the plan update the plan
small releases: release new versions on a very short cycle after putting a simple system into production quickly
metaphor: guide development with a simple shared story of how the whole system works
![Page 19: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/19.jpg)
© 2002, W. Pree 19
Practices (II)
simple design: as simple as possible but not simpler (A. Einstein)
testing: continually write unit tests refactoring: restructure the system to
remove duplication (c.f. framelets, etc.) pair programming: two programmers at
one machine collective ownership
![Page 20: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/20.jpg)
© 2002, W. Pree 20
Practices (III)
continous integration: integrate the system many times a day, every time a task is complete
40-hour week on-site customer: include a real, live
customer coding standards
![Page 21: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/21.jpg)
© 2002, W. Pree 21
Management strategy
![Page 22: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/22.jpg)
© 2002, W. Pree 22
Overview
decentralized decision making based on • metrics • coaching • tracking • intervention
using business basics: phased delivery, quick and concrete feedback, clear articulation of the business needs, specialists for special tasks
![Page 23: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/23.jpg)
© 2002, W. Pree 23
Metrics
don‘t have too many metrics numbers are regarded as a way of gently
and noncoercively communicating the need for change
ratio between the estimated development time and calendar time is the basic measure for running the Planning Game
![Page 24: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/24.jpg)
© 2002, W. Pree 24
Coaching
be available as a development partner see long-term refactoring goals explain the process to upper-level
management
=> no lead programmer, system architect, etc.
![Page 25: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/25.jpg)
© 2002, W. Pree 25
Intervention
when problems cannot be solved by the emergent brillance of the team, the manager has to step in, make decisions and see the consequences through to the end
sample situations: changing the team‘s process, personnel changes, quitting a project
![Page 26: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/26.jpg)
© 2002, W. Pree 26
Planning strategy
![Page 27: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/27.jpg)
© 2002, W. Pree 27
Overview
bring the team together decide on scope and priorities estimate cost and schedule give everyone confidence that the system
can be done provide a benchmark for feedback
put the most valuable functionality into production asap
![Page 28: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/28.jpg)
© 2002, W. Pree 28
Summary
![Page 29: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/29.jpg)
© 2002, W. Pree 29
What makes XP hard?
It‘s hard to ... do simple things admit you don‘t know (eg, basics about
computer/software science in the context of pair programming)
to collaborate to break down emotional walls
![Page 30: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/30.jpg)
© 2002, W. Pree 30
XP & Kent Beck (I)
Kent Beck is afraid of: doing work that doesn‘t matter having projects canceled making business decisions badly doing work without being proud of it
![Page 31: eXtreme Programming - softwareresearch.net · 1 eXtreme Programming (summary of Kent Beck‘s XP book) Prof. Dr. Wolfgang Pree Universität Salzburg pree@SoftwareResearch.net](https://reader035.vdocument.in/reader035/viewer/2022062415/5fba595d08633e1d18179f5a/html5/thumbnails/31.jpg)
© 2002, W. Pree 31
XP & Kent Beck (II)
Kent Beck is not afraid of: coding changing his mind proceeding without knowing everything
about the future relying on other people changing the analysis and design of a
running system writing tests