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:
- Half cubes
- 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.