Presentation: Further Together: Curated Pairing Culture @Pivotal

Duration

Duration: 
2:55pm - 3:45pm

Persona:

Key Takeaways

  • Learn the arguments and counter arguments for realizing a culture that embraces pair programming.
  • Hear about techniques to improve the adoption of pair programming practices, including how to address challenges like remote developers.
  • Learn about some of the enabling techniques that make pair programming work on distributed teams.

Abstract

The benefits of pair programming are well-known but enabling it is hard. It is clear that incorporating it into the workplace sustainably requires a fundamental shift in culture. After working at 2 startups who implemented different versions of pair programming, I came to Pivotal Labs with my own stories and preconceived notions. Pivotal Lab's engineers (and sometimes designers and product managers) pair program 8hours/day every workday and help enable other companies to practice it with us. It seems impossible but after spending a year fully immersed, the trends in having a sustainable pair programming culture have started to surface. Hear from someone who is a newfound believer in pair programming on the structure Pivotal Labs has put in place to enable it, war stories, and lessons learned.

Interview

Question: 
QCon: What’s the motivation for your talk? You were just telling me that there are a couple of different components to the talk. One is your experience in having companies come in and pair with you, and what their push backs have been. What would the other one would be?
Answer: 

Neha: The other motivation is to share what we negotiate for on the behalf of our client to give them the experience they want. So if they’re like, "we want to try to pair programming" or "we want to try test driven development" or "we want to see what extreme programming looks like", we say, "yes, we can do that with you but to be successful, we need these things from you". So what are we negotiating on behalf of our client to have a successful project, and what do we look out for and what are our red flags?

Part of what makes us successful is that we integrate our clients into our group, so it’s never "us versus them". It’s more "you are coming onto our team" and we want this to be successful for your happiness and ours (because making you successful makes us happy too!). So that’s one piece. 

And then the other piece is kind of a little bit of a gotcha, which is: you can’t curate pair programming out of nowhere.

There is a lot of supporting structure around it. At Pivotal Labs we have maybe five or six components that work together in order to enable a pairing culture and so, I’ve sliced it in many different ways. I’ve taken the approach of it being like these puzzle pieces that fit together. What are those puzzle pieces and what does that look like on a day-to-day basis? And I’ve also examined it on three levels: a daily level, a weekly level and a project duration level. What does feedback look like for those three levels and how is that baked into our general practices?

Question: 
QCon: So when someone leaves, you will not only give them some tools on how to talk up and down the team, and I guess negotiate on pair programming and what the push back, but also a bit of a framework that actually talks about the things that you need for pair programming to be successful?
Answer: 

Neha: Yes. And I have in the past talked about what it feels like when you have it and what it feels like when you don’t have it. This changes the dialogue to: “I am in this situation where things are not going well and maybe making this change will give me the positive result that I am looking for”. This talk should help people  project what are their future roadblocks and what are the tools to address it.

Question: 
QCon: How you you describe the persona of the target audience of this talk?
Answer: 

Neha: Levelwise, it is across the board. It is a different role for every company; so it could either be a manager or an architect or a tech lead or just someone who can influence change. 

Ultimately, I’m speaking to the person who is able to introduce and manage a project because for pair programming, the way I have seen it the most successful is that you have an isolated project and you are able to have those people working together for a prolonged period of time without being constantly taken away for other things.

Question: 
QCon: How do I pair program in a virtual environment?
Answer: 

Neha: That’s a great question. A lot of it is enabled by software: we use Screenhero, a tool that allows you to share your screen but also to have two independent mouse cursors that have your name on it. So you can see when I am moving the mouse and you can see it is attributed to me, and then if you are trying to move, I can see that you are trying to do that and give way so that you can work. And honestly, it’s just good tech, good audio.

After working a year for Pivotal Labs, I don’t feel that virtual pairing is as significantly different from pairing on a day-to-day basis. This is partly because of the way our pairing stations are set up: we have\ two screens side-by-side and we’re both facing forward. We aren’t facing each other unless we are having a discussion. And so I don’t usually needa visual queue. I am usually listening to the tone of voice and I am asking for a lot of feedback, like "how are you feeling?", "Do you want to drive?", "Do you want to write this test and then I will pass the test?" Or vice versa. One piece that suffers is getting to know someone for the first time and picking up on whether someone is distracted or getting tired. We prefer to onboard someone for 3 months to transfer context and let them get the hang of things before we release them but even having them the first few weeks help a lot. 

Question: 
QCon: Do you go into some of these types of enabling tools and technologies in the talk?
Answer: 

Neha: I do. In  the last two talks that I did, I have had a screen dedicated to some of the useful technology that we use, so Screenhero comes up. There is one for the keys that you type and they will actually show on the bottom right corner. So if you use shortcuts, you will see that people are actually pressing shortcuts instead of some magic where your key jumps or your cursor jumps.

Question: 
QCon: QCon targets advanced architects and senior development leads- what do you feel will be the actionable that type of persona will walk away from your talk with?
Answer: 

Neha: One of my favorite things is to have a pairing retro when they start pair programming for the first time. Your biggest worry is going to be that anxiety around having to work with someone on the day-to-day level and having no idea what they are thinking because we all express our emotions in different ways. Confusion and frustration are expressed differently for each person. Happiness and contentment might be silence or it could be outwardly expressed, right?

So when people try it for the first time, the first week or the first few days, I encourage them to have a pairing retro. What went well? What didn’t go well? What was okay? What are some outstanding questions? And then what comes out of it are action items: how do I make this better next time? And if you do that on a daily level, it could be as formal as having a pairing retro the last five minutes of your day or it could be a little bit less formal, such as asking "hey, how do you think that went? How are you feeling?"

It’s all about trying to hear what their concerns were, whether that matched up to reality, and getting a sense for what their ideal pace is. And you can ask them in the moment, but it’s a lot to process and provide feedback on; hindsight is 20/20. It is much easier to ask them at the end of the day or maybe the next morning.

Speaker: Neha Batra

Software Engineer @Pivotal

Neha Batra has been a software engineer at Pivotal Labs after majoring in mechanical engineer at MIT, working as an energy consultant, teaching herself to program, and working at two startups. She used to doubt that pair programming was possible as a core practice in the workplace but now "sees the light." She enjoys eating food, planning trips around food, talking about food, finding free food, and making food when it's not automatically presented in front of her.

Find Neha Batra at

.

Tracks

Monday Nov 7

Tuesday Nov 8

Wednesday Nov 9

Conference for Professional Software Developers