Skip to content

Pair Programming at Planet Argon

We’re proud of the collaborative and supportive culture we’ve created at Planet Argon, and one major factor contributing to this culture is our commitment to pair programming. Pair programming (pairing) is the practice of two developers working together to complete a task, fix a bug, or solve a problem. Scheduled pairing sessions last roughly 90 minutes and are generally used to tackle a project-related issue encountered by one or both of the developers.

Planet Argon encourages the use of Llewellyn Falco’s “strong-style” pairing. In this method, one developer takes on the role of the “driver” and the other takes on the role of the “navigator”. The driver is one at the keyboard writing out code. However! They are not allowed to write code without the navigator telling them what to type first. The navigator’s role is to decide on what code should be written and how, which the driver then types out.

Does this sound complicated and challenging? Good! That’s a big part of why we do it. As Falco states, the golden rule of strong-style pairing is “For an idea to go from your head into the computer, it MUST go through someone else’s hands.” In order to effectively do this, the navigator has to be able to clearly explain what they want the driver to write and why, and the driver has to fully listen. This practice in communication has multiple benefits:

  1. Develops trust between pairing partners.
  2. Encourages discussion about proposed technical solutions before any code is written.
  3. Requires partners to recognize and use shared language.
  4. Passes app-, domain-, and tool-specific knowledge between pairing partners.

After a few successful strong-style pairing sessions, developers should not only be resolving issues in their code quicker, but also learning new keyboard shortcuts, dev patterns, and terminology.

You’ll need a few tools on your computer to successfully pair with a member of our fully distributed engineering team:

  • An IDE - we prefer VSCode as it has plugins that make pairing easier if your machine is not compatible with Tuple
  • Tuple - this is a two-way screen sharing system that allows users to both interact with and type in a single codebase on one user’s machine. This is our preferred pairing method.
  • Zoom - It’s certainly possible to pair using Zoom and have the driver simply share their screen. This is not ideal because in order to switch roles, the code must be committed then opened on the same branch.
    • Alternatively, Slack’s huddle feature allows for screen sharing, too.

There are two types of pairing sessions we use at Planet Argon: Scheduled and One-Off.

Scheduled: Most of what this page discusses refers to the scheduled pairing sessions. These are regular sessions that are on your calendar and follow the strong-style format. As you’ll see below, only full-time employees (FTEs) participate in scheduled sessions, and while these sessions are often used to solve project-specific issues, you can certainly spend this time pairing on a Quarterly Study or professional development project.

One-Off: One-off sessions must be specific to a billable project task. They only loosely follow the Planet Argon pairing standards and can involved both FTEs and contractors. They don’t need to follow the strong-style format and don’t need to last for any specific length of time – in fact, because they are billable hours, the quicker the pair can solve the issue the better. These are coordinated by project devs and do not need approval by a PM or manager. However, if a project budget is being spent too fast because of one-off pairing sessions, your PM might ask to reduce the number or duration of these types of sessions for that project.

How and when a developer pairs depends on whether they are a full-time employee at Planet Argon or a contractor. The following is the current make-up of the team and the types of pairing sessions in which each type of role may participate:

Full-Time EmployeeContract Developer
Erin ClaudioJaison Coelho
Brian MiddletonLiz Pantalone
William MenaSergiu Truta
William Weber
As a full-time employee, these developers…As contractors, these developers…
are part of the pairing scheduleare not part of the pairing schedule unless it is scheduled as part of their assigned project work
can pair on any project issuemay pair on project-related issues for which they have been approved to bill
can pair on non-project topics, such as general development basics (mentoring) or Quarterly Studiesmust be approved in writing (email, generally) to pair on non-project topics

The following is the agenda you’ll see in your pairing calendar event. Please try to keep each pairing session consistent and productive!

Calendar Agenda description

Agenda:
1. JIRA Board grooming (~5-10 minutes) -- what issues are in-progress and would be appropriate for pairing?
2. Pair Programming (~1.25 hours) --
a. Collaborate on issue(s) until they are at a good stopping place.
b. Use the strong-style pairing method.
c. Commit frequently.
d. Switch roles at least once during the session.
e. Push your branch(es) at the end of each session.
Question: Where do we log time for this?
Answer: Log your time to the client project(s) like you normally would if you were working independently. Make sure to include the issue # in the Harvest time entry description.
3. High-fives! 🙌🏻
FAQs.
Q. Should both participants in the pairing session bill their time to the client?
A. Yes! The PA Handbook considers pairing to be "any activity where 2 or more people work alongside each other and they are each past their first 2 weeks.
We bill clients for each person's time."
Q. What happens if one of us is on vacation?
A. The default is to just skip that week -- but if you're able to sort out a backup plan with someone else, feel free to do that.
Q. What happens if one of us is out sick?
A. Try to reschedule, if possible.

Pairing with Planet Argon CEO Robby Russell

Section titled “Pairing with Planet Argon CEO Robby Russell”

Robby isn’t on the team pairing schedule, but he’s happy to pair with you nonetheless! You can summon Robby to a pairing session by using this Calendly link to find a time that he’s available. Reach out via Slack if it’s urgent!