
Ask HN: Developer workstation setup to promote startup culture? - dotBen
We’re a new startup, about to bring developers on the payroll and have them work out of our new office space.<p>I’m interested to hear HN’ers views on how best to set up developer’s workstations to promote both the startup mentality we want and also for good productivity.  Based on my years as a developer at both startups and BigCo’s (and now I’m the co-founder), my proposal is:<p>Developer is provided a brand new iMac and a second Dell screen connected and set 90 degrees in portrait mode (as seen at Pivotal Labs, and others).  Dell screen for writing code and the iMac screen for seeing results in the browser (we’re a web app)<p>We want developers to work almost all of the time in the office at the early stage of the company so collaboration between the team can occur.  This is the thought behind issueing iMacs over laptops.  We also want to create a culture where the work iMac is for dev and you can bring your own laptop in and hook it to our network for your own stuff (email checking, IM’ing, checking your bank online, etc).<p>I would be interested to hear other’s views on laptop vs fixed computer to encourage work to take place in the office, and also the idea of being strict on having work dev machines ‘clean’ of personal apps and use by encouraging the developer to use their own equipment for personal use during work.<p>Thanks
======
samstokes
You don't really say what specific startup mentality you want to promote, but
it seems to me a good generic startup mentality would include creativity and
flexibility. That suggests the strategy: let each developer pick her own work
rig. Give them a budget and maybe some suggestions, and let them spec and
configure.

If the developers you're bringing on board are any good, they'll have a
favourite OS / IDE / byzantine .vimrc / etc. By letting them use it, you'll
gain in productivity, and - particularly if they've previously worked for
BigCos with silly tools restrictions - you'll gain a lot in morale. In my
experience the thrill of "my employer bought me a shiny new Mac" wears off
after a month, whereas "my employer encourages me to use the tools I'm best
with" provides ongoing job satisfaction.

Regarding the work/personal split, it sounds like what you're worried about is
people wasting time at work, getting distracted, or otherwise being less
productive. IMHO that's a motivation issue, not a hardware issue. Good
developers with interesting problems to work on need to be reminded to eat,
not trained to work harder.

~~~
dotBen
The idea of "let the developer pick his own rig" had been mentioned by a lot
of people - it's a fair point and has me reconsidering.

My two thoughts are:

 __Software __Granted, the most important software is probably the IDE and
those tend to be cross-OS (you can get eclipse or VIM to run on any OS) but
you get issues on other software like Word. Suddenly that 5-seat license of
Office for Mac doesn't accommodate my windows 7 developer so now I have to buy
more licenses for him cos he uses Windows. And my Linux developer can't open
the document in OpenOffice because it's using change tracking that his version
doesn't support, etc.

We also can't use stuff like SubEtherEdit or Coda for join-development,

2) Scaling a dev team's needs - if we're designing for scale then we might
have 10 developers by the end of 2010. It becomes a nightmare when half of
your dev team is on mac, thee on windows, one on debian/ubuntu, one on fedora,
etc.

But maybe these are not good enough reasons...

~~~
etherael
1) Standardising on office software tools that are essential to the work of
the dev team is in my humble opinion, a terrible idea. Yes, this means the
microsoft stack, it tends to make people jump through hoops they're not fond
of jumping through and in all instances I can think of it's actually better to
be doing it some other way.

2) Standardising on _anything_ that requires Mac OS means that you're pretty
much stuck with people that are happy with Mac OS, and while admittedly that
is not a small number of capable devs, others really hate it, and with very
good reason.

3) Virtualisation can offset "essential" items in the standard operating
environment, as long as they can run on platforms that can actually be
virtualised, which is my Mac OS is such anathema here.

4) Having virtualised environments that are self contained working images of
everything required to "be productive" takes the guess work out of "Does
employee X have everything necessary" and drastically alleviates any crippling
hardware issues, if all it takes to keep going is a virtualisation image and a
new machine, disaster recovery becomes very trivial.

5) If you're really insistent on the whole "having everyone at the office"
idea, you could even try trading out virtualisation for remote access to
various environments. Once again, this is an Everything But Mac OS solution as
OS X remote access is terribly bad compared to Windows or Linux based
solutions (RDP / NX vs VNC)

6) That said, I think tying your team to their desks is a good way to annoy
some people, long term if you decouple your team from the requirement to
remain physically present you are a much more attractive opportunity than
otherwise. Go distributed whenever possible, this means dev environments that
have full deployments of whatever is necessary to work 100% offline. Git over
subversion, make sure they have copies of databases that are required to
actually run the code they're writing, etc etc etc. Long term goal should be
that they can work from absolutely anywhere any time regardless of network
access.

------
BigCanOfTuna
Give each developer a hardware budget equal to the value of a top of the line
MacBook Pro 17"....but each developer 'chooses' the 'laptop' he wants to buy
(be it OS X, Windows, or Linux).

\- the developer gets the hardware he wants to work with

\- the developer feels a sense of 'ownership'

\- the developer respects you for allowing him to choose

