The Bionic Office
hondo77 writes "Joel Spolsky has finally moved Fog Creek Software into their new digs. Read about what went into the design of "the ultimate software development environment" from your (my) cube and drool."
← Back to Stories (view on slashdot.org)
yay? this is important news?
My biggest pet peeve at the office is having almost no room between the table and wall to get a power plug through. I'm sometimes bashing the plug(or the ferrite core) behind the table so I can get it to the outlet or Ethernet port.
All cubicle tables should have a notch cut out for this purpose.
1) Big window overlooking moutain range or lake
2) Ethernet jack built into wall
3) Large, multipart desk
4) Large, swiveling, high-backed chair
5) Carpet
6) Door that can be shut
7) Glass window to see who is knocking at the door
- Windows are good. I love windows to look out at - preferably something pretty.
- Too much neon. It would distract me.
But the other architecture is very interesting... whether it would be distracting is another thing.
As long as I have an office with a door, I'm pretty much happy. Just wish I had windows...
This space for rent.
One thing I've noticed, of which this article is a very good example, is how most everyone who hires software developers claims to be hiring (or at least looking for) the very best of the best.
'We have an elite team'.
'On a scale of one to ten, all our developers are at least a nine.'
'We hire only the top two percent.'
And of course in this article Joel kicks it up a notch by claiming to be after the 99.9th percentile. Makes you whether the industry is vastly deluded as to the actual abilities of those they hire...
I have asked developers who worked for me to work those kinds of ridiculous hours before, and I've asked it of myself, mostly because I was forced to by forces outside of my control. These days I prefer to operate under the assumption that work should be scheduled around a 40-50 hour work week, and the office/working environment should be a nice and pleasant one, but it shouldn't supercede home, and you shouldn't have to eat dinner at work every day, spend all your free time with your co-workers, etc.
The only reason this article is newsworthy is because of Dot Bomb flashback syndrome. We'd all like to live in the magical world where employers spend tonnes on us because we're so damned valuable. The article seems to suggest it's cost effective to spend a lot of money to get the 99.9th percentile of coder, but is it really? Are you really just getting the 85% percentile of coder, but calling them the 99.9th percent to foster a sense of l33tness?
I mean it's a nice office and all, but this isn't really news. It's one guy who made a cool office.
Not much chance any of us will be getting cool offices any time soon.
---
I support spreading santorum
Well, we all know how good Philip Greenspun is at running a business.
The third option is to forget about the office and let people work out of their home ...
When you start your own company your first desk should be an old door propped up with a couple of old milk crates. You have more important things to spend your money on when you start up.
If more "dot coms" had understood that instead of burning their money on fancy digs, pool tables and Porsches a few more of them might still be around.
Oh yeah, and clear idea of how you're going to make a profit to earn fancy desks, chairs and cars wouldn't be a bad idea either.
KFG
I think part of what's revolutionary about it is a manager making a rational economic argument for why it is worthwhile to spend this kind of money on giving developers a nice work area, and then putting their money where their mouth is (damn english, lacking proper indirect third-person singular pronoun).
It would be nice if my company could see things this way, instead of making lame-ass defeneses that "We can't treat the programmers specially, when there are non-programming paper-pushing staff right down the hall. If they get cubicles, we can't give you nice offices. While we agree that you *deserve* better, they'll get pissed off at the disparity." Hell, they probably tell those people "We really can't do better for you... I mean, we *already* treat you as well as the programmers!"
<aside>
By the way, the word is "color", friend. KIDDING!
</aside>
:Wq
Not an editor command: Wq
"Your business success will depend on the extent to which programmers essentially live at your office. For this to be a common choice, your office had better be nicer than the average programmer's home."
What crap! The best office I've ever had is the one I have now - a home office. Any employer that sucks the marrow out of their staff by having them work 90 hours a week will only burn their staff out.
Maybe I won't create the greatest apps overnight, but next week is just fine. Plus I have a healthy relationship with my 2 year old son, a beautiful wife, and another child on the way. I love programming, and having worked with computers for over 20 years. Because I take care of my health and mind, I'll still be here 20 years from now while slave drivers like Joel Spolsky have moved on to greener pastures with other anti-human ideals.
The candle that burns twice as bright burns half as long.
Ruby on Rails Screencast
Having participated in several office renovations and build-outs over the past few years, I found this article quite interesting.
I was particularly impressed by the archtectural solution of angling the offices (requires wasting some space) to effectively get windows on two different walls in every office.
The "cable trough" along the back of the desks is a deceptively simple idea, but one that seldom gets implemented. We put something similar down the center of our conference tables, which made supporting laptop-laden meetings infinitely easier. It's unclear from the photo if there are cutouts to also allow cables to run under the desk. If not, that's the one important modification I'd add, as it is often neccessary to place an electric or electronic device on the floor.
The other thing that was of particular interest was his comments about using straight desktops in order to make it easier for people to collaborate. I've definately noticed the 'squeezing around the corner monitor' problem, but hadn't thought of encouraging a different monitor/desk configuration to address it.
Still, it's always nice to see people/companies actually thinking about their architecture, and fitting technology comfortably into it, when they get the chance.
But it's not that expensive. He write that the price per developer is 700$/Month. I don't know the price of a typical offices, but even if a normal offices only cost half that much, I think that the 350$/Month per developer is a good deal, which will pay back.
Thinking it's worthwhile to save a one-time 50 bucks per-employee on cheap chairs or a monthly 100 bucks per-employee on rent is very telling in our industry, where the average employee is supposed to be generating several times that revenue for your business every single day.
Bankers don't put up with cubicles. Lawyers and doctors don't. Neither do architects (at least the ones I've seen). Why do programmers? Because too many of us buy into this shit that we're going to benefit later on by squeezing a few pennies now.
From Joel's Guerilla Guide to Interviewing:
Some signs of a good programmer: good programmers have a habit of writing their { and then skipping down to the bottom of the page and writing their }s right away, then filling in the blank later.
Sounds great, Joel! <smile, nod amiably, back slowly toward door>
They also tend to have some kind of a variable naming convention, primitive though it may be... Good programmers tend to use really short variable names for loop indices. If they name their loop index CurrentPagePositionLoopCounter it is (a) sure sign that they have not written a lot of code in their life.
Or that they just like long variable names. The most annoying programmers to work with (and the ones I'd be least likely to hire) are the ones who use names like "i1", "i11", "ii1", "iii1", "a2", "b" for everything.
For example, if you ask them to reverse a linked list, good candidates will always make a little drawing on the side and draw all the pointers and where they go. They have to. It is humanly impossible to write code to reverse a linked list without drawing little boxes with arrows between them. Bad programmers will start writing code right away.
Okey-dokey, then.
Occasionally, you will see a C programmer write something like if (0==strlen(x)), putting the constant on the left hand side of the == . This is a really good sign. It means that they were stung once too many times by confusing = and == and have forced themselves to learn a new habit to avoid that trap.
There are good interviews, bad interviews, and then there are a few things you can do to get me to call security to escort you out of the building:
1) Start a fire for no obvious reason.
2) Make fun of all the old-school Duran Duran songs in my phat MP3 collection.
3) Call strlen() to see if a string is empty.
From what I can tell, what Joel considers the "99.9th percentile" is actually a level of competence I'd expect from a bright high-school kid who skipped some, but not all, of his introductory computer-science class. It's not exactly hard to hire people at this level; most of them are, or should be, brushing up on their Hindu grammar to help them train their replacements.
Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
I was out of programing for a while, and to pay the bills I went into construction. I had a beatiful office then: outside with fresh air. I got to play with toys all day. (saws and nailers mostly, but once in a while I could attempt to get the 4 wheel drive forklift stuck) I hated it. Oh, I like working with my hands and building things, but I don't like doing it all day. I several times found myself standing on a 2x4 20 feet in the air and wishing I was anywhere else, (preferably the ground) while the other guy ran across the other wall and then teased me for not being at the other end already. I had to listen to the radio station the foreman picked. Then I finially got home after working 10 hours, and was dead tired. Even when I had a moment free, I couldn't pick up my mandolin because my body hurt too much.
I'm now back in programing, and I love it. I get paid to read code all day. I sit inside an office (with a window that I never look out of) that is air conditioned. I write code! They pay me to write code! Once in a while I have to test my code, and that isn't nearly as much fun, but my job is writing code. I work less hours. I can choose my radio station, or bring my own CDs, or work in silence, my choice. When I get home I can play mandolin without pain.
To each his own. I've tried your plan. The work was different, but I didn't like it.
Speak for yourself about not getting a cool office. I work from home and have spent a great amount of time tuning my office space to a great place to spend time making a living. Someone develops a nice office with some very inventive architectural ideas (I'm particularly fond of the window to the next office's window idea), and you write it off as useless due to it having no direct use to you.
Whereas those who get ideas to incorporate into their own ambitions will enjoy this news, you narrowly percieve this as "Dot Bomb flashback syndrome".
Living in the past is for suckas!
Non-central locations in a city are great, because there's all sorts of interesting spaces (not just office buildings), and there's stuff around. I don't want to work in a strip mall, or an industrial park, or a highrise. They are all examples of overly partitioned spaces, spaces that are serve a specific function then become wastelands on a daily cycle. I like being by restaurants that are open for lunch and dinner, I like seeing mothers with strollers go by, I like knowing that it's 3:00 because I see all the kids walking back from school. My only disapointment is that few offices have front porches.
A lot of the stuff in that office also isn't about the programmers, it's about visitors. You can make functional, attractive, pleasant spaces without spending a ton of money. But they won't impress outsiders with your prosperity and modernity.
Let me tell you what's going to happen. All that fancy cable-routing, pseudo-ergonomic office furniture is not gonna wear well, 'cause it's designed by idiots. It looks so cool in the catalog, but after a year or two the parts freeze in place (maybe you're supposed to oil them every month or something), and they stop being ergnomic and routing.
Windows. Yeah, I love a window office. Natural light cheers me up. But most geeks seem to have glare issues, which they deal with by minimizing background light. So our fancy everybody-gets-a-private-window building had 3/4 of its blinds closed at any given time.
And what do we do with the other people that help a software firm make money? Yeah, developers are key, but so are QA people, integrators, tech writers, sales people, marketeers, and of course the customer service people. But we can't afford to give all those bozos fancy private offices, so we'll just put them in cubes. Yeah, that's really great for promoting friendship and communication between the developer-gods and lesser mortals.
Actually Spolsky avoided one mistake our own deity made -- he didn't put the developer-gods on a different floor, behind a separate set of keycard doors. (Of course if his company had more than two products...) Then again, sitting in one's cube, watching the "key" employes hang out behind their translucent walls, watching the plasma TV and doing other geek stuff, might be even more detrimental to morale.
Here's the nasty thing about us geeks: give us a little money or power, and we turn into the stupidist, most arrogant assholes!
I was one of those "elite" programmers that got hired to an "elite" company, and it was great at first. They had all the frills and benefits. Company trips to Las Vegas, kitchens with free food that didn't quit, games, toys, paintball, etc. Laptops and cell phones for everybody, and an office view looking out over the hills.
It didn't work, and let me tell you why. The work sucked. We weren't just encouraged to work 16 hours a day, we were expected to. We were forced to use crappy build tools, a crappy home-brew revision control system, a crappy OS (Windows), and worst of all, I was stuck programming a GUI client in Java (GOOD LORD!).
The office frills are certainly a good thing, but it pales in comparison to the effect the work itself has on you. Is it fun, interesting work? Are you treated like a contributor of ideas, or are you just treated like an "implementation monkey"? Do you believe in the product of your efforts? Is this the kind of thing you want to do the rest of your life? Are you learning important skills? Is your career actually progressing, or do you feel hogtied?
All of these questions need to be answered positively by an employee before you can start to think about keeping him/her around. If you can have toys and pretty offices on top of that, then fine. Just make sure your employees are happy with their work and their future, and they'll stick with you always. Treat them like cattle, and they'll perform poorly and leave you as soon as they get a better offer. Most software engineers would be happy working in a dank cellar if the work was still fun and challenging.
...just my 2 gil.
His point wasn't about getting luxury items; it was that this setup is an investment that will result in increased programmer productivity and therefore profit. He may or may not be correct, but I don't think that it's the same as the dot com idiocy.