cbillowes/curious-programmer-oxygen

View on GitHub
content/posts/2016/2016-06-29-the-ego-barrier/index.md

Summary

Maintainability
Test Coverage
---
title: "The ego barrier"
cover: "https://picsum.photos/1600/800/?image=34"
date:   2016-06-29 20:24:42 +0200
tags:
    - Mindset
---

> Be the change you want to see even if it doesn't change anything right away.

An ego is a person's sense of self-esteem or self-importance. It can be
detrimental to a person and those around them if received negatively.

I'm sure you've experienced the ego and superiority complex within the
software development community.

It becomes a
[liability](https://www.willmcgugan.com/blog/tech/post/on-ego-and-software-development/)
as it can restrict people from improving. They become blind to learning better
habits, concepts, practices, and technologies through others.

For years there have been [constant arguments](https://dzone.com/articles/developer-ego)
within the community regarding which languages, frameworks, tools, and
operating systems are the best to use.

Asking for help ends up in arguments with possible verbal abuse and belittling
of skills and experience. StackOverflow is unfortunately an example of this.
It's notorious for
[abusive commentary](https://sammaye.wordpress.com/2014/04/24/why-i-am-a-little-annoyed-with-stackoverflow-currently/).

It discourages people from collaborating. Proposed solutions are shot down
without constructive reasoning. Often the responses are "that's not how we've
done things before" or "that's not what I prefer to do." These behaviors often
nullifies the advantages of code reviews and pair/mob programming.

These examples highlight some barriers that are created for communication,
collaboration and improvement. As software developers we are supposed to be
rational thinkers but as human beings we are often driven by emotion.

On the other hand, without some sense of self-esteem or self-importance,
how can we trust our own judgements and decisions?

> The issue is not to break free of the ego, escaping it or transcending it.
> Rather it is to learn how to harness the ego and transform it to use it in a
> way that serves us and helps us to create a life worth living.
> ~ K. Ferlic in [Shifting Consciousness](http://ryuc.info/creativespirituality/shifting_consciousness.htm)

We can do this by finding ways to reduce the influence our ego has on us.

> When the ego becomes imbalanced, all its hideous, negative aspects can act out.
> Therefore it is my intention to balance the ego, not to destroy it.
> ~ [Steve Mueller](http://sumo.ly/bMCD)

## Don't sweat the small stuff

If your day is filled with accumulated frustrations just keep in mind that you
have the power to choose what frustrates you and what doesn't. You have
complete control of your mind and body.

There is no such thing as a perfect codebase or platform.
Everything has issues on some level. And what difference does it make when
someone interrupts you or doesn't listen to you?

Accept that nothing is perfect and make improvements where you can without being
blinded by your frustrations.

Note that I am not advocating bad code or behavior. I'm simply implying that you
don't need to build up frustrations that will one day erupt like a volcano.
Choose what is important to you, action it or find an alternative.

## Become self aware

Start observing yourself. At the end of your day, reflect on your behavior and
reactions to certain situations. The better you get at this, the more you
naturally start observing yourself in the moment.

You can also learn a lot through observing the positive and negative behavior
and reactions of others.

If you feel the need to rant about something, ask yourself why you are so angry.
Is there something you could have done to avoid the frustration or
negative feeling you have? Is it actually worth being frustrated about?

## Have empathy

People come from different walks of life with different personalities,
backgrounds, and experiences. We are all on different parts of our journey
and have our own subjective perspectives.

We aren't all expressive when it comes to communicating our ideas and intentions
so well that everyone understands them. Sometimes the wrong words are used to
convey a message. Sometimes there are language barriers and the person may be
speaking to you in a second language.

Remember that nobody in your organization is stupid but mistakes will be made.
Some people may feel over encumbered and are multitasking. Others may be
completely disengaged due to certain circumstances that you may not be aware
of.

There is a reason for poorly written code whether it be tight deadlines,
inexperience, bad design, misunderstood requirements or software design,
bad communication and collaboration or absolute defeat.

Have empathy when working with others and on codebases.

## Be humble

Try to tame your superiority complex. If you believe that you are the best
developer in the world, you are most likely mistaken. You are bound to
write shitty code that is going to make someone swear at you in the future.

You don't have to cling to your code. If someone suggests a useful improvement,
then why not implement it? You need to come to terms with the bigger picture.

Accept criticism. Ask for it to be constructive if it isn't helpful to you.
If there is a reason why you don't agree with the criticism you receive, try
to convey the right message across to gather more information or start a healthy
conversation.

Actually listen to what people have to say and value their opinions even if
you don't necessarily agree.

## Unite teams

Don't work in a silo. Share your knowledge, ideas and opinions but do it in a
way that is kind and gentle. Abrasive behavior results in negativity and fear.

Don't be a [bad apple](https://blog.codinghorror.com/the-bad-apple-group-poison/)
in your team. Negativity radiates through a team and can cause its demise.

## Be a leader

I don't mean manage your team or those around you. I simply mean, lead by
example. Share your passion and knowledge that you have with others.

Coach and guide people in your team on the right path and explain why you
believe it is the right path.

Encourage others to share their opinions, insights and to voice their concerns.

Positive behavior is an uplifting and [powerful](/blog/reignite-the-passion/)
tool within a team.

## Persevere

It's not easy. You will make mistakes. Others will make mistakes. You will get
frustrated. Others will get frustrated. It's a natural order of chaos.

Don't be defeated. Just keep trying and don't be too hard on yourself or those
around you.

## My final thoughts

The bottom line is: **don't be a jerk**. Be the change you want to see
even if it doesn't change anything right away.