Further Together: Curated Pairing Culture @Pivotal Neha Batra - - PowerPoint PPT Presentation

further together curated pairing culture pivotal
SMART_READER_LITE
LIVE PREVIEW

Further Together: Curated Pairing Culture @Pivotal Neha Batra - - PowerPoint PPT Presentation

Further Together: Curated Pairing Culture @Pivotal Neha Batra @nerdneha #furtherpairingtogether #qconsf Goals 1. Failed Attempts 2. Pairing @ Pivotal Labs 3. Pair Programming & You 4. Good times 5. War Stories 6. Lessons Learned


slide-1
SLIDE 1

Further Together: Curated Pairing Culture @Pivotal

Neha Batra @nerdneha #furtherpairingtogether #qconsf

slide-2
SLIDE 2

@nerdneha #furtherpairingtogether #qconsf

Goals

  • 1. Failed Attempts
  • 2. Pairing @ Pivotal Labs
  • 3. Pair Programming & You
  • 4. Good times
  • 5. War Stories
  • 6. Lessons Learned
slide-3
SLIDE 3

@nerdneha #furtherpairingtogether #qconsf

Why do I care about pairing & culture?

slide-4
SLIDE 4

@nerdneha #furtherpairingtogether #qconsf

Why do I care about pairing & culture?

  • Inclusion
  • Teamwork
  • Learning
  • Challenging ourselves
slide-5
SLIDE 5

@nerdneha #furtherpairingtogether #qconsf

Goals

  • 1. Failed Attempts
  • 2. Pairing @ Pivotal Labs
  • 3. Pair Programming & You
  • 4. Good times
  • 5. War Stories
  • 6. Lessons Learned
slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8
slide-9
SLIDE 9

Credit: Onsi Fakhouri

slide-10
SLIDE 10

Credit: Onsi Fakhouri

slide-11
SLIDE 11

Credit: Onsi Fakhouri

slide-12
SLIDE 12

Credit: Onsi Fakhouri

slide-13
SLIDE 13

Credit: Onsi Fakhouri

slide-14
SLIDE 14

Credit: Onsi Fakhouri

slide-15
SLIDE 15

Credit: Onsi Fakhouri

slide-16
SLIDE 16

Credit: Onsi Fakhouri

slide-17
SLIDE 17

Credit: Onsi Fakhouri

slide-18
SLIDE 18

Credit: Onsi Fakhouri

slide-19
SLIDE 19

Credit: Onsi Fakhouri

slide-20
SLIDE 20

Credit: Onsi Fakhouri

slide-21
SLIDE 21

Credit: Onsi Fakhouri

slide-22
SLIDE 22

Credit: Onsi Fakhouri

slide-23
SLIDE 23

Credit: Onsi Fakhouri

slide-24
SLIDE 24

Credit: Onsi Fakhouri

slide-25
SLIDE 25

Credit: Onsi Fakhouri

slide-26
SLIDE 26

Credit: Onsi Fakhouri

slide-27
SLIDE 27

Credit: Onsi Fakhouri

slide-28
SLIDE 28

Credit: Onsi Fakhouri

slide-29
SLIDE 29

Credit: Onsi Fakhouri

slide-30
SLIDE 30

Credit: Onsi Fakhouri

slide-31
SLIDE 31

Credit: Onsi Fakhouri

slide-32
SLIDE 32

Credit: Onsi Fakhouri

slide-33
SLIDE 33

Credit: Onsi Fakhouri

slide-34
SLIDE 34

@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 didn’t want to pair with you
  • It’s faster by yourself
  • Silent treatment
slide-35
SLIDE 35

@nerdneha #furtherpairingtogether #qconsf

Pair Programming is hard

slide-36
SLIDE 36

@nerdneha #furtherpairingtogether #qconsf

Goals

  • 1. Failed Attempts
  • 2. Pairing @ Pivotal Labs
  • 3. Pair Programming & You
  • 4. Good times
  • 5. War Stories
  • 6. Lessons Learned
slide-37
SLIDE 37

@nerdneha #furtherpairingtogether #qconsf

Cultural Tenets at Pivotal

Do what works Do the right thing Be kind