Mandate laptops because you super-awesome-change-the-world startup is going to
inspire your developers to work hours outside of the office, even if you do
mandate 8-5 office day.

Every developer gets two monitors, no exception.

You can't encourage a person to be an Olympic rower by simply providing a
stool and a stick to paddle with.

------
mrshoe
As much as I love Macs, I think I can be more productive writing code on a
linux box. I'm going to assume that applies to everyone else :-), and say you
should save some money on desktops by getting everyone a linux box with 2 Dell
monitors.

Spend that money (and more) on getting everyone a MacBook Pro as well. As
anonjon points out, if you don't give out laptops you might be _discouraging_
working outside the office more than _encouraging_ working at the office. An
important part of startup culture, imho, is to not require face time at the
office.

Shameless plug: I agree with you that encouraging collaboration is key. Since
lots of teams are working in a distributed fashion these days, we think they
need some other way to collaborate effectively. This is why we're building
<http://shoptalkapp.com> . We've found that it even encourages more
collaboration for those that _are_ in the office.

~~~
dotBen
If you buy everyone a linux box, I'm not clear why buy a MacBook Pro too?

If we were going to do that we could just buy MacBook Pros and be done with
it.

~~~
mrshoe
I'm honestly not sure if one can hook up 2 20" or 24" monitors to a MacBook
Pro these days, but even if you can't it's nice to have a desktop with a mouse
and keyboard and not have to plug/unplug your laptop from everything all the
time. Also, I prefer linux on the desktop (for my work machine, not personal)
and Mac OS on the laptop, but that's just me.

~~~
itay
I have a 30" monitor (with dual DVI) at home, and not being able to use it
with my mini-DP MBP is a tragedy, let alone being able to connect a single
laptop to two monitors...

------
nzmsv
This sounds like a pretty terrible culture you want to create. Why control
what people do with your machines at all? (on separating email from
development) It's a completely arbitrary rule that makes no sense. Hackers
tend to question those :)

If you really want to make developers happy, give them a budget and let them
buy a computer. Several people in the comments said they like Mac laptops. I
personally love my Linux desktop machine with a good keyboard. Which is the
point: we are all different, and have different preferences.

If you don't trust your developers that much, at the very least let them
configure their software the way they like. I'm sure your startup needs the
coders to be productive. Don't prevent that.

------
wglb
I think promoting the startup mentality is not really about the smaller
details about the hardware. It is about giving people challenges and a good
collaborative place to work. The hardware won't do that on its own.

The two screens sounds like it would help the immediate task, but I personally
would not buy dell of anything. Samsung screens are great.

If you are a startup, I would not buy the macs, but I do buy the motherboards,
cases, memory and disks and assemble them. Takes about an hour. You can put
together a kick-ass development system for $500 not including monitors.
Laptops are about half as cost effective or worse compared to desktops.

~~~
dotBen
"I think promoting the startup mentality is not really about the smaller
details about the hardware. It is about giving people challenges and a good
collaborative place to work. The hardware won't do that on its own."

You are right, and my point was not to say the hardware setup is the be-all
and end-all. But the scope of my question for HN in this instance was hardware
setup.

I actually very much disagree with your idea of building your own computer...
the time it takes to order all the components, receive it, put it together,
tinker with the setup, etc is going to be longer than an hour. And if
something breaks/goes wrong with one of the components then it's a nightmare
trying to get it fixed. With an iMac (for example) it's just a case of getting
AppleCare and then if something goes wrong they come by the office the next
day and repair it or replace it. It doesn't matter what is wrong with it, or
which part is at fault

My team's velocity is important and making sure I can be certain their rigs
are stable and can be quickly fixed/repaired is important. (Not every
developer likes to put computers together either, some may not have even done
it before)

I also disagree about the $500 idea - two screens would probably be $500 alone
and then conceivably the developer might want to have windows on there, which
is an extra $200 now (windows, {shudder}).

~~~
wglb
Well, the hour is measured, not theoretical. I have done it myself on about 14
of the computers here.

The price I pay for the hardware is actually $300 retail quantity one, and the
displays are about $200 each. I said $500 in case you want more beef in the
system, say quad cores or such--I use dual. I load these up with ubuntu and
off we go. I would rather spend larger dollars on the chairs (not a joel
joke).

I order from tiger direct and have it the next day.

EDIT: I understand your point about giving them macs instead of windows. My
situation is not web-based, so we are developing for linux servers.

------
Scott_MacGregor
I like the dual screen setup, but I would say no laptops because backing up a
take-home laptop won’t happen on a set schedule with the rest of the
workstations overnight. Plus if someone takes one of the laptops to Starbucks
and gets a virus online, when the machine comes back on your LAN it can create
some real headaches for everyone else. I know people love laptops but that is
my opinion on them, plus I think they run hotter than a box machine meaning
more frequent disk errors.

I would recommend letting your people check personal e-mail, IM, etc..., from
the work machines. It really won’t hurt anything and it will make for a
happier employee. I would also not want personal laptops on the company LAN
because of the chance of spreading viruses or stealing IP.

