The Programmer's Bill of Rights


I earn roughly $7500 per year, which is an average yearly salary in my country.

Wow, that is a sobering tale.

I’m beginning to see why people would want to emigrate to a different country with more favorable working conditions…

  1. Every programmer shall have quiet working conditions
    hehe what if he is working with sound effects in his game


I earn roughly $7500 per year, which is an average yearly salary in my country. I should be able to buy my own apartment in roughly 142 years.

My chair is about 20 years old; I brought a pillow from home to sit on and to make me more comfortable.

The PC I work on is kind of okay, except that I had to jump through hoops to get a total of 512 MB of RAM, and the curved 17" monitor is freaking me out. I do have admin rights, though, but my right wrist and my left shoulder are starting to hurt badly, so admin rights don’t make me happy.

My copy of Visual Studio is illegal.

Nobody really knows WHAT I should do, so I regularly rewrite my apps from scratch and spend time migrating DB data as good ol’ management thinks of new, incompatible things.

I work in a room with no windows and air conditioning that smells, so we prefer to have it turned off until it gets REALLY hot. There wasn’t a week in the past two years that I have felt okay - I’m ill most of the time. But the noise of 10 servers near me doesn’t let me think about my health conditions much.

My company spends 50 times as much on crap outsourced developers, who produce code that takes 4-5 DAYS to churn out a WEEKLY report.

If I demand anything, I’m going to get fired, which isn’t very nice considering that I have to support my parents. And if I change my company, I’ll have to travel at least 4 hours each day (I don’t have a car, and I don’t think I’ll be able to afford one in the next 40 years).

So… What do you people think I should do? (BTW, I have the lowest salary in my department, but I regularly spend time teaching “senior” developers about the very basics of HTML and programming.)


#4 is the one that really matters. Dual monitors are nice, but being able to walk is better.


I think every developer should have their own development server with an external facing IP. With the world of virtualization at our finger tips, companies can purchase one beefy server and provide each of their developers with a virtual machine that they’re free to mess with and break as much as they like.

P.S. I love that quote:
“A lack of planning on your part does not constitute an emergency on my part”


(ironic mode)

Every programmer shall have a BOFH so close !!



Ha, at least you get PC’s.

Here, we have these HP thin client things, and we run VS 2005 on a terminal server shared with 5 other developers. Everything lags dreadfully, even simple tasks like dragging and dropping are painful. Even browsing the web sucks on these things. And the VS debugger? Bwhahahaha. But hey, developers don’t need to debug code! They should write it properly to begin with.

Also only have a single 17" LCD, and it’s not even that great, a standard HP keyboard (probably the best bit of equipment on my desk), and a no name mouse with a broken wheel.

And flexible hours? HA! I can’t wait until summertime, when we start an hour earlier, at 7am.



Myself, I prefer LEGOs.

Me too. Unfortunately, I can’t bring them in to work. But they do exist in a large quantity in my home office.

I think I need to post this Bill or Rights on a certain door here… :slight_smile:



"So… What do you people think I should do? "

start your own business. save up as much money as possible enough to last a few months (rent, food, etc.). find out what kinds of licences / fees your government requires for starting a business.

try to build up a client list before you quit. use your current working conditions as incentive inspiration to motivate you.



x. Every programmer shall have a substantial dry erase board for doodling and diagramming.


Every programmer shall have two monitors

I had to fight and claw to get my second monitor. And so now I’ve got one nice LCD, and one piece of junk CRT. sigh

Every programmer shall have a fast PC

My PC is generally pretty quick but I’ve only got 512 MB of RAM. Try running Visual Studio 2005 (bloated as hell) and SQL Server Management Studio (2005) (beyond bloated as hell) at the same time. Yeah, I spend a LOT of time looking at an hour glass.

Every programmer shall have their choice of mouse and keyboard

I do have this. Whew.

Every programmer shall have a comfortable chair

I can barely move at the end of an 8 hour day. My legs hurt, my lower back hurts and my neck hurts. This is AFTER I swapped chairs for the one that was “more comfortable.” Also you might want to add to this something about a nice working environment. Here, they keep it cranked up to about 90 degrees in the office during the summer. By the end of the day, I’m so hot and sweaty that productivity drops dramatically from about 2:00 PM to 5:00.

Every programmer shall have a fast internet connection

Got this.

Every programmer shall have quiet working conditions

