Mindfulness Applies Everywhere

Let’s talk a bit about a soft, squishy topic before jumping into our first hard tech discussion.

According to Wikipedia, mindfulness “is the psychological process of bringing one’s attention to the internal and external experiences occurring in the present moment”. Mindfulness meditation is traditionally practiced sitting down, eyes closed, focusing on the breathing. For me personally, it didn’t change my life, but if nothing else, it’s a fascinating experience.

In the context of software development, and improving your development environment, this is the very first step to take: to notice what can be improved. There are broad strokes that are true for any developer, but to make yourself really efficient, you need to become conscious of your own habits and practices, and make those practices flow smoothly in your environment.

Of course the traditional practice of sitting eyes closed, hands in your laps doesn’t mesh well with paying attention to your development process. Not all meditation needs to be done like that, though. There’s walking meditation, running meditation, even meditation while doing repetitive power exercises. But coding meditation is not something I’ve read or heard about – maybe flow is a bit like that.

Either way, we don’t need to get stuck on the practice of meditation – the concept of mindfulness, of paying attention to internal and external processes, is useful in itself, and we can build our own practice around it.

That’s a structured, somewhat forced way of experiencing what it feels like to pay attention to your workflow, the interaction of yourself and your development environment. Strive for a habit of continually noting opportunities for improvement. Usually you shouldn’t break your flow to fix them, but do make sure you know what they were once you have the time. Personally, I collect my issues on GitHub, at https://github.com/abesto/ansible-devenv/issues.

After noting down the issues, the next step is of course to go ahead and fix them. Generally, this should be an iterative improvement – tweaking a bit here, adding an argument there, installing a package, changing a configuration option. There will be times for big changes, designing, researching, and planning though – especially when you first set out to make your development environment truly your own. The next section, “Main course”, will take you through some of those big changes. Before that though, let’s take a look at a specific change you can start implementing today, iteratively.