Egoless Programming

  • Upload
    jabban

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

  • 8/12/2019 Egoless Programming

    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. +ont 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 estand 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.

  • 8/12/2019 Egoless Programming

    2/2

    #. 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. 8nderstandthat sometimes your ideas will e overruled. Even if you do turn out to e

    right, dont take revenge or say, "9 told you so" more than a few times at

    most, and dont make your dearly departed idea a martyr or rallying cry.

    . $ont be "the guy in the room.'+ont 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 reallychanged.