pair programming and extreme programming technology sungkyunkwan university

Post on 05-Jan-2016

22 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Pair Programming and Extreme Programming Technology SungKyunKwan University Software Engineering Laboratory PhD Candidate Jin Hong Kim ziromirado@ece.skku.ac.kr. Index. What is Pair Programming ? What is eXtreme Programming ?. Part I Pair Programming. What is Pair Programming ?. - PowerPoint PPT Presentation

TRANSCRIPT

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

Pair Programming and Extreme Programming

Technology

SungKyunKwan University

Software Engineering Laboratory

PhD Candidate Jin Hong Kimziromirado@ece.skku.ac.kr

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

Index

What is Pair Programming ?

What is eXtreme Programming?

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

Part I

Pair Programming

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

What is Pair Programming ?

Two programmers working

side-by-side,

collaborating on the same design,

algorithm,

code or test.

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

One programmer :: = the driverOne programmer :: = the driver

has control of the keyboard/mouse and actively implements the program.

The other programmer :: = the observer

continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects and also thinks strategically about the direction of the work.

On demand, the two programmers can brainstorm any challenging problem.

Because the two programmers periodically switch roles, they work together as equals to develop software.

What is Pair Programming ?

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

"Pair programming is a simple, straightforward "Pair programming is a simple, straightforward concept.concept.

Two programmers work side-by-side at one computer,Two programmers work side-by-side at one computer,

continuously collaborating on the same continuously collaborating on the same design, design, algorithm,algorithm,

code, and testcode, and test. .

It allows two people to produce a higherIt allows two people to produce a higher

quality of code than that produced by the summation quality of code than that produced by the summation ofof

their solitary efforts."their solitary efforts."

Pair Programming

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

vs.

PP or Not

Pair Programming Not

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

What is Pair Programming ?

Does Pair Programming Really Work?Does Pair Programming Really Work?

Empirical study by Laurie Williams at the university of Empirical study by Laurie Williams at the university of UtahUtah

Practice: Summer 1999Practice: Summer 1999– 20 students (sophomore/junior)20 students (sophomore/junior)

• All worked collaborativelyAll worked collaboratively– Generated more anecdotal/qualitative evidence Generated more anecdotal/qualitative evidence

Solo vs. pair: Fall 1999Solo vs. pair: Fall 1999– 41 students (junior/senior)41 students (junior/senior)

• 28 worked collaboratively28 worked collaboratively• 13 worked individually 13 worked individually

– Software development process was controlledSoftware development process was controlled• The only experimental variable: pair-programmingThe only experimental variable: pair-programming

– Quantitative: time, quality, enjoyment, confidenceQuantitative: time, quality, enjoyment, confidence

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

Post Development Test Cases Passed

0.0%10.0%20.0%30.0%40.0%50.0%60.0%70.0%80.0%90.0%

100.0%

Program 1 Program 2 Program 3 Program 4

Individuals

Collaborators

What is Pair Programming ?

Quality

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

What is Pair Programming ?

Elapsed Time

0.0%

20.0%

40.0%

60.0%

80.0%

100.0%

120.0%

Program 1 Program 2 Program 3

One Individual One Collaborator

Time

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

Enjoy the Work More Because of Pair Programming

0%

20%

40%

60%

80%

100%

PROF SUM1 SUM2 SUM3 FALL1 FALL2 FALL3

Agree Disagree

What is Pair Programming ?

Enjoyment

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

What is Pair Programming ?

More Confident in our Work When Pair-Programming

0%

20%

40%

60%

80%

100%

PROF SUM1 SUM2 SUM3 FALL1 FALL2 FALL3

Agree Disagree

Confidence

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

What is Pair Programming ?

How Does This Work?

Pair-Pressure Keep each other on task and focused Don’t want to let partner down “Embarrassed” to not follow the prescribed process Parkinson’s law “work expands to fill all available time.”

Pair-ThinkDistributed cognition: “searching through larger spaces of alternatives”

Have shared goals and plans Bring different prior experiences to the task Different access to task relevant information Must negotiate a common shared of action

Pair-RelayingEach, in turn, contributes to the best of their knowledge and abilityThen, sit back and think while their partner fights on

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

What is Pair Programming ?

Pair-ReviewsContinuous design and code reviewsUltimate in defect removal efficiencyRemoves programmers distaste for reviews

80% of all (solo) programmers don’t do them regularly or at all

Debug by describingTell it to the Furby

Pair-LearningContinuous reviews learn from partners techniques, knowledge of language, domain, etc.“Between the two of us, we knew it or could figure it out”ApprenticeshipDefect prevention always more efficient than defect removal

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

What is Pair Programming ?

Pair Rotation

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

Expected Benefits of Pair Programming

Higher product quality

Improved cycle time

Enhanced learning

Pair rotation

Ease staff training and transitionKnowledge management/reduced product risk Enhanced team building

Increased programmer satisfaction

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

Part II

eXtreme Programming

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

What is eXtreme Programming ?Key Features from my perspective:

Customer is an integral part of the development team (face-to-face)

Design based on stories developed with the customer

Small releases, many iterations, celebrate releases

Have a good coding standard

Simplicity, always do the simplest thing possible.

Pair Programming

Write tests first, test anything that can fail

Collective ownership of code base

Automate testing

Refactor the code (simplify)

Aggressiveness (Fearlessness)

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

Agile methodology

Working in small development groups

Two roles:

CustomerDeveloper

Everybody participate in design, programming and test

Iterative development

Iterations not more than 2 – 3 weeks

Create executable code every night

What is eXtreme Programming ?

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

Key Process Areas

Communication

Simplicity

Reduce risk

Feedback

Continuous system improvement

Accept Changes

Low threshold to changes

Continuously specify, design, code and test

What is eXtreme Programming ?

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

Testing

Automated testing

Create test before coding - Test Driven Design

The test will document requirements

Daily Build and Test - Unit Test, Integration Test and System Test

What is eXtreme Programming ?

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

eXtreme Programming

Communication Teams

Democratic Teams

Chief Programmer Teams

Modified Chief Programmer Teams

Synchronize and Stabilize Teams

Extreme Programming Teams

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

eXtreme Programming

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

eXtreme Programming

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

eXtreme Programming

Researched by New York Times

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

XP is based upon 4 core values

Communication

Simplicity

Feedback

Courage

eXtreme Programming

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

12 Practices

eXtreme Programming

Planning Game Small Releases Metaphor Simple Design Testing Refactoring Pair Programming Collective Code Ownership Continuous Integration Sustainable Pace Onsite Customer Coding Standards

SungKyunKwan University PhD Candidate JHKimziromirado@ece.skku.ac.kr

Thank You

top related