Remove Cubicle Walls and Other Impediments
In XP, we attempt to maximize communication within the team. Programmers should be able to ask quick questions to
other developers and overhear conversations which raise their understanding of the system. When team members are
segregated into offices or cubicles, there is more of a chance that islands of knowledge will grow in isolation. This
leads to redundant work and often work that is less integrated than if it had been done in an open space subject to the
contributions of overhearing team members.
Place Computers in Positions Comfortable for Pairing
Standard office furniture is not designed for pair programming. In particular, desks with leg wells seem to make
pairing impossible. Ideally, computers should be placed on tables which have enough room for two people to sit side by
side and trade turns working at the keyboard. Comfort should be your guide. If you are not comfortable, you will get
fatigued easily and you certainly won't be doing the work you are capable of.
Standardize on Tools and Development Setup
In XP, we find that work goes better when everyone is able to help everyone else. One simple thing that can get in the
way is computer setup. If you use an editor with one set of key bindings and another team member uses another, it will
be difficult for either of you to go to each other's computers and feel comfortable enough to drive. While this seems
like a minor point, it makes a sizable difference on how effectively a team can collaborate. In many XP teams, machines
are unassigned. You simply go to a free machine in the morning and check out the code that you need to start working
Establish Clear Line of Sight to Customer
To work effectively with XP, you must be able to ask questions to your customer. If you are not able to ask
questions and get timely answers, you are either bottlenecked on a task or tempted to guess and hope that you don't
have to roll back your work later. When setting up your environment, establish a clear line of sight to the customer.
The customer should be working in the same room as the team. If this is not possible, the customer should be no more
than a phone call away.