473,836 Members | 2,126 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Egoless Programming: The Ten Commandments

11,448 Recognized Expert MVP
The following text is not mine; it's a summary of Weinberg's essay on
egoless programming; read it and realize how true it all is.

The Ten Commandments

1) Understand and accept that you will make mistakes. 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.

2) You are not your code. 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

3) No matter how much "karate" you know, someone else will always know
more. Such an individual can teach you some new moves if you ask. Seek and
accept input from others, especially when you think it's not needed.

4) Don't rewrite code without consultation. 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.

5) Treat people who know less than you with respect, deference, and patience.
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.

6) The only constant in the world is change. 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.

7) The only true authority stems from knowledge, not from position. Knowledge
engenders authority, and authority engenders respect—so if you want respect
in an egoless environment, cultivate knowledge.

8) Fight for what you believe, but gracefully accept defeat. 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.

9) Don't be "the guy in the room." 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.

10) Critique code instead of people—be kind to the coder, not to the code.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.
Jul 11 '07 #1
6 11621
1,295 Recognized Expert Top Contributor
I thought i had no religion at all. Thanks for the change.
Oct 5 '07 #2
3,509 Recognized Expert Moderator Specialist
I thought i had no religion at all. Thanks for the change.
Who ever said coding was a religion? I consider it a highly evolved art form that has a plethora of form, function and beauty.

And yes, Thank You JosAH for those awesome words of wisdom. Shall we carry them down and spread their word?
Oct 5 '07 #3
533 Recognized Expert Contributor
They are awesome words of wisdom which will be carried forward into an ever-evolving business world which demands more for less...!

Oct 11 '07 #4
35 New Member
I am a beginner .......
So unintensionaly I have done some of the things tht I shouldnt have otherwise ,
and more importantly i've realized it only because of those "words of wisdom "
So ,Jos ...........Than ks alot !

kind regards,
Oct 27 '07 #5
61 New Member
Thanks for the wonderful thoughts from a wonderful mind. Thank u sooo much..
Nov 16 '07 #6
1 New Member
I think you can add this thesis:
  1. If something is work, don touch it.
And another one:
  1. If something don't work, try to restart it.
May 20 '22 #7

Sign in to post your reply or Sign up for a free account.

Similar topics

by: Martin | last post by:
When was inheritance intruduced into object oriented programming? More generally, does anyone know or have any sources on when the different features were introduced into object oriented programming?
by: Philipp Lenssen | last post by:
The Ten Web Commandments http://blog.outer-court.com/archive/2004_11_30_index.html
by: Grant D. Watson | last post by:
Okay, forgive me if this has come up before, but I didn't find anything in Google Groups. I ran accross an old printed copy of the 10 Commandments for C Programmers a little while back, and it got me thinking: "Gee, these are beginning to show their age. I wonder what the folks on c.l.c would suggest by way of revision?" So, if you were to produce a Revised 10 Commandments for C Programmers, what would you add? What would you remove?...
by: G. | last post by:
Hi all, During my degree, BEng (Hons) Electronics and Communications Engineering, we did C programming every year, but I never kept it up, as I had no interest and didn't see the point. But now I really want to get back into it as I see a point with GNU/Linux. I want to get my old skills back and write something or help on some projects etc. I need some good books. I used to have one called "A Book On C", but sold it,
by: user | last post by:
Hi all, At the outset, I regret having to post this slightly OT post here. However, I strongly feel that people in this group would be the best to advise me on my predicament. I am working as a QA in an MNC in India, since I graduated in September 2003. I am working in a QA role which requires me to do some Winrunner automation, and modifying/creating a framework in Perl for Automated Regression Testing of some command Line utilities...
by: Sensei | last post by:
Hi! I'm thinking about a good programming style, pros and cons of some topics. Of course, this has nothing to do with indentation... Students are now java-dependent (too bad) and I need some serious motivations for many issues... I hope you can help me :) I begin with the two major for now, others will come for sure! - function variables: they're used to java, so no pointers. Personally I'd use always pointers, but why could be better...
by: Jakle | last post by:
I have been googling, but can seem to find out about C GUI libraries. My main platform is Windows, but it would be nice to find a cross platform library. I've been programming with php, which has a C/C++ syntax structure, but want to move on to compliled languages. I was all ready to go with C++ and wxWindows, but I'm applying for an entry level programming possition. They use their own propriatary language, with
by: Russ | last post by:
I just stumbled onto PEP 316: Programming by Contract for Python (http://www.python.org/dev/peps/pep-0316/). This would be a great addition to Python, but I see that it was submitted way back in 2003, and its status is "deferred." I did a quick search on comp.lang.python, but I don't seem to see much on it. Does anyone know what the real status is of getting this into standard Python? Thanks.
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.