One of the biggest challenges of being self-employed in an IT-related field is the constant distractive, pull of The Internet. It is Procrastination Central.
Facebook, Twitter, email, RSS, chat, Stack Exchange, web comics, and news sites are particularly troublesome because they – like a slot machine – have a random chance of paying out with something new and exciting each time you visit (see: Operant Conditioning).
The basic pattern goes “this problem I am working on is hard… maybe I’ll just check to see if I have new messages”. Repeat every 10 minutes (“maybe I’ll ‘win’ and get a new message”). And then, when one of them pays out, waste perhaps an hour or so engaging with it. All the while, the original hard problem goes unsolved.
And, even though you might end up being engaged in “work” for most of that time (even not counting distractions, like email, which feel like work), the truly difficult and therefore important tasks keep getting disrupted and can remain unsolved for weeks at a time!
An environment like this is not conducive to getting great work done. Clearly the environment needs to be altered.
By far my number-one productivity strategy is to prevent myself from accessing the Internet.
I was inspired by Paul Graham’s essay “Disconnecting Distraction”. He describes having two computers, one permanently offline for work, and a dedicated Internet computer. Unfortunately this is not really an option for me. Nevertheless the disconnection strategy seemed worth trying.
My initial attempts involved disconnecting in software: messing with the hosts file or disabling the network hardware. These attempts failed due to two major flaws: First of all it was too easy to reconnect in a moment of weakness. And second of all they were quite difficult to maintain, needing to constantly remember to go in and re-deactivate the network.
(I don’t use a laptop, but I suspect that flicking the Wi-Fi switch may be similarly ineffective.)
My next approach, which worked well and I kept for about a year, was to simply pull out my network cable. As it happens, I can easily disconnect the cable when I shut down for the night. But to reconnect I need to crawl under my desk. This also neatly disrupts the instantaneous gratification of surfing the web, but makes it still possible when I need to access some online reference.
My current approach was inspired by looking at software like Freedom, which lets you disconnect from the Internet for a fixed number of minutes, while not blocking local network access (I need to access my Mac over the network to do iPhone development).
These programs looked good, but what I really wanted was a way to fully automate the process, ideally something I can put into scripts or the Windows task scheduler. Eventually I came up with a pair of scripts that I use to disconnect the Internet when my PC starts, and reconnect it at 4PM in the afternoon, ideally after I am already in “the zone” and focused on my work.
(If you are going to implement one of these methods, I recommend you also keep an “Internet Todo” list so you can put all of your Internet tasks out of your mind until you are able to process them.)
XKCD: Impatience vs. Laziness
As you can imagine, I’m quite interested in external methods of enhancing productivity. So the latest XKCD comic’s alt-text piqued my interest:
After years of trying various methods, I broke this habit by pitting my impatience against my laziness. I decoupled the action and the neurological reward by setting up a simple 30-second delay I had to wait through, in which I couldn’t do anything else, before any new page or chat client would load (and only allowed one to run at once). The urge to check all those sites magically vanished – and my ‘productive’ computer use was unaffected.
What Randall is proposing is much more subtle and directed than simply blocking out the entire Internet. He is suggesting disrupting the mental reward-mechanism of checking Internet messages. I could see this becoming very useful for me, given that my current method is automatically reconnecting me to the Internet – the good with the bad – in the afternoon.
I eagerly awaited the inevitable accompanying blog post that described Randall’s method. Unfortunately I was disappointed to see it was very low-tech. It involves manually rebooting his computer every time he switches tasks. It is enforced only by an honour system – which, while possible, would use up mental energy to maintain. Plus it can’t be good for your computer!
But I love the concept! And I was inspired –
Up until now my browser home page has been Google Chrome “Most visited” pages, plus my favourites bar. With access to Google Reader, Facebook, Twitter and Stack Exchange only one very tempting click away.
What if I had to wait through a delay? Introducing my new home page:
It has friendly message reminding me to check myself, in case I am being distracted. And an enforced 30-second delay before the links will appear:
Randall also makes a point of only allowing one task at a time. To this end, if you try to do anything but wait on the countdown screen, it will detect this and cancel the countdown – forcing you to reload and wait again from the start. This prevents you starting the wait in the background, or queuing up multiple waits at the same time.
There’s a live demonstration here. And here’s a downloadable archive for your convenience – feel free to modify it to suit your needs! It uses jQuery, so I expect it to work everywhere; but I have only tested it on Chrome. (Note that Chrome needs an extension to set a homepage for new tabs.)
I am only just starting to try this now, so I will see how it goes. If you are trying this yourself, I would be interested to hear your results. I will be using it in tandem with the automated Internet disconnection described above.
Here are some of the best links I have found about this kind of procrastination. I highly recommend reading these: