Multi-Monitors and Increased Development Productivity?
cK-Gunslinger asks: "I'm looking for some definitive, legitimate studies/research that show that using a multiple-monitor setup yields increased productivity for code development. (or disproves, as the case may be.) I've seen many online 'articles' that praise the virtues of multi-monitor setups for content creation and HTML editing, but my interest lies more in the OO design, coding, and test realm. Sites such as
RealTime offer some good info, albeit not completely unbiased. And who doesn't drool over X-Top systems. I'd like to submit a proposal to our IT and Process groups recommending a "trial run" on some small project, but am having a difficult time finding enough empirical evidence to crack the budget-clench. I'd also be interested in user comments on how multi-mon setups have helped your productivity as well as how you typically use your setup (what apps, how many monitors, CRT vs LCD, etc.)"
...I have used a dual monitor setup for several years now at home, and when i go to the office, i find myself sending quite a bit of time alt-tabbing back and forth between applications.
To be able to have documentation open on one screen, and your actual work on the other screen would speed up development. I know using spreadsheets benefit greatly using the monitor spanning, where your work is spread over both monitors. I can see how a vertical monitor configuration would allow a coder to view more code at the same time, and would probably speed up development.
Why read the article when I can just make up a snap judgement?
I don't have much hard experience on multiple monitors, but I've tried setups both in the Apple Store and on one Windows machine that's set up that way in one office.
This particular Windows machine was set up to be a "control center" to run a whole bunch of browser-based applications together. I found that in practice it's very confusing to administrate, since Windows counts it as a huge screen, and there seems to be a bit of drop-off at the edges. So whenever dialogue boxes appear in the middle of the screen, they are split evenly between the two monitors and parts of them don't seem to make it (they drop into the gap between screens). Worse yet, they often cannot be moved, which makes entering data a royal pain.
MacOS X (as seen in the Apple store) handles this much better, but it's still fairly confusing in practice. You can see this with their store display of a PowerBook G4 hooked up to a Cinema Display. I would suggest that if you have an Apple Store in your area, you might want to try checking it out. Unfortunately, the menu bar is on the top of only one of the screens, with the Dock [like the Windows taskbar] at the bottom of the other, which again can be confusing. But it's a lot better than the Windows approach, since they are still treated as multiple monitors, and dialogue boxes appear in the center of the individual monitors, not split between them.
So if you can develop with Macs, that's the way to go since the setup is so much more intelligent than with Windows.
The presence of more screen real estate is undeniably addictive, and I'm sure I'd get used to it if I actually wound up working with that kind of setup on a daily basis. But I think a single high-resolution monitor would be a better way to go if you can afford it. I have a SGI 1600SW monitor and the extra resolution (1600x1024) is well worth the cost. When I visit the Apple Store, I drool over the new Cinema HD Display (1920x1200-odd). If you can afford that, I'd highly recommend it.
For development, I don't think there's any contest between LCDs and CRTs. Buy the LCD because it's a lot sharper than the CRT, doesn't flicker and won't degrade over time.
Hope that helps.
D
I think that using multiple monitors is great for anyone who uses multiple programs at the same time. If all you ever do is use one program, with one window and enter data, then it's not such a big deal. However, as one starts to multitask more, having a second screen to utilize is a big improvement.
I find that it is siginificantly faster to switch between programs running on different screens, than to try to find which item in the task bar represents that program and clicking on it. In addition, anyone who has to use reference material to work on a current project will find it very helpful. On one screen, you can have the pdf(instead of printing it out) and you can read through it as you are working on the second screen.
I will always use multiple screens if they are available to me.
The best way to get your boss to see how much nicer it is/more productive one can become is to setup his computer to have multiple screens. Let him use it for a week or two. (This is of course provided that he uses his computer substancially and would appreciate it.) Then when he goes back to one screen he will see how limiting it is. (Just like that first time when you work on a 21" screen for a while and have to go back to your 15" screen.)
As for LCDs vs. CRTs, it all comes down to cost and desk space. If you're trying to get them to bite the bullet and get some multiple screen systems, getting them to buy 19" CRTs is going to be much easier than 18" LCDs. However, if your Desks aren't big enough for CRTs then you are stuck.
Just thought of one more reason that going to multiple monitors is good. It gives you significantly more screen space for your money spent. Two 19" monitors might run you $350-$500 (depending on which screens you get... you could even get it under $300)... one 21" monitor will run you $300+... and one 24" will run you $1200...
Four desktops, each two monitors in size. First desktop: journal, several tabbed browser windows for general research. Second desktop: on the left three emacs windows, one for front end PHP code, one for back end PHP code, one for CSS stylesheets; on the right, four console windows open to various points in the source tree where I can do source code control manipulations and run commands to publish the new code to various test servers. Third desktop: left side, various SSH consoles open to web servers and capturing web server log outputs; right side, three different types of browsers to view the test pages. Four window: left side, free for hire; right side, SSH sessions to the embedded devices that capture our data and to the company's corporate web server where functions as a bulletin board for the development team. And then there are two more desktops I keep for stuff I'm only working on casually. Use some instances of Dia for making diagrams to post into the corporate workweb, image processing tools, etc. And the left monitor itself is special: I press the input button it switches to display the output of a W2K machine which I also use to test web pages and for browsing web sites that suck in Mozilla.
But that's just me, right? Not "definitive". Use your brain, guy. I used to buy shelfloads of C++ books. My desktop was my second monitor. You know, that chunk of wood that supports your mouse and keyboard. I used to look down there to learn things I needed to know while I was working. It has been two years since I bought a book to prop on my desktop. Any book I buy now sends me to the big leather chair. What else has changed? Could it be that my work is smattered across seven different embedded systems and web servers? That never happened back when I was running a Pentium system. And let's not forget you can almost fit the list of all XML standards on a single 19" monitor if you use small fonts (and you never actually click into them). And it's not possible that I could need to reference materials on Perl, Python, JavaScript, and PHP all in the same hour. Or that I might be running tail -f | grep on six different files under
My suggestion is give up. The definitive study that having one hand tied behind your back impedes your work flow probably doesn't exist.
When I'm not coding one monitor has instant messenging, winamp, a little browser window, all that stuff you want to keep your eye on. The other monitor has what I'm doing in full screen, gaming, video watching, etc.
When I'm coding on one monitor I use 4 desktops, 1 for instant messenging/mp3 playing, one for text editors, one for browser windows with documentation, and one with shells. If I had two monitors I would probably keep the code open all the time and switch off the documentation with the other two desktops in the second monitor.
If I come across a great deal of money it's two flat-screens ahoy!
The GeekNights podcast is going strong. Listen!
Most shops have a boneyard of old monitors and adapters. Surely you can scrounge enough stuff to do your own trial. If you can't find it at work, there's usually surplus shops around that can sell you what you need for about the price of an upscale lunch.
"Eve of Destruction", it's not just for old hippies anymore...
Ask the powers that be: How much work could you do in a day if your desk had a 21-inch diagonal?
I used 3 monitors (each attached to its own PC) at my last job. I was doing QA with much automated testing. I was testing interactive web sites as well as database migration, conversion, and update efforts. My monitors? One had a 17-inch diagonal and the other two were 21-inch, as follows:
- 21-inch monitor #1: Input. Here is where I would write test drivers, create input files, and in general produce the stuff that would be fed into the application under test.
- 21-inch monitor #2: Processing. Here is where I'd actually run my tests. I could have multiple browsers or database windows open at once and all visible at the same time. Nothing else was being done on this machine so as to keep it as much like a customer environment as possible. This is the one where I spent most of my time.
- 17-inch monitor #1: Output. This is where I would monitor log files while tests were executing. It was also where I'd run my bug reporting application, process e-mail, write reports, etc. I was pretty much free to do whatever I wanted on this PC without concern for it impacting what I was developing or testing.
I ran the 21-inch monitors at 1600x1200 and the 17-inch at 1280x1024. I shudder to think at how much longer it would have taken me to accomplish anything if I only had one 17-inch monitor to work with!Was it worth it? Let me put it to you this way: The two PC's with the 21-inch monitors -- I purchased them (PCs and monitors) on my own, out of my own pocket. I have no absolutely no regrets. If anything, I'm looking forward to when I can afford to buy another 21-inch monitor so I can run with 3 of them side-by-side.
Persuasion: How do you persuade the powers-that-be to take the plunge? Ask one of them to sit at the computer for an hour as you talk them through your normal daily tasks. Have them remember the stuff that you need to remember as you switch between desktops or windows. Then, go to another PC where you've set up a dual monitor configuration (e.g. borrow the monitor for another coworker). Now talk them through the same task and let them see for themself how much easier and faster to do things without having to memorize so much stuff between actions. You can keep track of more things and less stuff falls through the cracks.
When they feel your pain, and see the benefits, you won't have to convince them, they'll be rooting for YOU! Even better, they may well be thinking of how THEY could get a dual-monitor setup! Encourage that line of thinking, help them to attain it, and you'll have a powerful ally on your side.
Historical Perspective. About 10 years ago I was working at a company that was developing a product that ran on both OS/2 and Windows. Even with my best efforts at scheduling my tasks, I spent from 30-60 minutes a day waiting for the PC to reboot into the other operating system. This was back when a 386-25 Compaq DeskPro was REALLY fast. And expensive ($3000?) so getting dual systems was really tough to justify financially. Today, spending only a few hundred for a new graphics card and monitor should be much easier!
Good Luck!
Don't think this counts as a definitive, legitimate study but I did find multiple monitors very useful for developing UI in C++ at my previous job. It was very nice to be able to run the debugger and the application I was developing full screen at the same time. This allowed me to step through rendering and mouse tracking without any of the development tools getting in the way and causing screen redraws etc. The second monitor also came in useful for looking at documentation while I was writing code. Also, as the program I was working on was a commercial Windows app, it was good to be able to test things on a multiple monitor system - it is not unusual to find bits of code that assume screen coordinates are always positive which is not necessarily true on a multiple monitor system.
sorry, i don't have a study to link to, i can only offer experience. i currently run a big set-up: a gentoo linux machine with a geforce4 that drives two ibm tfts and a powerbook right beside them. when i'm developing (3d game engine for my 4th year thesis) i have useful stuff on all three screens.
i've found that this allows me to have visual slickedit on the main screen, testing stuff on the second screen and docs on the powerbook. it is, to me, very helpful, especially since i'm using a couple of libraries for the first time, so having the docs right beside me is an asset.
a couple of people from school have seen my set-up and gone out and bought a 2nd monitor because they see the value instantly.
a note of interest about using an nvidia dual-monitor system. you basically get one big screen, so you have the ability to drag a window from one monitor to the next. i *wish* i had the ability to view the two screens as independant screens with virtual desktops for each, so i could keep the code on the main screen and switch the other from compile to testing. i currently kinda do this by making the code sticky and flipping back and forth on the 2 virtual desktops.
i have a feeling tha the complexity of making my wish come true is the main reason it does not yet exist. or maybe it does exist, i've done zero research so far.
hope that helps.
I've been using multiple monitors for around 5 years at work now, and hopefully soon at home, too, and this is my experience so far. For the record, I'm a sysadmin, but I spend most of my time coding.
First and probably foremost, like all things, it will vary by the person. I've known people who couldn't effectively use two monitors' worth of space and who just did one thing on one monitor and another on the second, so they might as well have just switched workspaces.
However, I find multiple monitors to be largely indispensable. I can fake it with multiple workspaces, but then I waste a lot of time trying to find the right workspace sometimes, and it's much more difficult.
I code almost entirely in perl, using gvim. I usually do my main coding on the left monitor, and I usually have 1-2 other gvim windows open in the other monitor (does anybody code completely independent files anymore? there are always other files I need to look at), and that leaves me 1-4 other small terminals (I use two small and three large terminals on my 21" monitors) for things like tailing the apache logs (if I'm doing web development), tailing system logs, that kind of thing.
As a sysadmin, I also find that the extra screen space means that I can throw away space that I wouldn't otherwise be able to do--I have a portion of screen space permanently dedicated to a small window tailing a combined syslog from my entire network, and another window dedicated to an IRC session with everyone else in my group. If I only had one monitor, I could not afford this space, and thus would be constantly switching over to check for IRC or syslogs.
If you usually do or should work with multiple windows at once, then you will probably find multiple monitors to be useful. You can usually do without them, but it makes a big difference. I don't know exactly how to measure my productivity, but I do know that if I don't have multiple monitors, I spend a lot more time flipping back and forth doing large context switches, whereas with multiple monitors, I only actually flip around when I'm changing tasks. This is especially true with web development, because web browsers are so large relative to other windows.
And if you happen to be a sysadmin, I think it's an even easier proof, because there are usually multiple things you need to be paying attention to all of the time, and you are also usually at least partially working on more than one thing at once. I love starting a long task in one window while doing development in three other windows, tailing the log files, and watching IRC, all at the same time. I don't ever context switch out of development unless one of the other windows moves, and it takes very little effort to assess whether that new information deserves a full context switch or can just be ignored or whatever.
At this point, if I ever work for a company that won't buy me the extra monitor, I'll buy it for myself; it's only a couple days of work for me, and it's definitely worth the money to me.
Do the budget people respond to empirical evidence? My experience has always been that they make emotional rather than logical decisions (like most people do).
Perhaps you can come up with some emotional argument, like, as a previous poster mentioned, letting your boss use a dual-monitor setup for a little while. Even if he doesn't need it, he'll hopefully think it's cool and not be so opposed to it for you.
i recently started using a dual monitor setup to help me write code at work. it speeds debugging up a LOT, AND it was easy to get started. i just used an old PCI video card and an old monitor that were lying unused in storage. the old equipment runs 1024x768, but its much better than a single monitor and its a good way to recycle old hardware.
if you want to investigate dual-monitor setup really cheaply, i would just look in a closet somewhere for some old equipment (or grab PCI video cards off of eBay) and draw your own conclusions. then, you can always upgrade later.
Somewhere on this page I have hidden my signature.
The easiest way to justify going to a two-headed machine is to compare it with a dual-box system. While the PC might not be too expensive, the extra software licenses add up quickly. Generally the people that can make a good argument are the ones that are working on several different projects or applications at once.
Most companies treat resources based on monitors rather than boxes; if you can justify a need for a second box then it is easy enough to just go for a second monitor. The trick is to make sure that the arguments for a second PC don't interfere with just having a dual-headed system.
The other secret is that this is more about morale than productivity for the boss. Although it might not be much of a stretch to claim a 2% productivity increase which would pay for the equipment inside a year, it's easier to express your frustration with working with several small windows that don't offer a full picture of the project.
like many of you (who spend most of the day staring at monitors), I have problems with my neck.
I've found a nice side-effect of having 2 displays. the motion of looking left/right and back again causes my neck to be in motion more than had I been using only 1 display. this alone has helped reduce neck strain.
similarly, although I can't prove it, I think my eyes also have some variety in terms of focusing. its known that you should look away and focus on something farther away (every 20 minutes or so), and at least moving my head side to side to see each display causes some refocusing, which I think does help some.
typical use is when doing photo retouching in one display and having xterms in the other. or a mozilla window in one and emacs in the other (yes, I use emacs to edit html source).
my current favorite setup is a pair of 16" 1280x1024 sharp brand monitors with DVI and a single dual matrox g550 agp card. 16" displays are big enough to see well but not so big that they consume most of your desk space. if you buy the video card direct from matrox you can order the special dual-dvi cable (the magic is in the cable, not the card). for some reason, dual dvi is impossible to find in local stores (even though I'm in the silicon valley!). go figure..
--
"It is now safe to switch off your computer."
The fact that users will blow $200-$800 on a second monitor just illustrates the fact that Windows badly needs virtual desktops.
I worked summer before last on a system with two twenty inch monitors running Windows. Last summer, I had the opportunity to set it up (unfortunately, again Windows), and used a single monitor with virtual desktops.
It turns out that as long as you have a decent mouse speed and fast edge flippping (i.e. no resistance), you can do much better with the virtual desktops.
Two 20" monitors are too big to keep in your field of view. I have to look different places. When I'm working with a big virtual desktop, I zip the mouse to where I want to go. It takes me somewhere between an eight and a quarter of a second to fully traverse my 3x4 grid of viewports.
OTOH, I *do* think that getting your single monitor up to 1600x1200, 19" is worthwhile. That you *can* keep in your field of vision.
May we never see th
Having experienced Virtual Desktops (no don't use the initials.. looks really bad)... on llnux first I was very excited to see VirtualDesktop developed for OS X. It allows a 10 high by 10 wide configuration of pagers/desktops which you can customize beyond your wildest dreams... and it will remember them between reboots.
So typically I have 3 desktops set up in a 1 x 3 config horizontally. One has my browser one has my mail client and the other is a multi purpose desktop with development tools. I can also add an extra desktop on the fly which I do if I have an active shell session going that I don't want to lose track of.
It's great because with a simple mouse movement I can switch between totally different environments without all of the clutter. This is very similar to a multi-monitor setup and for some purposes better. Not to mention the TCO benefits.
A fool throws a stone into a well and a thousand sages can not remove it.
I can personally say they improve my productivity a great deal. As a developer I'm often working on something but needing to refer to something else at the same time. Writing code against a particular database schema, designing a form while looking at the output, coding while browsing the on-line help.....for all these things a second monitor is great. Now 3 monitors...that is new teritory I intend to explore soon...
I just found this link and figured some of the multi-heads out there might find it interesting. It's free background images designed for use with multi-heads.
g ro unds.html
http://www.9xmedia.com/Pages-products/2000-Back
Enjoy!
-CB
Don't think that a small group of dedicated individuals can't change the world. It's the only thing that ever has.