In Agile Software Development, there is a strong focus on collaboration. Sending emails back and forth just doesn’t cut it, and weekly meetings are enough. Offices and cubicles can often stifle communication because there are physical barriers in the way of communication.
My team works in a single conference room with tables grouped together in the center. Each person has a table as a desk, but all the tables touch and form a large rectangle (all the wires go in the middle). When a conversation is going on, even non-participants can hear, and often a non-participant can correct a misconception or challenge an assumption. Having everyone physically together all the time helps keep momentum going. We have 96 sq feet of white board space, but we are getting some more so that every wall is covered in whiteboard – 288 sq ft.
Having everyone together also aids in pairing because pairing can be initiated at any time with great ease. We use VNC for pairing, and that allows us to remain comfortable with a dedicated keyboard, mouse, and display. The alternative would be rigging two of each to a single computer, and the setup and teardown of this configuration takes time. Using VNC, we can share a workstation instantly.
Meetings should be able to be initiated at any time. Don’t wait for a conference room to become available. Any time any member is waiting on something, it’s a blocking scenario. If someone is blocked, their time is being wasted, and the company is ultimately loosing money – work is hindered – productivity minimized. Finding a meeting room is a blocker. My team works _in_ a meeting room, so when we need to talk, we talk. If we need to do some modeling, we just start drawing on the whiteboard.
Many organizations have environments that directly kill productivity. If you have to schedule meetings in advance. . . if you ever find a whiteboard moment and have to search for a marker. . . you are wasting productivity. Most of the time, management thinks that more meeting space and ample office supplies would cost unnecessary money, but they forget that their biggest business expense is payroll.
The IT infrastructure of the company can also be a blocker, and management is usually the only entity that has the authority to correct this: there is often politics involved. Organizations where server admins are shared among project teams are just asking for trouble. Invariably, the server admin is always working “on the other guy’s project”. A software product team can achieve maximum velocity while server resources aren’t adequate. Other IT policies can get in the way as well: If every interesting website on the Internet is blocked by a proxy, a valuable development resource is likely to be blocked as well. Did you know that some software shops have _newgroups_ blocked!
Continue reading about this topic with an essay from AgileModeling.com on “Organizing an Agile Modeling Room“