Slashdot Mirror


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."

29 of 317 comments (clear)

  1. um by Anonymous Coward · · Score: 0, Insightful

    yay? this is important news?

  2. biggest pet peeve by British · · Score: 4, Insightful

    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. Re:biggest pet peeve by Schwartzboy · · Score: 5, Insightful

      Amen. I can't even count the number of workspaces I've had, either at my own workplace or at client sites, that have the plugs at ground level & right up against, say, the 76-ton (empty weight) steel file cabinet full of small rocks. While I don't see a great deal of use for the HDTV in an environment where people are supposed to be working, I'm a huge fan of this line-of-sight stuff, and other than the "dear God I'm blind" shade of green, it really does look like a nifty place to work.
      Big straight tables for collaborative sitting/hanging out/pair work and doors that close, plus millions of LAN ports (no mention of any wireless stuff that I could find, though) and color-coded sockets to easily figure out what goes where based on which electronics need UPS goodness, and did I mention the doors? This article should be from the "Geek Eye for the Clueless PHB Guy Who Likes to Pack Coders in Like Sad Little Cube-Dwelling Sardines" department. Heck, I can see all kinds of potential for enhanced productivity (or at least more /. reading and LAN gaming) in this setup just for me and a bunch of my best geek buddies.

      It's a pitiful wasted dream to imagine that programming-types working for non-software companies will ever see this sort of environment, if the idea takes off anywhere else at all. Pity the child who reads this article and will never live to touch the promised land...

      --
      "Linux doesn't exist. Everyone knows Linux is an unlicensed version of Unix"- Kieren O'Shaughnessy
  3. Optimal office by Dancin_Santa · · Score: 5, Insightful

    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

  4. Nice Office, But.... by Tsali · · Score: 2, Insightful

    - 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.
  5. Super ultra elite developers by bartlog · · Score: 5, Insightful

    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...

    1. Re:Super ultra elite developers by bartlog · · Score: 2, Insightful

      Well, interestingly, I do think that there's something to the '10x as productive' idea. When I was at CMU there were a few freaks^H^H^H^H^H talented programmers who could throw down page after page of C code as fast as they could type, and I don't think it was worse, quality-wise, than what more mundane folks were able to achieve. But then, a lot of that speed came from implementing a vision that existed full-blown in their heads; in real life there's a lot of overhead in reading requirements, writing design docs and test framework, communicating, etc., which is not something that gets done ten times as fast.

    2. Re:Super ultra elite developers by I8TheWorm · · Score: 3, Insightful

      I see what you're saying, and I agree. But, they could be a little jaded by what kind of software they're working on.

      I'm probably an upper tier developer when it comes to RDBMS and reporting programs. But I really don't know much about OpenGL/DirectX, audio, etc... I do, however, know a devloper who writes games, but isn't all to great when it comes to extremely normalized databases. So maybe there are three or four "top 1%" groups.

      Of course, that still leaves 96% or more that nobody wants to admit they hired.

      --
      Saying Android is a family of phones is akin to saying Linux is a family of PCs.
    3. Re:Super ultra elite developers by Fnkmaster · · Score: 3, Insightful
      Yes, and I'm *sure* you can easily hire the best of the best software developers who are really enthused about writing bug tracking and content management systems! err.... nevermind.


      From my experience hiring, work environment is one factor, but interest level in the software being developed is definitely a big one in terms of the quality of developers you'll be able to attract. Great developers want to work on interesting, challenging products that do something new and different.


      I also think it's nearly impossible to have a complete team of all "top 1 percent" developers. That's like having all chiefs and no indians (pardon the racially minded analogy, it's just an expression). You need people who are good competent developers, but aren't primma donna superstar types who know how good they are. It's a balancing act to build a competent team that works well together, and knows each other's strengths and weaknesses. Frankly, that's just as important than having "all top 1 percent developers" in the long run.

    4. Re:Super ultra elite developers by pVoid · · Score: 4, Insightful
      Let me tell you something, I can type page after page of relatively bug free C++ code as fast as I can type it.

      I learned as soon as I got into a working environment that it's basically pointless. After a project reaches a size, or deadline where a single person isn't good enough to implement it alone, things start changing, and most of the bottlenecks come from incompatible internal structures that end up being re-written. We had a programmer like that in our team (after I was no longer that kind of programmer), and he was looked upon by everyone else as the black sheep. He would spurt out 500 lines of code at the end of a week, and the rest of the team (5 people) would spend a week after that stiching it all together.

      Unless these people you talk about were the borg, and could neurally interface with each other, I'm pretty sure what you say is impossible.

      I'll tell you one programmer I met that to this impresses me to no end: before he was our DB developper he had worked for Sybase. I would ask him to write stored procs for our DB. He would send me .txt files of the stored procs that he'd written in notepad. Would never run the stored procs to see if they worked. They just did. Probably around 200 non trivial stored procs he wrote (with complexe cursor work etc), and the *only* time I got an error was a mistyped keyword. And as far as spec goes, he was always dead on what I had asked him.

      But as the grandparent post indicated, I was his interface to the world of humans, aside from me, he was incapable of talking to anyone.

    5. Re:Super ultra elite developers by crazyphilman · · Score: 4, Insightful

      I've met a lot of programmers, some good, some bad, from a wide variety of backgrounds including everything from Harvard grads to CC dropouts. I think that when you've met enough people, you find that programming "brilliance" is a lot like physical beauty in women. In other words, it's everywhere, but most people fail to notice it.

      Here's what I mean:

      There's a wide range of physical beauty in women, going from the truly hideous to the utterly fine. But somewhere to the left of the middle of the range lies "attractive". Once someone is attractive, they're attractive, period. Any additional beauty is just a tiny little incremental change -- beauty isn't linear.

      I think that most people who studied computer science in college (and took it seriously) are the comp. sci equivalent of "attractive", at least. They understand the subject, they know the basic constructs, and they understand the languages they work with. Given the opportunity, and a little bit of respect, they produce great work.

      So, it's all about perception. Stop trying to look for tiny super-elites, and you'll see talent everywhere you look. That's one of the secrets of life, by the way. The most amazing things are usually right underfoot. Poor Joel seems to have missed this basic truth. 99.9th percentile, indeed. I hope none of them have a bridge for sale... ;)

      --
      Farewell! It's been a fine buncha years!
  6. Developer Office Design by Fnkmaster · · Score: 4, Insightful
    I agree with a lot of Spolsky's office design rant here, but I am not sure about the part about trying to get developers to live in the office, and that being key to software development success. Sure, you do want people to be happy in the office environment when they sometimes put in an extra long week, but do you really want to operate under the assumption that developers should "essentially live in" the office? I thought that in the post-1999 era, we realized that people need to have balance in their lives, that we can work hard sometimes, but that we should never have to put in consistent, regular 80 hour work weeks.


    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.

    1. Re:Developer Office Design by bmj · · Score: 4, Insightful

      I agree with you completely...but...

      There's certainly a group of programmers (most of whom are good programmers) who really truly love what they do, and will work terrible hours because of that love. And I mean programmers who are doing _interesting_ stuff, not just chugging along in the corporate environment. Most of these folks don't really have lives outside of work, and if they do, they are the sorts of lives that can be put on hold for indefinite periods of time. I too lazy to find the link, but there was a story a month or two ago about how the best scientists and researchers are unmarried. Duh! Of course they are. No person can serve two masters, as it were.

      That said, I think the Fog Creek offices would be perfect for the average 9-5 programmer. They allow for greater productivity, thus allowing more actual work in an 8 hour day. And these are the type of people that would be more impressed with such a setup. A good programmer who doesn't necessarily want to live in their office would be more likely to join a company with an office like Fog Creek's, rather than just another cube farm somewhere else.

      --
      Whereof we cannot speak, thereof we must be silent. --Ludwig Wittgenstein
    2. Re:Developer Office Design by Fnkmaster · · Score: 2, Insightful
      Nah, I never said anything about 9-5 chug-a-long programming. Just that balance is important in life, and I don't think it's a reasonable way to run a sustainable company, to try to burn out young programmers who will work for lower salaries and then toss them away when they get frustrated and angry by having too many unreasonable demands placed on them.


      I support and agree with his office design decisions, I just question the wisdom of encouraging even the best programmers to make their work and their life one and the same. I prefer the idea of splitting gym membership fees (healthy programmers are good programmers), encouraging people to go out of the office for dinner if they are working late, and setting up incentives to taking reasonable amounts of time off to prevent burn-out, which is a bigger enemy to productivity in the long run than many people realize.

  7. Joel = John Romero? by truffle · · Score: 4, Insightful

    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
  8. Great advice by nucal · · Score: 3, Insightful
    The office should be a hang out: a pleasant place to spend time. If you're meeting your friends for dinner after work you should want to meet at the office. As Philip Greenspun bluntly puts it: "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. There are two ways to achieve this result. One is to hire programmers who live in extremely shabby apartments. The other is to create a nice office."

    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 ...

  9. Re:Nice office... but who is going to pay for this by kfg · · Score: 4, Insightful

    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

  10. Re:colour me unimpressed by etcshadow · · Score: 4, Insightful

    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
  11. Kill the Programmers by Ridgelift · · Score: 4, Insightful

    "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.

  12. What I got from this by Yobgod+Ababua · · Score: 3, Insightful

    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.

  13. Re:Nice office... but who is going to pay for this by TheSunborn · · Score: 3, Insightful

    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.

  14. Re:Getting ready to move my company by doinky · · Score: 2, Insightful
    I'm at a company that thinks like that when it comes to furniture; and yet we (like most other companies) have no problem wasting ten times as much on perks for useless executives like our VP of sales (gets a plane ticket back/forth from his home city every weekend) or last-second travel to companies to make deals that an idiot can tell you are never going to pan out (and never do).

    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.

  15. Warning signs by John+Miles · · Score: 2, Insightful

    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.
  16. I love programing by bluGill · · Score: 4, Insightful

    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.

  17. Isn't news my ass by SendBot · · Score: 2, Insightful

    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!

  18. Re:Nice office... but who is going to pay for this by Ian+Bicking · · Score: 2, Insightful
    If it's not in the middle of New York City I think you could get it for a lot cheaper. If it's not in downtown anywhere, you can get it a lot cheaper than that. I'm working in an office on the North side of Chicago right now, and it's great -- it's closer than downtown (for everyone in the office, as far as I know, not just me), it's obviously a much cheaper location for what you get, and it's just nicer. Maybe I'm just biased against downtowns (okay, I definitely am), but I prefer living and working in mixed-use areas. I like living by stores and businesses, and I like working by people's houses. It all feels much more natural to me. And I can bike to work.

    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.

  19. The Programmer Pedestal by fm6 · · Score: 2, Insightful
    Well, it's my own damn company and I can do something about it, so I did.
    Oh gawd. I used to work for this guy. Well, no, not this guy, but one like him. And not for the guy himself, but for the company he founded. The guy himself got canned because he spent too much investor money on his dream office.

    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!

  20. Is this so fascinating? by Shamashmuddamiq · · Score: 2, Insightful
    Did this guy sleep through the dot-com boom and the dot-bomb bust? Did he learn anything? This sounds like articles I used to read way back in 1997.

    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.
  21. Re:Nice office... but who is going to pay for this by eidechse · · Score: 2, Insightful

    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.