Given a new office, new desks, and very little limitation on per-person costs (within reason - virtual reality helmets are not likely) what is the ideal number, size, and orientation of (presumably flat-screen LCD) monitors to maximize productivity, efficiency, and accuracy in coding?
If it's relevant, assume .NET development for a web environment, employees in individual offices with large desks. The coders are currently IMing for most conversation, though all are on-site, and web browsing is a part of the job.
There's no such thing as an "ideal monitor setup" because there's no such thing as a "canonical user" either ! (plus the setup you need depends on the tasks you have to perform)
That being said, the strategy I use at my company is simple :
(And I should mention I am running this company, so I'm basically the one paying for hardware ; that being said, I used the same strategy in my previous work position, when I was running a middle-sized .net programming team in a top-tier Investment Bank)
Three reasons to use this strategy :
A typical monitor costs around $300 and will probably be used for say 3 years... That's a total cost of ownership of around $.5 a day including electricity. The cost of 'ownership' of a good programmer is rather in the $500's a day.
In other words, a monitor pays for himself as soon as he saves 1 minute a day of a programmer's time.
You acknowledge the fact that your programmers know better than you what they need to get their work done (which is a strong motivator for them).
I use to tell my team-members :
You acknowledge the fact that your programmers work is important enough to let them having the best tools money can buy (again, a very strong motivator)
In fact, programmers are so expensive that almost everything that can ease their job is worth buying. I'm talking about :
To end with, a few words about my current setup for developing a .net software (YMMV if you're either not me, not me in may '09, or not developing a .net software)
A good reason to add an extra-monitor is if you need some things to be constantly visible (such as supervision tools)
In my experience, I hate working with only one monitor, 2 is ok, my productivity still benefits for a third one, and extra monitors are not really needed.
I think 24" monitors are more or less the standard these days. Get two per person if you can.
I'd say at least give the developers two screens. It makes shifting between documentation and the IDE easier and there are several studies that some gains in productivity.
Regardless of developer pay and keeping in mind productivity gains of 30% with dual monitor setup, buying a second monitor is actually quite cheap if you start calculating about it.
If money still is an issue, having a laptop connected to one screen is an improvement over having just the laptop screen on. However if there is a size difference between the laptop screen over the attached one it may become annoying to some (I don't find it annoying but I've met some collegues who think that).
I'd also recommend desks with elevators to prevent muscle and backaches, but that's a whole other discussion topic.
I highly suggest 2 screens and they should both rotate. I have dual 19" at work and being able to rotate one of them 90 degrees is very valuable when I am looking at long sections of code.
I second the 24" suggestion. 22" is the bare minimum, but cutting costs on monitors is, I think, one of the least practical strategies; a really good monitor can easily last 5 years in practical use. My personal favorite is the Dell 2408WFP (updated 2407, which I use at home and enjoy greatly. The HC variant is event better, I think). It has an SD card slot and internal USB hub (both of which are great for developers), and features best-of-breed display quality. Where I come from it's ridiculously expensive, but in the US the price is probably much more reasonable.
As a developer, I personally I find a second monitor a cute but somewhat redundant addition -- I usually place MSN Messenger, Skype and Process Explorer etc. windows on it. At work I have a decent primary 24" and el-cheapo secondary 22" set up and it's terrific; at home I just use the 24" and don't miss the second monitor all that often.
I've used several different setups over the years:
Goes without saying that LCDs are much easier on the eyes than most CRTs. I found the three 20"s to be the best for me, due to the extra real estate. Those were 1600x1200, and that was quite a bit bigger than 1278x1024.
For me, three was a good number since I was working on a desktop app with a database backend. One screen for the IDE, one for the DB, and one for the app to run in works nicely.
The 24"s, with a resolution of 1920x1600 looks pretty nice too. Another nice configuration is a 30" with one or two 20"s turned sideways on each side (wingmen).
Whichever way you go, I'd recommend sticking with the same style (less distraction), and using a nice multi-monitor tool like UltraMon.
I prefer 3 screens, which really isn't that expensive at all these days, even if you do wind up having to get a second dual-head graphics card. Three matching widescreen monitors would probably be best, probably with one mounted portrait for document viewing.
On the money-no-object side of things you could go for a data projector (which, again, are actually very affordable these days) as a fourth screen to facilitate pair programming and ad-hoc small meetings. You could team that with an interactive whiteboard for pen-based input (Mimio and e-Beam do the cheapest IWBs), good for diagramming, mind maps and so on.
Depending on exactly what the users will be doing you might want to look at getting a colorimeter to adjust the colour on your screen(s), something like the Pantone Huey or similar. This allows you to accurately preview work before it is printed (assuming your printer is also properly calibrated and has a colour profile applied) and be confident that the colours you are seeing are correct. Handy for people designing/using web pages, very useful for people doing any kind of graphical work, and an absolute must for anyone sending work off to bulk printers.
Two monitors is more important than big monitors. Although I would say 19" is the minimum. 24" is great though. Additionally there are tools to allow better tiling of windows on large screens.
My current setup at work:
All 3 machines are controlled using one mouse and keyboard through Synergy, giving me effectively 4 monitors (I have an L-shaped desk, or this wouldn't work).
I've only had this setup for about a week, and I'm already addicted. The laptop runs Outlook and Firefox for MSDN docs and our bug-tracking system - "background info" type stuff. The second machine lets me do resource-heavy things like running a bunch of VMs without slowing down my primary development machine.
If money truly is no object, however, what I'd do is buy a bunch of monitors of different sizes, decide on a simple default setup like two 22 or 24" widescreens, then make it clear that people can alter it however they please. You'll never find one monitor configuration that is ideal for every programmer.
While I haven't tried this myself, I saw this at an interview I had. The interviewer had two 20" wide screen lcd monitors turned vertically. It seems naturally better to read code vertically than to scroll down on a horizontal screen.
It seems possible that three monitors might be the best. Two vertical and one horizontal (for testing).