Trendy technology companies love the open plan office. From Atlassian to Facebook, Twitter to Zynga, they’ve all recently built beautiful open plan offices. More traditional tech companies such as LinkedIn and eBay favour the clustered cubicle approach. One trendy tech company that stands out amongst the open plan and cubicle loving crowd is Campaign Monitor, check out their office:
While the open plan office is lovely to look at I fear that it may be a recipe for disaster when it comes to collaboration amongst software development teams. And I believe teams working in amongst cubicles face a similar problem.
For instance, have you ever seen a team look for or book a room when an ad hoc conversation would suffice? Ever seen an individual wearing headphones to drown out the background noise and allow them to focus? Yep, me too. This is common in an open plan office and unfortunately this behaviour stifles the collaboration that a team requires to attain optimum performance.
The most effective team I had the pleasure of working with was isolated in their own room, free to chat as a team, hop up and use the whiteboard, play music in the afternoon, and generally bond as a team. They could do all this without disturbing any other team. Thinking back to that team and their environment, and looking at some of the problems I’ve experienced recently with open plan offices, I decided it was time to explore the ideal agile team workspace.
First, let’s step back. To have an ideal agile team workspace you need to have an ideal agile team. That means a cross-functional team of no more than ten people – you know the adage ‘seven plus or minus two’. While I’ve seen larger teams work together effectively I don’t believe the collaboration and camaraderie exists at that size.
Second, budget shouldn’t constrain this approach. While every company will have a different budget for the office fit-out I believe the basics can be in place for little more than an open plan office – and don’t forget, the benefits of having high performing teams will well and truly outweigh the cost of an office fit-out over the long run.
Let’s take a look at what we need to get right to provide a foundation for building high performance teams.
Room
Clearly we want some space. We don’t need people sitting on top of one another unless they are pairing. This space allows team members to quickly swivel their chairs into the centre of the room to have a conversation or ask a quick question – Has anyone seen this bug before? Product Owner, what did you expect to happen in this situation?
Standing desks allow people to stretch their legs and continue to work. I often see people spend an hour or two at a standing desk before returning to their seat.
At one end we’ve got a conference table and a whiteboard. Whether you’re working through something with another team member or having a chat with the customer via the phone this is a great place collaborate. There is also a chair to recline in if someone is working on a laptop and a mini fridge as well. Which, let’s be honest, is a bit of an extravagance, although one can always dream.
In the corner north of the whiteboard there is the wallboard – think JIRA issues, Bamboo build metrics, open Stash pull requests, product analytics, etc.
Finally, there are a few plants dotted around the room to keep the place feeling alive and fresh.
Lighting
Occasionally a contentious issue, hopefully not too bad. My personal preference is for lots of light, which means you need monitors that are anti-glare. I’ve often found that designers prefer a darker space and if you encounter similar try to accommodate them by placing them further from the windows.
Remote Team Members
Let’s face it, this happens. Whether you’ve got a product owner on-site with a customer for a week or an engineer working from home for the day you still want to be able to include them in team activities like the daily standup. Make it easy by having a decent desk phone and perhaps consider a remote video feed on the monitor for those activities.
Pros and Cons
I believe a room such as that above will solve those two key problems which are a barrier to high performance teams, namely the individuals putting on headphones to drown out the background noise and the inability to have a quick ad hoc conversation.
I asked Dave Elkan, an exemplary engineer from Atlassian, to play devils advocate on the proposal above and he raised the following questions:
- Could a company attain similar results without a complete remodel of the office?
- How do you scale the teams?
- What impact will this have on cross team collaboration and communication?
- What open spaces will you have for people to interact?
Unfortunately I am not sure of the answers to these great questions, although I’d love to give the workspace a shot and see how it fares!
What would your ideal agile team workspace look like? Draw it and Tweet or email me. I’ll include a selection of your ideal agile team workspaces in a follow up post.
Inspiration
Thanks to the articles below for helping me obtain a better understanding of what has been tried previously.
- Supporting Agile Software Development with Agile Team Space
- Agile for the Invtrovert
- How to create an open office that is more awesome for both introverts and extroverts
- Agile Office Spaces
- The Ideal Agile Workspace
- Team Workspaces
- A Recipe for an Agile Team Space
- Great Agile Workspaces: The Physical Environment
Building an Ideal Agile Team Workspace http://t.co/jYikDE47Iz
— Velocity Counts (@VelocityCounts) January 14, 2014
I’ve had the displeasure of having worked in the kind of an office that’s suggested in the picture. We tried it for a week to please our manager who had this exact idea, but then told him no and rearranged the seating to have more private workspaces.
In our experience there were two inherent flaws in this design: we felt exposed and vulnerable.
Firstly, people who want to talk to you are approaching you from behind, and if you are using headphones (which IMO is not a bad thing even if the workspace isn’t noisy), or are very focused at the task at hand, you might not necessarily notice them until they startle you. Once you’ve been startled you start to look over your shoulder every time you hear someone entering the room or approaching your desk, and boom there goes the concentration again.
Secondly, all the things you have on your screen are there for everyone to see, be it your team mate, the CEO or the cleaning lady. That may prevent you from browsing reddit or Facebook during work hours, but it also can hinder the creative work whether it’s coding, doing research, doing graphical material, slide shows or whatever. This kind of setting is basically begging for people to take a glance at your screen when passing by, and in the worst case commenting on something that’s not yet finished or not meant to be looked at by others.
For instance, I was toying around with some code to get a grasp of which class design would suit my needs the best, when our senior programmer happened to see it and came over to ask if I had problems and needed help. He wasn’t being a jerk in any way, meant well and simply misunderstood what he was seeing on my screen (me not knowing what to do vs. me toying with different approaches before settling to one. That’s just how I work.). I didn’t take offense, but he distracted me and I had to start focusing again. Others experienced this as well from various people who entered our room. What that lead to in the end was that our trainees started to be afraid to google for algorithm examples or other coding stuff in the fear of someone noticing and thinking “those guys don’t know what they’re doing”, and our UI designer was frustrated because our PO always had suggestions and comments on unfinished designs. Mind you, no one meant to do any harm, no one meant to be nosy or rude and no one meant to distract anybody. It’s just that people tend to be curious and tend to act without thinking.
What we did was that we just pushed the tables off the wall about a meter and sat facing the room instead of facing the wall. In that way we could easily interact with anybody we wanted face to face immediately, saw immediately who came into our room or approached our desks and had some privacy for our screens. Things got a lot more peaceful and productive after that for everyone. Oh, and we also talked our boss to invest in motorized desks. Those are an absolute joy.
Thanks for sharing, that is great context for another common approach.
Cheers,
Nick
I have this layout right now. To answer your intra-team question, the way we did this was by putting half-walls between the teams. We can’t hear what they’re saying unless they’re speaking clearly, but we can easily call over the wall with a “Are you guys seeing these exceptions in the production logs?!”
Ironically, even though “NS” was clearly against this layout–even before he tried it–he points out several benefits of the layout:
* A senior engineer saw he was struggling and frustrated, and stopped by.
* The UI person was able to make improvements in real time as he saw it coming together, not waiting until hours and hours have been spent locking in the design. /Nobody/ likes redoing CSS.
This layout encourages you to turn around and collaborate. “Hey, what do you think about this?” “What if we did that?” “OK team, we need this deployed by noon. Joe, get the admins on the horn, Jane get the DBAs, I’ll get the build artifacts into version control. Go!”
Another tweak that some teams have done is a long thin (~2-3′) table that’s able to be written on with markers in the middle instead of the round table in your design. Takes the place of a whiteboard when wall space is precious/unavailable.
Agile might work at a small level, with teams that truly work closely together, maybe, but overall it is a pain in the butt. Most teams don’t work that close together. I am heads down my computer all day, I don’t need people seating across from me chatting or being a distraction, It doesn’t matter if it is about work or casual. It is an interruption to my work. Plus, if i need to speak to someone, I can IM them, phone them, email them, call a meeting, and/or, yes go to their desk. They don’t need to be sitting next to me. Many of people work remote and/or on other sites, which makes agile meaningless/useless. I like having my own space. Having my own cube lets me put up pictures, personalize my space, it blocks noise, keeps my calls more private, and allows me to focus better. these aren’t little thing, its a reason to stay or leave a job. I’ve done this agile thing before, and was not impressed, and the day I moved on from that environment, work got a lot better. You may call it trendy, but it is just a trend, that hopefully goes away.