Pair programming 2 > 1 + 1
-
Upload
neha-batra -
Category
Software
-
view
621 -
download
0
Transcript of Pair programming 2 > 1 + 1
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