I don't understand why many (many) companies treat software developers like they are assembly line workers making widgets. Joel Spolsky has a great example of the problems this creates:

With programmers, it's especially hard. Productivity depends on being able to juggle a lot of little details in short term memory all at once. Any kind of interruption can cause these details to come crashing down. When you resume work, you can't remember any of the details (like local variable names you were using, or where you were up to in implementing that search algorithm) and you have to keep looking these things up, which slows you down a lot until you get back up to speed.

Here's the simple algebra. Let's say (as the evidence seems to suggest) that if we interrupt a programmer, even for a minute, we're really blowing away 15 minutes of productivity. For this example, lets put two programmers, Jeff and Mutt, in open cubicles next to each other in a standard Dilbert veal-fattening farm. Mutt can't remember the name of the Unicode version of the strcpy function. He could look it up, which takes 30 seconds, or he could ask Jeff, which takes 15 seconds. Since he's sitting right next to Jeff, he asks Jeff. Jeff gets distracted and loses 15 minutes of productivity (to save Mutt 15 seconds).

Now let's move them into separate offices with walls and doors. Now when Mutt can't remember the name of that function, he could look it up, which still takes 30 seconds, or he could ask Jeff, which now takes 45 seconds and involves standing up (not an easy task given the average physical fitness of programmers!). So he looks it up. So now Mutt loses 30 seconds of productivity, but we save 15 minutes for Jeff. Ahhh!

marketers, managers, et al get their own office to isolate them so they don't bother the people that work ;-)
–
Steven A. LoweFeb 11 '11 at 2:34

6

Because you are part of the proletarian work force. All hail the bourgeoisie ;)
–
PemdasFeb 11 '11 at 2:34

You're probably preaching to the choir here. That said, it's a lot about professional courtesy - the place I work in is an open-plan space, but people don't go bugging their coworkers over inane things like strcpy syntax - we're all programmers, and we respect each other enough to not bug them about something inane.
–
Anon.Feb 11 '11 at 2:35

It's not always the case that the marketers & managers get their own office. I recently talked to someone who said his company has everyone in an "open floorplan" arrangement. Ugh!
–
GreenMattFeb 17 '11 at 19:17

6 Answers
6

Sales/marketing/managers make all the money, it all comes from them; did they not tell you?

Rare is it that engineers get paid commission on what they produce.

Generally speaking, there is an attitude among many companies that the engineers are on the production side of things, so are lesser, blue-collar workers.

Well, this is a point of discrimination, elitism and ignorance.

Firstly, those that make the goods, the traditionally "blue-collar workers" tend to have vast skill sets and actually create the product, no them, no product.

Secondly, computer engineers tend to be trained professionals and fall under the traditionally "white-collar worker" banner, tertiary industry, service sector, but are tagged as secondary, manufacturing as there is a large overlap.

There are also more constructive reasons. Marketing guys and managers make a lot of calls, see a lot of clients, they need privacy for these things and a lack of noise. Manufacturing people build things together, and work in factories where it is noisy, so obviously software engineers will follow this model too.

Now it turns out, that we need peace and quiet to think. This is foreign to marketing people and managers. Private space to entertain, to talk, to meet - yes, private space to be quiet? Not so much. Peace and quiet are not associated with productive work in general, only to thinkers, who are slightly outside of most business models.

Obviously I'd rather have my own office, but I'd rather share a room with other programmers than with one marketing person. They talk all the time. That's what they do and it would disturb the rest of the company.

Do you invite clients/outsiders to visit you at work? They do on a consistent basis and it makes more sense for them to have an office than schedule a conference room each time.

If programmers need so much quiet, doesn't it make sense to put all the people who need quiet in the same room? Nobody likes being cramped, but how much room do you actually need.

OK, the real reason is everyone thinks marketers are more directly linked to revenue and they see having an office as a better incentive. They probably think programmer would rather have free caffiene.

If someone leans over to you and asks you what the name of the strcpy function is, are you really going to lose 15 minutes of productivity? Are you really going to forget all of your variable names? I completely understand the concept of being "in the zone", but if that little bit of distraction causes that much loss of productivity, then just wear headphones or something like that.

As for the more general question of why engineers/devs are more likely to be piled into a room instead of given their own offices, IMO it's either that they think they are providing a "collaborative environment", or it's just a norm being perpetuated.

I've worked in a big office room where one senior management/marketer (whatever...) woman talked nonstop with people in the room, on the phone, visitors all in a very annoying tone of voice as if she's in menopause and just discovered her husband was cheating on her. Everyone was clearly annoyed and wanted her to have her own office. Problem is she didn't want that and actually liked the fact that she was disturbing everyone. Some people pay no respect after they reach a certain hierarchy in the company ladder.

I'd agree with @jiceo here. The marketing folks generally have to be on the phone for most of the working hours. This definitely causes a disturbance for us programmers. I even had to talk to my manager once and ask him to move to a cabin since he would be on the phone 24/7.
That doesn't make us less loud. We're probably talking to ourselves/ cursing the dev who wrote the crappy lines of code, or jumping with joy when we resolve a longstanding issue.
Its also pays to have a cabin for them when they have customers/clients visiting them.
Adds a few points!