a companion discussion area for blog.codinghorror.com

The Ten Commandments of Egoless Programming


They ignore one simple fact - everyone has an ego

this is totally not true and is a pile of horse sh$$. Ego is when you’re a bitch about it. Ego is not confidence, it’s over confidence to the point where you are needing it stroked every day or week. That’s a loser, and no not everyrone is a loser as you state.


I’m a big fan of #10. Developers wear their brains on their sleeves. Be kind.


Great article! It’s time to change the stereotype that the non-developers have.


#5 (“Treat people who know less than you with respect, deference, and patience.”) applies not only to non-programmers, but especially also to lesser experienced programmers. Some of the biggest assholes I’ve ever met were some of my coworkers in my first professional development experiences.


This advice is always good. Thanks for posting, I really needed to read this.


Loved the article!

Jeff, do you concede me the permission to translate this to Brazilian Portuguese and publish it on my blog (with proper credits and links to the original), please?


“The guy in the room” is from Jim McCarthy in “The Dynamics of Software Development,” not Weinberg. Here’s a presentation where McCarthy discusses the problem.


How so? That book is from 1995. The Weinberg quote is from his book in 1971.


I’ve got the Kindle version of that book here, and a search for “commandment” turns up zero results. That’s why I went searching for another reference to that idea in other books, and found it in McCarthy’s book. Can you give a chapter reference or page reference to these 10 commandments? I’ve also got a paper copy of the Silver Anniversary edition. (I bought the Kindle one solely for this, because I got frustrated paging through the paper copy looking for this list of commandments.)


It looks like you are right! I am not exactly sure of the provenance of the exact text, then.


Thanks for this, I love the term “egoless programming” and it’s something I look for in good collaborators and strive for myself.

I’d recommend changing “guy in the room” to “person in the room” or “coder in the room,” since it’s good to be inclusive even when talking about bad qualities.


This is really a timeless piece of very valuable information to any programmer.
Still, there is something i would like to add, from my personal experience:
Item 9., “Don’t be the coder in the corner” - while i think this is true, to an extent, it shouldn’t give people shame if they sometimes perform better when coding alone. Don’t put yourself in a position of unease for extended periods, just because you understand some 10 commandments of egoless programming that way. This should not be always, but in some task or project, i need to take my time to come up with a good solution, and while any solution should always be presented (and defended if necessary, and adapted from external input if necessary), sometimes it can be better to take your time with it, because of the other egos that might influence a solution to the worse, when doing so prematurely.
When you are an experienced programmer, you are your own worst critic, so make use of your strengths, know your strengths and don’t let people tell you otherwise. Let the results speak for themselves.
It always depends on the environment, but it should be your call to choose the right approach. You are the expert.