When your programming you often have to go and look at other pieces of code for reference, search for something etc. I'm looking for some numbers on the ratio of time spend actually typing the code(coding) and the time spend going back and forth between other parts of the system, not even counting browsing the internet, reading documentation.

Ofcourse this depends on a large number of factors, probably also on your IDE, programming language etc. I just need some rough estimates, or researches on the subject.

Background: I want to investigate how much network latency is tolerable for a programmer to work on virtual machines (if any).

closed as primarily opinion-based by user40980, Dan Pichelman, user53019, gnat, user22815 Jun 30 '15 at 2:50

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.


I want to investigate how much network latency is tolerable for a programmer to work on virtual machines (if any).

This is simple. I'm going to throw out the "scrolling/navigating" part of this question and go directly to the root here: typing vs. latency.

When I hit the key, I expect the character to appear immediately. Anything less than immediate is unacceptable. When it comes to typing, I expect results. I type something approaching 100 wpm. Latency negates that.

The biggest problem I have with latency when typing is this: if I misspell something, on a live computer I can backtrack and correct it at 100 wpm. So it's taken care of and corrected immediately. If I am typing with latency, then what happens is I misspell something and don't see it for a word or two. Now I have to stop, erase, retype, all slowly because of the latency. It just flat-out slows down the whole process of composition.

When it comes to typing latency, you just have to decide what you can reasonably live with.


Depends on many factors.

Learning a new library? A lot. Have two monitors? Probably not much. Dealing with code written by monkeys? Tons. Reading/Writing documentation in a waterfall process? Tons.


Depends on which phase of the project you're in.

Initially there's a bunch of typing--I find that to be the case even when I'm tying in a lot of external stuff.

Once I have the structure of the application in place and the general flow of the thing constructed, it becomes more navigational and surgical.


Cmd + F

Best friend I have. No more scrolling, no more browsing code to find it. Need to find a file quickly? find . | grep [filename]. Poof, there it is. Can even file name match with regex. Using TextMate? Cmd + T and Cmd + Opt + T are your friends.


I see absolutely no connection with scrolling etc. Having a ten-second latency isn't good, even if I wasn't going to type more than 360 characters that hour anyway.

When typing flat-out, I probably go about 60 wpm, or 1 wps. (I've been objectively tested at 87 wpm.) Given about six characters per word in tests like that, we're talking about 6 characters per second. Ideally, each would appear on the screen before the next keypress, so I can easily keep track of where I am and correct typos immediately. Bear in mind that I'm thinking about what I'm typing, so having to divert any cognition to the act of typing is a real limitation.

Since I don't know how bursty my typing is, I'd say that 0.1 second is the maximum acceptable latency from all causes. That's network latency both ways, any latency in bringing up my personal VM, everything. Anything more is going to be a drain on productivity.

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