Upload
rolf-bradley
View
215
Download
1
Embed Size (px)
Citation preview
1
김 수 동Dept. of Computer Science
Soongsil UniversityTel. 820-0909 Fax. 826-0909
[email protected] www.object.ssu.ac.kr
An Overview ofAn Overview ofeXtreme Programming (XP)eXtreme Programming (XP)
April 4, 2001
eXtreme Programming
©20
01 S
oo D
ong
Kim
2
ContentsContents
Motivation andMotivation andCharacteristics of XPCharacteristics of XP
Motivation andMotivation andCharacteristics of XPCharacteristics of XP
RolesRolesRolesRoles
XP Life-CycleXP Life-CycleXP Life-CycleXP Life-Cycle
eXtreme Programming
©20
01 S
oo D
ong
Kim
3
Motivation andMotivation andCharacteristics of XPCharacteristics of XP
eXtreme Programming
©20
01 S
oo D
ong
Kim
4
MotivationMotivation Software development fails to deliver,
and fails to deliver value. This failure has huge economic and
human impact. Requirement are changed. Issue of Risk Management
eXtreme Programming
©20
01 S
oo D
ong
Kim
5
RisksRisks Schedule slips Project canceled System goes sour Defect rate Business Misunderstood Business changes False Feature Rich Staff turnover
eXtreme Programming
©20
01 S
oo D
ong
Kim
6
XP addresses the risksXP addresses the risks Schedule slips
Short release cycles, a few months at most, so the scope of any slip is limited.
Within a release, XP uses one to four-week iterations
Project Canceled Customer chooses the smallest release
that makes the most business sense. System goes sour
XP creates and maintains a comprehensive suite of tests, which are run and re-run after every change.
eXtreme Programming
©20
01 S
oo D
ong
Kim
7
XP addresses the risksXP addresses the risks Defect Rate
Function-by-function test by Programmers
Feature-by-feature test by Customers Business Misunderstood
Customer to be an integral part of the team
Specification of the project is continuously refined during development, so learning by the customer and the team can be reflected in the software.
eXtreme Programming
©20
01 S
oo D
ong
Kim
8
XP addresses the risksXP addresses the risks Business Changes
XP shortens the release cycle, so there is less change during the development of a single release.
False Feature Rich XP insists that only the highest
priority tasks are addressed. Staff turnover
Programmers estimate. Encourages human contact among
the team.
eXtreme Programming
©20
01 S
oo D
ong
Kim
9
Extreme ProgrammingExtreme Programming Discipline of software development
with values of simplicity, communication, feedback, and courage.
In XP, the emphasis is on programming. Build the system in small releases. Base the program on simple, clear design. Focus on the roles of customer,
manager, programmer and accord key rights and responsibilities to the people in those roles.
eXtreme Programming
©20
01 S
oo D
ong
Kim
10
Four Values of XPFour Values of XP Communication Simplicity Feedback Courage
eXtreme Programming
©20
01 S
oo D
ong
Kim
11
Cost of ChangeCost of Change The cost of changing a program rises
exponentially over time.
RequirementsAnalysisDesign
ImplementationTestingProduction
Cost
of
Ch
an
ge
eXtreme Programming
©20
01 S
oo D
ong
Kim
12
Cost of ChangeCost of Change With a combination of technology and
programming practices, the curve can be quite the opposite.
Time
Cost
of
ch
an
ge
eXtreme Programming
©20
01 S
oo D
ong
Kim
13
Cost of ChangeCost of Change If change is ruinously expensive, … If change stays cheap, the additional
value and reduced risk of early concrete feedback outweighs the additional cost of early change.
In XP, Smaller-sized Stories A simple design Automated tests Lots of practice in modifying the
design
eXtreme Programming
©20
01 S
oo D
ong
Kim
14
RolesRoles
eXtreme Programming
©20
01 S
oo D
ong
Kim
15
Customer RoleCustomer Role Defining business value
Choosing among the stories with great flexibility
Deciding what to do now and what to defer until later
The team predicts how much work can be done in any given time period.
Defining the tests
eXtreme Programming
©20
01 S
oo D
ong
Kim
16
Programmer RoleProgrammer Role Estimate the difficulty of all stories. Analyze, design, test, program, and
integrate the system. Write all production code in pairs. Keep the system integrated at all
times. Track the pace at which they can
deliver stories to the customer. Write all production code in pairs.
eXtreme Programming
©20
01 S
oo D
ong
Kim
17
Manager RoleManager Role Brings the customer and developers
together and helps them meld into a smoothly operating team.
Remove obstacles. Letting the workspace arranged
effectively Cause, coordinate and report
planning, designing, testing, coding, releasing
eXtreme Programming
©20
01 S
oo D
ong
Kim
18
Manager and Customer Manager and Customer RightsRights
Right to an overall plan User Stories, Small Releases
Right to get the most value out of every programming week
Iteration Planning Right to see progress in a running
system Small Releases, Continuous
Integration,Acceptance Tests
eXtreme Programming
©20
01 S
oo D
ong
Kim
19
Manager and Customer Manager and Customer RightsRights
Right to change your mind, to substitute functionality, and to change priorities.
Refactoring Right to be informed of schedule
changes, in time to choose how to reduce scope to restore the original date.
Resource, Scope, Quality, Time
eXtreme Programming
©20
01 S
oo D
ong
Kim
20
Programmer RightsProgrammer Rights Right to know what is needed, with
clear declarations of priority Right to produce quality work at all
times Pair Programming
Right to make and update your own estimates
Right to accept your responsibilities instead of having them assigned to you
eXtreme Programming
©20
01 S
oo D
ong
Kim
21
XP Life-CycleXP Life-Cycle
eXtreme Programming
©20
01 S
oo D
ong
Kim
22
XP Life-CycleXP Life-Cycle Customers define, Programmers
build.CustomerCustomer
ProgrammerProgrammer
Build value
Choose value Estimate cost
Define value
ProgrammerProgrammer
CustomerCustomer
Learn
eXtreme Programming
©20
01 S
oo D
ong
Kim
23
Project FlowProject Flow An XP project begins with
On-site customer Acceptance tests
Focus on small releases, each one defined by customer.
Work in short iterations, again working on the customer’s stories of highest business value.
eXtreme Programming
©20
01 S
oo D
ong
Kim
24
Project FlowProject Flow Programmer follow practices
Simple Design Refactoring Collective Code Ownership Pair Programming Unit Tests
eXtreme Programming
©20
01 S
oo D
ong
Kim
25
PracticesPractices Planning
Quickly determine the scope of the next release.
Small releases Put a simple system into production
quickly. Metaphor
Guide all development with a simple shared story of how the whole system works.
Simple design The system should be designed as simply
as possible at any given moment.
eXtreme Programming
©20
01 S
oo D
ong
Kim
26
PracticesPractices Testing
Programmers continually write unit tests. Customers write tests demonstrating that feat
ures are finished. Refactoring
Programmers restructure the system without changing its behavior to remove duplication, improve communication.
eXtreme Programming
©20
01 S
oo D
ong
Kim
27
User storyUser story A short description of the behavior of
the system from the point of view of the user of the system
User story is the medium of analysis. XP chooses informal analysis.
Write the story on a single card. 4x6 or 5x8 Unlined Cards
Each story is simple enough that programmers can understand it and can see how to implement it in a week or so.
eXtreme Programming
©20
01 S
oo D
ong
Kim
28
User StoryUser Story 1st Component
Writing the story in a couple of sentences and pointing to any supporting documentation
2nd Component A series of conversations that will
take place between the customer and the programmers over the life story
eXtreme Programming
©20
01 S
oo D
ong
Kim
29
How Many Stories ?How Many Stories ? Depends on the complexity of the
system. Rule of Thumb
At least one story / Programmer-Month
Two stories are preferred. For ten people for six months, 60 to
120 stories
For planning purposes, stories should encompass a week or two of programmer time.
eXtreme Programming
©20
01 S
oo D
ong
Kim
30
Pair ProgrammingPair Programming Two programmers are working
together to write the program, side by side.
Driver and Partner Partner is actively engaged and
helping every minute. Two programmers working
together generate more code, and better code, than the same two programmers working separately.
eXtreme Programming
©20
01 S
oo D
ong
Kim
31
Pair ProgrammingPair Programming Partner keeps track of things.
Spots simple errors. Making sure that our strategy is
consistent and reminds driver of the names of them methods and variables we’ve just defined.
Acts as the pair’s conscience, reminding us to keep the code communicative, to keep it formatted to the team’s standards, and to keep it tested.
eXtreme Programming
©20
01 S
oo D
ong
Kim
32
Q & AQ & A