際際滷

際際滷Share a Scribd company logo
Further Together:
Curated Pairing Culture
@Pivotal
Neha Batra
@nerdneha
#furtherpairingtogether #qconsf
@nerdneha
#furtherpairingtogether
#qconsf
Goals
1. Failed Attempts
2. Pairing @ Pivotal Labs
3. Pair Programming & You
4. Good times
5. War Stories
6. Lessons Learned
@nerdneha
#furtherpairingtogether
#qconsf
Why do I care about pairing & culture?
@nerdneha
#furtherpairingtogether
#qconsf
Why do I care about pairing & culture?
 Inclusion
 Teamwork
 Learning
 Challenging ourselves
Further together: Curated Pairing Culture @Pivotal
Further together: Curated Pairing Culture @Pivotal
Further together: Curated Pairing Culture @Pivotal
@nerdneha
#furtherpairingtogether
#qconsf
Goals
1. Failed Attempts
2. Pairing @ Pivotal Labs
3. Pair Programming & You
4. Good times
5. War Stories
6. Lessons Learned
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
@nerdneha
#furtherpairingtogether
#qconsf
Failed Attempts
 Pairing 1 hr per week, 遜 day per week
 Still have your own work to get done
 No way to capture contributions or credit the pair
 Pair didnt want to pair with you
 Its faster by yourself
 Silent treatment
@nerdneha
#furtherpairingtogether
#qconsf
Pair Programming is
hard
@nerdneha
#furtherpairingtogether
#qconsf
Goals
1. Failed Attempts
2. Pairing @ Pivotal Labs
3. Pair Programming & You
4. Good times
5. War Stories
6. Lessons Learned
@nerdneha
#furtherpairingtogether
#qconsf
Cultural Tenets at Pivotal
Do what works
Do the right thing
Be kind
@nerdneha
#furtherpairingtogether
#qconsf
Pivotal Labs: Setup
Client Pivotal
@nerdneha
#furtherpairingtogether
#qconsf
Pivotal Labs: Setup
Team
Credit: Onsi Fakhouri
Credit: Onsi Fakhouri
@nerdneha
#furtherpairingtogether
#qconsf
Whats particularly unique about our culture
Pivots are well-equipped and willing to:
 Be vulnerable
 Be fearless
 Go slower in the short term for long term gain
 Trust that others will do the right thing
 Eliminate code and emotional silos
 Do the right thing for the team
@nerdneha
#furtherpairingtogether
#qconsf
How did we build this culture?
 TDD
 Set Schedule
 Retros & Feedback loops
 Well-written stories
 Fewer meetings
 Hiring for good pairs
 CI & CD
 Taking our Mission seriously
