eXtreme Programming ?????????? ?????? ??????? ????? - PowerPoint PPT Presentation

About This Presentation
Title:

eXtreme Programming ?????????? ?????? ??????? ?????

Description:

1. eXtreme Programming. ?????????? ... The National Institute of Standards and Technology (NIST), New Release of June 28, 2002. ... less bugs: unit tests ... – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 66
Provided by: csta3
Category:

less

Transcript and Presenter's Notes

Title: eXtreme Programming ?????????? ?????? ??????? ?????


1
eXtreme Programming?????????? ?????? ???????
?????
  • ?"? ????? ???
  • ?????? ?????? ?????????? ???????, ???????
  • oritha_at_techunix.technion.ac.il

2
eXtreme Programming ?????????? ?????? ????????
?????
  • What is eXtreme Programming
  • Why eXtreme Programming?
  • Social analysis
  • Cognitive analysis

3
eXtreme Programming ?????????? ?????? ????????
?????
  • ??-??? ???????? ?? ???? ?????? ?????
  • ??? ?????? ???????? ????????? ??????? ??????

4
Problems 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 ??????

7
What is eXtreme Programming
  • ?? ??? ?????? ?? XP?
  • (?? Windows XP)

8
What 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.

9
Why 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

10
Why 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

11
Project 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
12
How eXtreme Programming?
  • Two days in
  • eXtreme Programming Development Environment

13
Business Day
  • On-site customer
  • Planning game
  • Small releases
  • Simple design
  • Metaphor

Source http//www.rolemodelsoftware.com/
14
Business 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

15
Business 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

16
Business 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

17
Development 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)

18
Development 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

19
Development 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

20
Development 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
21
The 12 XP practices
Note nothing is new gathering the practices
together is XP uniqueness
Source Beck, K. (2000). eXtreme Programming
explained, Addison Wesley.
22
What 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

23
What 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

24
Why XP?
  • You do not do XP to save money However, XP
    shortens time to market
  • XP is a mature software development method

25
Why 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

26
Why 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

27
Why 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)

28
Why 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

29
Why 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.

30
Why 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)

31
XP in Practice Conceptual Changes
  • XP encourages
  • Cooperation (vs. knowledge-is-power)
  • Simplicity (vs. habit-of-high-complexity)
  • Change in work habits

32
Why XP? Cognitive and Social Analysis
  • ????? XP ?????? ??? ?????????? ???????.
  • Game Theory Prisoners Dilemma
  • Learning Theory Constructivism

33
Social analysis
34
Game Theory
  • ????? ??????? ????? ?????? ???? ?????? ???????
    ??????? ?? ?? ??? ????????? ?"????" ??????
    ??????? ?? ???????? ??????.

35
The Prisoners Dilemma As perspective
B competes ????? B cooperates ?? ?????
-10 ?? ???? ?????? ?? ???? ?- A, B ?????? 5 ??? ???? ?????? A cooperates ?? ?????
0 ?? ???? ??????, ????? ????? ???? ?????? 10 ?? ???? ?????? ?? ???? ?- B, A ?????? A competes ?????
36
The Prisoners Dilemma The case of software
engineering As perspective, Bonus
B competes B cooperates
20 50 A cooperates
0 80 A competes
37
The Prisoners Dilemma The case of software
engineering As perspective
B competes B cooperates
-10 5 A cooperates
-20 10 A competes
38
The Prisoners Dilemma The case of software
engineering
  • ??"? ????? ????? ??????? ???? ????? ?? ???????.
  • ?????? ?????? ??? ?????? ????? ?????? ?????? ????
    ???? ????.
  • ??? ????? ????? ?? ???? ????? ?????? ????? (??
    ???? ?????).
  • ??????? ??? ?????? ????? ????? ??????? ???????
    ????? ??? ???? ?????.

39
The Prisoners Dilemma The case of eXtreme
Programming
  • ???????? ???? ????? ????? ??-?? XP ?????? ???
    ???? ????? ????? ??-?? ?????????? ?? XP.
  • ?? ???(?) ???? ????(?) ??? ??? ???? ????? ???????
    ????? ??? ???? ?????????.
  • ???? ???-?????? (?????? ?? ????? ?????? ?????) ??
    ????.
  • ???? ????? ????? ?????? ?? ??????? ???.

40
The Prisoners Dilemma The case of Extreme
Programming As perspective
B cooperates
5 A cooperates
41
In what follows
  • ???? ?-2 ????? ?- 4 ????????? ?? XP
  • ??? ??????? ?? ????? ????? ?????? ???.
  • ??????? ??? ????? ????? ????? ??-?? XP ???? ???
    ??? ???? ????? ????? ???? ?????? ???? ?????? ???
    ???? ????? (????? ???? ????? ????? ?? ????????).
  • ?? ???? ????? ?????? ????? ????????? ???????
    ????? ????? ??? ?? ???????.
  • ?? ?????? ?????? ???? ?????? ????? ??.

