Best Seating Arrangement For a Team of Developers?
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 ?
ask them, what they feel like would work for them?
I bet your programmers would be most efficient with a laptop on the beach, I bet they would even volunteer to work late.
The best arrangement is to lay them out as a fractal a la Sierpinski carpet. Produces a decent tight packing and ensures that you are able to maximize your space. Other options that came to mind are if you have curved desks you could arrange them in a 69 fashion. Or get desks of different dimensions... some square, some straight, a few L-shaped ones. Then you could make the developers arrange their desks daily in a game of office Tetris.
Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
This is an awful idea. I've been in that situation, not quite a round table, but 5 guys in the same room. It's a great way to not get shit done, and have a lot of conversations about the latest MMO. At that time it was Everquest. I guess it'd be Starcraft now.
In addition, the foul odors emitted in that room were quite offensive. The farting, sweating, lack of showering...etc.... The best configuration for programmers is individual offices.
There are scientific studies that show significantly increased productivity by giving each developer their own office with a door they can close. Interruptions and distractions can torpedo productivity. These are mentioned, for example, in Steve McConnell's book, Rapid Development.
The agile crowd claims that having all the developers together increases productivity because you might overhear a conversation and be able to contribute something of use. In support of this they cite only personal impressions and anecdotal evidence. I know of not a single scientific study that supports their claim.
4 windowless offices with 4 closed doors, all adjacent to each other. If they need to discuss, they can email or walk next door. Most of the "eXtreme Programming" techniques are things that good developers have been doing forever (like refactoring), but team programing is bullshit -- and if you really need to do that, you have a guest chair in every office.
I've abandoned my search for truth; now I'm just looking for some useful delusions.
Fuck your bosses. People do code better in teams-- they just plain think better in teams. But you're going to burn them out if you force them to sit in circles.
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.
Had this exact situation. Use a square bull pen arrangement with work surfaces around the inside of the square. Put a single round table in the middle for collaborative meeting/discussions. Put the workstations in the 4 corners of the square facing outwards. The programmers get their privacy but are still working in a group. (entrance to the area is through an opening in one side of the square.)
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.
Yes the fad are Agile teams that all sit next to one another... but people tend to forget you will be down 1 FTE regularly because you all sneeze and cough on each other. Sickness runs rampant in those rooms... particularly if you have someone who is not hygienic in the group.
Jesus God stop trying stupid shit just leave me in peace you fucks.
<xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
Completely agree. Need private office with a collaboration area or lab. In 27 years of sw engineering, that was the best, most productive setup. The team would congregate in the lab every day for an hour or two, but when we really needed to buckle down and seriously code, the private office was great.
Arthurian setup would suck for high functioning autistics. Sounds like a job for Temple Grandin.
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 :) )
I am a developer, and I work under these exact conditions. We have two banks of desks grouped together in the middle of a open room. It is very conducive to collaboration, and it can get noisy when people get going. There is some group goofing off that occurs, but no more so than any other work arrangement I have seen. Most of us have some headphones, and so getting some quiet to focus inst really a problem.
HA! I just wasted some of your bandwidth with a frivolous sig!
I'm with Joel Spolsky on this one. Private offices. If you can't swing that, *please* do not do the round table. Programmers need to concentrate! Some here here.
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.
To put a witty saying into 120 characters, jst rmv ll th vwls.
This doesn't have to do with management or efficiency due to social interaction, but do NOT use a round table like you mentioned in the article. Have you ever worked at a table that's round? Try it. There's a reason desks are RECTANGULAR. Your arms can't be supported on a circular table because the section under your elbows is missing due to the geometry of a circle. It sucks and causes massive arm pain. I don't care how efficient it makes your developers, your productivity will drop like a fucking stone if they're constantly bothered by pain in their arms.
Use a RECTANGULAR table if you want to fit 4 or more people around a desk.
-1 disagree is not a modifier for a reason. -1 troll, flaimbait, redundant, overrated are NOT acceptable substitutes.
If you want to be productive, buy and read the book. Better buy two copies and give one to your manager to read.
I think the ideal arrangement is a C3000 max config blade cluster tower driving 8 40" LCD displays. Preferably seating would be a motorized recliner with six degrees of freedom. There should be sufficient audio facilities to provide a pleasant working environment for the programmer. This setup should be arranged on a well lit patio next to a heated indoor pool. There should be plenty of staff to bring refreshments, fresh towels, and printouts. For ad-hoc diagrams some "sidewalk chalk" can be handy.
Help stamp out iliturcy.
I've worked in quite a few different situations over the years, both as a developer and developer/manager:
a) a shared trestle table with 6 programmers facing across each other in pairs
b) a private office in a group of 8 offices surrounding a common area with couches and floor-to-ceiling whiteboards
c) a low bench in the back of a semi-trailer on a folding chair (luckily only for a week of 14-hour days)
d) a shared office with one other person
e) a regular private office
f) a shared office with three other people
g) a standard 6' high cubicle farm with your back to the 'door' on busy aisles, next to the creative department with 'open plan' tables, 4 to a 'pod' all facing the center
By FAR the best situation was b). The doors and half the wall facing the common area were glass with blinds. You could leave the door open and blinds up if you felt like being 'part of the community', or you could close the blinds and the door and turn on some music - without headphones - to focus for as long as you wanted. Discussions were held in someone's office or taken out to the common area for more of a group discussion.
The shared offices weren't bad, as you'd establish a rapport with your office mate(s) and come to some understanding of how your mate(s) worked.
The worst is the situation I'm in now - the cubicle farm next to the 'open-plan' teams. There's random noise all day, people having meetings in their cubicles or on the phone all day with customers. The only way to focus is to put on studio headphones and crank up the volume, and then you end up with people standing behind you in the cubicle talking at you for five minutes before you realize they're even there.
And since it's all open, everyone feels free to shout questions to each other over the cubicle walls instead of sending an IM, walking over to ask a question quietly, or take the discussion to a meeting room. And having a conversation with one of your direct reports means scheduling a meeting room or standing out in the hall outside the office.
Needless to say, I get at least twice as much done in a given period when I work at home. The dev team is always coming up with new excuses to work from home. And, of course, senior management, who all have nice window offices, can't understand how it could be difficult to work in that environment.
That's easy, the best seating arrangement is in a ring around my desk with their backs turned towards me so I can watch their monitors, at all times, and make sure they aren't doing anything other than coding. The best seats are backless stools with only one or two legs so they can't relax/loose focus without falling over.
WHAT!? My employees love me!
Rules of Conduct:
#1 - The DM is always right.
#2 - If the DM is wrong, see rule #1
Having gone through many office arrangement fads in the last 15 years, the one thing that consistently works, when management is good, is pretty much standard cubes or offices.
Collaboration without thought is simply placing people next to each other. Collaboration that is well thought out, is a good design process, good tools, and consistent clear management directives.
Another thing I've found useful is to not be stingy with tools (computers, software, extra monitors, etc...) and allowing people to have multiple of whatever they want. Let programmers have their own space or office (office is ideal), with 2 computers in each. If a couple folks want to team up for an afternoon, they can work in the same office. But come the next day, when they need to go back and focus on individual areas, zero distraction is what works. Computers are cheap in comparison to the salaries you're paying.
And lastly, the rest factor. If someone hits a wall, and just wants to zone out for 10 minutes browsing, say, slashdot:) for a while, doing so guilt-free because others can't see them is very beneficial. If instead there is pressure to work constantly, the quality of the work is going to go downhill. It has been estimated in various studies that people only do real work 5-6 hours out of an 8 hour shift.
That occurs for various reasons. But if people are pressured/forced to work longer than that national average, you'll still end up with people only working 5-6 hours out of an 8 hour shift, wasting 2-3 hours interrupting other people or zoning out pretending to work. And zoning out on nothing is boring, and de-stimulates the mind, making getting back into work slower/harder. If instead, a person is allowed to 'zone out' on something engaging (youtube video, phone call to friend, etc..) their mind will both be rested and still turned on when they return to work.
At first I thought you were being sarcastic, and it was modded insightful as further sillyness.
Then I realized you were serious.
You sound just like a PHB who has no understanding of the beauty of code.
A programmer taking pride in his work can create much better code then an "unhappy programmer working 9 to 5 and constantly afraid of losing his job".
I've worked in unhappy environments, and also happy ones. Guess which one I was more productive in.
I don't know what type of sweat shop you are running but I don't think I would last there 5 minutes. I'd be gone as soon as you said assembly line. And for your information, a workhorse can't read specs, and a programmer without passion for his job will not follow them.
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.