I've been on training for mindful coaching recently, and almost a day in, I started wondering on how to apply what I learned to coding. How could a team benefit from combining the two concepts? How could mindful coding help to ease the pains of building software?
For those new to the topic, mindfulness is a concept that teaches our mind to be in the present, in whatever we do right at that moment. Not thinking about the future, the laundry we have to do, neither dwelling in past mistakes we did.
It's also about not judging. Not judging others, not judging ourselves. Not feeling controlled by our feelings and learned actions on a subconscious level.
Sounds easy? It is not. It is harder than you might think. Nonetheless, it's worth it.
Now, let's explore my thoughts on how to combine that with software development.
Code reviews can be significant. If you are open and willing to learn. On both sides. Reviewer and reviewee. However, they can turn ugly pretty quickly, if you believe someone judging your code is judging you.
We are sometimes too close to our own work that we can not distinguish between critic on our work and critic on us. We take it personally. And when we do, we react in defense and might bark back or do other shit. One thing that mindfulness can teach us in this situation is not to take that personally. We are not our code. The code is something we produced. It might be right, it might be wrong. It depends on who's reading it and their definitions of good/bad. However, one thing is for sure, we are not the code.
If we can overcome that feeling of personal judgment, we might learn much more in those reviews. Besides they might go much more enjoyable.
It is essentially the same thing, just the other way around. We are judging now. We judge the code. We judge the dev who wrote it.
That stupid morons can't code - ever thought something like that?
Don't do that. Maybe your fellow dev had a bad day, was on a tight deadline or whatever. It's even worse if you continue to judge devs because you read some shitting code of them ten years ago. If you don't think your code a year ago was shit, you don't make progress.
Anyways, judging brings just tension to a team and eventually will destroy any team spirit.
Working in the flow is excellent. Fulfilling.
And pretty much impossible in a working environment because co-workers don't respect it. If we would be living mindful in the present, we'd notice what's around us. We would see if we can ask Bob a question or if he so deep into work and leave him alone. Waiting for a better time.
We would notice that our own behavior disturbs our co-workers. Talking loud on the phone and holding meetings at a desk and freaking out the others in the room.
Most of the time, people don't do that on intention. They are not aware that they do that at all. So focussed doing their little task, that they ignore everything around.
When we are aware of what is happening in our environment, and we interact with it, we can adjust our behavior and be more respectful.
I am not sure if it is actually part of mindfulness or just happens to be close. Yet, this being in the presence and not judging has much to do with taking our ego out of it.
I can not be in the presence, listening to someone and trying not to judge, while being focussed on my ego. It does not work for me. As soon as I start judging, I am not listening anymore. My mind is gone. I am gone and thus not mindful anymore.
The further I go down this path, the more I learn that my ego is in my way. Yep, it is everywhere. Yours too.
My code is not the best in the world. Or better than the code my teammates wrote. I am not a rockstar coder, guru or whatever. Neither are you.
Accepting limitations and reducing our ego, makes us humble. A humble mind is open, willing to learn. Learn from our mistakes and learn from others. It doesn't judge — not us, not others. It knows its limits.
Imagine working in a team using mindful principles. What would it look like?
Published in MinfulDevMag issue #1 -- Download full issue