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

32
1 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 [email protected] www.object.ssu.ac.kr An Overview of An Overview of eXtreme Programming (X eXtreme Programming (X P) P) April 4, 2001

Upload: rolf-bradley

Post on 03-Jan-2016

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 2: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 3: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

eXtreme Programming

©20

01 S

oo D

ong

Kim

3

Motivation andMotivation andCharacteristics of XPCharacteristics of XP

Page 4: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 5: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 6: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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.

Page 7: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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.

Page 8: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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.

Page 9: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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.

Page 10: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

eXtreme Programming

©20

01 S

oo D

ong

Kim

10

Four Values of XPFour Values of XP Communication Simplicity Feedback Courage

Page 11: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 12: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 13: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 14: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

eXtreme Programming

©20

01 S

oo D

ong

Kim

14

RolesRoles

Page 15: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 16: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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.

Page 17: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 18: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 19: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 20: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 21: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

eXtreme Programming

©20

01 S

oo D

ong

Kim

21

XP Life-CycleXP Life-Cycle

Page 22: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 23: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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.

Page 24: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 25: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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.

Page 26: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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.

Page 27: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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.

Page 28: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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

Page 29: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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.

Page 30: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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.

Page 31: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

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.

Page 32: 1 김 수 동 Dept. of Computer Science Soongsil University Tel. 820-0909 Fax. 826-0909 sdkim@comp.ssu.ac.kr  sdkim@comp.ssu.ac.kr

eXtreme Programming

©20

01 S

oo D

ong

Kim

32

Q & AQ & A