A simple fact that I have figured out while being 12km above the ground: you can do more during a single transatlantic flight than you can do during an entire day in your standard working environment.
Flight from London to Washington DC takes roughly 8.5 hours. Minus time for the take off, landing and food that gives you approximately 7hrs of interruption-free time. In other words a true blessing! There are no co-workers to distract you, no lengthy meetings, no family or friends, no cell phone, not even the Internet access with things like Skype, Facebook, Twitter and Hacker News lingering for your attention. I've realized that I can do much more in a single block of uninterrupted time that I can in the same time split between other arrangements. It's amazing on its own, but there more to it!
Let's analyse the standard approach that most developers take when facing a problem (and I'm being guilty of it as well!):
- Search on Google - surely someone already did that before
- Have a look on Stack Overflow - there is bunch of clever developers there
- Ask other developers (online or offline) around
While on plane options 1-3 are not there at your disposal, thus you tend to spend more time actually thinking and trying to come up with a viable solution. I've realized that code produced this way is of much better quality!.
Unfortunately this kind of environment is not easily reproduced. I'm under strong impression that the following could help to achieve it, at least partially:
- Work during night or early morning hours - people are less pesky at that time
- Try to manage your time and arrange your time into a block of uninterrupted time (takes some human skills)
- Change the environment of work - leave your multi-screen setup behind and take your laptop to the local coffee shop, park or library
- Switch off Skype, mobile and email while working
Update: A day after I've published this article Jacques Mattheij wrote a very interesting piece about 'living in the zone', i.e. being in a state of mind where you're entirely focused on something (like programming task) without interruption within a block of time. It's definitely worth reading.