VMware Infrastructure 3 Book Excerpt and Author Interview
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
Tracking change and innovation in the enterprise software development community

Posted by Deborah Hartmann on Jul 24, 2007 11:20 AM
Many think that Agile teams all work in “common rooms", but the truth is not so simple. We forget that the classic XP teamroom layout was called “caves and commons” and it explicitly recommended that people have access to some personal space, as well. Teams find out fast enough that some of the facilities and creature comforts left behind in our former traditional spaces were there for good reasons. When working with Agile, working close together and without interruption, it's more important than ever to affirm the needs of human beings for healthy and effective workspaces. To that end, this article shares the collected wisdom of dozens of teams, as collected by several experienced Agile coaches.
The Agile Business Analyst: Skills and Techniques needed for Agile
Six Free Project Management Certification Training Courses
IBM software architect eKit: Grady Booch podcast, whitepapers, articles
Scaling Agile on large teams & Being Agile every day Tracks @ QCon SF Nov 19-21
Gamma's Jazz platform's first implementation: Rational Team Concert (Trial Download)
Over time, traditional software teams can become oblivious to the time they dedicate to activities like making meeting invitations, reviewing email, looking for meeting rooms, and waiting for stragglers to finally arrive. These are the necessary evils of teamwork in large organizations. However as teams move toward a fully Agile approach, these inconveniences are raised to the level of major obstacles:
You don’t want to have to wait to find a meeting room that’s available in order to get some modeling done. You don’t want to have to worry about somebody erasing your whiteboards, or throwing your index cards in the garbage. I’ve worked in several companies where there was a severe shortage of space, where we would have to wait for days to find meeting rooms. Progress ground to a halt.
-- Scott Ambler [1]
Our Agile Team Room Wishlist
Note that there are other ways of accomplishing the underlying goals; we can pursue other alternatives if we cannot have these ideal conditions.
Prepared by Joe Little of Kittyhawk Consulting [3], with ideas contributed by many (you know who you are).
- Room size: In one successful case, we had 9 monitors/docking stations (for laptops) set up in a room with a “maximum occupancy” of 20 people. The room is rather large and gives space for people to “live” together for an extended period. This seems about right and comfortable for a team that is almost 100% dedicated (ie, in the room most of the day).
- Team Privacy: privacy from, say, hall traffic. Constant outside noise distracts and stresses the team; this also suggests that team conversations are carrying outside the team room, not a good idea.
- Individual Privacy: Ensure there is a place to make personal phone calls or do sensitive work (ex: filing a health claim or writing a performance review).
- Light, Ventilation: the needs for these are much greater when the Team is in the room all the time.
- Fans: Teams want these for when the A/C goes out, which has happened again recently.
- Creative Space: This is hard one to describe, but important. At a minimum, the space should not be dull and depressing. Ideally the colors and other aspects should support creativity.
- Docking Stations: The docking stations add value, but also take up room. They need to work with all, not just some, of the team's laptops, and must have network connectivity. Think through exactly what the new team will need in advance.
- For teams using pair programming: we recommend large (23 inch) flatscreen monitors, connected to the docking stations.
- White Boards: The room should be covered with whiteboards. Magnetic whiteboards are expensive, but quite key. Obviously whiteboards require markers and erasers.
- Need at least 300 tiny multi-colored magnets.
- Flip Charts and stand: preferably with large “post-it note” paper, and space in the room for it.
- Polycom speaker phone: maybe two (if a large room).
- Land lines: several phones to allow people to make and receive phone calls, with speaker phone capability.
- Placement of phones should be balanced: at least two of the phones should be placed on the center table, others at the “edges” of the people space.
- Cards: Start with 400 cards in multiple colors. (25% should be 4x6”, the rest 3x5”)
- Outlets: We need network access (via the docking stations), outlets for land lines, and. electrical outlets.
- Remember that people will move around, we need more outlets than people.
- There are cheap ways to protect the team from tripping on cords running to a central table.
- Tables: A mixture of small and large tables (or small tables that can easily be put together). Usually arranged as one big table (for 6-8 people) in the middle, and several small tables around. One small round table, for small adhoc meetings of 2-3 people.
- Large Wall Clock: so all can see when the stand-up will start or when meetings will reconvene.
- Wireless Internet: so visitors from other departments can connect.
- Printer: A good laser printer should be in the room, or very close, including paper up to 11x17.
- Small Conference Rooms: either: (a) a quiet space within the Team room for conferences (eg, provide more space or one adjacent with low walls) – this works if it is a very large room compared to team size, or (b) two small conference rooms very nearby that are dedicated to the team.
- Place to hang coats and leave outer footwear (in winter).
- Space for storage of personal stuff.: could be under-desk filing cabinets or a large horizontal filing cabinet.
- More of this is necessary with contractors or other “mobile” team members who have nowhere else to put their things.
- Desktop PC: that can be used for miscellaneous purposes (developer testing, integration of code, etc).
- Calendars: a few big calendars (monthly views) that can be written on.
- Digital Camera: saves lots on documentation time. Can be shared with another near-by team. Must be easy to download pictures to the laptop.
- Small Fridge – A small refrigerator in the room (or nearby) where cold water and soda is stored.
It's just not worth it to have a high-performance team hampered by a poor workstation setup.
-- Mishkin Berteig [2]
I’ve seen lack of basic resources such as decent chairs, tables, food, drink, and top-notch workstations dramatically hamper software development efforts. If your project team is being nickel-and-dimed to death then I have to question if your project is important to your organization – if it isn’t, cancel it now and invest your efforts on something more productive.
-- Scott Ambler [4]
Deborah One thing my current company have is a computer in every meeting room with projector and network connection. It means that if we decide halfway through a meeting that we need a computer, someone can discreetly boot it up whilst the conversation continues rather than stop so someone can go from the room and get a laptop, fiddle under the table with wires etc etc. It seemed decadent to begin with but definitely a cost saver in the long run. Docking stations for monitors but wi-fi for networks. The key thing is to avoid the furniture/networks police whenever you want to move something/someone. That way the team can tune the area. For Agile 2007 I have tried to contact Herman Miller and get them to send a designer into the Open Space. The idea being for them to design "Agile friendly" furniture... desks with wheels for example. Unfortunately they haven't got back to me and I've run out of time. Love to see an open space on the topic. Chris
Hi Chris. > Docking stations for monitors but wi-fi for networks. I totally agree - wired network connections are a big hassle for a team that doesn't know how it wants to work yet. Wifi is a huge benefit - teams can think about the work and get on with it, wherever. > design "Agile friendly" furniture Steelcase has done this, from what I can see. But it's SO incredibly pricey! A thin steel rail and some light weight whiteboard panels to hang on it, just an 8-foot length, ranged around $800 last time I checked! But the flexibility of taking a panel to your desk, the conference room, then returning and putting it in your workspace... nice. They have small modular tables - for example, a small oval one about 1x3 feet, that rolls under a desk when not used. You pull it out when you need to have a 2-person conversation and need somewhere to put a piece of paper. The steelcase stuff is perfect for Agile - if you have unlimitede budget. I can't imagine Herman Miller would be *less* expensive :-) I've had the same idea as you... but is there a "do the simplest thing" designer we could team with to get some more pragmatically-priced furniture made?
One alternative to a digital camera for those magnetic whiteboards is a digital copyboard such as the Plus M-11W. We have two of them; they're essentially a whiteboard on a conveyor belt that feeds through a linear array scanner. You can use regular whiteboard markers to draw on them, and they can send their output to a colour inkjet printer or to a USB key. On our "to do someday" list would be running a USB cable over to our Wiki server and rigging the copyboards to post their contents to the Wiki at the press of a button. The down side: they're more expensive than regular magnetic whiteboards. You can wall mount them, but we have ours on floor stands with casters, which we can roll over to a boardroom or to the agile modeling area.
A great piece of software is whiteboard photo. It is a little pricey but well worth it. It takes a normal 3D photo of a whiteboard and cleans it and transforms it into a much more readable 2D image.
My new tiny Casio camera has a "whiteboard" setting. They do seem to come out pretty white (I've not shot many yet) - and it will crop the photo to include only the whiteboard, right in the camera (optional). Kewl!
I've never worked in a workspace as elaborate as that described in Joseph Little's list - although it sounds great!
This is a very useful article about an a topic that is not discussed enough. Is there any experimental evidence out there that we can use to sell our clients?
I saw a BBC documentary a few weeks ago that showed both Google and Microsoft have moved toward such workspaces. (They have $$$$ )
Finally, if I could only choose one idea from this list it would be:
Any formula you create should focus on the goals, the needs to be met, not the means.
So what, if I may ask, are the Goals of the collaborative workspace?
> what... are the Goals of the collaborative workspace?
At the highest level, the workspace serves team's goal, so: frequent delivery of working software. Of course, this requires a healthy team and effective process. Also, sometimes there are corollory goals like: create a visible case study for other teams considering Agile.
Keeping the team's overarching goals in mind (and I do think it's important to flesh these out early, perhaps using Managment Tests), Mishkin's list above offers a good way to measure the appropriateness of particular aspects of the space. Here I offer some paraphases:
I think a list of reminders is helpful because we all too often focus solely on the "collaboration" aspect, and sometimes not even that - we'll take any space without dividers, even if there is no sensible way to put up information radiators.
I'd tend to take a "sliders" or "dials" approach to this list: for our own team, which of these aspects are we most concerned about? On which other items are we willing to compromise in order to "dial up" the important ones? This gives some structure to a discussion with facilities management, and offers them a way to collaborate with us because they understand our objectives, rather than saying "no" to our specific requests.
In Jan 2007 the team I was working with as the Scrum Master decided to move into a team room. The room is a conference room and we do have some windows to the rest of the 'cube farm'. The conference room is designed for a meeting w/ up to 14 people. The room started out with six people in it. And it was feeling pretty full. When we had eight people in the room, with dual monitors, laptops or desktop computers, phones, etc, the room became unmanageable. In fact, the team spirit broke down. We had two people basically check out of the team. One checked back in later. The team really did not gel. Also remember most prisoners in the USA get between 40 and 80 sq ft of living space.
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
Can a system that is so large it cannot be comprehended be "designed" in a conventional sense? The foundations of computing are about to change. In this talk, Richard P. Gabriel explores why and how.
Ruby 1.9's Fibers and non-blocking I/O are getting more attention - we talked to Mohammad A. Ali of the NeverBlock project and Tony Arcieri of the Revactor project.
Tim Mackinnon talks about the aspirations behind the Agile principles and practices, the desire to become efficient, to write quality code which does not end up being thrown away.
Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, STM, concurrency, alternatives to threads, Erlang, Scala.
Often the hardest part of changing technologies is language syntax differences. This new article provides Java developers with a transition guide to Actionscript which forms the foundation of Flex.
Neal Ford talks about having multiple languages running on one of the two major platforms: Java and .NET. He also presents the advantages offered by Ruby compared to static languages like Java or C#.
David Anderson talks about the history of Agile, the current status of it and his vision for the future. The role of Agile consists in finding ways to implement its principles.
8 comments
Reply