pair programming 2 > 1 + 1

Post on 19-Feb-2017

622 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Pair Programming:2 > 1 + 1

Neha Batra @nerdneha

1. Intro2. Adapting pairing to your work3. The big picture4. Pairing techniques5. Resources on pairing

Pair Programming: 2 > 1 + 1

@nerdneha

(What/Why)(When)(Where)(How)(Says who [else]?)

1. Intro (What/Why)2. Adapting pairing to your work3. The big picture4. Pairing techniques5. Resources on pairing

Pair Programming: 2 > 1 + 1

@nerdneha

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

Credit: Onsi Fakhouri

What does good Pairing look like?

➔ Distraction-free➔ Collaboration➔ Sustainability (“bus factor”)➔ Fewer rabbit holes➔ Constant communication➔ Teaching/Learning symbiosis

@nerdneha

The Benefits of Pairing

➔ Productivity➔ Code Quality➔ Project Success

@nerdneha

The Benefits of Pairing

➔ Productivity➔ Code Quality➔ Project Success

◆ Easy temperature on team◆ Easy to help/understand what’s going on

➔ Happiness➔ Skill growth/sharing➔ Career Success

@nerdneha

My world of Pair Programming

@nerdneha

1. Intro2. Adapting pairing to your work (When)3. The big picture4. Pairing techniques5. Resources on pairing

Pair Programming: 2 > 1 + 1

@nerdneha

Best pairing conditions?

➔ Isolated team➔ Few interruptions/meetings➔ Buy-in to execute on priorities➔ PM/Design resources available

@nerdneha

Tips and Tricks to get bu -in

➔ Select team with “all hands on deck” feature➔ Introduce concept as an experiment➔ Loop in product owner frequently➔ Release early, often, and iterate

@nerdneha

Prepair: Know the opposition

“I’m exhausted, talking so much is tiring”“Won’t the team move half as fast?”“I don’t get much value out of it”“[X activity] isn’t pair worthy”“I don’t like the inflexible schedule”“I’m always being watched”“Hard to work with someone when you disagree”“It’s the blind leading the blind”

@nerdneha

Imposter Syndrome, defined

When it comes to your work life, it’s not a sprint, it’s a marathon. Pair to groom, grow, and share the knowledge in your team.

@nerdneha

1. Intro2. Adapting pairing to your work3. The big picture (Where)4. Pairing techniques5. Resources on pairing

Pair Programming: 2 > 1 + 1

@nerdneha

The big picture at Pivotal Labs

@nerdneha

Client Pivotal

The big picture at Pivotal Labs

@nerdneha

Team

The big picture at Pivotal

@nerdneha

Test Driven Development

Pairadise

The big picture at Pivotal

@nerdneha

Test Driven Development

Set Schedule (9am-6pm)Pairadise

The big picture at Pivotal

@nerdneha

Test Driven Development

Set Schedule (9am-6pm)

Retros & Feedback

Pairadise

RETROS BE LIKE

The big picture at Pivotal

@nerdneha

Test Driven Development

Set Schedule (9am-6pm)

Retros & Feedback

Concise, independent, prioritized stories

Pairadise

The big picture at Pivotal

@nerdneha

Test Driven Development

Set Schedule (9am-6pm)

Retros & Feedback

Few Meetings

Concise, independent, prioritized stories

Pairadise

The big picture at Pivotal

@nerdneha

Test Driven Development

Set Schedule (9am-6pm)

Retros & Feedback

Few Meetings

Concise, independent, prioritized stories

CI & CD

Hiring for good pairs

Pairadise

Reflections from a pairing noob

Feelings● Uncertainty● Worried about being a waste of time● Felt dumb● Relief that I wasn’t making decisions that are harshly

evaluated on “judgement day” (aka code review)● Felt smarter!

@nerdneha

Reflections from a pairing noob

What Helped● Structured predictable breaks ● Feedback at EOD● Positive specific feedback on how I was helpful● Talking about what we’re doing first explicitly (ex: via

TextMate)

@nerdneha

1. Intro2. Adapting pairing to your work3. The big picture4. Pairing techniques (How)5. Resources on pairing

Pair Programming: 2 > 1 + 1

@nerdneha

Pairing setup: hardware/software

➔ 1 computer, 2 monitors, 2 mice, 2 keyboards➔ Mirror screens➔ Increase your font➔ Git duet-commit➔ Good IDE➔ Keycastr to see shortcut keystrokes

@nerdneha

Pairing setup: the intangibles

➔ Take turns - try ping-pong pairing or Timeout ➔ Take breaks -

◆ Bonding: ping pong, cards (set)◆ Time apart: catch up on emails/personal life

➔ Expairiment - mobbing➔ Keep an open mind

@nerdneha

Imposter Syndrome, defined

Pairing is like making a new friend: it isn’t always easy

but with patience and an open mind, it can be worthwhile.

@nerdneha

1. Intro2. Adapting pairing to your work3. The big picture4. Pairing techniques5. Resources on pairing (Says who?)

Pair Programming: 2 > 1 + 1

@nerdneha

Extreme Programming Explained: http://www.amazon.com/exec/obidos/ASIN/0321278658/extremeprogrammi

Pairing is more productive than soloing: http://collaboration.csc.ncsu.edu/laurie/Papers/ieeeSoftware.PDF

Stanford Study on pairing, when and why it works: http://hci.stanford.edu/publications/2005/pairs/PairProgramming-WhenWhy.pdf

Remote Pairing: Collaborative Tools for Distributed Development is a book by Joe Kutnerhttps://pragprog.com/book/jkrp/remote-pairing

Pair programming productivity: Novice–novice vs. expert–experthttp://www.cs.utexas.edu/users/mckinley/305j/pair-hcs-2006.pdf

The effectiveness of pair programming: A meta-analysishttp://www.sciencedirect.com/science/article/pii/S0950584909000123

Evaluating Pair Programming with Respect to System Complexity and Programmer Expertisehttp://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=4052584

Resources on Pairing (on my blog, too!)

@nerdneha

1. Intro2. Adapting pairing to your work3. The big picture4. Pairing techniques5. Resources on pairing

Pair Programming: 2 > 1 + 1

@nerdneha

(What/Why)(When)(Where)(How)(Says who [else]?)

Prepair: Know the opposition

“I’m exhausted, talking so much is tiring”“Won’t the team move half as fast?”“I don’t get much value out of it”“[X activity] isn’t pair worthy”“I don’t like the inflexible schedule”“I’m always being watched”“Hard to work with someone when you disagree”“It’s the blind leading the blind”

@nerdneha

top related