Pair Programming: Good, Bad and Ugly

57
Pair Programming Ken Fassone @nexusventuri Pat Kua @patkua The Good , the Bad and the Ugly

description

Presentation accompanying workshop for OOP Conference 2012

Transcript of Pair Programming: Good, Bad and Ugly

Page 1: Pair Programming: Good, Bad and Ugly

Pair Programming

Ken Fassone @nexusventuri

Pat Kua@patkua

The Good, the Bad and the Ugly

Page 2: Pair Programming: Good, Bad and Ugly

Tageskarte

Introduction to pair programming

Demonstration

Roles we identified

Pairing Workshop

Q&A

Page 3: Pair Programming: Good, Bad and Ugly

Introduction

Page 4: Pair Programming: Good, Bad and Ugly

Roles

Introduction

Roles

Page 5: Pair Programming: Good, Bad and Ugly

BenefitsBenefits

Roles

Introduction

Page 6: Pair Programming: Good, Bad and Ugly

PatternsPatternsBenefits

Roles

Introduction

Page 7: Pair Programming: Good, Bad and Ugly

What is pair programming?

Page 8: Pair Programming: Good, Bad and Ugly
Page 9: Pair Programming: Good, Bad and Ugly

Driver

Page 10: Pair Programming: Good, Bad and Ugly

Driver Navigator

Page 11: Pair Programming: Good, Bad and Ugly

Benefits

Page 12: Pair Programming: Good, Bad and Ugly

Benefits

Continuous feedback

Page 13: Pair Programming: Good, Bad and Ugly

Benefits

Continuous feedback

Merged ideas

Page 14: Pair Programming: Good, Bad and Ugly

Benefits

Continuous feedback

Merged ideas

Knowledge spreading

Page 15: Pair Programming: Good, Bad and Ugly

Benefits

Continuous feedback

Merged ideas

Knowledge spreading

More Focus

Page 16: Pair Programming: Good, Bad and Ugly

Benefits

Continuous feedback

Merged ideas

Knowledge spreading

More Focus

Better code

Page 17: Pair Programming: Good, Bad and Ugly

Benefits

Continuous feedback

Merged ideas

Knowledge spreading

More Focus

Better code

More consistency

Page 18: Pair Programming: Good, Bad and Ugly

Demonstration

Page 19: Pair Programming: Good, Bad and Ugly

Roman numbers kata

Demonstration

Roman numbers kata

Page 20: Pair Programming: Good, Bad and Ugly

Behaviour demonstration

Demonstration

Roman numbers kataBehaviour demonstration

Page 21: Pair Programming: Good, Bad and Ugly

Demonstration

Roman numbers kataBehaviour demonstration(good, bad and ugly...)

Page 22: Pair Programming: Good, Bad and Ugly

Demonstration

Page 23: Pair Programming: Good, Bad and Ugly

Roles

Good

Bad

Ugly

Page 24: Pair Programming: Good, Bad and Ugly

RolesBad

“Characteristics people should do less of (but aren’t so much of a problem)...”

Page 25: Pair Programming: Good, Bad and Ugly

Alpha male

Page 26: Pair Programming: Good, Bad and Ugly

Bunny

Page 27: Pair Programming: Good, Bad and Ugly

Rodolfo Valentino

Page 28: Pair Programming: Good, Bad and Ugly

RolesUgly

“Characteristics people should stop immediately”

Page 29: Pair Programming: Good, Bad and Ugly

Monk

Page 30: Pair Programming: Good, Bad and Ugly

Puppet master

Page 31: Pair Programming: Good, Bad and Ugly

Auditor

Page 32: Pair Programming: Good, Bad and Ugly

RolesGood

“Characteristics people should continue/do more of...”

Page 33: Pair Programming: Good, Bad and Ugly

Mentor

Page 34: Pair Programming: Good, Bad and Ugly

Moleskine

Page 35: Pair Programming: Good, Bad and Ugly

Captain

Page 36: Pair Programming: Good, Bad and Ugly

Pairing Workshop

Page 37: Pair Programming: Good, Bad and Ugly

Pairing Workshop

1. Form groups of 3 (navigator, driver + observer)

Page 38: Pair Programming: Good, Bad and Ugly

Pairing Workshop

1. Form groups of 3 (navigator, driver + observer)2. Navigator and driver (secretly) choose a role

Page 39: Pair Programming: Good, Bad and Ugly

Pairing Workshop

1. Form groups of 3 (navigator, driver + observer)2. Navigator and driver (secretly) choose a role3. Navigator and driver make a story using all the words

Page 40: Pair Programming: Good, Bad and Ugly

Pairing Workshop

1. Form groups of 3 (navigator, driver + observer)2. Navigator and driver (secretly) choose a role3. Navigator and driver make a story using all the words 4. Observer observes (5 minutes) and suggests improvements

Page 41: Pair Programming: Good, Bad and Ugly

Pairing Workshop

1. Form groups of 3 (navigator, driver + observer)2. Navigator and driver (secretly) choose a role3. Navigator and driver make a story using all the words 4. Observer observes (5 minutes) and suggests improvements5. After 10 minutes you switch roles

Page 42: Pair Programming: Good, Bad and Ugly

Write a story that includes these words... Round 1

Page 43: Pair Programming: Good, Bad and Ugly

Write a story that includes these words... Round 1

Airplane

ChemicalMinute

Delay

Protect

Cracker

TeachParrot

Page 44: Pair Programming: Good, Bad and Ugly

Round 2Write a story that includes these words...

Page 45: Pair Programming: Good, Bad and Ugly

Round 2

Pink

RuleWar

Tea

Food

Sea

RunningWolf

Write a story that includes these words...

Page 46: Pair Programming: Good, Bad and Ugly

Round 3Write a story that includes these words...

Page 47: Pair Programming: Good, Bad and Ugly

Round 3

Off

RubbishDesert

Visit

Cousin ChristmasKaraoke Morning

Write a story that includes these words...

Page 48: Pair Programming: Good, Bad and Ugly

How to improve

Page 49: Pair Programming: Good, Bad and Ugly

How to improve

Encourage conversation

Page 50: Pair Programming: Good, Bad and Ugly

How to improve

Encourage conversation

Double everything

Page 51: Pair Programming: Good, Bad and Ugly

How to improve

Encourage conversation

Double everything

Introduce post-its

Page 52: Pair Programming: Good, Bad and Ugly

How to improve

Encourage conversation

Double everything

Introduce post-its

Ping-pong or pomodoro

Page 53: Pair Programming: Good, Bad and Ugly

How to improve

Encourage conversation

Double everything

Introduce post-its

Ping-pong or pomodoro

Standard environment

Page 54: Pair Programming: Good, Bad and Ugly

Pairing (well) is a skillPairing (well) is a skill

Why it matters

Page 55: Pair Programming: Good, Bad and Ugly

Skills take time to developSkills take time to develop

Pairing (well) is a skill

Why it matters

Skills take time to develop

Page 56: Pair Programming: Good, Bad and Ugly

Conscious awareness is the first step to being betterSkills take time to develop

Pairing (well) is a skill

Why it matters

Page 57: Pair Programming: Good, Bad and Ugly

Q&A

http://www.thoughtworks.com/current-opportunities We’re hiring!

Ken Fassone @nexusventuri

Pat Kua@patkua