Boom, Bloom, and Blossom as a Software Developer | by Gavin Macken | Aug, 2022

With these 7 mindful attitudes

As an Engineer, as with any profession, we face our own specific day-to-day challenges, unique to the code we are working on, the industry we are working within, the size of the team we are working with… the list is a long one.

I find programming can be incredibly rewarding. It’s a lot of fun for those who constantly enjoy learning a wide-ranging list of topics. Salaries are often high compared to a lot of other industries, and I still get a kick out of making things move on a screen.

Equally, I’ve found programming incredibly frustrating, stressful, and sometimes extremely difficult. The endless path to learning includes constant failure and success, which is often just a semi-colon away. There is deep complexity in teams and software, 100’s of software tools to master, and pressure on the tech industry to constantly innovate and deliver. This is a breeding ground for stress, unhealthy habits, and unwelcomed thoughts or attitudes.

I’ve found that recognizing and limiting the effects it has on the code that you write, your relationships with colleagues, as well as your attitude towards fresh challenges, will empower your all-around ability and turn your knowledge into wisdom.

Mindfulness has helped me achieve this.

I practice mindfulness for a myriad of reasons, and I’m always interested in the many studies that are showing the positive effects that mindfulness practices can have when dealing with a whole variety of problems.

We’re going to look at 7 attitudes that are considered pillars of mindfulness, and how they can help our day-to-day lives as software developers.

One of the precursors to mindfulness — Zen Buddhism, teaches the concept of Beginners mind. It likens it to an attitude of openness, eagerness, and lack of preconceptions, even when taking on tasks at advanced levels. It is a wonderfully positive attitude to have.

Zen Master Shunryu Suzuki put it best when he said

“In a beginners mind there are many possibilities, In an experts mind there are few”

A beginner’s minds us to constantly challenge our thoughts and assumptions and take into consideration multiple ways of solving a similar problem, with the very possibility that a perfect way doesn’t exist.

This is very important in technological fields where mental agility and the capacity to take a fresh perspective can help you and your team massively.

Mindfulness has helped me identify and strengthen my understanding of these thoughts, and it’s a wonderful attitude to take into code reviews and any collaboration. Try to nurture the beginner’s mind in others and in yourself, and see where it takes you.

The development of self-trust is an integral part of mindfulness training. This is done by learning to listen to your thoughts and intuitions and developing the relationship you have with them.

The greater the understanding you have of your talents, fears, relationships, and motivations will allow you to begin to trust the person that you are and the abilities you can bring.

In a workplace environment, this is huge, trusting yourself may be the most empowering decision you can make and is tightly linked to success, particularly in leadership positions .

It takes the form of you being able to trust yourself when sharing knowledge and skills, It’s bringing your whole self to work and having the confidence to be a lot more to teammates than the title that you’ve earned. It’s picking up tasks that you might not know all the answers to, but you know that you can find them and deliver¹.

For you, it is far better to trust your instinct than to always be looking outside yourself for guidance, and if the imperfection is a by-product of that… that’s OK.

In our world of constant learnings, deliverables, iterations, and improvements this is a superpower.

Mindfulness has been shown to improve our metacognitive awareness². This gives those who practice the ability to perceive or decenter from their thoughts and emotions and recognize them as thoughts rather than to identify with them.

When developing we will eventually come across thoughts of, “I can’t do this”, “I’m not good enough” — Imposter syndrome has often been a hot topic at 1on1s or team health checks. Unfortunately, I have let a piece of code I couldn’t resolve to ruin my day before. It increased the likelihood of me assessing problems and solutions incorrectly, and affected how I showed up for meetings that day.

The ability to recognize and deal appropriately with these frustrations is a super-power that can stop you from spiraling down rabbit holes and skipping lunches, maybe dinners, which in my case leads to irritability (hangry).

The attitude of gratitude

There is an endless list of effects that gratitude can have in the workplace³. Many would argue it creates better leaders, it can increase retention and motivate you to do your best work. — I mean, who wants to work with someone who doesn’t say the beautifully simple word “Thanks”.

For me, where it benefits most is my relationships with colleagues. Anytime I show gratitude to my team, I positively influence both parties. It builds and strengthens my relationships with them and their relationship with me.

Many of us have review tools or HR processes for praising our colleagues, that we might be encouraged to use once, twice maybe four times a year. This is the bare minimum. How many of us are proactive with the gratitude we send our teammates?

Code reviews are very often set up to find issues or things not to praise.

Think about how incredibly personnel programming is, the code we write represents our approach to solving a problem, which makes it an expression of ourselves.

Tools such as compilers, IDEs, and testing suites might warn us of issues and help join us together, but they don’t proactively encourage us to create positive interactions.

The attitude of gratitude can help us here and help elevate you and your teammates.

Patience is often seen as a form of wisdom. Those that demonstrate patience accept that sometimes things must unfold in their own time. It encourages us to intentionally remember to be patient with ourselves and others and to enjoy the present experience for what it is… An experience!

Have you ever felt like you were measured by how much knowledge you can consume and hold due to the constant new ways of doing things? This can be hard, biologically we are not set up ideally to do it and without patience, it can create negative effects.

Perhaps you’ve gotten stressed out because you couldn’t show much progress on a ticket, or maybe you can’t seem to wrap your head around a codebase.

Or maybe it shows itself in different ways, perhaps you have not been empathetic and understanding enough with teammates who are learning a new domain that you are very familiar with and eager to move fast on.

The best programmers I’ve worked with have built a broad understanding of a lot of things and a deep understanding of a few. I’m referring to the type of understanding that’s picked over years of successes and failures, multiple teams, great people, difficult people, some sweat, and maybe some tears.

Everybody is at their own stage of this journey, so demonstrate patience.

Studies have shown mindful acceptance of our moment-to-moment experiences can be effective antidotes against common forms of distress, rumination, anxiety, worry, fear, anger, and so on².

Mindful acceptance doesn’t mean resigning yourself to painful or negative thoughts and feelings. Rather, it means accepting and identifying that a lot of things are outside your control.

Where I find acceptance helps me the most is the reduced amount of time and energy I spend ruminating, being anxious, or worrying.

I see these as valuable feelings and emotions which can serve a purpose, but the moment they stop doing that, they should be dropped to make space for emotions that will serve you better when taking on all the challenges that you are faced with.

Learning, teaching, estimating, and experimenting are all tasks that as engineers we do daily and all bar none are much better served without overconsumption of negative emotions.

As mentioned in acceptance, our brains have a tendency of holding onto thoughts, feelings, and emotions.

It likes to sometimes bring us back to a period of time and imagine what we would do differently.

These are reflections and they are of much importance and should be given focused attention. Where letting go helps is when we hold onto these thoughts passed their sale-by date.

A brilliant story about letting go comes from India and is centered around catching monkeys.

An ingenious method is used where a hole is cut just big enough to fit a monkey’s unclenched hand. Another hole is then drilled so that a rope can be passed through and tied to the base of a tree. Fruit is put inside the coconut, and then we wait.

A hungry monkey comes along and notices the fruit inside our cococut, they naturally put their hand in the hole to grab the fruit. This is the magic happens — the hole though just big enough for the monkey’s hand, is not big enough for his hand and the fruit. Realizing this, all the monkey has to do is let go…, but many are unable to.

I like to think that this story has its origins in the concept of Monkey Mind that Buddhism teaches us.

What are we holding onto that’s keeping us tied to a tree and creating more problems than it’s worth? Is it work that you did in the past? an old way of doing things that you feel comfortable in?

Students of mindfulness are equipped to identify these thoughts and free themselves from the base of the tree.

Thank you for reading

Leave a Comment