Software that Fits in Your Backpack
I've been doing a lot of travel the past few months and with that inevitably comes packing; condensing your life to fit in an overhead rack.
As someone who makes a point of only taking one bag, packing becomes a fun exercise in figuring out what your essentials really are. Do I need to pack two weeks worth of clothes for a three day trip "just in case"? Probably not. Do I need travel adaptors to cover me for every continent when I'm flying domestic? Probably not. Do I need to bring outfits to suit every possible climate? Probably not.
The above might be tongue-in-cheek but recently I've found myself increasingly travelling without even bringing my laptop; my sole computer being my phone. While this initially felt like a major gamble, a laptop being seemingly a staple for the work traveller, it was surprising how quickly these worries faded from mind. Hopping between events or meetings is probably not the time to be doing fully-fledged serious work so why not leave the laptop at home? If there's something that does need looking into I can jot it down in a notebook that's much easier to keep close-by; or if I'm truly stuck, I can get most information from my phone.
But recently, during one session of condensing life to fit in 41cm x 29cm, I wondered - isn't there an overlap in packing what you need, and designing and building efficient and reliable software?
For example, should the worst come to the worst and you need to replace the contents of your bag, it's much easier when we're dealing with just the essentials over limitless extras. In the same way, replacing a program that handles just one task is much more straightforward than one program that manages most of your life.
Packing the essentials also has a smaller footprint in terms of size and weight, in much the same way that simpler software is less likely to demand half your storage drive or processing power.
Packing the essentials is also just outright easier to keep track of mentally. I never need to keep a physical check list of everything I've packed because the list is almost always short enough to just keep in my head. In the same way, simple software is much easier to reason about what it does, how it does it, and spot if something isn't right.
Building and using only the tools and software that do what you need rather than what you might doesn't mean you need to pretend it's the 80's and every kilobyte and clock cycle is precious - or even that you need to forgo all the excitement of computing and choose boring technology. Rather, there's value in periodically assessing what you use, how you use it, and weighing up whether there's value in doing more with less. Not every program needs to handle every eventuality.
Does your email client, text editor, or todo app need to essentially be another operating system unto itself? So much so that they very likely have complete support for Xbox-360 controllers for some reason? Could you achieve just as much, if not more functionality, by putting everything in a simple text file? It's worth exploring.
The idea of focusing on essentials rather than getting swept up in the excitement of 'the new shiny thing' is a mindset that's served me well. It's a mindset that served me well three years ago when I was optimising this site. It's a mindset that served me well two years ago when I was looking for a sustainable laptop. It's a mindset that served me well last year when I was looking for a way to write reproducible documents, to organise literature reviews, to just stay informed. It's a mindset that increasingly informs team discussions on projects: how can we design for the essentials rather than the "just in case"-s which often leads to a much more focused, maintainable, and explainable end-result.
It's about building software that should fit in your backpack.