VersionOne is moving offices this year, so we’ve been
thinking about our requirements for the office. Besides making sure that everyone has their own stapler, we had a few
other interesting ideas. The two ideas
that I’ve spent the most time thinking about are:
- As a developer, I’d like to be able to work outside, so I can enjoy the work more.
- As a scrum master, I’d like the configuration to promote collaboration, so my team can communicate effectively.
Working Outside
Wow, you have a great tan. Are you a lifeguard? No, actually I’m a software developer.
It’s mid-March and the high for
Let’s look at the building first. The team needs a grassy patch of considerable
size because no one wants to go outside and then hang out in a parking lot on a
slab of hot concrete. Ideally, the team
should be located on the ground floor as well. A ground floor office suite would allow the transition time for moving
outside to be much lower and annoy your neighbors less. Imagine someone sitting on the ground floor
working inside, while you were working outside right next to them. Talk about rubbing it in! If your neighbors are on higher floors, at
least they can tell themselves that the only reason you’ve been able to make it
happen is because you’re on the ground floor. The last important building requirement is access to power. The building will need to have a power outlet
on the outside, or a seldom used door through which you can run extension
cord(s).
The last major hurdle is making sure the team can be just as effective once they get outside. Although getting a grill and throwing a couple of shrimps on the bar-b isn’t a bad idea, our goal is to work outside. We need an Agile Desktop.
Agile Desktop
An agile desktop is a self contained workstation that has everything necessary for a development team member and can be easily moved by a single person. A sturdy desk on castors is an essential element to an agile desktop. I scoured the internet looking desks that had castors and dimensions around 60” by 30”. Personally, I’d feel cramped on anything smaller and anything bigger would be too cumbersome to move. The link above is the only desk I was found that fit those requirements, so there appears to be a large opportunity for a furniture maker if agile desktops gain widespread acceptance. Here are some other features that should be included in an agile desktop:
- A UPS so the desktop can be moved while not connected to power without having to reboot.
- An integrated power strip with a generous supply of outlets.
- A way to secure a desktop computer.
- A way to secure the UPS.
- An unattached rolling file cabinet so a team member has a place to store their TPS reports.
The agile desktop will need to have connections to power, the network, and telecommunications. The power connection obviously requires a cord, but the other connections may not. A wireless network provides the capability to still be connected to the office network. In most cases, the only significant performance degradation from wireless occurs when transferring data within the LAN. Phones in the work place are on the road to extinction. Skype and/or SkypeIn can provide for most of a development team member’s telecommunications needs and costs much less than a traditional phone system.
Promoting
Collaboration
Does anyone out there know of the best office configuration for an agile software team? Searching the web, I was unable to find helpful diagrams of agile office configurations except for a couple of references to the XP caves and commons configuration. Alistair Cockburn does provide some excellent guiding principals in Agile Software Development, but I’d love to see a more practical guide on configuring environments for different sizes of agile development teams.
With the absence of clear best practices for desk
configurations, the Agile Desktop comes to the rescue once again. Instead of doing all of the office planning
up front, when you have the least amount of information, create an environment
that the team can easily adapt to fit its needs. Using an Agile Desktop, the team can
experiment with different configurations and determine what works best. Also, the team can easily incorporate new
members or members that are usually remote, but come into the office for short
periods.
Did I mention that the Agile Desktop makes it easier to move the whole team outside too? Okay. I admit it. I’ve spent most of my time thinking about working outside and how I can sell it to management. The agile desktop promotes collaboration and allows the team to setup up work environments that meet its needs. We all need some natural Vitamin D every once in a while!
In my experience you wouldn't be able to see your LCD screen if it's sunny outside. Have LCDs improved since I last tried this?
Posted by: Ian Fraser | Thursday, March 22, 2007 at 01:31 PM
wow... I can't help but point out the obvious: laptops and VM's. I can work effectively from my laptop from a coffee shop using a simple Remote Desktop solution. You can use "GoToMyPC" to collaborate on one screen even when you're not in the same zipcode. Obviously, to be truly productive, you'd need your "work space" but that doesn't necessarily mean you need to move the whole desk. I bet you have all your stories in digital format (VersionOne?) so you won't need to move the physical cards. I'd say a good, strong wireless and some outdoor power and you should be pretty much set. The most effective desk configuration for agile development is a simple 4x8 table with two programmers per keyboard. I'd skip the rolling desk and get a nice, large rolling cart instead (that way, should it rain, you can get everything inside the cart quickly). Replace your desktops with laptops and a good, powerful VM server. Get some comfortable chairs that can be hosed off and don't forget about a dozen hacky sacks (they wear out fast)
Posted by: Rusty | Sunday, May 06, 2007 at 10:24 PM