Pairing
Pairing is a modern practice with software development that creates an open, learning environment to accomplish work. Teams can move quickly, solve problems in better and faster ways, while developing cross-functional capabilities.
Pairing is intentional collaboration. A pair is the smallest team you can build and this gives us some instant benefits.
Why Pair Programming¶
- Instant code review, quality improvements. Sometimes we’ll spend hours not seeing a simple syntax issue when we’re working alone. Working in pairs often helps by limiting the chance you’d both miss something small.
- Different problem solving approaches. Different people have different POV’s and approach problem solving differently: This is HUGE in engineering because we’re often focused on improving efficiency in our solutions.
- Seniority shows. Someone is often more senior in a particular technical area, bringing excellent real-world skills to the sharing table
- Everyone improves. Pairing reinforces our goal of continuous improvement. Whether learning to solve a new problem together or improving how we share our experience, we’re each sharpening skills.
- No more “Brents!” (Or maybe there’s at least 2?). Solo work fosters a culture of heroics and silos. If we’re not careful, the subject matter expert will continue to get the work in their subject matter area because they’re so good at it.
- Confidence booster. When a team member has a great idea, getting immediate buy-in can help validate assumptions and reinforce their point of view. Getting support for your solution can also be a boon for confidence all around.
- Demo buddies! We think demoing should be a muscle flexed often. Pairing gives us a built-in demo audience, demo partner, or even a “rubber duck” when preparing for your sharing session.
- We just aren’t alone. Sure Google is great to bounce ideas off of, but having someone to reinforce our decisions is often much better. Even if you think you prefer working alone, we can admit there’s some benefit here.
Mob Programming. Mobbing should be a working session that is planned ahead or ad-hoc when an urgent issue needs attention. Teams can take advantage of mobbing to bring everyone up to speed in a hurry about an important task or feature. Mobbing is one problem, the whole team, one computer
What Pair Programming is Not¶
Pairing is not one person doing the work and the other person watching. It is immersive learning through an engaging, intentional session. Ideas, questions, new approaches are all part of pairing to create a learning environment.
Is pairing doing the same work but twice the time? Pairing is as much about learning as it is about getting work done. It is a built-in learning and feedback mechanism to write better code. Pairing when appropriate can also enable the team to become more cross-functional and share institutional knowledge.
Culture Shift¶
- Plan for it. If you’re working in a sprint, build in expectations during sprint planning.
- Remind the team. Remind folks during your daily standup that “we should pair up” on tasks.
- Be a willing pairing partner. Make it clear you’d like someone to work with you on a task. Understand that you are an active participant in the pairing session and coming in with a positive attitude will help make the effort successful
- Make it distraction-free time. Block 1-2 hours at a time to allow for productive collaboration. We hope that work is broken down so that tasks fit in to a few hours
- Trade responsibilities while working. Don’t fall into the trap of having only one person “do the work” - take turns writing code, writing tests, making tests fail/pass, etc.
- Take breaks to stay fresh. Pairing can create some very focused sessions and conversations. Keep your mind sharp by giving yourself a break periodically.