Wednesday, June 29, 2005

Egoless programming

What is egoless programming? This term was coined by Jenny Weinberg in 1971, in his book, The Psychology of Computer Programming. He talked about an environment with lots of peer reviews, as is present in the current environment. The basic idea of peer reviews sits on the fact that the probability of catching a bug rises when more people get to identify mistakes. There could be logic problems, syntax problems or algorithm problems. But to get this system to work, humans would have to go away with their egos.

However it may not always be possible. Not everyone can take a criticism so constructively. Some people just cannot digest when someone disparages their work. For the system of peer review to work, the following are ideas which must be there in everyone's head.

  • To err is human – Accept any mistakes you may have made, instead of feeling bad about it.
  • You are not your code – Don't take a code bug personally, it's the code whose fault is being identified, not yours
  • No matter how much you know, someone would surely know more – Accept this fact and ask people before doing anything
  • Don't rewrite code without consultation – Fixing code with a little consultation goes a long way than rewriting code. Don't reinvent the wheel
  • Treat people who know less than you with respect – That's the only way you can gain respect.
  • The only constant in this world is change – Keep learning, it might not be long before others get ahead of you.
  • The true authority comes from knowledge, not position – Don't use the power of your position, you will automatically garner authority when you have good knowledge
  • Critique code instead of people – Don't criticize people, don't let them take the criticism personally. Let this be a constructive game.


Taken from an article that appeared on builder.com

No comments: