Download - Pair programming 2 > 1 + 1
![Page 1: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/1.jpg)
Pair Programming:2 > 1 + 1
Neha Batra @nerdneha
![Page 2: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/2.jpg)
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]?)
![Page 3: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/3.jpg)
1. Intro (What/Why)2. Adapting pairing to your work3. The big picture4. Pairing techniques5. Resources on pairing
Pair Programming: 2 > 1 + 1
@nerdneha
![Page 4: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/4.jpg)
Credit: Onsi Fakhouri
![Page 5: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/5.jpg)
Credit: Onsi Fakhouri
![Page 6: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/6.jpg)
Credit: Onsi Fakhouri
![Page 7: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/7.jpg)
Credit: Onsi Fakhouri
![Page 8: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/8.jpg)
Credit: Onsi Fakhouri
![Page 9: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/9.jpg)
Credit: Onsi Fakhouri
![Page 10: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/10.jpg)
Credit: Onsi Fakhouri
![Page 11: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/11.jpg)
Credit: Onsi Fakhouri
![Page 12: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/12.jpg)
Credit: Onsi Fakhouri
![Page 13: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/13.jpg)
Credit: Onsi Fakhouri
![Page 14: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/14.jpg)
Credit: Onsi Fakhouri
![Page 15: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/15.jpg)
Credit: Onsi Fakhouri
![Page 16: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/16.jpg)
Credit: Onsi Fakhouri
![Page 17: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/17.jpg)
Credit: Onsi Fakhouri
![Page 18: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/18.jpg)
Credit: Onsi Fakhouri
![Page 19: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/19.jpg)
Credit: Onsi Fakhouri
![Page 20: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/20.jpg)
Credit: Onsi Fakhouri
![Page 21: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/21.jpg)
Credit: Onsi Fakhouri
![Page 22: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/22.jpg)
Credit: Onsi Fakhouri
![Page 23: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/23.jpg)
Credit: Onsi Fakhouri
![Page 24: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/24.jpg)
Credit: Onsi Fakhouri
![Page 25: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/25.jpg)
Credit: Onsi Fakhouri
![Page 26: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/26.jpg)
Credit: Onsi Fakhouri
![Page 27: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/27.jpg)
Credit: Onsi Fakhouri
![Page 28: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/28.jpg)
Credit: Onsi Fakhouri
![Page 29: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/29.jpg)
What does good Pairing look like?
➔ Distraction-free➔ Collaboration➔ Sustainability (“bus factor”)➔ Fewer rabbit holes➔ Constant communication➔ Teaching/Learning symbiosis
@nerdneha
![Page 30: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/30.jpg)
The Benefits of Pairing
➔ Productivity➔ Code Quality➔ Project Success
@nerdneha
![Page 31: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/31.jpg)
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
![Page 32: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/32.jpg)
My world of Pair Programming
@nerdneha
![Page 33: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/33.jpg)
1. Intro2. Adapting pairing to your work (When)3. The big picture4. Pairing techniques5. Resources on pairing
Pair Programming: 2 > 1 + 1
@nerdneha
![Page 34: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/34.jpg)
Best pairing conditions?
➔ Isolated team➔ Few interruptions/meetings➔ Buy-in to execute on priorities➔ PM/Design resources available
@nerdneha
![Page 35: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/35.jpg)
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
![Page 36: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/36.jpg)
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
![Page 37: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/37.jpg)
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
![Page 38: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/38.jpg)
1. Intro2. Adapting pairing to your work3. The big picture (Where)4. Pairing techniques5. Resources on pairing
Pair Programming: 2 > 1 + 1
@nerdneha
![Page 39: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/39.jpg)
![Page 40: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/40.jpg)
![Page 41: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/41.jpg)
The big picture at Pivotal Labs
@nerdneha
Client Pivotal
![Page 42: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/42.jpg)
The big picture at Pivotal Labs
@nerdneha
Team
![Page 43: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/43.jpg)
The big picture at Pivotal
@nerdneha
Test Driven Development
Pairadise
![Page 44: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/44.jpg)
The big picture at Pivotal
@nerdneha
Test Driven Development
Set Schedule (9am-6pm)Pairadise
![Page 45: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/45.jpg)
The big picture at Pivotal
@nerdneha
Test Driven Development
Set Schedule (9am-6pm)
Retros & Feedback
Pairadise
![Page 46: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/46.jpg)
RETROS BE LIKE
![Page 47: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/47.jpg)
The big picture at Pivotal
@nerdneha
Test Driven Development
Set Schedule (9am-6pm)
Retros & Feedback
Concise, independent, prioritized stories
Pairadise
![Page 48: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/48.jpg)
The big picture at Pivotal
@nerdneha
Test Driven Development
Set Schedule (9am-6pm)
Retros & Feedback
Few Meetings
Concise, independent, prioritized stories
Pairadise
![Page 49: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/49.jpg)
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
![Page 50: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/50.jpg)
![Page 51: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/51.jpg)
![Page 52: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/52.jpg)
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
![Page 53: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/53.jpg)
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
![Page 54: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/54.jpg)
1. Intro2. Adapting pairing to your work3. The big picture4. Pairing techniques (How)5. Resources on pairing
Pair Programming: 2 > 1 + 1
@nerdneha
![Page 55: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/55.jpg)
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
![Page 56: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/56.jpg)
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
![Page 57: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/57.jpg)
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
![Page 58: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/58.jpg)
![Page 59: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/59.jpg)
1. Intro2. Adapting pairing to your work3. The big picture4. Pairing techniques5. Resources on pairing (Says who?)
Pair Programming: 2 > 1 + 1
@nerdneha
![Page 60: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/60.jpg)
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
![Page 61: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/61.jpg)
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]?)
![Page 62: Pair programming 2 > 1 + 1](https://reader033.vdocuments.net/reader033/viewer/2022042906/58a9ac0a1a28ab9c758b5911/html5/thumbnails/62.jpg)
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