As an agile enthusiast, I am a big proponent of the concept of egoless programming. Jeff Atwood’s post The Ten Commandments of Egoless Programming sum up the concept quite nicely.
I got to thinking about this idea of egoless programming, and I have a problem with the name. I really think we should call it something like “Jerkless Programming” or “Considerate Programming”.
The problem I have with the name “egoless” is that it ignores that the ego is not in and of itself bad:
From Dictionary.com, definitions 3&4:
egotism; conceit; self-importance:
Her ego becomes more unbearable each day.
self-esteem or self-image; feelings:
Your criticism wounded his ego.
As we can see, the ego is how you see yourself. The word “ego” is often used when we mean that a person has an inflated ego (or they think more highly of themselves than others do). These are the people I want to avoid working with.
The ego allows us to feel good about ourselves when we write good code, clean up technical debt, etc. I want to work with people who have a healthy ego, and are working to nurture their self-esteem by caring for the code and the team. If we tried to remove ourselves from our emotions, we would become drones and would have little drive to improve the structure of the code if it were working.
So, please, bring your ego’s to work! Care for them, nurture them, but be realistic. Look very closely at yourself in the mirror, listen to feedback and be a considerate teammate.