distributed pair programming

8
Copyright © 2012 Agile Dimensions LLC Distributed Pairing Coaching distributed teams since 2009 he Distributed Agile Series UNM, UWA IBM, ASPE Allscripts Dev 82 Agile 01 CSM, CSP MBTI, CVW IGTF, IGQI AgileBill Krebs

Upload: agile-dimensions-llc

Post on 24-Apr-2015

703 views

Category:

Devices & Hardware


4 download

DESCRIPTION

Are two heads better than one? Isn't that twice as expensive? No, pairing goes almost twice as fast, but saves costly errors later. I can be done face to face or remote, and works for non software projects as well.

TRANSCRIPT

Page 1: Distributed Pair Programming

Copyright © 2012 Agile Dimensions LLC

Distributed

Pairing

Coaching distributed teams since 2009

The Distributed Agile Series

UNM, UWAIBM, ASPEAllscripts

Dev 82Agile 01

CSM, CSPMBTI, CVWIGTF, IGQI

AgileBill Krebs

Page 2: Distributed Pair Programming

Is this your team?

Test Dev PM BA

Allscripts Agile Academy

Page 3: Distributed Pair Programming

Do

Allscripts Agile Academy

( Refine )

Test

Dev[ Pair, UT, Refactor ]

CI-Build

Meet

Daily

Page 4: Distributed Pair Programming

Pairing

• Two people, one computer. Switch• Save ½ the bugs for +15% labor• Best benefits are intangible

Allscripts Agile Academy

Page 5: Distributed Pair Programming

Microsoft Research• “Pair Programming – What’s in it for me”

Andrew Begel, Nachiappan Nagappan , Microsoft Researchhttp://research.microsoft.com/pubs/75108/esem-begel-2008.pdf

Pair programming is a practice in which two programmers work collaboratively at one computer on the same design, algorithm, or code. Prior research on pair programming has primarily focused on its evaluation in academic settings. There has been limited evidence on the use, problems and benefits, partner selection, and the general perceptions towards pair programming in industrial settings. In this paper we report on a longitudinal evaluation of pair programming at Microsoft Corporation. We find from the results of a survey sent to a randomly selected 10% of engineers at Microsoft that 22% pair program or have pair programmed in the past. Using qualitative analysis, we performed a large-scale card sort to group the various benefits and problems of pair programming. The biggest perceived benefits of pair programming were the introduction of fewer bugs, spreading code understanding, and producing overall higher quality code. The top problems were cost-efficiency, (work time) scheduling problems, and personality conflicts. Most engineers preferred a partner who had complementary skills to their own, who was flexible and had good communication skills.

Allscripts Agile Academy

Page 6: Distributed Pair Programming

Top 10 Benefits (%)

66 Fewer Bugs 42 Spreads Code Understanding 48 Higher Quality Code 42 Can Learn from Partner 30 Better Design 22 Constant Code Reviews22 Two Heads are Better than One 17 Creativity and Brainstorming 14 Better Testing and Debugging 13 Improved Morale

Allscripts Agile Academy

Page 7: Distributed Pair Programming

Formal Inspection

• Different styles• Save ½ the bugs for +15% labor• Does it fit in a 3 day story?

Allscripts Agile Academy

Page 8: Distributed Pair Programming

Cost of change

a b c d e f g h i j0

10

20

30

40

50

60

70

80

90

100 Series 1

Place these:

Allscripts Agile Academy

Customer bug

Inspection

Build

QA bug

Pairing

Unit Test

$$

Time ->