@nerdneha
#furtherpairingtogether
#qconsf
The big picture at Pivotal Labs
Pairadise
Test Driven Development
Pairadise
@nerdneha
#furtherpairingtogether
#qconsf
TDD & Pairing
Its easier to agree on a
test than it is to agree
on an implementation
@nerdneha
#furtherpairingtogether
#qconsf
TDD + Pairing allows for balance and avoids fights
Easier to agree on a test
Go with the simplest implementation
Red, Green, Refactor
No pull requests/judgement day!
@nerdneha
#furtherpairingtogether
#qconsf
The big picture at Pivotal Labs
Pairadise
Test Driven Development
Set Schedule
Pairadise
@nerdneha
#furtherpairingtogether
#qconsf
Weekly schedule = Weekly iterations & feedback
Alignment
Planning
Execution
Feedback
Standups
Pre-IPM
IPM
(WORK)
Pre-CL
CL
Retros
@nerdneha
#furtherpairingtogether
#qconsf
The big picture at Pivotal Labs
Pairadise
Test Driven Development
Set Schedule
Retros &
Feedback
Pairadise
@nerdneha
#furtherpairingtogether
#qconsf
All life is an
experiment.
The more experiments
you make the better
- Ralph Waldo Emerson
@nerdneha
#furtherpairingtogether
#qconsf
Retrospectives -- circulates feedback
Action Items
@nerdneha
#furtherpairingtogether
#qconsf
Retrospectives -- circulates feedback
Action Items
Tech Retros
Parking Lot
@nerdneha
#furtherpairingtogether
#qconsf
Daily Retros circulate feedback faster
How do you think it went?
I was concerned about ______, did you feel that way?
Should we try something new next time?
@nerdneha
#furtherpairingtogether
#qconsf
The big picture at Pivotal Labs
Pairadise
Test Driven Development
Set Schedule
(9am-6pm)
Retros &
Feedback
Concise,
independent,
prioritized stories
Pairadise
@nerdneha
#furtherpairingtogether
#qconsf
The big picture at Pivotal Labs
Pairadise
Test Driven Development
Set Schedule
(9am-6pm)
Retros &
Feedback
Few Meetings
Concise,
independent,
prioritized stories
Pairadise
@nerdneha
#furtherpairingtogether
#qconsf
I love spending all my
time in meetings
- No one ever
@nerdneha
#furtherpairingtogether
#qconsf
People are happiest
when people are being
productive
- Rob Mee
@nerdneha
#furtherpairingtogether
#qconsf
Weekly schedule = Weekly iterations & feedback
Alignment
Planning
Execution
Feedback
Standups
Pre-IPM
IPM
(WORK)
Pre-CL
CL
Retros
@nerdneha
#furtherpairingtogether
#qconsf
Weekly schedule = Weekly iterations & feedback
Alignment
Planning
Execution
Feedback
Standups
Pre-IPM
IPM
(WORK)
Pre-CL
CL
Retros
@nerdneha
#furtherpairingtogether
#qconsf
Talk in person / record in writing = fewer meetings
Walk over to PM
Cross functional pairing: Pair with designer or PM
Schedule check-in
Appear.in/Dedicated video
Call - Batphone
@nerdneha
#furtherpairingtogether
#qconsf
The big picture at Pivotal Labs
Pairadise
Test Driven Development
Set Schedule
Retros &
Feedback
Few Meetings
Concise,
independent,
prioritized stories
CI & CD
Hiring for
good pairs
Pairadise
@nerdneha
#furtherpairingtogether
#qconsf
Goals
1. Failed Attempts
2. Pairing @ Pivotal Labs
3. Pair Programming & You
4. Good times
5. War Stories
6. Lessons Learned
@nerdneha
#furtherpairingtogether
#qconsf
 Isolated team
 Few interruptions/meetings
 Buy-in to execute on priorities
 PM/Design resources available
Best pairing conditions?
@nerdneha
#furtherpairingtogether
#qconsf
 Select team with all hands on deck feature
How to get buy-in
@nerdneha
#furtherpairingtogether
#qconsf
Getting buy-in for Pairing:
Convince them to
experiment for
JUST ONE WEEK
Further together: Curated Pairing Culture @Pivotal
@nerdneha
#furtherpairingtogether
#qconsf
 Select team with all hands on deck feature
 Introduce concept as an experiment
 Loop in product owner frequently
 Release early, often, and iterate
How to get buy-in
Further together: Curated Pairing Culture @Pivotal
@nerdneha
#furtherpairingtogether
#qconsf
Im exhausted, talking so much is tiring
Wont the team move half as fast?
I dont get much value out of it
[X activity] isnt pair worthy
I dont like the inflexible schedule
Im always being watched
Hard to work with someone when you disagree
Its the blind leading the blind
Prepair. Know the opposition
@nerdneha
#furtherpairingtogether
#qconsf
 1 computer, 2 monitors, 2 mice, 2 keyboards
 Mirror screens
 Increase your font
 Git duet-commit
 Good IDE
 Keycastr to see shortcut keystrokes
Pairing setup hardware/software
@nerdneha
#furtherpairingtogether
#qconsf
Remote pairing: GET GOOD HARDWARE
 Good Headphones
 Good Internet connection
 Set schedule, procedures, and expectations
 More explicit back & forth (ex: ping pong pairing)
 Check-in more
 Take time to build rapport
 Try for some in-person pairing at the beginning IF possible
@nerdneha
#furtherpairingtogether
#qconsf
 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
The intangibles of Pairing
@nerdneha
#furtherpairingtogether
#qconsf
Pairing is like making a
new friend:
Its going to be awkward
Further together: Curated Pairing Culture @Pivotal
@nerdneha
#furtherpairingtogether
#qconsf
Pairing is like making a
new friend:
Its going to be awkward
so give it some time
Further together: Curated Pairing Culture @Pivotal
@nerdneha
#furtherpairingtogether
#qconsf
Imbalanced Levels in Pairing
For the more experienced pair. You want to pair because:
 Fewer repeated questions
 Freeing you up for more complex work
 You wont be called up on vacation
For the less experienced pair. You want to pair because:
 Learn more/faster
 Get reasoning behind methods & business context
