Flutterby™! : Programming Space

Next unread comment / Catchup all unread comments User Account Info | Logout | XML/Pilot/etc versions | Long version (with comments) | Weblog archives | Site Map | | Browse Topics

Programming Space

2011-02-19 22:53:22.967006+00 by meuon 10 comments

Utiliflex is moving to a new space, with a beautiful open room with 14' tall windows on one wall (lots of natural light). The open space for 3 to 8 programmers in is approximately 30' by 30' with the windows on one side. I've been reading a lot of crapola about XP/Agile/Scrum programming spaces, but have found some truths. I'm looking for more.

So far:

  • Cubical Bad
  • Windows natural light good.
  • Good chairs important
  • Tables/desks on wheels good
  • Sound absorption important
  • Nice Dual-screens good

If you had a chance to redesign a workspace for 3 to 8 programmers, working on the same (or related parts of) a project, what would you want to have?

I'm looking to balance: "Where work will get done" and "Where you would want to work".

[ related topics: Interactive Drama Microsoft Invention and Design Software Engineering Space & Astronomy Work, productivity and environment Furniture ]

comments in descending chronological order (reverse):

#Comment Re: made: 2011-02-21 16:29:39.723787+00 by: Dan Lyke

The thing I'm still amazed over is that back in the late '80s and early '90s, even on up, it was well accepted that you give programmers a door they can close. The whole "agile" thing turned programming spaces back into an open rec room.

Now it could be that programming has changed enough that the "hanging out in the rec room" model is the right way to plug modules together, but when I'm really programming, really trying to figure out the guts of a way a complex algorithm operates on a complex data structure, a door is a great thing.

Last few times I've worked in an open environment I've used headphones to do the same thing, but that's not the same.

#Comment Re: made: 2011-02-21 12:39:55.349005+00 by: DaveP

I work for a company that has been fairly cheap about hardware (especially over the past two years when the economy was tough), but we've still managed to find 30" monitors for everyone who needs one, which is pretty much everyone who doesn't insist on having a laptop as his main machine. Most are switched between multiple computers, and the people with laptops have 24" monitors to plug into.

With RAM prices continuing to drop, we also managed to get all the desktops upgraded so they have 2G sticks in all of the slots. People still complain about compile times, but a lot less now that compiles take more like five minutes than an hour, and the only reason for someone to ever complain that they're running out of HD space is because they're too lazy to order a new one (or waiting for SSD prices to drop just a little further).

I can't see buying a new development machine today without taking a very hard look at an SSD (in addition to a HD if it's a desktop) simply so compiles run faster.

#Comment Re: made: 2011-02-20 23:53:05.243812+00 by: meuon

Regarding: "using programmers for IT support": (Guilty laugh) but they are so GOOD at it. Actually we send as much of it to Graham at Titan Systems, he just down the hall and does a great job. He just built two desktops for us.

#Comment Re: made: 2011-02-20 16:46:53.228594+00 by: ebradway

Unfortunately, 1920x1200 monitors are rare and pricy.

One of my biggest gripes is cheap development shop managers. Compare the cost of monitors to what you're paying the lump of water and carbon sitting in front of it. Worse still, try to work out the cost of lost opportunity due to inefficiency.

Do you know how many books and magazines I've read in my life waiting for code to compile when spending a couple thousand more on RAM would have reduced compile time by 50%-75%?

And I always assumed that I was stuck twiddling my thumbs waiting for the eprom burner to cook my latest firmware so I can test it. That was, until I discovered who well ICE (in-circuit emulators) worked. Of course, when I was doing embedded code (actually before I met Dan!), a 512Kbit eprom cost about $25 and the burner was another $200 (for the fast one). Compared to the $8000 price tag on the ICE, these were downright cheap. But compared to what I was being paid to sit around and wait and compared to lost opportunity because I lacked interactive debugging, that $8000 starts looking like a bargain (even in 1989 dollars).

I would allocate an amount equal to at least 10% of your programmer's salary for technology to support them in their job. That's not 10% when they get hired and the machines aren't upgraded - that's 10% every year.

This is a cut throat business. Development progress is the main measurement of success. Any place where you can simply spend money and improve the rate of progress gives you an advantage.

Oh yeah, a quick check on NewEgg shows four 24" monitors that display 1900x1200. The cheapest is under $300 but the high end is still less than $900 and that gives you a calibrated screen. The 1600x1200 monitor is also about $900. Say you buy three of them per programmer. It sets you back $2700. If that's 10% of your programmer's pay, then you aren't getting good people. I would suspect that if you follow the 10% rule, you'll have at least another $3000 or so for the machine that the monitors will be connected to.

P.S. Don't ever use your programmers for IT tech support. Yes, they can do it. But you can hire a competent IT tech for less and you avoid losing opportunity because the guy building the future of your company is installing a hard drive in someone's machine. And if you ever catch your programmer fixing the plumbing in the kitchen, ask her to stop while you call a plumber. Then explain to her that you'd rather she take a break and go to the coffee shop than spend time on something you can easily pay someone else to do.

#Comment Re: made: 2011-02-20 10:56:47.479375+00 by: meuon

Shadow, good monitors are an easy to justify expense.. I am running 1920x1280 24"'s, they aren't that expensive.

#Comment Re: made: 2011-02-20 03:11:50.327327+00 by: Larry Burton

Maybe I shouldn't be offering suggestions. Some of my best programming has been done sitting on a wire spool between a couple of conveyors with my laptop balanced on the floor of an electrical panel.

#Comment Re: made: 2011-02-20 03:01:23.120047+00 by: TheSHAD0W

Dual screens is very good, but vertical display space is very important for reading documents. Unfortunately, 1920x1200 monitors are rare and pricy.

I wish somebody still made 20" 1600x1200 monitors.

#Comment Re: made: 2011-02-20 02:43:15.697005+00 by: ebradway

My recommendation:

  1. Half cubes
  2. Half coffee-shop (ala Larry's suggestion).

    Do NOT, under any circumstances, do anything inside the cubes. Part of the first week on the job will be outfitting the cube as the individual sees fit. Also, don't buy any hardware unless it's specifically requested by the talent.

    Geeks tend towards individualism. The best environment is the one they each got to spec out. Dexev bears this out - preferring to sit on a couch with a laptop. I never would have considered that an option. Of course, he's comparing his laptop to a 19" flat-panel. Not much of a gain there. Dual or Tri 22s or 24s and then you start talking. But again, that's me.

    #Comment Re: made: 2011-02-20 01:40:48.974765+00 by: Larry Burton

    arrange a couch, 2 comfy chairs and a coffee table with a couple of end tables in a conversation pit facing the windows. Line up some café tables and chairs along the rest of those windows with plenty of power strips available. Then put an espresso machine behind a bar on one of the interior walls.

    #Comment Re: made: 2011-02-20 01:16:01.835913+00 by: dexev

    I'm used to working on my laptop, and I work better on its 12" screen than on a 19" flat-panel on my desk. I'm sure I could eventually get used to and optimize for a dual-head setup, but my work off-site would suffer accordingly.

    So, I would use a couch of comfy chair with an electrical outlet/power strip nearby.