The Programmer's Bill of Rights


Get over yourselves. The vast majority of you are not writing operating systems, or programming in ML! You are programming business logic in garbage collected languages. You get a paycheck. If you don’t like the conditions where you work, work somewhere else.


One 15" LCD.

That’s all I get. :frowning:

Quite irritating, b/c lines wrap in vi and it drives me crazy. I’ll probably buy a bigger LCD for myself some day.


wow, I’m spoiled
…I have 4 monitors
…a fast computer that I spec’ed out
…ordered my own mouse + keyboard
…comfortable chair
…T3 connection (firewalled out the wasu, though)
…use Yahoo video/radio for music to my headphones
…wear jeans and T shirts to work
…have toys on my desk
…have spare (normal user) PC to test application speed

My only downside is I am analyst, developer, project manager, leader, tester…and my direct report has no clue what I do (ex-Datacenter manager).


I’d forgo the fast computer for two monitors and a good Dev server and automated builds and testing.


Programmers shouldn’t be given fast computers. Fast computers let programmers write dog-slow code. If the people writing gnome or KDE (or Windows, for that matter) had been on slower machines with less memory, the desktops would be much, much more lightweight.


John F, grendelkhan: This only works if the company is dogfooding. Generally, it would be better to put any internal users (sales, QA) on the lousy hardware, so that they feel the pain, and report it to the devs.

At any rate, if you’re developing webapps, there’s no excuse for slow hardware.


I am all for this bill of rights! I am still in college, but I think these are a must for a programmer. As for the fast PC, it would be nice, but if I can have a second one to run as a server, I am happy.


John F: maybe incremental builds are less than a minute, but then you change a common header and have to rebuild the project – forget about it – a lot of application development projects are not going to do a clean build in under a minute. More like 20-30.

With that kind of delay, devs either work around putting the code in the “right” place in order to avoid the downtime (leading to shoddy code), or they’ll wander off (physically and mentally) and lose their place, and probably not notice when it’s done, adding even more down time.

I think there’s a magic cutoff where if the compile/link/rerun time takes more than say 30 seconds, the dev will get bored/distracted and downtime goes exponential.

Features and performance are constraints applied by management/marketing. Optimization comes at the end, no need to make devs suffer with a slow machine all along the way, just during the final polishing.


My employer believes in all of the above things… except for the paying us 60k-100k part. What would you rather have, decent pay, or a good work environment?


I think Programmer should have the right to refuse writing documentation ;). Just kidding :slight_smile:




Every programmer shall have two monitors

No. Every programm shall have a large monitor. That’s all. For debugging, they should have an additional remote PC, not a remote monitor. (You ain’t never crashed a kernel, or driver obviously)

Every programmer shall have a fast PC

ONLY for compiling. The target PC for the application must, in fact, be the absolutely slowest computer available on the market, and barely have any disk space at all. The faster the PC the programmer targets, the more bloatware they write.

Every programmer shall have their choice of mouse and keyboard

This one I agree with. Also through in the text editor.

Every programmer shall have a comfortable chair

Yeah, whatever.

Every programmer shall have a fast internet connection

What has a fast connection got to do with anything? Krugle, and sourceforge doesn’t go any faster just because you have XDSL.

Every programmer shall have quiet working conditions

So buy headphones.


I can’t understand why people don’t understand #6, which basically means that the programmer should work in an environment that doesn’t have people coming and going and interrupting their work all the time.
Also, #3 sounds like I’m supposed to bring my own equipment o_O

Chris Lively - I wonder how the army would implement your suggestion :slight_smile:


Add to this…

Every programmer shall have the right to install and configure all software on his PC

As in, not be forced to work on a locked down PC where the software was slapped on as a default install by a teenager who has “IT experience” (ie: has played a computer game or two) on temporary contract to an outsourcer for whom maintaining control over the desktop is more important than having the desktop used to accomplish something and where ‘lockdown’ is being used as a poor substiture for security.

I can’t understand why people don’t understand #6, which basically means that the programmer should work in an environment that doesn’t have people coming and going and interrupting their work all the time.

Some programmers don’t understand it either - but then quite often they are the ones not doing anything clever enough to be concentrating on the task on hand (people who produce bad code that does not work well and isn’t worth the paper its printed on do not care in the least about point #6).

Likewise for some managers (and I really have seen some who take the attitude that nervous breakdown due to environmental problems simply means “time to find another contractor and put this one out on the street, no notice required”).


Wahoo! Score, I’ve got them all! Well, I could use a new chair on Monday… hehe


So buy headphones.

My company even banned headphones (on grounds of ‘professionalism’).


I’m not convinced by #2, unless there’s a rider for testing to be done on mediocre machines. I’d hate for the programmer’s bill of rights to take away from the end user’s experience by assuming everyone will use fast machines with loads of memory.

Otherwise, good list.


Hey! I’ve made a translation to italian here:

What about a worldwide campaign for translation in many languages?


Of course I gave you credits!!!


My additions:

  1. Every programmer shall attend a development conference once a year.

  2. Every programmer shall be supplied with technical books of his choice.

I run my own company and practice this. Works very well and increases my efficiency.


Completely agree!!!


I agree
we are humans,
not only brains or ideas
as arm’s slaves