Vivek Haldir’s recent post Quantum of Work points out something obvious in retrospect: programming is intrinsically fractured. It does little good to tell a programmer to unplug and concentrate. He or she cannot work for more than a few minutes before needing to look something up online or interact with someone.
A quantum of work is the theoretical longest amount of time you can work purely on your own without needing to break out into looking up something on the web or your mail or needing input from another person. For most modern workers this quantum of work is measured in minutes.
At least that’s the default, the path of least resistance. But it’s not the only way to work. Software developer Joey Hess describes how he works here.
[My home] is nicely remote, and off the grid, relying on solar power. I only get 50 amp-hours of juice on a sunny day, and often less than 15 amp-hours on a bad day. … I seem to live half the time out of range of broadband, and still use dialup since bouncing the internet off a satellite has too much latency, and no better total aggregate bandwidth. So I’m fully adapted to asynchronous communication.
Joey Hess cannot possibly work the way Vivek Haldir describes. It sounds like his quantum of work is measured in hours if not days. That would not be optimal or even feasible for some kinds of work, but it does suggest that we may not need to be as connected as we are. Maybe your optimal quantum of work is somewhere between the extremes discussed above.
If your quantum of work is 10 minutes, maybe you could increase that. This would require making some changes. Keeping your same way of working but trying to ration your time online would be frustrating and counterproductive. I think it’s significant that Hess says he adapted to working asynchronously. For example, I assume he keeps reference material on his local hard drive that others would access online.
Even if working offline is less efficient, it’s a good idea to be prepared to work that way when necessary. I was reminded of that this weekend. I was using some desktop software that depends on a server component. There was a failure on the vendor’s server and nobody at work to fix it, so I was stuck.
What are some ways to increase your quantum of work and to work less synchronously?