I recently took a trip back home from Boston to Philadelphia and had two 8 hour bus rides. On these bus rides I tried getting some development done and here’s some tips:
1.) Don’t do it.
That’s it folks, all I got. … Not really. I actually did get some development done but mostly I got administrative work and thinking done.
Here are my real tips:
1.) Be prepared to be disappointed with the internet.
This should be a given but just in case you have never used bus WiFi and you
saw the promise of free WiFi and rejoiced. Stop it right there. Bus WiFi is not
fast, consistent or reliable. Definitely not a great environment if you need to
be searching for answers or downloading and uploading code. The highlight of my bus
WiFi experience was a
git push that just hung.
2.) Have offline docs and your dependencies installed.
If you don’t have a development environment set up or some offline docs. I recommend you do that before the trip. On MacOS I use Dash, which lets me search across language and library documentation offline from Alfred. This is a great tool for fast offline lookup and covers many internet searches without requiring the connection.
3.) Don’t plan on being super comfortable or focused.
Another no-brainer but you aren’t going to be the most focused, comfortable or productive. This isn’t going to be an ideal development environment. People talking, sights going by, bumps and jostles, these and more contribute to a less than ideal deep work setting.
You can still get work done though. To make things smoother you can start by bringing good noise isolating or cancelling headphones. Just like in an open office; a decent pair of headphones goes a long way in distancing yourself from the noise and commotion around you. Also fully charge your laptop ahead of time. You should have a power outlet but occasionally they don’t work and often they will not hold your charger without some continual force or pressure, especially if it’s the big bulky Mac charger. My charger fell out constantly; better to charge only when you need it. Why not start with a full charge?
4.) Plan the right kind of work
A good work plan is critical, if you don’t know what you need to work on or need to do exploring or research you will have trouble. The main development tasks that I had success working on included some refactoring and test writing. Everything I needed was already on my computer and writing tests is often more thinking and implementing than research.
When planning bus work think about what requires little less internet or can be asynchronous. I had success doing the following:
- Reviewing other’s pull requests.
- Writing up feedback for people’s reviews.
- Writing tests and replying and refactoring feedback on an existing feature I am working on.
- Reflecting and writing up notes.
- Writing this blog post.
- Plan and organize calendar, notes, to-do’s, etc.
5.) Enjoy the bus ride.
Personally I love long bus rides. Though not the most appealing work environment; buses constrain you in ways that can be rewarding. Minimalist principles apply here where subtracting can really add to your focus. The constraints of an 8 hour low quality internet connection helps me get s*** done and reflect on things that I don’t always get too. I also love being on the move and working in new places and environments, it can be energizing and carries over to when you are back in the office or home.
Overall just embrace the limitations and you can get a lot done; just don’t plan burning through a lot of bugs or releasing new features.