1 김 수 동 dept. of computer science soongsil university tel. 820-0909 fax. 826-0909...

Post on 03-Jan-2016

215 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

김 수 동Dept. of Computer Science

Soongsil UniversityTel. 820-0909 Fax. 826-0909

sdkim@comp.ssu.ac.kr 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

top related