slide-38
SLIDE 38

@nerdneha #furtherpairingtogether #qconsf

Pivotal Labs: Setup

Client Pivotal

slide-39
SLIDE 39

@nerdneha #furtherpairingtogether #qconsf

Pivotal Labs: Setup

Team

slide-40
SLIDE 40

Credit: Onsi Fakhouri

slide-41
SLIDE 41

Credit: Onsi Fakhouri

slide-42
SLIDE 42

@nerdneha #furtherpairingtogether #qconsf

What’s 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
slide-43
SLIDE 43

@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
slide-44
SLIDE 44

@nerdneha #furtherpairingtogether #qconsf

The big picture at Pivotal Labs

Pairadise

Test Driven Development

Pairadise

slide-45
SLIDE 45

@nerdneha #furtherpairingtogether #qconsf

TDD & Pairing It’s easier to agree on a test than it is to agree

  • n an implementation
slide-46
SLIDE 46

@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!

slide-47
SLIDE 47

@nerdneha #furtherpairingtogether #qconsf

The big picture at Pivotal Labs

Pairadise

Test Driven Development Set Schedule

Pairadise

slide-48
SLIDE 48

@nerdneha #furtherpairingtogether #qconsf

Weekly schedule = Weekly iterations & feedback

Alignment Planning Execution Feedback

Standups Pre-IPM IPM (WORK) Pre-CL CL Retros

slide-49
SLIDE 49

@nerdneha #furtherpairingtogether #qconsf

The big picture at Pivotal Labs

Pairadise

Test Driven Development Set Schedule Retros & Feedback

Pairadise

slide-50
SLIDE 50

@nerdneha #furtherpairingtogether #qconsf

“All life is an experiment. The more experiments you make the better”

  • Ralph Waldo Emerson
slide-51
SLIDE 51

@nerdneha #furtherpairingtogether #qconsf

Retrospectives -- circulates feedback

Action Items

slide-52
SLIDE 52

@nerdneha #furtherpairingtogether #qconsf

Retrospectives -- circulates feedback

Action Items Tech Retros Parking Lot

slide-53
SLIDE 53

@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?

slide-54
SLIDE 54

@nerdneha #furtherpairingtogether #qconsf

The big picture at Pivotal Labs

Pairadise

Test Driven Development Retros & Feedback Concise, independent, prioritized stories

Pairadise

Set Schedule

slide-55
SLIDE 55

@nerdneha #furtherpairingtogether #qconsf

The big picture at Pivotal Labs

Pairadise

Test Driven Development Set Schedule Retros & Feedback Few Meetings Concise, independent, prioritized stories

Pairadise

slide-56
SLIDE 56

@nerdneha #furtherpairingtogether #qconsf

“I love spending all my time in meetings”

  • No one ever
slide-57
SLIDE 57

@nerdneha #furtherpairingtogether #qconsf

“People are happiest when people are being productive”

  • Rob Mee
slide-58
SLIDE 58

@nerdneha #furtherpairingtogether #qconsf

Weekly schedule = Weekly iterations & feedback

Alignment Planning Execution Feedback

Standups Pre-IPM IPM (WORK) Pre-CL CL Retros

slide-59
SLIDE 59

@nerdneha #furtherpairingtogether #qconsf

Weekly schedule = Weekly iterations & feedback

Alignment Planning Execution Feedback

Standups Pre-IPM IPM (WORK) Pre-CL CL Retros

slide-60
SLIDE 60

@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

slide-61
SLIDE 61

@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

slide-62
SLIDE 62

@nerdneha #furtherpairingtogether #qconsf

Goals

  • 1. Failed Attempts
  • 2. Pairing @ Pivotal Labs
  • 3. Pair Programming & You
  • 4. Good times
  • 5. War Stories
  • 6. Lessons Learned
slide-63
SLIDE 63

@nerdneha #furtherpairingtogether #qconsf

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

Best pairing conditions?

slide-64
SLIDE 64

@nerdneha #furtherpairingtogether #qconsf

  • Select team with “all hands on deck” feature

How to get buy-in

slide-65
SLIDE 65

@nerdneha #furtherpairingtogether #qconsf