As far as software, any e-mail client that downloads a copy of the email to
the employee’s machine as well as leaves a copy on the server would be my
recommendation. If the person wants to use the client for personal mail too,
split the mailbox inbox folders based on xxx@personal.com and xxx@company.com.
I would also add MS Word and MS One-Note which a lot of people seem to like.

Personally I like Windows Live Messenger because it can send and receive free
SMS (personally I use it a lot). Also if you’re not backing up in-house add a
backup client like Mozy.com and your all set.

You might also want to put a policy in place that the employee cannot self
install any software without your approval. Basically, if someone wants to add
Trillion, or their favorite development workbench they must ask because the
hardware does not belong to them and you will know what’s on the machine if it
fails and must be restored.

~~~
dlaz
Don't require people to get approval before installing new software. That's a
pain for the developer and the person who needs to do the approval and will
likely just result in your developers not trying out tools that might help
them be more productive.

------
petercooper
Do what you like (of course!) but it would drive me nuts to have a "work
computer" and a "personal computer." I love the iMac, but I love my portable
too, and I can work _and_ do personal stuff on both. Personally, I'd suggest
not enforcing anything too tightly (especially that 90 degree screen thing -
not everyone likes it.. I hated it).. but it's your gig, so you can do
whatever you like, naturally.

------
rudd
Why do you want to keep the use of a work computer and a personal computer
separate? I suppose I can understand wanting to keep personal data on your own
computer, but people aren't going to be happy being forced to drag a laptop to
and from work just to check personal stuff during the day. They won't see it
as you being lenient about using personal stuff on the network, they'll see it
as you being very strict about what touches your precious work computer.

You should let people choose what sort of setup they want (within reason). Let
them get a desktop if they just want to work in the office (which seems to be
what you want anyway), and let them get a laptop if they prefer that. Linux,
Mac, Windows, whatever. Let developers choose their own machine setup and
they'll thank you for it. I can't even say how happy I was that I wasn't
forced into a particular setup at my current job.

------
ablerman
The startup culture around here is typically that of flexibility. We work long
hours, we don't keep track of vacation time and I don't care if you sit at
your desk.

Currently, my favorite spot is the office couch. Maybe next week it'll be the
conference room table.

I encourage people at startups to integrate work with their life. It's not
just a job.

That being said, my preferred rig is a macbook with wireless. It comes to the
table for demos on the projector, it can sit at my desk or come to the couch.

------
petervandijck
Mmmm...

It feels like you're treating your developers somewhat condesceningly. Go with
laptops dude, and extra screens (2 large ones each) at the office. That's what
developers like.

------
kbob
"Welcome to StartupCo. Here, take my old laptop. You can use this until you
get your own system. Your budget is $2,000 and that includes any software
licenses you'll need this quarter. Go online and order your new system and
after that I'll introduce you to Ben who knows all about the code you're
picking up. About 20 minutes? Oh, and have it air freighted. I need my laptop
back."

------
bayareaguy
At the last place I worked at with this sort of environment, I found the thing
which increased my productivity the most turned out to be the several open
wireless access points which were purposely setup _outside_ the company's
internal network.

~~~
dotBen
You mean because your internal network was firewalled/restricted etc?

We're a startup so our network is just our router plugged into the internet :)

------
anonjon
Right now I have a laptop hooked up to a 24" monitor. It is sweet.

The nice thing about having it as a laptop is if you have to go collaborate
you can go to a meeting room and both sit down with your laptops. As opposed
to, i don't know, really...

At my current work I often save a lot of time (and save myself from abject
boredom), by bringing my laptop into meetings that are not really relevant to
me, and hacking until the part of the meeting that I need to pay attention to
is happening.

It seems that you are very insistent on the idea that the iMac will cause work
to take place in the office. Really what it will do is cause work to _not_
take place other places.

Lets say I have an iMac and we really need to get X feature over the goal line
soon. If i want to put in a couple of extra hours at night to do that, I'll
have to stay at the office. I don't particularly like the office (and its
spooky at night there...), so I'll probably not do that.

If I have a laptop, I'll probably just unplug the laptop at 5:00 and take the
darn thing home. Then I can work on whatever while eating caviar and watching
MythBusters on FULL Cable, because of the billions in stock options i've made
from our AWESOME web app.

I mean, if you want people to be at the office most of the time, I think you
are well within your rights as an employer to say, 'Hey, i expect you to be
here between X-hour and Y-hour'.

Anyway, iMac and Dell sounds very branded. I'd go with solid laptops running
some version of Linux (whatever you are deploying on), and the nicest/biggest
secondary screens that you can get on the cheap.

~~~
dotBen
"It seems that you are very insistent on the idea that the iMac will cause
work to take place in the office. Really what it will do is cause work to not
take place other places."

That's actually part of the point. I would like developers to put in good
hours in the office but I don't want to create a culture of 80hr work weeks.

I'm mindful we're a startup and it's about putting in the hours - but my
experience has been that "putting in the hours" often includes the
procrastination in the office during the day OR it means doing lots and lots
of work and the quality drops off as it's not sustainable.

