Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
4  
Ego-galore programming is so much more fun than ego-less programming though. –  Job Dec 17 '10 at 3:11
2  
@Job: Yes, and as the Mythbusters say, everything goes better with C-4. –  Bob Murphy Dec 17 '10 at 19:11
add comment

5 Answers

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.

share|improve this answer
    
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 '10 at 0:06
add comment

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.

share|improve this answer
    
I didn't think it was an ISO standard. :-) I was just surprised people were implying egoless programming means it's inappropriate to apologize to the consumers of my software when they're inconvenienced by the bugs I wrote. If that's what it means, I'll be egotistical and polite. –  Bob Murphy Dec 17 '10 at 0:04
    
@Bob: I don't see how egoless a la Weinburg leads to not apologizing for bugs. That sounds pretty egotistic to me. –  David Thornley Dec 17 '10 at 14:33
    
That was what I couldn't figure out. –  Bob Murphy Dec 17 '10 at 19:10
add comment

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.

share|improve this answer
add comment

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

share|improve this answer
    
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 '13 at 11:10
add comment

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

share|improve this answer
    
+1: I've seen this many times, and not just with programming. –  Bob Murphy Jun 17 '11 at 4:05
    
BTW, I'm middle-aged, too (52). When I was in my teens and twenties, I was sure I knew a lot about many things. Now, I'm sure I don't know much about anything. It's quite amusing to watch my 18-year-old nephew be very sure of himself. –  Bob Murphy Jun 17 '11 at 4:30
    
@BobMurphy "the more I learn, the more I know how little I know" –  gbjbaanb Sep 25 '13 at 11:11
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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