Further together: Curated Pairing Culture @Pivotal
@nerdneha
#furtherpairingtogether
#qconsf
Goals
1. Failed Attempts
2. Pairing @ Pivotal Labs
3. Pair Programming & You
4. Good times
5. War Stories
6. Lessons Learned
@nerdneha
#furtherpairingtogether
#qconsf
 Productivity
 Code Quality
 Project Success
 Easy temperature on team
 Easy to help/understand whats going on
 Happiness
 Skill growth/sharing
 Career Success
Good pairing looks like...
@nerdneha
#furtherpairingtogether
#qconsf
 Built project in Go but dont know Go
 Learned React
 Enable clients to transition to software engineer roles
 Rapid prototyping-user testing
Accomplishments because of Pairing culture
@nerdneha
#furtherpairingtogether
#qconsf
Goals
1. Failed Attempts
2. Pairing @ Pivotal Labs
3. Pair Programming & You
4. Good times
5. War Stories
6. Lessons Learned
Further together: Curated Pairing Culture @Pivotal
@nerdneha
#furtherpairingtogether
#qconsf
Tool chest to prevent & mitigate issues as
they come up
 SWOT Analysis: what is your teams combined profile?
 Personal Goals: what do we each want out of the project?
 Inception
 Set schedule/cadence
@nerdneha
#furtherpairingtogether
#qconsf
Tool chest to prevent & mitigate issues as
they come up
 SWOT Analysis: what is your teams combined profile?
 Personal Goals: what do we each want out of the project?
 Inception
 Set schedule/cadence
 Provide feedback opportunities at multiple levels
 Provide safe haven to get work done free from scope changes
 Have a way to collect concerns and dedicated time to discuss them
@nerdneha
#furtherpairingtogether
#qconsf
Tool chest to prevent & mitigate issues as
they come up
 SWOT Analysis: what is your teams combined profile?
 Personal Goals: what do we each want out of the project?
 Inception
 Set schedule/cadence
 Provide feedback opportunities at multiple levels
 Provide safe haven to get work done free from scope changes
 Have a way to collect concerns and dedicated time to discuss them
 Talk in person
 Write down conversation/context
 Find a way to align first (ex: TDD + Pairing or discussing high-level)
 Daily retros
@nerdneha
#furtherpairingtogether
#qconsf
Goals
1. Failed Attempts
2. Pairing @ Pivotal Labs
3. Pair Programming & You
4. Good times
5. War Stories
6. Lessons Learned
@nerdneha
#furtherpairingtogether
#qconsf
What was surprising about pairing after 1 year
Pair Programming is like making friends, it takes time
You will need an extra hour or more of sleep per night
Have patience with yourself and others
You can code/ramp up with anything now
@nerdneha
#furtherpairingtogether
#qconsf
Why does Pair Programming stick at Pivotal?
 Enablement-focused
 Nature of our projects
@nerdneha
#furtherpairingtogether
#qconsf
Why does Pair Programming stick at Pivotal?
 Enablement-focused
 Nature of our projects
 Shared-accountability
 Same backlog
 IPMs point stories but emphasis on low volatility, not high velocity
 No silos
@nerdneha
#furtherpairingtogether
#qconsf
Why does Pair Programming stick at Pivotal?
 Enablement-focused
 Nature of our projects
 Shared-accountability
 Same backlog
 IPMs point stories but emphasis on low volatility, not high velocity
 No silos
 Empowered coworkers
 Setting the tone during Onboarding, Inception, and through Management
 No singling out (always as pairs that change daily)
 No question is stupid
 Empathetic coworkers
@nerdneha
#furtherpairingtogether
#qconsf
Cultural Transformation:
A few good apples can
transform the whole
barrel
@nerdneha
#furtherpairingtogether
#qconsf
Goals
1. Failed Attempts
2. Pairing @ Pivotal Labs
3. Pair Programming & You
4. Good times
5. War Stories
6. Lessons Learned
@nerdneha
#furtherpairingtogether
#qconsf
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 Kutner
https://pragprog.com/book/jkrp/remote-pairing
Pair programming productivity: Novicenovice vs. expertexpert
http://www.cs.utexas.edu/users/mckinley/305j/pair-hcs-2006.pdf
The effectiveness of pair programming: A meta-analysis
http://www.sciencedirect.com/science/article/pii/S0950584909000123
Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=4052584
Resources on Pairing (blog: nerdneha.tumblr.com)
Further Together:
Curated Pairing Culture
@Pivotal
Neha Batra
@nerdneha
#furtherpairingtogether #qconsf

More Related Content

Further together: Curated Pairing Culture @Pivotal