Getting buy-in for Pairing: Convince them to “experiment” for JUST ONE WEEK

slide-66
SLIDE 66
slide-67
SLIDE 67

@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

slide-68
SLIDE 68
slide-69
SLIDE 69

@nerdneha #furtherpairingtogether #qconsf

“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”

  • Prepair. Know the opposition
slide-70
SLIDE 70

@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

slide-71
SLIDE 71

@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
slide-72
SLIDE 72

@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

slide-73
SLIDE 73

@nerdneha #furtherpairingtogether #qconsf

Pairing is like making a new friend: It’s going to be awkward

slide-74
SLIDE 74
slide-75
SLIDE 75

@nerdneha #furtherpairingtogether #qconsf

Pairing is like making a new friend: It’s going to be awkward so give it some time

slide-76
SLIDE 76
slide-77
SLIDE 77

@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 won’t be called up on vacation

For the less experienced pair. You want to pair because:

  • Learn more/faster
  • Get reasoning behind methods & business context
slide-78
SLIDE 78
slide-79
SLIDE 79

@nerdneha #furtherpairingtogether #qconsf

Goals

  • 1. Failed Attempts
  • 2. Pairing @ Pivotal Labs
  • 3. Pair Programming & You
  • 4. Good times
  • 5. War Stories
  • 6. Lessons Learned
slide-80
SLIDE 80

@nerdneha #furtherpairingtogether #qconsf

  • Productivity
  • Code Quality
  • Project Success

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

  • Happiness
  • Skill growth/sharing
  • Career Success

Good pairing looks like...

slide-81
SLIDE 81

@nerdneha #furtherpairingtogether #qconsf

  • Built project in Go but don’t know Go
  • Learned React
  • Enable clients to transition to software engineer roles
  • Rapid prototyping-user testing

Accomplishments because of Pairing culture

slide-82
SLIDE 82

@nerdneha #furtherpairingtogether #qconsf

Goals

  • 1. Failed Attempts
  • 2. Pairing @ Pivotal Labs
  • 3. Pair Programming & You
  • 4. Good times
  • 5. War Stories
  • 6. Lessons Learned
slide-83
SLIDE 83
slide-84
SLIDE 84

@nerdneha #furtherpairingtogether #qconsf

Tool chest to prevent & mitigate issues as they come up

  • SWOT Analysis: what is your team’s combined profile?
  • Personal Goals: what do we each want out of the project?
  • Inception
  • Set schedule/cadence
slide-85
SLIDE 85

@nerdneha #furtherpairingtogether #qconsf

Tool chest to prevent & mitigate issues as they come up

  • SWOT Analysis: what is your team’s 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
slide-86
SLIDE 86

@nerdneha #furtherpairingtogether #qconsf

Tool chest to prevent & mitigate issues as they come up

  • SWOT Analysis: what is your team’s 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
slide-87
SLIDE 87

@nerdneha #furtherpairingtogether #qconsf

Goals

  • 1. Failed Attempts
  • 2. Pairing @ Pivotal Labs
  • 3. Pair Programming & You
  • 4. Good times
  • 5. War Stories
  • 6. Lessons Learned
slide-88
SLIDE 88

@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

slide-89
SLIDE 89

@nerdneha #furtherpairingtogether #qconsf

Why does Pair Programming stick at Pivotal?

  • Enablement-focused

○ Nature of our projects

slide-90
SLIDE 90

@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

slide-91
SLIDE 91

@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

slide-92
SLIDE 92

@nerdneha #furtherpairingtogether #qconsf

Cultural Transformation: A few good apples can transform the whole barrel

slide-93
SLIDE 93

@nerdneha #furtherpairingtogether #qconsf

Goals

  • 1. Failed Attempts
  • 2. Pairing @ Pivotal Labs
  • 3. Pair Programming & You
  • 4. Good times
  • 5. War Stories
  • 6. Lessons Learned
slide-94
SLIDE 94

@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: Novice–novice vs. expert–expert 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)

slide-95
SLIDE 95

Further Together: Curated Pairing Culture @Pivotal

Neha Batra @nerdneha #furtherpairingtogether #qconsf