Building an Agile-Friendly Office Space
Here’s a shortlist of some of the more agile-friendly (and some not so friendly) workspaces.
Siberia - “the collaboration-free zone”
I visited one massive company and noticed that not one single office had a whiteboard or even a flipchart. I also noticed that pairs of desks were arranged facing each other. Each desk was about double the depth of normal desks. Some gentle probing revealed that most day-to-day communication there happens through emailed word documents… developers reading specs and tapping away in silence seemed to be the norm here. I quickly decided that particular company was not quite ready for agile development.
The Chicken Coop
This was a development room that had fairly small desks in rows. It felt cramped, the sound of pairing annoyed other teams and made it difficult to move around between stations where related work was being done. We inherited this office arrangement from previous occupants.
This great, custom set-up was created by the XP coach for us when we moved to our own space after the Chicken Coop. Our coach actually commissioned the facilities people to dismantle partitions between the desks and to build the semicircular pairing islands. There is an argument that this set-up doesn’t allow people to overhear and see what’s going on in other pairs. Personally, I’ve found that this setup allows plenty of room for moving around between pairing stations and plenty of whiteboarding room for big visible charts and design sketches. In my opinion, this is the best arrangement I’ve used.
A number of these desks are arranged so that they form a series of “islands” that stick out into the middle of the room. It’s important to note that we installed three or four whiteboards and several pinboards around the room as time went on. Here are a few pictures of the office:
Big blocks of desks
I believe that this is what Kent Beck was describing in “extreme programming explained”. This is about having a big block of desks in the middle of the room - on which the most powerful machines are placed. In “Extreme Programming Explained” (aka “The White Book”) Kent says that doing this tempts people who’re working on things to pair. “Cubbies” or other desks are placed around the perimeter of the area for reading email, researching things and for handling private matters.
Brain Battery Farms
This arrangement is very common in investment banks. Here each desk is quite large, often with dividers between facing desks. The desks often have drawers or pedestals that prevent two people from sitting together for pair programming. This arrangement often means that everyone on an entire floor have the same desk layout regardless of the arrangement of teams and the jobs done by different people within different teams. This arrangement practically assumes that people work as individuals despite the fact that most people work in groups.
Usually this arrangement is open plan, with acres of rows of desks backing onto each other. The result is that it isn’t possible to move around easily between pairs and it’s difficult to find anywhere to put up big visible charts or use a real, physical storyboard.To compound matters, the desks are often bolted to the floor. The building is usually architected with the idea that nobody would ever want to rearrange the office furniture as though the economies of scale fitting everyone in was more important than encouraging productivity.
It’s possible sometimes to make small wins in this situation by:
- removing the drawers sticking out from each desk (so that there’s enough room for pair programming), and
- locating the team next to a wall where a storyboard can be placed, and best of all
- removing the partitions between desks (so people can see and hear each other more clearly).
I only worked with this arrangement for a few weeks and it seems fine. It’s easy enough to move around although in this team’s case the bullpen was rather long and all the “big visible charts” were at one end of it. I think this setup is pretty effective but would work even better with a squarer or more circular-shaped area. The main reason I prefer the pairing islands arrangement is the way the powerful, dedicated pairing workstations stood out from personal machines, but I don’t see why a bullpen couldn’t have dedicated pairing stations too.
Simon Baker of Energized Work has a great picture of a bullpen in use.
Some lessons learned:
- It’s important to sit together so people can hear what’s going on and volunteer help when they can.
- Furniture and facilities on wheels that can be easily rearranged can really help.
- Hard floors and swivel chairs with wheels can really help people scoot around between workstations.
- A workspace with separate pairing machines that stand out can do a lot to encourage pair programming.
- Spaces for whiteboards, physical storyboards and for big, visible charts are important. Beware of expensive, fiddly, over-complicated electronic imitations.
InfoQ Article on Workspaces for Effective Agility
Joel Spolsky’s (okay not really conforming with the common agile “sit together” idea) take: The Bionic Office
You aren’t likely to find someone prepared to order custom-made “Pairing Islands” but most kinds of arrangements can be improved at least a little bit. In my experience the biggest indicator that a workspace is agile-friendly is the buzz of conversation, the Big Visible charts and the real, physical storyboard.
I’d like to thank Oliver Bye for permission to use his photographs of “The Chicken Coop” and of the “Pairing Islands”.