Pair-programming is a great tool for programming teams to utilize, but it’s rare that anyone has a handy guide for what makes a great pair-programming room.
We’ve come up with a list of some of the ways we optimize our pair-programming rooms, which hopefully you can use in your own pair-programming setup.
For those unfamiliar with pair-programming, it is essentially a way for more than one developer to tackle some kind of code problem together. This can be as small as figuring out how to get a specific function to return a specific value, or as large as mapping out an entire application’s architecture. Programmers benefit from being able to verbally describe a piece of code to another developer, which helps them work through the problem as well as get feedback from the other developer.
Below is one of our pair-programming rooms, with some of the custom tools we use to maximize productivity.
- Monitors - It’s good to have at least two in order for the programmers to work independently as well as share ideas. Swivel/Rotating Mounts can be helpful for easier sharing.
- Monitor Cables and Adapters - Try to have video cables for both PCs and Macs, or whichever suits your team’s setup. We used HDMI cables paired with adapters for Mac.
- Power strips - Key here is to mount in a convenient place (We used 3M command strips to mount a powerstrip to the back center of the desk)
- Chairs - Optional if you prefer a stand-up desk environment. We try to provide for both.
- Whiteboard wall - We’ve found that having an entire wall for whiteboarding is useful since it allows us to map out any ideas we have without having to worry about space. This is also great for making lists, visually drawing out a plan of attack, and education.
- Mood lighting - This is great for putting the programmers in a relaxed mood, which we’ve found helps them collaborate better. We mounted IKEA’s DIODER LED 4-piece light strip set, multicolor (~$30) behind the monitors for a nice adjustable backlight.Soundproofing - In our experience, programmers tend to pair better when they know they have complete privacy. This allows them to share concerns, voice issues, and talk openly without getting distracted by conversations happening in adjoining rooms.
- Ventilation - Because programmers need to breathe too. (And sometimes eat Mexican food for lunch).
It’s also important to keep in mind the personalities of the developers you plan on pairing. If two of your team can’t stand each other, then it’s a good idea not to lock them in a room together. If you have one member who’s slightly more extroverted than another, or two programmers you can tell have chemistry, this generally guarantees a good pair environment. We utilize the StrengthsFinder 2.0 skills and personality assessment to really understand each other’s skills and personalities to ensure we are working best together.
Hopefully this has been helpful information for you. Let us know if you have any suggestions you’ve used in your own pair-programming setup!