on
The Concept Of Gardening
On a walk I took recently I figured out a common thread between the activities that relax me without being, you know, active relaxation, like reading a book or playing video games or cooking. It’s a calm state of mind that focuses on tying up loose ends, or tending to the small tasks you perpetually delay. I call this state “gardening”, or more broadly, “tending”.
It has absolutely nothing to do with plants, soil or the crushing feeling of having managed to kill another houseplant despite best efforts, but I find the state of mind to be very similar. It’s making small changes that always annoy you when you see them, but are never enough of a priority to fix them for themselves.
Examples for tasks like this include changing the laces on your shoes, organising and throwing out old tea, unloading the dishwasher because you saw it being done, merging open boxes of pasta, buying an extra charging cable for your phone online. Things that take 30 seconds or 4 minutes by themselves, that don’t require that much thought, that you eventually need to do anyways, but can do mostly on autopilot.
I derive an enormous amount of freedom to think and plan or mull over events from this. This is perhaps the time I think best, and the reason I always have pre-prepped vegetables in my fridge, because prepping for cooking falls under the same category for me. This is the space in which I will come up with ideas for getting project unstuck, ideas for problems at work, ideas for meals I could cook or things I could do.
This is also applicable to software, and I view it as essential that I do this, at least for some time each day. The tasks are similar, just a bit different:
- Checking your logging/metrics dashboards for any potential hiccup (This reminds me, I need to try out honeycomb.io)
- Checking the recent CI builds and seeing why the failures failed and if it mattered.
- Trying out that
emacs
package you saw that looked really cool. - Looking over and working through various
notes.{md,org,txt}
files that you jot things down in. (You should also do this, on the side. It’s a good way to keep ideas from being lost) - Sorting and removing or moving the post-its that your desk or your screens have accumulated.
- Writing a SSH configuration that has mnemonics for your common destinations.
- Writing scripts for things you find yourself doing over and over again.
It provides some of the best opportunities for learning about the systems you work on. Not being overly focused on the very thing you want to fix means you see the lines and traces as systems interact with each other without being compelled to force them to work in different ways. This allows for actually absorbing the flow of information and the interaction of systems instead of getting to know one small spot really well (otherwise known as fixing a bug or adding a feature)
This is also basically my sanity valve. If I have a shitty time/day, I will do more of this, if I’m feeling really pumped I can skip this completely. It’s also where I come up with my best ideas, and my most important re-considerations of what I thought were great ideas. I think you should make some room for this, too.