The Programmer's Bill of Rights


A glance at the URL of each blog shows the naming/numbering system of the individual blogs.

I entered 000001.html, and got test1, but upon looking in the archive, I can’t find it. Why was this one not included (and #000002 and #000003), in your “complete” archives, eh? eh? :smiley:

AND one more thing, why is #000666 about The Programmer’s Bill of Rights? Hmm? Trying to tell us something?

Juuuust kidddinggg

Sadly you’ll probably not overflow by going past #999999, but I must say, I am very pumped for an upcoming stackoverflow! :slight_smile:


Love the list. Unfortunately, I’ve often had to pull teeth at the management level to get most of these things.

But there should also be a list of responsibilities for programmers:

  1. Don’t hog the credit - give it where it’s due. The more you give your co-workers credit, the more your boss will attribute it to you. Strange, but true.

  2. Share what you know. You don’t become invaluable by keeping everything to yourself, in fact it makes you expendable.

  3. Never cheat the boss/company. It’s one thing to need to screw off to blow off steam or regain your focus. It’s another to just screw off.

  4. Relate what you want in business terms, not IT terms. You can’t win every fight, sometimes there are business-related reasons for why things must be the way they are.

  5. Ask users for their input. They’ll be using your program, not you. Build it so they can use it, and they will.

There may be others, but these come to mind immediately.


Industrial strength hearing protection did the job for me in item 6 – I posted links to the stuff I use in #6’s linked article.


I I, We should start our own parties in every country for programmers everywhere and introduce the Programmers bill of rights


As for a quiet environment, I find that it’s easier for me to listen to music than to code in complete silence.


Solution: Work for people who need fast computers for their own jobs. I work with engineers who need 8 gigs of RAM, 4 processors and 2 monitors (with 1600x1200 resolution), so that’s what I get too. When I say need, I mean it. The CAD program they use won’t always run correctly on the one computer in the office with under 8 gigs of RAM and 4 processors (it has 4 gigs and 2 processors, so it’s not slow by any means). One of the engineers even has a second machine with TWO quad core processors.


Heck, while we are dreaming, let’s go for broke…Every programmer shall have his or her own private cubicle consisting of an area of no less that 100 square feet. He or she shall share this space with no one, the cubicle should come with a standard entryway and four adjoining walls that are no less than 6 feet in height.

The programmer shall also have access to modern conveniences in his or her said cubicle that will consist of the following: (1) Indirect Lighting that can be variably adjusted to coincide with the developer’s mood; (2) A floor heater that can be turned on and off; (3) A fresh air vent that can be turned on and off; (4) A white noise creator to drowned out loud music and non-essential conversations that happen in adjacent cubicles; (5) A flexible work schedule that allows the developer to determine the most productive periods of the day for him or her to work. That should do it. :stuck_out_tongue:


@Koder Kev

There is a list of responsibilities for programmers called the Software Engineering Code of Ethics and Professional Practice.


Wtf? Programmers have rights? How about the children making the expensive brand name clothing they wear? What about the factory workers that make their cars, and the folks working at mcdonalds making their food.

Lazy programmers don’t need comfy chairs. Lazy programmers need a swift kick in the ass.


Right to a BACKUP media.

The right to BACKUP one’s development PC software is always overlooked.
Either tape or 2nd hard drive. Bosses love shifting risk to you to save a buck. A major crash can leave you weeks behind.


I liked what was said about one’s choice of OS and tools as a religious choice. In that case their should be a separation of Environment and Requirements.

By requirements, I mean a statement of the problem and its possible solution. E.G. the client wnats a prime number 20 digits long with the sequence 789 in it somewhere.

By environment, I mean the OS, Windows, Linux, OS X. I also mean the tools, Vi, Emacs, Eclipse, Visual Studio.

If there is a separation of environment and requirements, a developer will always code pretty fast.


Are you kidding me?
How about the right to quit if you don’t like the job that you agreed to be paid for. You still have that right. If you were dumb enough to not negotiate all those things before you accepted your position, then quit. Whining spoiled babies.


About you should have negotiated before, quit whining, and similar remarks.

You are missing the point: The employer should be the one worrying, because he is wasting money by the bucket load. If his programmers are constantly distracted by noise, or people interrupting them, their output will be low…but their salaries remain unchanged.

If they have to waste hours and hours because of antediluvian equipment, you still have to pay for these hours. Poor equipment is not only slow, but quite often you have to spend a lot of time to fix it, clean the registry, use some hack settings that are marginally faster, and perhaps more importantly, you force yourself to run only the bare minimum in terms of applications: if it is slow, you try to run as few applications as possible, which means that if you need something from another application, you have to start it. Wastes time and takes your attention away from what you were doing.

All these add up to a lot of wasted time and a much lower productivity. If you save $2000 on equipment and waste 500 hours of your programmers’ time, you are a moron.

A second monitor goes for about USD 250. Assuming $50 per hour (for the sake of simplicity) and a 5% productivity increase (on the low side), you will recover your investment within 45 days and by the end of the year, that investment will have paid for itself 7 times over.

Even if your attitude was screw the programmers, I pay them, they are mine to do whatever I want, you still want to get them a proper development environment, because if you don’t, it’s going to cost you.


Thanks for your post, Sylver. It sounds like, Middle Manager, has been in, middle management, far too long; and harbors a whole lot of resentment.

Personally, I liked this piece on the programmer’s bill of rights. If you aren’t too into yourself, (or a resentful middle manager), most of this was tounge and cheek stuff; and should not have stirred up some of the negative emotions that it did.

I also thought the post on the programmer’s responsibilities was excellent. If we are going to have rights, we also need to have, (and except), certain responsibilities.


Two monitors? I’d |S| rather have one big
screen the same si|A|ze as two little ones.
It gets on my tits|M|. Seriously.

no doubt the formatting will screw this up…


I just reread this article after finding it over a year ago. I am diligently trying to move our department towards the things listed in this article, though some items, such as dual monitors, may be difficult given the economic climate. It is difficult for developers to understand why a company might resist making changes like these, given the tangible benefits of these practices. Monitors for example are cheap compared to the cost of a programmer’s time. I tell my team “Your problem is that you think logically” :wink: In a lrage company, the bucket the money comes out of is almost more important than the actual cost. Programmers are often viewed as overhead. The company pays the same amount on a monthly basis regardless of how long it takes to perform development tasks.

Thanks again for putting this to “print”. It might just help us move the ball forward.


really good, very creative, bill of rights, just respect each other.


Absolutely wonderful and amazing. I would also like to add “allow beer while working” :slight_smile:


I think a lot of the proposed additions could be summarized thusly:

8: Every program shall have access to the right tools.


Don’t forget good development tools… It surprises me how many companies are still using gdb for debugging, when there are much better commercial tools out there.