What mindfulness has to do with software development (1/8)

Main article

Mindfulness is on everyone’s lips. In a nutshell, it is a state in which we consciously pay attention to the present moment with all its aspects and do not allow our thoughts and feelings to carry us away. I read one of the juiciest descriptions of mindfulness in Karsten Dusse’s book “Achtsam Morden” (not available in English language yet, sorry)[i]https://www.penguinrandomhouse.de/Taschenbuch/Achtsam-morden/Karsten-Dusse/Heyne/e545722.rhd :

If you stand outside a door and wait, you stand outside a door and wait. If you argue with your wife, argue with your wife. That is mindfulness.

If you stand in front of a door and wait and use the waiting time to additionally argue with your wife in your mind – that is not mindfulness. That is just stupid.

Karsten Dusse

So it’s not just the temporary mental state, for example during meditation, but a basic attitude of doing everything we do with full intention and attention. That doesn’t work if you do several things at the same time.

But why bother doing all that? The most common reason is probably to relieve stress. It can also help to better understand yourself and your emotions and to make decisions that fit what you really want (instead of what you think you have to do for social reasons). There are probably as many reasons as there are practitioners, because everyone finds his:her personal meaning. For example, I myself became aware of mindfulness because I wanted a distinct boundary between work and leisure in my home office. After I close my Macbook, I treat myself to a 15-20 minute meditation, use it to mentally hit reset, and I’m off work. This often helps me to bring clarity into things that have been bothering me without really knowing why. Most importantly, it causes me to not take these disruptive factors with me. This is a practical effect, and I will write another post about the importance of routines at a later date, but it also caused my professional attitude toward problems to change. I am less likely to get carried away or overwhelmed, and as a result take a more objective approach. Look for the root cause. A useful trait in any profession, really.

“Easier said than done,” is your impression? That’s probably because it is exactly that. Practicing mindfulness is not difficult in the sense that it’s complicated. You don’t have to be intelligent or gifted to do it. But it is difficult to break a pattern of thinking that you have used for decades and never questioned. It requires patience and practice. It doesn’t happen by itself, and it’s not easy.

However, this is not a blog about mindfulness, at least not exclusively. To anyone interested in learning more about mindfulness, I recommend

To bring us back to the topic of software development however, allow me to paraphrase the quote above:

If you try to fix a bug, you try to fix a bug. If you attend a retrospective video meeting and reflect on the previous sprint, you attend a meeting and reflect. That is mindfulness.

If you use the pause in talking with the camera off during the meeting to quickly check on the bug that your mind keeps returning to, that’s not mindfulness. That’s just stupid.

And inefficient, on top of that. This approach leads to an important contribution to the retro is missing, and the bug is not found faster this way either. The pure exposure time to the program code does not define the quality. You don’t find bugs, unless they are very simple, by staring at them. Programming requires concentration. The A14 Bionic fires 11,000,000,000 operations per second[v]https://www.apple.com/newsroom/2020/09/apple-unveils-all-new-ipad-air-with-a14-bionic-apples-most-advanced-chip/ – if you want to control a machine like that, you ought to give it your undivided attention. The technology deserves that much respect. The colleagues in the meeting even more so.

But mindfulness is more than just channeling attention. According to Jon Kabat-Zinn, widely regarded as the founder of modern mindfulness-based stress relief (MBSR)[vi]http://www.randomhousebooks.com/books/89149/, mindfulness is based on cultivating the following seven attitudes:

The seven foundational attitudes of mindfulness

Non-Judging, Patience, Beginner’s Mind, Trust, Not-Striving, Acceptance, and Letting Go. Not all of these are self-explanatory, and even among those that are, it may not be obvious what it all has to do with software development. In the coming weeks, I will publish individual articles in which I will demonstrate

  • what each of these points means for mindfulness in general
  • how I relate it to software development
  • how I try to bring the attitude into my own professional life

Here are links to each of the attitudes:

  1. Non-Judging
  2. Patience
  3. Beginner’s Mind
  4. Trust
  5. Non-Striving – TBA
  6. Acceptance – TBA
  7. Letting Go – TBA

I believe that software developers struggle with mindfulness because our job is to master complexity. However, there is no complexity in mindfulness, nor is there anything to master. Also, we are multitaskers by nature. Maybe because the platforms we work on are too? But multitasking has been proven not to work for humans. Instead of doing two things at once and thus faster, we switch back and forth between two tasks. With each switch, however, we have to set up again, which increases the total processing time (for this, you can imagine a nice Gantt chart, maybe I’ll draw it later). Moreover, during the processing of one task we do not manage to completely detach ourselves mentally from the other. So, when multitasking, we are in several places mentally at the same time, and thus do not give full attention to either of the two tasks.

But this is exactly why mindfulness is important in software development. We have chosen a profession with many causes of stress[vii]https://www.dearemployee.de/top-5-stressfaktoren-fuer-softwareentwicklerinnen/(yes, it’s German again…). We deal with something very abstract and our work takes place almost exclusively in our heads. Even the head needs a time-out now and then. If the personal wellbeing and reduction of work-related stress is not enough as an argument for more mindfulness in professional life, then High-Performers might at least find the thought of increasing productivity appealing.

Add a comment

Your email address will not be published.