When I started at Adobe in 1990, the company was in a set of buildings off of Charleston Road in Mountain View. These buildings are now occupied by Google. They are your bog-standard California office buildings: offices and conference rooms around the perimeter, elevators and bathrooms in the center and the big open spaces were either labs or “cube land”.
There was no space in the area dedicated to my department on the second floor, so I was put into a cube on the first, but the printer I was working on was in Kathie Riggle’s cube on the second floor, so I had to bounce around a lot and finding me was a trick. Eventually, I was temporarily moved into an office that I shared with Mike Hodgson, which worked out well since both of us were quiet, but there was a guy down the hall who was a whistler. It was a habit of his that he couldn’t break. He whistled when he was concentrating and it was high pitch and tuneless. Or, if it had a tune, he had devised a non-western scale because yikes. It drove me nuts.
Later, I was moved into a solo cube with people in my department, and it was probably the worst location you could have. It was just inside the door at the top of the stairs. Any conversations that people had as they came up the stairs spilled over into my cube, derailing my thoughts. Guh.
When I moved into the Acrobat division, I was in another building, but once again moved into a cube. It had a better location, but it was still a cube.
And honestly, cubes are awful. They’re not as bad as open floor plans, but they’re bad. The issue is that many programmers have 3 modes: distraction, low-intensity focus, and high-intensity focus. In the past, I’ve referred to the high-intensity focus as “code blur”. It’s feels like a folding of time, or at least the perception of it, as 3 or more hours vanish while I’m working on something. Code blur is a good thing because it represents a block of very high productivity. It is not free, though. It sometimes take sheer force of will to get into that depth of concentration and it is all too easy brought to an end by interruptions. Like a conversation outside your cube. You know how you can prevent that? By shutting a door. Headphones don’t cut it for me because every type of headphone I’ve tried makes my ears sore inside an hour.
I had heard rumors about a rubric for determining who got an office and who didn’t. It was based on the number of years of experience and the number of years at Adobe and the number of college degrees. No matter how you sliced it, I figured I was due after I had been on the Acrobat team for a couple years because there were people in my group who scored lower than me who were in offices. And there were two or three offices open. I asked and was denied, so I did the only thing an engineer could do. I got passive aggressive. There was a “joke” PostScript font that someone created called Ransom. I left my manager a couple notes. One day he came by to talk to me about something and I said, “you know, I’m starting to like my cube. I think I’ll go buy a pre-hung door and install it here so I can get the best of both worlds.”
I got an office sometime later. I’m not proud of my behavior in retrospect, but I was very happy with my boost in productivity.
Much later on, I read some research that was done on programmer productivity and office design and the research backed up my personal observations: programmers are more productive in offices with doors and least productive in loud open environments.