In this week’s podcast QCon chair Wesley Reisz talks to Neha Batra, a software engineer at Pivotal Labs. Neha spoke about pair programming in her recent QCon San Francisco 2016 presentation, and has taken time to discuss techniques to get started with the practice as well as tips for implementing it on your team. Neha also touches on vulnerability based trust and how it can help effectively build a trusting team environment.
Key Takeaways
- If you successfully start with pair programming, other tenants of XP are pulled along with you
- Ways to get creative with remote pairing to make it work
- The daily retro
- Overcoming hesitance with managers when trying to implement pair programming full time
- Vulnerability based trust building
Subscribe on:
Show Notes
Pivotal Labs
- 1m:51s - To avoid distractions Pivotal Labs mainly bring clients into their office to work rather than the other way round.
- 2m:43s - Typically they will get a designer, a PM and perhaps 1-4 or 5 developers and work together in a loud, very interactive environment based on XP.
- 3m:35s - Goals vary from trying to get technical expertise in a new technology to experience in working more collaboratively.
Get Started with Pair Programming
- 5m:19s - Pair programming is one of the concepts that has a stronger gravitational pull - not only to audiences, but within your processes.
- 5m:28s - If you start with pair programing and want to make it stick, you kind of end up pulling all the other tenants of XP - for example TDD - along with you.
How has Pair Programming Evolved Over the Years?
- 6m:17s - A lot of the fundamentals are the same, but with XP we take it to the extreme to be able to do it eight hours a day.
- 6m:24s - To pair for eight hours a day we adapt to a lot of other process to create a simpler way of working, giving us an easier level to default to.
- 6m:44s - We use phrases in the team to make sure we agree on a test, that there are no false positives, when to refactor etc. This helps us avoid accruing code debt since we don’t do code reviews.
Remote Pairing
- 7m:07s - Remote pairing has changed things, we’re always looking for creatives ways to extend pairing to different geographies.
- 7m:45s - We all prefer in-person when it comes to getting things done. As you get better at pair programing, remote pairing shouldn’t be as hard.
- 8m:20s - One thing thing that is lost with remote pairing is the the conversation that comes about on a live project site.
- 9m:05s - We use a splitter with a second set of headphones and microphone allowing a three-way conversation.
Remote Pair Programming Techniques
- 9m:30s - For remote pairing Screenhero (recently acquired by Slack) works well since you have individual cursors - therefore when someone is taking over the keyboard it’s very obvious.
In Person Pair Programming
- 9m:56s - In person Keycaster which shows the shortcuts the other person is using is useful, particularly if someone is less familiar with the IDE you are using.
- 10m:28s - Breaks matter. Pivotal labs take two a day. They recharge you and give you the will to keep moving forward at the same speed.
Pair Programming on a New Team
- 11m:52s - Learning and enabling the team for long term success is ultimately what is important.
- 12m:34s - Ask lots of questions and be an active participant when pairing on a new codebase.
- 12m:47s - Sometimes this means stopping your pair and asking to go over things slowly to deeply understand where the other person is coming from.
How to Frame the Value Proposition for Pair Programming
- 13m:53s - Working solo you run into bugs or unknowns - having another person there helps remind you of all the things that need to be done.
- 14m:39s - Managers often don’t see the true value until they start trying it themselves.
- 14m:49s - It’s important to take the time to capture and highlight the relevant metrics of pair programming.
- 15m:30s - Highlight what happened during the week and show what would have happened with or without pair programming.
- 17m:00s - Frame it as “just an experiment” - take some data - review end of week. What benefits have you seen? Or you may decide it’s not the right for the team.
Getting Past Managers Saying “you can only do a couple of hours per day”
- 16m:16s - It’s about making a gradual transition between a small interruption vs. being all in.
- 16m:38s - You’re not losing that much by giving it a try for one day.
- 16m:47s - Improvements will take time - because you need to get to know your pair and team.
- 17m:19s - Pair programming is perfect when you’re trying to enable someone in a codebase or with a technology.
Importance of Retros
- 17m:57s - Retro’s are a great way to get a temperature check on how the team is feeling.
- 18m:05s - It’s a great way to remove assumptions across the teams.
- 18m:38s - It helps highlight on the positives and celebrate the wins.
- 18m:46s - When people are heads down coding it can be hard to get status updates, retros help with this.
The Daily Retro
- 19m:20s - The daily retro (with your pair) gives you both more understanding of the person you’re working with.
- 19m:41s - Allows you to voice thoughts and opens the dialogue.
Vulnerability Based Trust
- 21m:15s - Vulnerability based trust. One of the best ways to build trust is to take that first step yourself - put yourself out there.
- 21m:30s - Vulnerability is not a core value embedded into our society.
- 21m:38s - A lot of people want to put up a “tough front” to protect themselves.
- 21m:57s - What we need is more vulnerability and honesty to do better work, together.
- 22m:30s - I’ve learned to not be afraid to speak about my struggles; it actually encourage others to share theirs too.
Write, Speak, Code. What are the Goals of the Organisation?
- 25m:44s Write, Speak, Code is all about helping women grow their expertise as well as build their personal brand in the industry.
- 25m:54s - Getting known is often its about writing about code, speaking about code and contributing to Open Source.
- 26m:20s - A tenant of the organisation is a focus on who you are as a person.
- 26m:37s - You’re building a network as well as an understanding of yourself.
What Message Do You Want to Leave People With?
- 27m:07s - We often don’t leave our circles. We tend to surround ourselves with people who look and sound like us.
- 27m:21s - There is huge value in having a more diverse network, it brings a richness of experience and perspective.
- 27m:38s - Sure, it’s important to increase your visibility and technical expertise - but also to increase the diversity of people around you.
Technology Concepts Discussed
- Keycaster
- Screenhero (now part of Slack)