Best Seating Arrangement For a Team of Developers? 520
TekNullOG writes "I was given the job to prepare the logistics involved with moving our office. At the same time my bosses asked me to look into buying new desks for a small team of four developers and to consider if it could benefit the team to sit at a round table. In many offices and departments it increases productivity and makes collaboration easy. However, I am concerned that putting developers around a table could potentially be distracting consequently diminishing productivity by increasing coding errors. What are your thoughts?"
can we tag the article flamebait ? (Score:4, Insightful)
can we tag the article flamebait ?
Why not (Score:5, Insightful)
Re:Why not (Score:4, Insightful)
However, I am concerned that putting developers around a table could potentially be distracting consequently diminishing productivity by increasing coding errors.
I agree with parent, and have you considered that developers whose code quality is affected by seating arrangements relative to other developers might not be...um, the best developers? Otherwise, I'd say you might be overthinking the issue.
Isolation Doesn't Increase Productivity (Score:2, Insightful)
It's extremely helpful when programming to ask a colleague to borrow their eyes from time to time, or to help work out a tech design on a nearby whiteboard. Around a circular table keeps the side-by-side, where they can easily wheel over to a neighbor's station to help out.
Re:Why not (Score:5, Insightful)
I agree with parent, and have you considered that developers whose code quality is affected by seating arrangements relative to other developers might not be...um, the best developers?
That's pretty dumb. Of course having face-to-face exposure to other people will have definite effects on productivity, some of them positive, some negative. Being in close proximity to other people, being able to hear them sighing, muttering, seeing the expressions on their faces, this is going to have some kind of impact. We're geeks, not fucking aliens.
Best seating for 4 developer productivity? (Score:5, Insightful)
Wha? (Score:5, Insightful)
My suggestion is: encourage people to work in a central common area. Put a conference table there. Whiteboard. Snacks. Some stupid toy from ThinkGeek. But also give them a "home base" where they can check their email, make phone calls, have a little privacy. They need a place to recharge.
"Coding errors" are not the problem-- those are easy to fix, because they're mostly typos. "Thinking errors" are the real problem. So make sure that their thinking environment is conducive to correct thinking. Shit-- if more developers used their brains before they touched a keyboard, the world would be a better place. When they're done thinking, they can go back to their desks and hammer out the code, because that's what coding should be: brainless hammering.
Re:Why not (Score:5, Insightful)
No, you're underthinking it and ignoring the human element. Different people have different needs and react better to different environments. Some people hate noise. Others blare music in headphones. Some people multitask and deal with distractions well. Others can't. Some people like human interaction throughout the day. Others hate it.
It also depends on the task their doing. If the stuff they work on is closely interrelated, ease of communication may help improve productivity. If they aren't, increased distraction will likely reduce it- its pretty hard to concentrate on your work when 2 or 3 people around you are discussing something, code related or not.
The best situation I ever had was my last job- I had an office with an actual door I could close when I wanted privacy, next to a bunch of cubes where friends worked, so I could leave the door open and interact when I didn't (said interaction may or may not be code related).
Personally I would hate the round table idea though. Everyone needs some space to themselves for papers, books, pictures of the kids, etc and a round table just doesn't do that.
Use a square and face outward (Score:5, Insightful)
Cubicles (Score:3, Insightful)
Seriously.. a well designed cube farm is pretty nice..
Monitors should be positioned such that someone walking by can't see what's on the screen..
As a programmer.. I hate all this "open concept" stuff. If I want to talk to someone.. I can get up and go visit them. Little pow wows around someones cubicle are insanely common where I work.. and very effective. Anything bigger than 3 or 4 people.. go find an empty room somewhere...
Shared offices (Score:4, Insightful)
Offices with doors that close. Big whiteboard in each office. Couple of guest chairs. Two developers to each office. Desks on opposite sides of room so they aren't stuck elbow to elbow, but still can swivel and wheel over to the other.
I worked at one company that did this in their LA branch office. I was in NYC but flew out there a few times a year. Most productive setup I've seen. Physical layout offers quiet, respect for technologists, room for collaboration whether pair programming, "other set of eyes", or effective (as in small =5 people) meetings, prevention of "mismanagement by walking around".
Nobody will do it nowadays. Those offices are given to clueless middle managers instead.
NO. Creative work requires some feng shui (Score:1, Insightful)
as in, not placing people's backs facing empty spaces, doors, windows etc. these all disturb the psyche in a subconscious level because they will feel unsafe little by little, even if they dont feel it. (ie remnant of human species' instincts while we were living in wild - defense against predators)
facing someone else, seeing someone else's face also distracts. leave aside the potential annoyance they can create with their movements, mimics, music and whatnot.
you should pick the most comfortable and ergonomic chairs and monitor-desk setup, so that they can work longer without getting tired. research on computer usage ergonomy a bit on the net.
there is no need for 'face to face' collaboration. you will have either instant messengers, or some kind of intranet messenger already handy. or a chat environment. its easier to attend a chat conference than having to listen to other people. while 3 people is doing a live conference, 1 talks, the rest listen, not able to do anything else. but with chat or im, all can drop their opinion, respond to others' and multitask their work in the meantime. you do not need to wait someone else to vocalize a thought by long sentences.
blah blah blah.
Re:Non sense (Score:4, Insightful)
I'm actually working somewhere right now where evryone has their own office. I loved having an office myself, but with everyone having their own its just too quiet. No interaction, no way to get to know anyone. There has to be a happy medium between that and the cube farm.
An office (Score:4, Insightful)
Jesus God stop trying stupid shit just leave me in peace you fucks.
Re:What's an office? (Score:3, Insightful)
They're usually less clothed at the beach.
Re:What's an office? (Score:3, Insightful)
Why hooters? If you want live porn, go to a strip joint. If you want food, go to a better restaurant.
Aspergers much? (Score:3, Insightful)
Arthurian setup would suck for high functioning autistics. Sounds like a job for Temple Grandin.
Re:Non sense (Score:1, Insightful)
I second this, from experience. The only thing worse than having your team spread all across the building on different floors/areas (due to "lack of space"), is to have them all within one small area, constantly intruding on each others personal space and breaking each others concentration.
The team needs to sit close enough for small communication and ad-hoc meetings to happen easily, but the team members need to be separated enough from the surrounding distractions to be able to concentrate. I've seen a very good arrangement at IBM, where the cubicle walls were higher than human height, and had sliding doors. The worst arrangement is wall-less round-table or inverse round-table.
Backs to each other, table in center (Score:4, Insightful)
I once worked in a somewhat similar arrangement. We had L-shaped desks in a cross arrangement. Each person sat in one of the inside corners of the cross.
Pros:
- It was easy to talk to each other.
Cons:
- It was harder to look at the person across from you over the monitors
- If you ever wanted to show each other your code, one of you had to walk around the desk or roll around it in your chair.
That last one was the dealbreaker. It might be easier on a round table (but then each would have very little room for their stuff), but you'd have the same problem to talk to someone who is not right next to you: you'd still have to walk around your neighbors.
I'm currently working in another department with the same desks, but arranged as the outside of the square. Takes up about the same space but it is much easier to roll over to someone's desk and work with them. You can take your laptop if you want (and wifi permitting).
And let's face it, it's just as easy to turn around to talk to someone behind you as to someone next to you. And if they are wearing headphones they won't hear you either way. Add rolling chairs and anything but carpet and it's just as easy to take something to show them too. Even without the corner desks, you can set them up in two rows back to back and it still works.
You could add a small central table for quick meetings, but I prefer the back to back arrangement any day.
(And people tend not to slack off as much because someone might be looking over their shoulder :) )
Private Offices (Score:4, Insightful)
Re:Use a square and face outward (Score:3, Insightful)
This is basically our set up only we have 4 L-shaped desks in the middle of each wall since one of our corners is occupied by the door. It works out nicely. They get room for their two monitors and a bit of privacy, but if they need something, it's roll over to the guy you need to talk to and figure it out.
That being said, if you look at the code commits they do just as much from home from 10PM - 2AM as they do in the office from 11AM - 4PM.
In order of preference (Score:4, Insightful)
1 - office w/door, see joel on software for an example
2 - cubicles w/entries facing a common area
3 - bullpen, desks in middle of room
Above all, have the team and management agree on a daily 2 to 3hr 'core time' when there are no conversations, pages, phones, meetings, or other distractions.
If everybody buys into core time, the cubes vs. offices, etc. will become a non-issue.
Re:Why not (Score:5, Insightful)
I work under these conditions, and I'm looking for a new job. Unlike the other freaks on here, I do NOT like a work environment where I have zero privacy, where I get distracted every time someone walks by or a big crowd gathers around a neighboring engineer and has a loud conversation, and where I can't have a private phone conversation without everyone in my group hearing every word I say. Worse, this company has very few conference rooms, so it's frequently hard to find a private place to talk on the phone during breaks, and I end up in the hallway half the time (as do many other people).
Generally, the work I do is individual, though sometimes engineers will ask each other questions. I've worked in offices with standard cubicles before, and that arrangement is FAR preferable. It's not hard to stand up and go to someone else's cubicle if you have a quick question, and is good for your body too. Having a bit more privacy and quiet helps productivity immensely in people who are quiet and introverted by nature.
Generally, it's the stupid loud-mouth extroverted bosses who come up with these stupid seating plans, and think it's wonderful for productivity, yet they themselves have their own walled offices. Can you say "hypocrite"?
Re:Why not (Score:5, Insightful)
I agree with parent, and have you considered that developers whose code quality is affected by seating arrangements relative to other developers might not be...um, the best developers? Otherwise, I'd say you might be overthinking the issue.
Or maybe they are the best developers. Look up Asperger's syndrome.
And yes, ask them. Also, be prepared to possibly replace the desk(s) if it doesn't work out.
Re:Non sense (Score:2, Insightful)
If you have newbs that are learning to program, then they need interaction. Other than that, interaction with other programmers should be extremely brief...say 5 minutes. Your code should communicate what it's doing.
Re:Why not (Score:2, Insightful)
Re:Use a square and face outward (Score:3, Insightful)
Agree completely - I've sat in all sorts of office situations - shared a "private" office with other developers, individual cubes with high walls, low walls, etc. The best arrangement is the bullpen - 4 developers with their backs to one another but a circular table in between them. Its a great balance between privacy and being able to collaborate when they want to.
Work from home? (Score:3, Insightful)
Unless your boss is big on pair programming, hire competent people and save on a building.
As the comments re: blocking out background noise via headphones attest, frequent interruptions from co-workers do stress people out and destroy productivity. Skype/Jabber can substitute for brief chats. VNC can substitute for showing a problem on someone else's machine. Record incidents by screencast for bug reporting - Often far more productive being summoned to a co-worker's machine to view a problem that is then mysteriously not reproducible at that precise moment.
Having worked on a project with staff in multiple timezones I can relate that 'the process' is more important than cramming as many people into a physical location.
Oh, and commuting sucks. Flexible hours from home fit in better with modern family life than worker bees who leave home at 8am and return at 6pm. I for one would prefer the Spanish model of a mid-afternoon recharge...
Re:Distraction is healthy (Score:3, Insightful)
Re:Good plan (Score:5, Insightful)
There is some group goofing off that occurs, but no more so than any other work arrangement I have seen.
Best arrangement I have seen:
- 2, maximal 3 people per room
- large desks, large monitors
- keep it quiet, put some plants there
- make it easy to collaborate without interrupting people (e.g. Instant messages*)
- Block Youtube et. al., they eat your time
* Instant messengers allow you to signal when you want to be left alone, and the program postpones showing you incoming messages.
Re:can we tag the article flamebait ? (Score:3, Insightful)
I was expecting to see ASCII art of desk arrangements and floor plans.
Join the My Work program (Score:2, Insightful)
Re:Good plan (Score:4, Insightful)
Re:In order of preference (Score:3, Insightful)
Spartan is best to focus the mind (Score:5, Insightful)
Re:An office (Score:5, Insightful)
What the fuck is with these moronic companies that hire all these software engineers and then cheap out when it comes to physical plant? I mean, you must pay these guys 60-80k a year each, plus benefits. Figure 4 of them cost you 400k a year total, when you include cost of benefits.
Why in the hell would you want to cram them all into 100 square feet of bullpen shit cube space and waste at least a hundred thousand bucks a year worth of productivity? Lease expense for even the finest of office space is what, 30 bucks a square foot a year, so to give them 400 square feet of space (four 100 square foot offices) costs you at most an extra $9000 a year for the whole team in question.
That's about 2% of what you are spending on these 4 developers each year. It's a fricking rounding error. Shit, if it makes them happy and gets them to be even 5% more productive, it's well worth it. In reality, the difference between a non-productive, noisy office environment and a productive, happy quiet one is more like 50%-100% from my personal experience.
Re:Good plan (Score:3, Insightful)
Regarding instant messaging, you're quite right. We've established a few habits of when to try to be online, but in practice, most people have so many problems with random unwanted messages from random stalkers that they set themselves to invisible if the client allows it. Instant messaging benefits a lot from a fine-grained access model - 'I'd like my family to be able to see that I'm online except for the hours between 9 and 5; I'd like my co-workers to see me as online between 9 and 12 and 3 and 5; I'd like that creepy woman who nonetheless happens to be an important customer of ours to be unable to detect that I am online at all, unless I specifically have to be online for a meeting with her.'
Or, you know, have a separate account specifically for work.
Re:Why not (Score:5, Insightful)
Much (probably most) of my career I've had a private office and, compared to those times I was in a cubicle bay, I got more work and better quality work done in the office environment. Although, that may be not entirely due to the office vs. cubicle difference as the companies that gave offices to developers were also understood more about what developers needed to be productive - less PHB MBA crap and heavy handed IT rules etc.
The need for continuous collaboration suggests that interfaces are not well documented or perhaps even well defined and/or the system/feature architecture is not well thought out. It also suggests that too much information is "in people's heads" -- and hence the company will incur unnecessary expense if one or more people get hit (very hard) by a bus (or, I suppose, a buss) or leaves the company. This isn't to say some collaboration isn't necessary (certainly for brainstorming about design issues and for the occasional "WTF is this code trying to do and why?") - indeed, if no ad hoc collaboration is needed, I suspect that too much effort has been expended on design and documentation. There's a happy medium.
So, the answer to the original question is "Yes, every workspace needs to be surrounded by floor to ceiling walls except for a door that closes! I once worked at a company which was locating to new facilities which were being built out for us. The facilities folks decided that cubicles for all was the answer. The developers pretty much stood up and said "over our dead bodies" and in the end all developers had private offices except for very junior ones (this actually made some sense because the less experienced one is, I think the more likely one is to learn from "random chatter" vs. be distracted by it - the first discussion you overhear about cache coherency models is much more valuable than the 30th one). Funny thing was, I noticed that even the facilities folks mostly had their own offices in the end - even though they were the ones arguing that wasn't necessary and citing studies that cubicles were more productive!
Re:Why not (Score:3, Insightful)
How do you get your reptile brain to turn down the fight or flight response?
You don't - you just invoke the fight response and shoot the people behind you - problem solved.
Re:Non sense (Score:3, Insightful)
Re:Good plan (Score:1, Insightful)
Block Youtube et. al., they eat your time
I strongly disagree with this statement. Blocking should be done by the developers themselves, NOT as a decision from above.
Ask your team (Score:5, Insightful)
You want to know how to arrange your developers? Why in the world don't you just ask them? Why are you asking slashdot?
Your developers know their preferences and corporate culture better than a bunch of strangers on a web forum. And they will happily tell you what they think would be optimal and why.
I don't understand why it is so popular for managers to think that they can maximize the productivity of their team by ignoring input from the team. It is utterly ridiculous. What...are you hiring children? Bums off the street, perhaps? Retards? Or are you hiring intelligent, professional, problem-solving specialists who are predisposed to have an interest in effeciency?
Sheesh.
Re:Why not (Score:2, Insightful)
..."Unlike the other freaks on here, I do NOT like a work environment where I have zero privacy, where I get distracted every time someone walks by or a big crowd gathers around a neighboring engineer and has a loud conversation, and where I can't have a private phone conversation without everyone in my group hearing every word I say."
I generally agree -- over several decades, most of my projects were implemented by small groups, where personal space is important. Much to my surprise, however, I found that a group room worked very well on one large project. Mind you, the reason it worked may have been project specific, but for what it's worth:
It was a big integration project, with both infrastructure and application people needing immediate problem resolution -- about 30 developers total. We set up a LARGE conference room with a U of tables around three sides. There were a couple of tables in the front for meeting leaders (for the infrequent meetings and conference calls) and, just as importantly, extra stragglers.
The groups arranged themselves informally around the U, with related team members close to each other for quick-over-the-shoulder consultation, and with the other groups in easy reach for cross-disciplinary issues. There was little management 'interference' (though, of course, they checked in), 'cause they trusted the teams to work out the details.
Through many previous (and smaller) projects, I've preferred to work alone, and I was surprised at how well this worked out. We spent about three months at 10-12 hours a day (yes, five days a week, so we could decompress), and much to my eremitic amazement, even I felt that this arrangement worked very well for a project that was complex and reaching deadline.
Thoughts on arrangement: First, no close face-to-face stuff. We had about 20 feet between opposing sides of the U, so this was a non-issue. Secondly: no back-to-back (classroom style). This not only leads to looking-over-your-shoulder syndrome, but also a reduced face-to-face invitation for collaboration.
Circular Tables are Bad... (Score:3, Insightful)
I have been working with a team of 3-6 developers for quite some time. Recently we moved offices and ended up sitting around a big round table; and our productivity went to hell as a result. It didn't take very long before the team scattered, with many people working from coffee shops or home, and the remaining devs claiming vacant desks.
The problem is that development is done in two phases: You work with others to develop a plan, and then run off and get into "the zone" and get stuff done. The problem with "the zone" is that it is very fragile, and so all it takes is hearing two devs laughing about something through your headphones and now you aren't working either.
In other words, putting all the devs tightly packed together all day means that every time one dev is distracted for any little reason, suddenly they all become distracted.
If your dev team is important to your company's product and/or revenue, do everyone a favor and give them each an office with a window, as well as a common room to "hang out" in when they need to collaborate.
Re:Non sense (Score:3, Insightful)
"Having separate offices does not in anyway cut down of non-work related conversations. "
It does cut down on person A's chat with person B interrupting and annoying person C. The problem with groups of people together is that any two talking are interrupting the entire group.
I could never get anything done in a setup like that, you can have my office door when you pry it from my cold, dead hand.