Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Interesting post by Seth Grodin by increasing productivity by specifying one device for work and one for everything else. Would you be more productive if you only programmed on one machine and forced yourself to surf, chat, email, and play games on another device or would it hinder productivity?

If your boss saw you on your phone or tablet for an hour, it would raise a red flag.

Could be a problem if you mix work and personal email. Obviously doesn't work if you don't have another device.

EDIT: maybe the advantage would be for a developer to have more than one computer instead of just a faster computer and more monitors?

share|improve this question
up vote 12 down vote accepted

To increase productivity, eliminate delays in the edit-test cycle. Programmers go off to surf the web or read stackexchange when they are waiting for multi-minute compiles or server restarts. Not only do they lose time but the problem fades from short-term memory, and has to be reloaded when the machine is finally ready for use.

share|improve this answer
+1, the delay to get feedback about the fix is what makes productivity decline, the loss of focus is born from waiting. – Matthieu M. Mar 27 '11 at 11:58
If the compile was occuring on another machine, couldn't you keep programming? I know I didn't pose the question that way, but for a developer this may be another advantage. – JeffO Mar 28 '11 at 0:40
@Jeff O: Sure, but now I've got two versions of the code active, so I'm multitasking. What happens when the code I am waiting to test doesn't pass? Now I've got two problems: the failing test, and new partially written code. Working like this is inefficient, and worse, it's stressful. I'm about five times as productive when I can test and edit with no significant delays. – kevin cline Mar 28 '11 at 0:47
This is definitely a big part of my issue. I have two devices, I browse the web and do non-work stuff on my laptop and use my desktop only for work related activity. If I'm continually waiting for the build, I'll spend much more time with the laptop. – David Hogue Mar 29 '11 at 16:57

I can say my home office is setup this way. My programming computer is never used for non-programming activities, I turn the monitor off when I am programming on my second machine and only turn it on when I am taking a break or not working. My second machine is also used for beta software and first installs of patches and service packs.

share|improve this answer

Having separate machines allows you to customize each for it's intended purpose.

It also isolates each from changes in the other. I've had days where some broken environment caused me to be unable to read and respond to company email on my only workstation. As a consequence I now do a lot of work inside virtual machines to avoid loosing my only connection to the rest of the company.

I also create separate development environments for each project so that when I come back to one (for bug fixes for example) the environment hasn't become broken by some other project's changes.

share|improve this answer
I had a feeling this may provide a different advantage for a programmer than other users. Everybody talks about getting faster computers and more monitors, but maybe there's an advantage to having a second or third computer? – JeffO Mar 28 '11 at 0:39
IMHO, having dual monitors is a HUGE performance improvement for developers. A second (can be much a cheeper) machine for office access is less of a direct bonus but provides the security one needs to risk breaking something while developing/testing. – Chris Nava Mar 28 '11 at 4:16

I don't really see the point as you are making the same decisions regardless of multiple machines or not. Am I going to work or let myself be distracted by this shiny gadget or interesting article. If you have the discipline to adhere to the line between work and distraction with two machines, then you have the discipline to do it on one machine.

share|improve this answer
I disagree. For many people, a spatial division between private and professional life is important to succeed in any of both. This can be something as drastic as rooms (i.e. office vs. home), but maybe something simpler, yet in a way clearer, such as different computers. The importance is to definining a clear context, in which you will do the right things subconsciously. – back2dos Mar 26 '11 at 18:56
I agree with the division of private and professional life, I do the same myself. Although I have space set aside as a home office, I only use it when I must, preferring to go into the actual Office. But I just think that the discipline required to stop yourself being distracted on machine 1 by e-mail,chat etc, is the same discipline it would take to make yourself change to machine 2 to do those things. – Kevin D Mar 26 '11 at 19:21
Well, that is hard to say for sure. However, changes to your environment help you to break out of routine and automatisms, thus getting a second machine might provide the necessary impulse. – back2dos Mar 26 '11 at 21:28

I use multiple virtual machines and multiple monitors. I have one dedicated to Unix development, one dedicated to {Windows development, work email, documentation}, and one playground. If I really need to get into one environment I make it cover all screens. If I need to context switch I put on on each screen. Just make sure you have enough memory.

This layout has the benefits of reduced duplication of hardware, increased portability (just upgraded my system, moved the VMs over and up and running in under an hour), and fault isolation.

If you boss is watching which device you access information from, consider finding a new boss.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.