Egoless Programming
Posted by Peter | Filed under Programming
There’s loads of useful advice out there about programming, and Linux.com has an article about articles about ‘programming commandments‘, if you see what I mean.
Well worth having a skim through, but there’s one article they link to which particularly took my fancy… it’s the first one, the “10 Commandments of Egoless Programming“.
I really support the so-called “egoless programming” — a term coined by Jerry Weinberg. (I first learned about it in a 3rd year undergraduate class in “Software Project Management”, at Paisley Uni). Very simply, it’s about programming in such a way that you effectively put the project and the team ahead of yourself… the stuff you code is not your exclusive territory… and you basically extract your “ego” from your work. “Ego” is translated from the Latin “I myself” (for emphasis), and in Freudian psychology, it is used to indicate that part of the psyche which really identifies and controls the sense of self in relation to other influences.
Thus, according to psychological principles, the state of ‘egolessness‘ is one “of having no distinct being apart from the world around oneself”. As such, it is essentially where one’s own desires and activities are completely at the mercy of the project.
Why is egoless programming useful? Because it helps the team work together better in the here-and-now, and helps make the project accessible and maintainable for those who will follow. This goes well alongside the post I made previously about commenting your code — it is about consideration beyond just yourself right now.
Some people might try to suggest a Zen-like “become one with the code” to be a better programmer. But I like point 2 from the article I linked above:
You are not your code.
Deal with it.
