Friday, August 6, 2010

What Your Developers Spend Their Entire Day Looking At

There are all sorts of things to get right and wrong when you're building software. There's a lot to think about when you're kitting up your team. What OS should desktops run? What tools will we use? How much should we spend on office chairs? One of the most important decisions you'll make is what sort of monitor your developers get, and how many.

I'm not joking about. Your developers are going to be spending a fairly large fraction of their professional lives looking at their monitors. You really want to make it a pleasant thing to do. The standard I tend to see these days is to give developers a pair of 22" wide-screen monitors. That might sound excessive, and other staff might be resentful, but it's really not that costly these days. A good 22" wide-screen might cost $500, as compared to a cheap small screen which costs, say, $350. Going for twin 22" screens means spending $1000 instead of $350. Given that a good-quality monitor will often last upwards of three years, this means you're spending a little over $200 a year per developer.


So what do you get out of it? Plenty. First of all, your developers will quite likely be more productive. I find debugging code to be much easier when I can have an application running full-screen on one monitor while my debugging tools are on the other. Tuning CSS is easier when I can look at the context in a browser while I'm editing the file. Visual Studio is much easier to use when you can devote an entire screen to code or UI layout while still having all of your explorers, editors, and toolboxes visible on the other. Widescreens make comparing versions of code files much simpler.

At one previous job, one of my screens had a rotating stand, and I ended up turning it on its side and using it mostly for editing code. I could see a lot more context when I had the entire 'width' of a 22" widescreen in height. This tended to play havoc with remote desktop sessions, however. Most annoying was that whenever my manager connected back to his machine from mine, it re-shuffled his entire desktop. Use with caution!

This advice doesn't just apply to screens. If your developer machines are slow, they'll end up waiting for things they do frequently. When they have to wait a lot, they'll find things to do while they wait. You'd be amazed at how much productivity you lose if your developers alt-tab to facebook every time they hit the build button! Fast computers for your developers are vital. Consider getting machines with RAID controllers, and mirroring their drives: developers tend to spend more time customizing their workstation than any other sort of employee, and having to re-build their machine results in more lost time than just any un-committed code changes. A software developer is likely to have all sorts of settings on their IDE; they'll have lots of little productivity tools installed, like their favourite code editor, and perhaps a little tool to help them build regexs; macros and little time-saving scripts and other things. It will cost them time, and worst of all, it will be frustrating, to have to get everything just right again. Having mirrored drives helps to reduce the chance this will happen. Your other alternative is to have a good backup and recovery system for each developer workstation, but just having RAIDed drives is probably cheaper and easier to manage.

There are lots of little things to do to make your programmers happier where they work. Remember, they spend 40-odd hours a week in front of their PC. The more pleasant it is, the happier they'll be, and you'll tend to get more out of them. If the chairs are uncomfortable, they'll dread coming in to those 8-hour days, and you'll spend more on sick leave. If the coffee in the office is terrible, your whole programming team will start leaving together two or three times a day for 'a quick coffee up the road'. Multiply your charge-out rate by the number of programmers in your team by 1/4 (for 15 minutes) by three, and that's what it costs you every day to not have good coffee in the office.

I've seen a lot of workplaces who skimp on the little luxuries because they're seen as 'too costly'. You know what's really too costly? When your programmers see photos of the office of one of their former colleagues, and the double-22" monitors make your single 19" look like a cage. When the espresso machine in the common room trumps the tin of International Roast you keep under the sink. When the former colleague gets a huge glass whiteboard, while you give your developers butcher paper and pencils. You know what will happen? You'll have employees who treat their job as something to get them by until they find something better. They will join, they will hate it, and fairly soon, they will move on.

It's simply too expensive to spend $350 per machine on monitors when you should be spending $1000.

No comments:

Post a Comment