Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Potherca/98f8f3cb45cb6a6a6868fa29fc03ee5d to your computer and use it in GitHub Desktop.
Save Potherca/98f8f3cb45cb6a6a6868fa29fc03ee5d to your computer and use it in GitHub Desktop.
<!doctype html>
<html lang="en">
<head>
<!-- =========================== PAGE INFO ============================= -->
<meta charset="utf-8">
<title>The Ten Commandments of Egoless Programming</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- ========================== VENDOR ASSETS ========================== -->
<link
crossorigin="anonymous"
href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css"
integrity="sha256-2pUeJf+y0ltRPSbKOeJh09ipQFYxUdct5nTY6GAXswA="
rel="stylesheet"
/>
<!-- ======================== APPLICATION STYLES ======================= -->
<style>
.content .title {margin-bottom: 0}
.content h2.title {margin-top: 1em}
footer {opacity: 0.35}
</style>
</head>
<body>
<article class="container">
<section class="section content">
<h1 class="title">The Ten Commandments of Egoless Programming</h1>
<p>
"The Ten Commandments of Egoless Programming", as originally established in Jerry Weinberg's book
<a href="https://www.amazon.com/dp/0932633420/">The Psychology of Computer Programming</a>:
</p>
<ol>
<li>
<h2 class="title">Understand and accept that you will make mistakes.</h2>
The point is to find them early,
before they make it into production. Fortunately, except for the few of us developing rocket
guidance software at JPL, mistakes are rarely fatal in our industry, so we can, and should,
learn, laugh, and move on.
</li>
<li><h2 class="title">You are not your code.</h2> Remember that the entire point of a review is to find
problems, and problems will be found. Don't take it personally when one is
uncovered.
</li>
<li><h2 class="title">No matter how much "karate" you know, someone else will always know more.</h2> Such an
individual can teach you some new moves if you ask. Seek and accept input from others,
<em>especially</em>
when you think it's not needed.
</li>
<li><h2 class="title">Don't rewrite code without consultation.</h2> There's a fine line between "fixing code"
and "rewriting code." Know the difference, and pursue stylistic changes within the framework
of a code review, not as a lone enforcer.
</li>
<li><h2 class="title">Treat people who know less than you with respect, deference, and patience.</h2>
Nontechnical people who deal with developers on a regular basis almost universally hold the
opinion that we are prima donnas at best and crybabies at worst. Don't reinforce this
stereotype with anger and impatience.
</li>
<li><h2 class="title">The only constant in the world is change.</h2> Be open to it and accept it with a smile.
Look at each change to your requirements, platform, or tool as a new challenge, not as some
serious inconvenience to be fought.
</li>
<li><h2 class="title">The only true authority stems from knowledge, not from position.</h2> Knowledge engenders
authority, and authority engenders respect – so if you want respect in an egoless
environment, cultivate knowledge.
</li>
<li><h2 class="title">Fight for what you believe, but gracefully accept defeat.</h2> Understand that sometimes
your ideas will be overruled. Even if you do turn out to be right, don't take revenge or
say, "I told you so" more than a few times at most, and don't make your dearly departed idea
a martyr or rallying cry.
</li>
<li><h2 class="title">Don't be "the guy in the room."</h2> Don't be the guy coding in the dark office emerging
only to buy cola. The guy in the room is out of touch, out of sight, and out of control and
has no place in an open, collaborative environment.
</li>
<li><h2 class="title">Critique code instead of people – be kind to the coder, not to the code.</h2> As much as
possible, make all of your comments positive and oriented to improving the code. Relate
comments to local standards, program specs, increased performance, etc.
</li>
</ol>
<p>The human principles of software are truly timeless;
<a href="https://www.amazon.com/dp/0932633420/">The Psychology of Computer Programming</a>
was written way back in 1971!
</p>
<footer>
<p class="is-size-6">
Written by Jeff Atwood -
<time datetime="2006-05-09">09 May 2006</time> -
<a href="https://blog.codinghorror.com/the-ten-commandments-of-egoless-programming/">https://blog.codinghorror.com/the-ten-commandments-of-egoless-programming/</a>
</p>
</footer>
</section>
</article>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment