Title: eXtreme Programming ?????????? ?????? ??????? ?????
1eXtreme Programming?????????? ?????? ???????
?????
- ?"? ????? ???
- ?????? ?????? ?????????? ???????, ???????
- oritha_at_techunix.technion.ac.il
2eXtreme Programming ?????????? ?????? ????????
?????
- What is eXtreme Programming
- Why eXtreme Programming?
- Social analysis
- Cognitive analysis
3eXtreme Programming ?????????? ?????? ????????
?????
- ??-??? ???????? ?? ???? ?????? ?????
- ??? ?????? ???????? ????????? ??????? ??????
4Problems in software development
- Google "problems with software development
- Requirements are complex
- Clients usually do not know all the requirements
in advance - Requirements may be changing
- Frequent changes are difficult to manage
- Process bureaucracy (documents over development)
- It takes longer
- The result is not right the first time
- It costs more
- Applying the wrong process for the product
5????? ???????? ?? ???????? ?????
- ????????? ??????? ?????? ????? ????? ?????
?????? (??? ?????????) - ??????, ??"? ???? ???-????? ??, ?????, ???? ??
???????, ?????? ??? ???? ????, ??-????? ????,
?????????, ...
6??????? ????? ??????
- 75 ?????? ?????? ??????? ??????? ??????? ??????
??????? ?? ????? ?????? ??? ?? ????? ???????
??????? ???????. - Based on Mullet, D. (July, 1999). The
Software Crisis, Benchmarks Online - a monthly - publication of Academic Computing Services
2(7). - ???? ?????? ?? ????? ?????? ????"? ????? ??? ???
?- 59.5 ?????? - The National Institute of Standards and
Technology (NIST), New Release of June 28, 2002. - ??? ?????? ?- Q2 ?? 2003 ?????? ????"? ??????
200 ??????
7What is eXtreme Programming
- ?? ??? ?????? ?? XP?
- (?? Windows XP)
8What is eXtreme Programming
- eXtreme Programming ???? ???????.
- Differences from traditional methodologies
- Emphasis on people vs. development activities
schedule - XP specifies how to behave still leaves freedom
- 12 practices
- 4 values feedback, simplicity, communication,
courage - The meaning of eXtreme
- Optimum teams up to 12 developers can be
adjusted to bigger teams.
9Why XP?
- Survey
- 31 XP/Agile-methods early adopter projects
- 14 firms
- Findings
- Cost reduction 5-7 on average
- Time to market compression 25-50 reduction
- This datum will be explained later
10Why XP?
- big companies using XP in at least some capacity
- Ford Motor, Chrysler, IBM, HP
- smaller software houses
- Mayford Technologies
- RoleModel Software
- tutorials Industrial Logic, Object Mentor
11Project Timetable 1 release - 3 iterations (2
months - 9 weeks)
Business Day
Business Day
Week 4, Release 1, Iteration 2 Week 3, Release 1, Iteration 1 Week 2, Release 1, Iteration 1 Week 1, Release 1, Iteration 1
Week 8, Release 1, Iteration 3 Week 7, Release 1, Iteration 3 Week 6, Release 1, Iteration 2 Week 5, Release 1, Iteration 2
Release 2 starts Week 9, Release 1, Iteration 3
Business Day
Business Day
12How eXtreme Programming?
- Two days in
- eXtreme Programming Development Environment
13Business Day
- On-site customer
- Planning game
- Small releases
- Simple design
- Metaphor
Source http//www.rolemodelsoftware.com/
14Business Day Reflection
- 5 practices (out of 12)
- Planning game
- On-site customer
- Small releases
- Simple design
- Metaphor
- Planning game
- All developers participate
- All have the same load
- All developers get an overview of the entire
development process - Simple means
- Very detailed
- Levels of abstraction
15Business Day Reflection
- 5 practices (out of 12)
- Planning game
- On-site customer
- Small releases
- Simple design
- Metaphor
- On-site customer
- Customers on-going feedback
- Small releases
- On-going opportunity to update/change
requirements
16Business Day Reflection
- 5 practices (out of 12)
- Planning game
- On-site customer
- Small releases
- Simple design
- Metaphor
- Simple design
- Develop only what is needed for your development
task - Metaphor
- Bridges customers-developers-business gaps
17Development Day
Source http//www.rolemodelsoftware.com/
- Stand-up meeting
- The development environment
- Pair programming
- Test driven development (acceptance, unit-test)
- Code standards
- Refactoring
- Simple design
- Continuous integration (one integration machine)
- Collective ownership
- Sustainable pace (40-hour week)
18Development Day - Reflection
- The development environment
- All see all fosters communication
- Stand-up meeting
- All know what all do
- Pair programming
- Each task is thought on two levels of abstraction
- Unit test (automatic test first)
- First improves understanding Automatic testing
is easy - Developers program and test
- Testing becomes manageable
- Success vs. failure
19Development Day - Reflection
- Continuous integration
- Reduces integration risks in later stages
- Collective ownership
- Important in companies with high turnover
- Coding standards
- Refactoring and simple design
- Code improvement is part of the methodology
(though it doesn't produce code), gradual process
- Sustainable pace (40-hour week)
- Intense and productive work, developers are not
tired
20Development and Business Days Reflection
Human/Social Perspective Code/Technical Perspective
Collective ownership Pair programming Sustainable pace On-site customer Planning game Metaphor Refactoring Simple design Coding standards Testing Continuous integration Small releases
21The 12 XP practices
Note nothing is new gathering the practices
together is XP uniqueness
Source Beck, K. (2000). eXtreme Programming
explained, Addison Wesley.
22What is eXtreme Programming
- Differences from traditional methodologies
- All developers are involved with
requirements-design-code-testing - Emphasis on people vs. development activities
schedule - XP specifies how to behave still leaves freedom
and place for creativity - The meaning of eXtreme
- 12 practices
- 4 values feedback, simplicity, communication,
courage
23What is eXtreme Programming
- Agile Software Development Methodology
- Other agile methods SCRUM, Feature Driven
Development, DSDM - All acknowledge that the main issue of software
development is people customers, communication - Manifesto for Agile Software Development
http//agilemanifesto.org/ - eXtreme Programming Kent Beck, 1996, Chrysler
24Why XP?
- You do not do XP to save money However, XP
shortens time to market - XP is a mature software development method
25Why XP?
- Survey
- 31 XP/Agile-methods early adopter projects, 14
firms - Findings
- Cost reduction 5-7 on average
- Time to market compression 25-50 reduction in
time
26Why XP? Analysis
- Shorter development period
- Code is easy-to-work with
- less bugs unit tests
- code is more readable workable (invest now to
gain benefits later)pair programming,
refactoring, coding standards - Development is manageable and controlled
- accurate estimation small releases
- meets customer needs customer on-site, planning
game, acceptance tests
27Why XP? Analysis
- Shorter development period (cont)
- Knowledge sharing, if one leaves everything
continues as usual pair programming, collective
ownership - Production is increased pair programming (work
all the time), sustainable pace - Cost for requirements change/update/elaboration
is CONSTANT simple design, planning game
(redundant features are not added by customer and
developers)
28Why XP?
- Barry W. Boehm (1981). Software Engineering
Economics, Englewood Cliffs, N.J. Prentice Hall.
- 63 software development projects in corporations
such as IBM. -
- Phase of requirement change Cost Ratio
- Requirements  1
- Â Design 3-6
- Coding 10
- Â Development testing 15-40
- Â Acceptance testing 30-70
- Â Operation 40-1000
29Why XP?
- Under the assumption that the later a
requirements is introduced the more expensive it
is, customers (and developers) try to make a
complete list of requirements. - Under the assumption that cost for introducing
an update in the requirements is constant,
customers (and developers) do not assume what the
customer will need and develop exactly and only
what is needed.
30Why XP?
- You do not use XP to save money However, XP
shortens time to market - XP is a mature software development method (at
least CMM level 3)
31XP in Practice Conceptual Changes
- XP encourages
- Cooperation (vs. knowledge-is-power)
- Simplicity (vs. habit-of-high-complexity)
- Change in work habits
32Why XP? Cognitive and Social Analysis
- ????? XP ?????? ??? ?????????? ???????.
- Game Theory Prisoners Dilemma
- Learning Theory Constructivism
33Social analysis
34Game Theory
- ????? ??????? ????? ?????? ???? ?????? ???????
??????? ?? ?? ??? ????????? ?"????" ??????
??????? ?? ???????? ??????.
35The Prisoners Dilemma As perspective
B competes ????? B cooperates ?? ?????
-10 ?? ???? ?????? ?? ???? ?- A, B ?????? 5 ??? ???? ?????? A cooperates ?? ?????
0 ?? ???? ??????, ????? ????? ???? ?????? 10 ?? ???? ?????? ?? ???? ?- B, A ?????? A competes ?????
36The Prisoners Dilemma The case of software
engineering As perspective, Bonus
B competes B cooperates
20 50 A cooperates
0 80 A competes
37The Prisoners Dilemma The case of software
engineering As perspective
B competes B cooperates
-10 5 A cooperates
-20 10 A competes
38The Prisoners Dilemma The case of software
engineering
- ??"? ????? ????? ??????? ???? ????? ?? ???????.
- ?????? ?????? ??? ?????? ????? ?????? ?????? ????
???? ????. - ??? ????? ????? ?? ???? ????? ?????? ????? (??
???? ?????). - ??????? ??? ?????? ????? ????? ??????? ???????
????? ??? ???? ?????.
39The Prisoners Dilemma The case of eXtreme
Programming
- ???????? ???? ????? ????? ??-?? XP ?????? ???
???? ????? ????? ??-?? ?????????? ?? XP. - ?? ???(?) ???? ????(?) ??? ??? ???? ????? ???????
????? ??? ???? ?????????. - ???? ???-?????? (?????? ?? ????? ?????? ?????) ??
????. - ???? ????? ????? ?????? ?? ??????? ???.
40The Prisoners Dilemma The case of Extreme
Programming As perspective
B cooperates
5 A cooperates
41In what follows
- ???? ?-2 ????? ?- 4 ????????? ?? XP
- ??? ??????? ?? ????? ????? ?????? ???.
- ??????? ??? ????? ????? ????? ??-?? XP ???? ???
??? ???? ????? ????? ???? ?????? ???? ?????? ???
???? ????? (????? ???? ????? ????? ?? ????????). - ?? ???? ????? ?????? ????? ????????? ???????
????? ????? ??? ?? ???????. - ?? ?????? ?????? ???? ?????? ????? ??.
42The Prisoners Dilemma The value of courage
- ????? ?????
- ?? ???? ????? ??????? ???? ?? ????.
- ?? ???? ????? ???? ???????? ?????? ???? ??? ???
???. - ?? ???? ????? ???? ?????? ????? ??? ?? ???????.
- ?????? ?????? ?????? ??? XP, ?? ???(?) ????(?)
??? ?? ??????? ??????? courage ???? ?? ?? ??????
???? ?????? ??? ???? ?????. - ??????? ????? ????? ???????? ???? ??.
43Kent Beck
- Kent Beck explains when XP is not appropriate
- "it's more the social or business environment.
If your organization punishes honest
communications and you start to communicate
honestly, you'll be destroyed." - An interview with Kent Beck, June 17, 2003,
Working smarter, not harder, IBM website
http//www-106.ibm.com/developerworks/library/j-be
ck/
44The Prisoners Dilemma The value of simplicity
- ????? ?????
- ????? ?? ??????? ??????? ?????? ?????? ?????
?????? ?????. - ????, ?? ?????? ???.
- ???? ??????? ????? ??-??XP ???? ??????? ?? ????
???. - ?? ?????? ???? ?????? ??? ???? ?????.
- ???? ?????? ????? ????? ????????.
45The Prisoners Dilemma Collective Ownership
- In practice anyone can change any code
anywhere in the system at any time. (Beck,
2000). - ????? ????? ????? ????. ????? ????? ???.
- ???? ?????? ??-?? XP ???? ?? ??-?? ??????? ??.
- ?? ?????? ???? ?????? ??? ???? ?????.
- ???? ?????? ?????, ???? ???? ??????? ?????
?????? ????? ?????? ??????.
46The Prisoners Dilemma Coding Standards
- ????? ????? ????? ??? ????????? ??????.
- ????? ????? ?? ??-?? ????????? ??????.
- ?? ???? ????? ??????? ????? ??-?? XP ???? ???-??
??????? ?? ????. - ???? ????? ???? ??????? ??? ???? ?????.
- ?? ???? ????? ?????? ????? ????????? ?????????
??????? ??? ?? ?? ????????.
47The Prisoners Dilemma Simple Design
- ???? ????? Simplicity
- ????? ????? ????? ???? ??? ????? ????? ?????
????? ????? ?????? ?? ????. - ???? ??????? ????? ??-?? XP ???? ?? ??-?? ???????
??. - ???? ????? ???? ??????? ??? ???? ?????.
- ???? ?????? ????? ????????? ????????? ??????? ???
???? ??? ?????.
48The Prisoners Dilemma Sustainable Pace
- ???? ???? ?? 40 ????, ???? ????? ??????.
- ??????? ?????? ?????? ???? ??????? ??? ??????.
- ????????? ????? (e.g., Pair Programming) ???????
????? ???? ?? ??? ??. - ????? ????? ?????? 8-9 ???? ????? ????? ????
???? ???? ???? (????, ?? ??? ??????). - ?? ???? ????? ??????? ????? ??? XP ???? ?? ???
??????? ??. - ???? ????? ???? ??????? ??? ???? ?????.
- ???? ?????? ????? ????????? ????????? ??????? ???
???? ????? ????? ??.
49Cognitive analysis
50Why XP?
- ???? ???? ????? ????? ????? ??? ????? ????? XP
????? ?????? ???? ??. - ?????????????
- ??????? ??????? ?????? ?????.
- ??? ??? ???? ?????? ?? ???? ?????? ??????, ?"?
????? ?????? ????? ???????? ??????. - ????? ?????? ?????? ?????? ????? ???? ??????
??????.
51????? ????????? ?? XP
- ????? 4 ???? 12 ?????????? ?? XP ??? ???????
?????????????????. - ????????? ??? ?????? ????? ??????? ?? ?????
??????. - ?????? Communication ?- Feedback ?? ?? ??????.
52XP practices - Cognitive analysis
- Small releases
- Gradual process of knowledge construction re
requirements - Refactoring
- Gradual process of knowledge construction re
code's structure and readability - Test driven development
- Metaphor
53Cognitive and Social Analysis of XP practices
Social analysis Cognitive analysis
Collective ownership Sustainable pace Simple design Coding standards Refactoring Metaphor Test-first Small releases
54Summary
- eXtreme programming
- What?
- Why? Cognitive and Social analysis
- How?
55References
- Beck, K. (2000). Extreme Programming Explained
Embrace Change, Addison Wesley. - Ron Jeffries, What is Extreme Programming?
http//www.xprogramming.com/xpmag/whatisxp.htm - eXtreme Programming at the Technion
- RoleModelhttp//www.rolemodelsoftware.com/process
/whatIsXp.php
56 57Appendices
- XP and the CMM
- XP conception of failure and success
58Why XP? XP is a Mature Method
- The Capability Maturity Model for Software (CMM
or SW-CMM) a model for judging the maturity of
the software processes of an organization and for
identifying the key practices that are required
to increase the maturity of these processes. - The Software CMM has become a de facto standard
for assessing and improving software processes.
59Why XP? XP is a Mature Method
- The SW-CMM has been developed by the software
community with stewardship by the SEI. - past experiences in process improvement such as
TQM - academic business theories
- practical experiences of successful projects
gained from companies such as IBM - The CMM has five levels of process capability
maturity.Â
60Why XP? XP is a Mature Method
- The first undisciplined
- processes may be loosely defined and rarely
understood. - estimates of cost and schedule are poor and
consequently projects have serious problems
meeting deadlines and functionality requirements
within budgets. - management generally is unaware that processes
exist and often makes decisions that hurt more
than help.
61Why XP? XP is a Mature Method
- Level 2 - Repeatable
- puts project management practices such as
requirements definition, configuration
management, and quality assurance in place that
are documented and can be repeated. - Level 3 - Defined
- graduates the best practices of individual
projects to an organizational process. - adds concepts of organizational training, process
management, and program management.
62Why XP? XP is a Mature Method
- Levels 4 and 5
- use information and measurements defined in
levels 2 and 3 to understand why the process
behaves the way it does so it can be improved. - Level 5
- the process is mature enough to prevent defects
instead of reacting to them and to insert new
technology and process improvements knowing
exactly how the organizational process will be
affected.
63Why XP? XP is a Mature Method
- The CMM has become popular around the world
because of its ability to be applied practically
to any software environment. - It describes what process components should be in
place (such as recording requirements, planning
and tracking activities, estimating, etc.), but
not how to implement them. - eXtreme Programming fits as a framework for how
to implement the processes.
64XP in practice Success and failure
- 3 Sep, 2002 XP - An interview with Kent Beck
- Q What are the issues you see your clients
struggling with? - KB One of the issues is redefining failure or
redefining success. For example, you think that
you have a great idea for a project, and it's
going to take you nine months to really have it
ready for the market. You may discover after
four weeks that you are going one-tenth the speed
that you thought you would, and you cancel the
project. Is that a failure or success? In many
organizations, this is perceived as a failure.
65XP in practice Success and failure
- 3 Sep, 2002 XP An interview with Kent Beck
- KB (cont) In the XP world, providing
information that allows you to constantly make
that decision after four or eight weeks (out of a
nine-month development cycle) is what you're
there for. In the XP world, you call that a
dramatic success. Now you have this cultural
mismatch between how outsiders are going to view
your outcome and how you view it inside the team.
A lot of people clients struggle with that.
They think that canceling a project is a bad
thing, but I think that canceling a project is a
good thing -- as long as you cancel the right one.