0% found this document useful (0 votes)
137 views

Egoless Programming

The document outlines the "Ten Commandments of Egoless Programming" which provides principles for collaborative software development without ego. The principles include making and learning from mistakes, not taking criticism of code personally, seeking input from others, reviewing code changes as a team, treating all people with respect, embracing change with a positive attitude, cultivating knowledge to earn respect, gracefully accepting defeat in debates, avoiding isolating oneself from the team, and critiquing code constructively rather than criticizing individuals. The takeaway is that egoless programming is essential for collaborative development as the human principles discussed in the referenced book from 1974 remain relevant because human nature has not fundamentally changed.

Uploaded by

jabban
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
137 views

Egoless Programming

The document outlines the "Ten Commandments of Egoless Programming" which provides principles for collaborative software development without ego. The principles include making and learning from mistakes, not taking criticism of code personally, seeking input from others, reviewing code changes as a team, treating all people with respect, embracing change with a positive attitude, cultivating knowledge to earn respect, gracefully accepting defeat in debates, avoiding isolating oneself from the team, and critiquing code constructively rather than criticizing individuals. The takeaway is that egoless programming is essential for collaborative development as the human principles discussed in the referenced book from 1974 remain relevant because human nature has not fundamentally changed.

Uploaded by

jabban
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 2

The Ten Commandments of Egoless Programming

Programming, like writing or creating art, is a very personal endeavor, and, like
artists, some of us just can't stomach it when someone else disparages our work.
Part state of mind and part QA philosophy, the term "Egoless programming" was
coined y Jerry Weinberg, ack in !"#! in his highly influential ook, The
Psychology of Computer Programming.
!. Understand and accept that you will make mistakes.$hepoint is to
find them early, efore they make it into production. %ortunately, e&cept for
the few of us developing rocket guidance software at 'P(, mistakes are
rarely fatal in our industry, so we can, and should, learn, laugh, and move
on.
). Youre not your code. *ememer that the entire point of a review is to
find prolems, and prolems will e found. +on,t take it personally when
one is uncovered.
-. !o matter how much "karate" you know# someone else will always
know more. .uch an individual can teach you some new moves if you
ask. .eek and accept input from others, especially when you think it's not
needed.
/. $ont rewrite code without consultation. $here's a fine line etween
"fi&ing code" and "rewriting code." 0now the difference, and pursue
stylistic changes within the framework of a code review, not as a lone
enforcer.
1. Treat people who know less than you with respect# deference# and
patience. 2on technical people who deal with developers on a regular
asis almost universally hold the opinion that we are prima donnas at est
and cryaies at worst. +on't reinforce this stereotype with anger and
impatience.
3. The only constant in the world is change. 4e open to it and accept it
with a smile. (ook at each change to your re5uirements, platform, or tool
as a new challenge, not as some serious inconvenience to e fought.
#. The only true authority stems from knowledge# not from position.
0nowledge engenders authority, and authority engenders respect 66 so if
you want respect in an egoless environment, cultivate knowledge.
7. %ight for what you belie&e# but gracefully accept defeat. 8nderstand
that sometimes your ideas will e overruled. Even if you do turn out to e
right, don,t take revenge or say, "9 told you so" more than a few times at
most, and don,t make your dearly departed idea a martyr or rallying cry.
". $ont be "the guy in the room.' +on,t e the guy coding in the dark
office emerging only to uy cola. $he guy in the room is out of touch, out
of sight, and out of control and has no place in an open, collaorative
environment.
!:. Criti(ue code instead of people))be kind to the coder# not to the
code. As much as possile, make all of your comments positive and
oriented to improving the code. *elate comments to local standards,
program specs, increased performance, etc.
Takeaway* +n a team)based de&elopment en&ironment# egoless
programming is a necessity. The human principles of software are truly
timeless, The Psychology of Computer Programming was written way back
in -./-. 0ow can this still be rele&ant1 Easy* People ha&en2t really
changed.

You might also like