Task: Setup Programmer Environment
Purpose
  • To make it easy to work collaboratively and raise the communication level of the team
Relationships
RolesPrimary Performer: Additional Performers:
Steps
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 on.

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.

More Information
Guidelines