Web Development

General discussion


DOWNLOA Ten commandments of egoless programming

By JodyGilbert ·

After you take a look at this download, please post your feedback, ideas for improvements, or further thoughts on this topic.

--The TechRepublic Downloads Team

This conversation is currently closed to new comments.

Thread display: Collapse - | Expand +

All Comments

Collapse -

a suggestion

by Jaqui In reply to DOWNLOAD: Ten commandment ...

that the 10 commandments be adopted as guidelines for the discussions also.
specially in regards to software and web development.
and the tools for such development.

Collapse -

Seems reasonable though you've missed

by Tony Hopkinson In reply to DOWNLOAD: Ten commandment ...

one. All reviews should be done in an informal environment, the pub for instance.
I agree with the tenth one, though I find it hard not to call people who should know better ****heads on certain occasions.
Best of all syuch an environment promotes the most fundamental attribute of useful code. Readability.

Collapse -

A Single Commandment

by w.lievers In reply to Seems reasonable though y ...

Egoless programming, my eye.

Why expose my work - which is, as you say, an art - and subject it to review by my peers?

You tell me that these people have no ego, but that they have the right to suggest their own changes to "improve" my code? Where is the egoless-ness in that?

Or perhaps these "peers" have their own agendas, and dislike certain aspects of my work: too many comments, for example. If I conform to my own standards, why then should I change and conform to theirs?

You assume that I have no passion for the work, that I NEED peer reviews to produce superior code. Nonsense! I strive for perfection, which is, as Commandment #1 clearly states, unattainable. Yet I persist.

The only commandment I follow is a simple one: code should make the Poor User's work day a better place. A program should be easy to use, even if it is hard for me to write. It should present the computer to the user as a highly-polished tool, or set of tools.

I have confidence in my abilities, and needless reviews of working code are pointless. I will be the first person to ask for a help when I "hit the wall".

That said, here are my observations to each of the commandments:

1. Understand and accept that you will make mistakes.

Bugs are inevitable, but they will be eliminated through rigorous testing.

2. You are not your code.

Sheer lunacy! My way of thinking is brought to life through my code. So it is with any programmer worth his or her salt.

3. No matter how much "karate" you know, someone else will always know more.

So what? I only care if they can show me a solution to a problem that I cannot find myself.

4. Don't rewrite code without consultation.

Why? Where is the argument, either for or against? I would instead say, "Never revisit old code because you will be sorely tempted to 'fix' it".

5. Treat people who know less than you with respect, deference, and patience.

Why would I seek advice from someone who knows less than I? My feeling superior to a newbie - where is the egoless-ness in that?

6. The only constant in the world is change.

Sophomoric claptrap. I see intrusion into my way of thinking for what it is: pointless peer pressure.

7. The only true authority stems from knowledge, not from position.

Please! This sounds like something out of Dr. Phil's mouth. Why should I care if I have respect or not - where is the egoless-ness in that?

8. Fight for what you believe, but gracefully accept defeat.

There is no right, only different. Your ego vs. mine. **** off.

9. Don't be "the guy in the room."

I'm proud to be "that guy". How in the world can I be "in the dark", or "out of touch" with the Internet at my fingertips? What do you mean by "out of sight" and "out of control"? Perhaps my non-conformity bothers you: see #8 above.

10. Critique code instead of people?be kind to the coder, not to the code.

The two cannot be separated. Besides, I will not give you the right (or pleasure) of critiquing my code. What anyone has to say is immaterial as long as I adhere to my single commandment.

* * * * * *

To sum up: question authority at every turn. Make your own decisions, and stand up for your beliefs. Do not give in.

Collapse -

I completely agree with the last sentence

by Tony Hopkinson In reply to A Single Commandment

A colleague once described me with the sentence quite unfairly in my opinion. "The only thing bigger than his ego is his head". This was admittedly after I'd claimed I could wash a box of paper down with a bottle of ink and puke a better design, but that statement at least had the virtue of being true.

In essence all were talking about here is someone running a quick eye over the code to catch anything embrassingly stupid. That's all it is to me, I can live without all the mumbo jumbo they wrap round this simple concept in order to sell it though.

Obviously you are not working in a team, that's OK there's plenty of lone ranger work out there, but you are missing out on a lot of potential learning experiences, I much prefer working with peers or in a team for that very reason.
I've no idea of the quality of your work, but presumably you can back up your ego, but I've cleaned up after Kimosabe's horse far too many times to take it on trust.

Collapse -

Hi-ho, Silver...

by w.lievers In reply to I completely agree with t ...

I, too, have spent time in the stables with OPC. However, I was not asked to change anything that was working (why would I?), but to fix something that was broken. Anyone who has done this knows the pain and suffering that goes along with reading another person's mind.

You have to know when to shrug your shoulders, heave a heavy sigh and get on with the work. Sometimes your hand has to fit the shovel ;-)

*OPC - Other People's Code

Collapse -

You're so ego-maniac you totally missed the point

by Joe McTroll In reply to A Single Commandment

Peer review DOES lead to better code. At college, my classmates and I would exchange code frequently, we would criticise moderately one another's code, and suggest improvements. Sometimes the suggestions were taken into account by the original author, sometimes by the proponent.
In the end, our applications were more featured and robust than any of us would've done by himself, each of us had a different point of view and could see different problems that could arise, as well as propose different solutions - the best of which were adopted.

Also, peer review is an integral part of open source development and open source mentality. If you prefer to be isolated at your ivory tower, well that's fine. I'm sure you can produce very high quality code. Just remember that even the best hunter misses a fox or two - I've seen some revered programmers (at different works I've been) making newbie mistakes - it's OK, their status quo is so high nobody can question their place, but even THEY benefit from letting their coworkers see their code and ask questions about it.

Collapse -


by w.lievers In reply to You're so ego-maniac you ...

Yes, perhaps in COLLEGE you NEEDED peer review, but Dude, we are so out of college now. If your work still requires review ("um, is this, like, OK?"), you're in the wrong line of work.

Collapse -

Disagree, dude.

by Br.Bill In reply to Dude...

I've maintained code from people who live in an ivory tower. No thanks. Nobody's single implementation is perfect. Nobody's. When you've been in the biz 30 years maybe you'll realize it.

Collapse -

Henry Ford used to think like you.

by Br.Bill In reply to A Single Commandment

"To sum up: question authority at every turn. Make your own decisions, and stand up for your beliefs. Do not give in."

Which is why the hugely successful Ford company refused to sell cars in any color except black. Horrible decision. That one rule lifted GM from an also-ran to an industry powerhouse. Ford was very late to the game in selling other colors.

I almost think your entire response is tongue-in-cheek.

Collapse -


by quantumetrics In reply to DOWNLOAD: Ten commandment ...

Wow. I remember reading about 'egoless' programming for the first time back in 1983, when I was cranking out Command-level CICS and COBOL on an IBM mainframe.

I believe that these principles are even more solid today than they were then.

Related Discussions

Related Forums