11-19-2014 by Sebastian Schürmann
Having a dedicated computer and desk for the effort of Pair programming is a great thing. It is a little counter intuitive to those who seek for efficient use of the workplace and try to use every inch of the office all the time. Creative people (programmers) are no laying hens and should not be treated this way. So why is it good to have a computer around that is just dedicated for Pair programming?
You will have to set up the development environment easily and multiple times in order to develop. If that takes some hours or a day, you will be having not much productive output. So using a pairing station will force you to get something that is called “One button build”: A build that works as fast as checkout, setup some environment variables and start developing. Using docker, puppet and some other niceties make this is easily possible. A lot of other processes and tools like for example the CI benefit from this “One button build” as well.
Same goes for your own development environment aka IDE and other tools that you require. Soon you will end up with a bunch of scripts in version control to (re-)build your IDE and configure it with the push of a button. One side effect: These re-configurations are so fast, you even can use them when you change driver and navigator.
Soon everyone will know that a pair working on this particular desktop is not to be disturbed. Social pressure and a special place work together. “It must be important, there are 2 persons” comes together with that special desk where a team of two is to be observed very often.
I personally like my mess on the table: Yesterdays coffee cup, a magazine and other things clutter up my desk and do not ask for “guests” literally. So before I start to pair the cleaning has to commence. This is not the case with the pairing station. It is just used for one purpose and multiple people work there. This makes it easy to keep it a clean place.
Most of us use laptops these days. Machines got better and you might not feel any limitation there. But in fact, laptops are pretty limited in terms of the amount of ram that you can install and the amount of displays you can use. The paring station is limited to one place and this way you can decide for a desktop machine. With a budget comparable to a developer notebook you can get a high performance machine that is just capable of a “little” more. Want to have 64 or even 128 gig of ram? Just buy it. SSD drives setup as raid to get you as much write and read speed as the controller allows? Easy. Most of these things will be pretty close to what a modern fully setup macbook pro retina costs.
A lot of problems can be solved on a whiteboard even better and before starting to bruteforce a problem on the keyboard you might want to have a little session on the whiteboard. A good pairing station has a whiteboard close and accessible with all the tools required to use it.
As soon as you got the basics of Pair programming sorted out, you should build a pairing station to make sure everyone has a perfect place to go to for a pairing session. One one hand it enforces some good behaviours (e.g. One button builds) and on the other it makes it easier to have a dedicated place to sit down and tinker over a coding problem.