I first heard this term about fifteen years ago.

My understanding is similar to that described in the Wikipedia article and a TechRepublic article: you work with your colleagues in a "friendly, collegiate way in which personal feelings are put aside". It includes things like doing peer reviews with mutual respect and a desire to learn, and not feeling like you "own" code, so if somebody has a suggestion or says there's a bug or needs to change it, you don't get defensive about it.

I've also thought it was largely about having an attitude that makes for good relations with other programmers with the goal of improving the code. So I haven't seen it as being incompatible with taking pride in the quality of your work or feeling regret if something you did caused your customer a problem.

However, an answer to a recent question makes me think some other programmers have different understandings about "egoless programming". So what is the correct definition? And what are its implications?


5 Answers 5


All of the above.

Egoless programming has mostly to do with how much respect you have for the programmer who comes after you, who is going to have to figure out what you did with your code so that they can maintain it, and quite possibly improve on what you did (I know, that seems inconceivable, since all the code I write is already perfect ;).

I also believe that egoless programmers don't take dogmatic positions about their work. This makes them flexible enough to work in environments where their idealistic expectations may not always be so eagerly embraced or unconditionally accepted.

  • I agree that being non-dogmatic is very important to constructive relationships - not just in programming, too - and I constantly struggle with it.
    – Bob Murphy
    Dec 17, 2010 at 0:06
  • @bobmurphy I know two effective ways to avoid being dogmatic. 1) Not giving a crap about ideals. 2) Putting in the time and energy it takes to build a development team that has shared ideals. Many people give up on 2, write a standards doc that no one reads and slowly slide into 1. The only anidote is a code review that's about how people feel. Not about following rules. Sep 18, 2018 at 14:42

The phrase doesn't have an ISO standard meaning, so different people can legitimately mean different things by it.

I believe it was coined by Weinburg in The Psychology of Computer Programming. He meant programming without tying any of one's ego to the code, so that it isn't "your code", it's just code. This facilitates cooperation to improve the code, the ability to accept criticism of what you've written (because it isn't directed at you), and general teamwork.


There isn't one correct definition as the concept of "Ego" is subject to great interpretation. Depending on your psychological and spiritual beliefs there are more than a few different answers about how one can try to remove ego from their life.

The implication as I understand the term is that there is a collective ownership, so that each person on the team is working for the benefit of everyone rather than just oneself. "David Logan on tribal leadership" is a TED Talk where a level 4 tribe would be the one of egoless people in a sense.


I am a middle age person. I have been to many different countries and fortunate enough to meet brilliant people like astronomers and zen Buddhist monks.

Around two years ago I took couple of computer classes in order to brush up my knowledge about programming.

One day my programming professor brought "Tower of Hanoi" puzzle to the class. There were some students who always brag about their successful lives as programmers. My professor gave all students the puzzle and asked everyone to start the puzzle at the same time.

All the programming mavericks were trying their best to prove how smart they are. The student who finish the puzzle first is a eighteen years old Chinese student who knows very little about programming. The mavericks were upset. But my wise professor who has thirty years of programming experience (including Lisp) had a smile in his face.

Excuse me for my bad English. My mother tongue is Japanese


My opinion (and solely that) is that the term "egoless programming" is an oxymoron.

Programmers and engineers are inherently an egotistical bunch (myself included). At the end of the day, when you write code you're creating something. When you take pride in your work and what you output, no matter how much you respect your peers and understand that changes need to be made to your work in the future, it still hurts your ego when it happens. Every engineer I've ever met has an instant over-protective father/mother knee-jerk reaction to protect their babies even though once a thorough discussion is had, the author becomes more willing to accept the fact that the change needs to be made.

In other words, I don't think it's possible to have purely ego-less programming.

Again, just my opinion based on experience. Feel free to bash me on this :)

...And now I realized how old this thread is :P

  • 3
    Just because your colleagues are ass-hats doesn't mean you have to be too! The idea is that if we encourage egoless coding, then the next generation might be less of a bunch of prima-domnna dweebs and more professionals.
    – gbjbaanb
    Sep 25, 2013 at 11:10

Not the answer you're looking for? Browse other questions tagged or ask your own question.