I dream about the days when I used to have an office. Now I’m in a cubical and get interrupted about once every 5 minutes or less. The article you did about being in the zone was spot on: I’m only ever able to get into the zone maybe once a week if I’m lucky here.

I usually disagree with a lot of your posts, Jeff but this one was spot on.


“So… What do you people think I should do? (BTW, I have the lowest salary in my department, but I regularly spend time teaching “senior” developers about the very basics of HTML and programming.)”


Im agree with most comments.

Should add this:

“Each developer must have a comfortable desk as well”. Were currently using these “came from china”, small, without space desks. matter is that if you put in an external HD you dont have space to move your arm, (hell of work when i try with a speaker!).

And what about free tools - every developer should have the right to choose which tools can use (if these are free or not license is required) - IT always bothers you :@

And PLEASE!! if you cannot provide even a division or a cubicle for each, please give us a monitor filter or something. Is quite annoying to be moving the monitor to left or right when people next to you want to see what youre doing :expressionless:


Isn’t this whole thing just what a developer needs to negotiate with their boss? If they can’t negotiate what they want, what makes sense to both parties, then either bite the bullet or change job.

More specifically, the “Bill of Rights” should address fundamental and measurable rights that don’t need periodic revisions. For example, why two monitors and not a personal IMAX monitor? So similar to “freedom of speech”, why not “freedom of getting an ergonomically correct physical working environment”? This should cover all monitors, keyboards, mouse, chairs, desk hight, foot-rests, and etc.

The requirement of development tools is especially hard to measure. Is one tool really fit for a particular development task? Who’s the judge on that? With whose money? And what if it’s really expensive and you really don’t have the budget? Who’s going to decide that you can live with the workarounds or you absolutely need to quit the job?

On the “quiet working condition” front: sometimes putting a team in the same room (inheritly more noisy) actually improves productivity and team morale. Before Lego-cubicles becomes a reality, I think some flexibility in shared and private space would be nice (where one can easily move between the two kinds of working spaces).

There are so many things that can impact job satisfaction and being a programmer fundamentally is not too much different from being in a different occupation, in the sense that you need some things to get some other things done. It’s hard sell to recognize them as “rights” because at the end of the day, they are still negotiable… It might be more helpful to recognize good and bad people/project management practices…


Every developer should have a machine in there office/cubicle/whatever that is the same spec as the ‘minimum required’ as displayed on the final product. once the program actually works this machine (which will be reimaged back to a default state at will) will have the application installed on it and fired up…

1, to make sure it actually works

2, its actually usable.

I’m all for developers have the latest greatest to work with, they do actually need it. but the result should work on more down to earth hardware.

i.e. no GUI widgets that take more cpu power than the core of the application.

I mean my old 8Mhz ST (512Mb ram, no HDD) had a nice little desktop called ‘teradesk’ availbile for it. frankly apart from a lack of colour i’m hard pressed to see what my XP desktop does (that I actually need/use) that teradesk didn’t.

i’d add a rule that no GUI widget shall be added unless its actually needed. until the program works then add the stuff to make it look nice, but make it configurable. if the user wants speed let them turn the fluff off…

windows itself is actually a good example of this, if only it was easy to de-install the stuff you don’t use.


Having a single high-resolution monitor, or multiple average-resolution monitors are both acceptable.


I have a concern about #5. I apperciate the idea of grabbing some else’s lines to help with your project, but the ethics bother me. I propose that you should add a comment saying where you got that line from. But then again, if someone of higher power sees that comment…hmm…I’d have to think about this so more.



“I earn roughly $7500 per year, which is an average yearly salary in my country. I should be able to buy my own apartment in roughly 142 years.”

Do you live in Poland too?

“So… What do you people think I should do? (BTW, I have the lowest salary in my department, but I regularly spend time teaching “senior” developers about the very basics of HTML and programming.)”

Move to Ireland as I did


I do not see any problems having one monitor, but when your manager doesn’t keep you motivated and interested in what you do, it really sucks. Every person has to be motivated to make his work good. Why are there so many people with no management skills whose work is to manage human resources?


What about a bill of rights for the programmers customers (ie: the folks with the problem to solve)?

Right to engage developer in a dialog about the problem to solve, rather that demand detailed concise requirements… Work together to build requirements. Developers have a better clue as to what a requirement really is (versus having the customer tell you how to code it)!

Right to know the progress of some project at reasonable intervals. Customer doesn’t need to know status every hour, or even every day (perhaps), but not hearing from the developer until weeks later is far too late to find out that the developer and customer are disconnected.