42
The Prisoners Dilemma The value of courage
  • ????? ?????
  • ?? ???? ????? ??????? ???? ?? ????.
  • ?? ???? ????? ???? ???????? ?????? ???? ??? ???
    ???.
  • ?? ???? ????? ???? ?????? ????? ??? ?? ???????.
  • ?????? ?????? ?????? ??? XP, ?? ???(?) ????(?)
    ??? ?? ??????? ??????? courage ???? ?? ?? ??????
    ???? ?????? ??? ???? ?????.
  • ??????? ????? ????? ???????? ???? ??.

43
Kent 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/

44
The Prisoners Dilemma The value of simplicity
  • ????? ?????
  • ????? ?? ??????? ??????? ?????? ?????? ?????
    ?????? ?????.
  • ????, ?? ?????? ???.
  • ???? ??????? ????? ??-??XP ???? ??????? ?? ????
    ???.
  • ?? ?????? ???? ?????? ??? ???? ?????.
  • ???? ?????? ????? ????? ????????.

45
The Prisoners Dilemma Collective Ownership
  • In practice anyone can change any code
    anywhere in the system at any time. (Beck,
    2000).
  • ????? ????? ????? ????. ????? ????? ???.
  • ???? ?????? ??-?? XP ???? ?? ??-?? ??????? ??.
  • ?? ?????? ???? ?????? ??? ???? ?????.
  • ???? ?????? ?????, ???? ???? ??????? ?????
    ?????? ????? ?????? ??????.

46
The Prisoners Dilemma Coding Standards
  • ????? ????? ????? ??? ????????? ??????.
  • ????? ????? ?? ??-?? ????????? ??????.
  • ?? ???? ????? ??????? ????? ??-?? XP ???? ???-??
    ??????? ?? ????.
  • ???? ????? ???? ??????? ??? ???? ?????.
  • ?? ???? ????? ?????? ????? ????????? ?????????
    ??????? ??? ?? ?? ????????.

47
The Prisoners Dilemma Simple Design
  • ???? ????? Simplicity
  • ????? ????? ????? ???? ??? ????? ????? ?????
    ????? ????? ?????? ?? ????.
  • ???? ??????? ????? ??-?? XP ???? ?? ??-?? ???????
    ??.
  • ???? ????? ???? ??????? ??? ???? ?????.
  • ???? ?????? ????? ????????? ????????? ??????? ???
    ???? ??? ?????.

48
The Prisoners Dilemma Sustainable Pace
  • ???? ???? ?? 40 ????, ???? ????? ??????.
  • ??????? ?????? ?????? ???? ??????? ??? ??????.
  • ????????? ????? (e.g., Pair Programming) ???????
    ????? ???? ?? ??? ??.
  • ????? ????? ?????? 8-9 ???? ????? ????? ????
    ???? ???? ???? (????, ?? ??? ??????).
  • ?? ???? ????? ??????? ????? ??? XP ???? ?? ???
    ??????? ??.
  • ???? ????? ???? ??????? ??? ???? ?????.
  • ???? ?????? ????? ????????? ????????? ??????? ???
    ???? ????? ????? ??.

49
Cognitive analysis
50
Why XP?
  • ???? ???? ????? ????? ????? ??? ????? ????? XP
    ????? ?????? ???? ??.
  • ?????????????
  • ??????? ??????? ?????? ?????.
  • ??? ??? ???? ?????? ?? ???? ?????? ??????, ?"?
    ????? ?????? ????? ???????? ??????.
  • ????? ?????? ?????? ?????? ????? ???? ??????
    ??????.

51
????? ????????? ?? XP
  • ????? 4 ???? 12 ?????????? ?? XP ??? ???????
    ?????????????????.
  • ????????? ??? ?????? ????? ??????? ?? ?????
    ??????.
  • ?????? Communication ?- Feedback ?? ?? ??????.

52
XP 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

53
Cognitive and Social Analysis of XP practices
Social analysis Cognitive analysis
Collective ownership Sustainable pace Simple design Coding standards Refactoring Metaphor Test-first Small releases
54
Summary
  • eXtreme programming
  • What?
  • Why? Cognitive and Social analysis
  • How?

55
References
  • 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
  • Questions

57
Appendices
  • XP and the CMM
  • XP conception of failure and success

58
Why 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.

59
Why 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. 

60
Why 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.

61
Why 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.

62
Why 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.

63
Why 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.

64
XP 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.

65
XP 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.
Write a Comment
User Comments (0)
About PowerShow.com