Stack OverflowThe Programmer's Bill of Rights
[+41] [31] Martin
[2008-09-19 08:37:42]
[ discussion ]

I know Jeff has written about this subject [1] on his coding horror blog in the past but I am interested in learning the opinions of a broad set of developers.

I agree wholeheartedly with his statement:

I propose we adopt a Programmer's Bill of Rights, protecting the rights of programmers by preventing companies from denying them the fundamentals they need to be successful.

So, if you could propose one item to the bill of rights, what would it be?

(2) It'd be nice if people justified what they wanted, instead of sounding like they were just wishing for things to make their job better. "Rights" are the baseline, not some Utopia you're praying to find. - Dean J
[+100] [2008-09-19 08:44:49] Chris Jester-Young

Very important to me is the ability to pursue my own coding projects, on my own time and on my own equipment, without fear of the company trying to own it. Without this ability, I'd feel that my creativity is severely curtailed.

(1) In California, this is the law. :-) - 0124816
(1) Is there any reference which says this? I'd feel much better if there is something I can point people at, if need be. :-) - Chris Jester-Young
(33) Sorry for the yelling. I copied the headline right from the web site and lawyers love to yell. - dwj
lol Perfect! I should stay working for Californian companies then. :-P - Chris Jester-Young
Read the California law again. It says your company owns your work on your own time if the work is related to their business. So, if you work for EA and you try to make an iPhone game at home EA owns it, not you. Doesn't matter that it was on your own time. - gman
@gman Only if the employer has such a specification in their employment policy / contract. 1 and 2 are exceptions to the employee's rights, but are also not rights automatically assigned to the employer. - banzaimonkey
@banzaimonkey That's not the case. An employer has quite a few rights without having to put them in your employment contract. For example, the fact that they own anything you do ON COMPANY TIME is not something they have to spell out. It's the default law. If you want more rights you can negotiate them but without explicit exceptions they own your work. The same is true for work outside of the compan if it fits under the law as spelled out in the links above. - gman
[+72] [2008-09-19 08:47:30] Matt Howells [ACCEPTED]

A decent spec workstation with multiple monitors, on which I have admin rights.

(1) a constant battle in all the large organisations i have worked in (and some smaller ones too) - geocoin
admin rights i agree w/ but i dont agree with the multiple monitors part - Devoted
(4) I believe that the <$300 they spend on a second monitor for each developer is far outweighed by the developer's increased productivity and convenience. - Albert
(4) Admin rights, while comfortable, can cause bugs when run WITHOUT admin privileges. Enforces false assumptions... - AviD
(1) @Albert Yeah, an extra monitor seems like overkill though, if only Windows ran the Compiz Desktop Cube like Linux does. It would be almost the same -$300 worth of cost... - Robert Massaioli
(2) I'd take 2 or 3 monitors over admin rights any day - Allen
@AviD: Just because you can use sudo (or equivalent) on the machine doesn't mean you should be using it to test the code as you write it---but you might require exactly that, depending on what you're developing. - community_owned
@Shhnap: no, it's not the same thing. Being able to see the documentation and/or the running application at the same time as the code is worth more than being able to switch between them. - Joachim Sauer
@Joachim: Then use a tiling window xMonad. You really only should need to buy one large screen but if two floats your boat then get two. Lord knows you're making the Monitor distributor happy. :) - Robert Massaioli
If you are working on Windows you can simply not attach a debugger to a process without administrator rights. I'd take admin right any day over multiple monitors. Debugger > 500 monitors. - iconiK
Try programming without admin rights when your virus scanner fights with your build. I need admin rights or the right to punch someone in the nose to relieve my stress. - LanceH
@iconiK: That's simply not true, your account just needs to be member of a group that has the right to attach a debugger to a process. See - mghie
@mghie yes, which directly means giving administrator privileges. If you can attach a debugger to any process you effectively own the machine. - iconiK
[+62] [2008-09-19 11:03:12] Carl Seleborg

Access to Internet. Some companies still disable it, and it makes programming much more difficult than it has to.

(16) How can you work without internet access? That's just INSANE! - niXar
(2) programming impossible w/o internet :O how do u do it? - Devoted
With a rich enough intranet, it's doable. :-P</devils-advocate> - Chris Jester-Young
koldfyre: iPhone? - MindStalker
We worked without internet access for decades before the 90's. That said, I wish I had better access to technical blogs, and am thankful I'm allowed through the firewall to SO. - Dean J
In certain industries, you have to program without the internet. Its not fun (and there's usually a computer someplace that has internet access for Google / Bing / whatever), but you can make do with enough reference books. - Matt Jordan
[+58] [2008-09-22 19:42:53] torial

The right to speak honestly without penalty.

(1) Wish I could +100 you for this one - great answer! - David
That's an employee's right. So long as the employer has the same right ... - Unsliced
(2) This is the definitive right, even more so because it applies to everyone, not just programmers. - sykora
Sykora - agreed. - torial
That's human nature, though; this holds true everywhere. If you were trying to compile a universal worker's bill of rights, maybe? - Dean J
I'm ashamed to think that this "right" didn't even come to mind. I can't begin to count the number of times I've suppressed writing something to the group because it will be taken badly by someone. Even little bits of humor will inevitably be taken badly. - LanceH
[+42] [2008-09-19 08:48:13] Scott Langham

A top quality chair.

(7) I bet Steve Ballmer would approve of this suggestion ... - Pop Catalin
[+29] [2008-09-22 19:47:03] davetron5000

Jeez, you guys are thinking small (or have been very sheltered). How about the right to provide your own time and effort and quality estimates and to have those respected?

With the exception of my current job, I can't remember the last time anyone took a developer's estimate seriously

(2) Or indeed, the right to have your opinion taken seriously? - Rob
(3) I'm a developer growing into a leadership role, and I always ask my developers for their time estimates before committing to anything (or even suggesting a schedule in the first place). Estimates should definitely be bottom-up. - David
[+24] [2008-09-19 13:08:12] RAGNO

The right to install FIREFOX or SAFARI, rather than the corporate drabness that is IE

(1) include also the right to install whichever email client program, etc etc etc - DarenW
whilst I acknowledge the need for email client freedom (etc, etc), many companies have a very OUTLOOK centric set of business processes, but by all means try. - RAGNO
(1) Or some outdated Mozilla 4.0 from 1999 on some ancient Linux distro. And connecting via a remote desktop to it. (Not even browsing locally). Top that for a hellish work environment. - Alex
Isn't this a dup of @Matt Howells answer? admin rights let you install anything you want. - harschware
[+24] [2008-09-19 08:50:33] xsl

Have a flexible work time. I don’t like to work in the early morning hours, can get hardly any work done, and I really hate to be forced to do it.

(2) Me too - except early morning is before 10:30 :) Also, if I come in early morning it isn't just a waste of time - it means I'm tired and grumpy all day long so it's a waste of the entire day... My company still doesn't like it when I came and 12:30 though :P - configurator
ehh, dont know if that should be standard - Shawn
@Shawn Simon Don't know where you live, but with traffic in Los Angeles you can easily spend two hours or more per day in traffic if you have to work 9am to 5pm. Flex time isn't just for sleeping in. - banzaimonkey
[+19] [2008-09-19 08:41:11] Veynom

Free coffee, because programmers are machines transforming coffee into software.


(7) Make that free DRINKABLE coffee. The nescafé instant dirty dish water they have here doesn't deserve the name coffee. - MadKeithV
(1) I've heard similar said of mathematicians. - Karl
(3) -1 For ripping off Paul Erdős without giving credit. - nmr
@nmr: It looks more like an accidental paraphrase. Also, according to this, the quote actually belongs to Alfréd Rényi. - alexsome
[+15] [2008-09-19 09:15:38] Ryan Bigg

Paid on time, all the time

Every employee should have that right. - Rob
@Rob: Unless you're in Russia or the like, employees get paid on time, all the time, but I suspect Ryan was referring to contractors and the like. - Andrew Grimm
My experience with contracting is to put in a steep penalty for late payments, that keeps ramping up over time, or you never, ever see the money on time. If there's no penalty to screwing someone to save money, as a business, you generally screw someone. - Dean J
[+12] [2008-09-19 09:19:49] Vihung
  • A good ergonomic chair
  • A good clear bright large high resolution screen
  • A good combination of natural light, fluorescent light and incandescent light

Don't forget the monitor has to be flat to reduce eye strain. - configurator
@configurator, does anyone still use CRTs? (even two years ago) - iconiK
Of course they do. They've already got them. I don't think anyone was buying new ones (as of two years ago), but I definitely had one at work. I used to bring my laptop and use remote desktop instead of using my work monitor. I've gone off to a far better place though. We have multiple high-res screens, ergonomic chairs, 'a good combination of lights', a good environment, drinks and snacks, and the best of all: We only make high-quality software! (We're always hiring, by the way - ) - configurator
@iconiK: I have a 19" CRT on my desk as my second monitor. Companies don't often replace what's not broken. - Dean J
[+9] [2008-12-17 16:06:15] MadKeithV

The important ones:

  • The right to be wrong. Nobody gets everything right.
  • Respect for my opinions, especially when asked for them. It really grates on me when I'm asked for an estimate and as soon as I give it someone higher up the food chain goes "but surely it can't take as long as that!". If you don't want to know, don't ask me!
  • The right for decent working conditions. Exceedingly low temperatures or exceedingly high temperatures are a no-go. I don't care if you're working on it, while it's going on don't expect me to be at anywhere near decent efficiency. A quiet workspace, and being free from interruption - interruptions cost much more time than the interruption alone.
  • The right of input. Don't tell me what to do in exacting specifications. If there's no room for me to use my brain, I'll take it elsewhere.
  • The right to grow. There's often a (perceived?) glass ceiling for technical people. What if I don't want to be a manager, but just grow more and more technically? Give me something back for that, and most importantly, don't say "oh then you will stay within this pay scale" if I'm actually valuable to the company.

(2) Wrt the last point, I was extremely impressed when I was at Microsoft, and senior developers - known as "Individual Contributor" - ranked at a level with "managers", and werent forced to become team leads etc. - AviD
I like that concept of the "individual contributor", and will consider it in my organisation. - MadKeithV
Glad I helped bring a little more rainbows to the world :D - AviD
Seriously, that last bit would be the best thing ever. Without choosing to "never code again", I'm approaching the point where my career is done. - Dean J
+1 for the right to be wrong. - Chad
[+8] [2008-12-17 15:31:44] Harvey
  • Does the company use its own products? (if applicable)

    There is no better time and place to catch your own real world bugs, than in your own office. Your non-developers then become free testers.

  • Can developers use their own machines?

    I like to use my own laptop because I'm faster with it and my work travels with me.

  • Are the interviewers extremely arrogant?

    Some interviewers do their best to let you know how much better they are than you and also try to imply to you that it would be a real privilege to you to work for them. Lutron was infamous for this where I went to school. They stood out because it wasn't just one person, it was all of them and they took their direction from the head guy that would show up each year.

  • How do YOU feel about them?

    Whenever there is doubt, there is no doubt.

    Trust your instincts. Here are some examples from a company I interviewed with last month and subsequently turned down their offer. None of these things by themselves was necessarily a deal breaker, but in the end, they add up.

    • The human resources recruiter would always call me outside of business hours while she was driving in her car. She wanted to give me my offer outside of the office so she could talk in private.
    • Everyone passing through an electronically secured doorway was required to "badge in/out" even though the company had less than 30 employees.
    • The offer was a low-ball. The job demanded a higher salary (and not just for me) due to special skills required.
    • After interviewing with only one person, the CTO, and receiving an offer, I was never invited to see the office, meet the other developers, or anything similar.
    • I was given an 8-page, very in-depth, C++ test. That's good. The bad? The test showed an extreme lack of effort: several questions were duplicated, explanation questions with one inch of answer space, and some questions were only in English by virtue of the fact that all of the words comprising the question appear in an English dictionary. After the test, the interviewer seemed surprised that I just took a C++ test and told me that 95% of my work will be in C, not C++.

[+8] [2008-09-19 08:46:47] community_owned

There already is a question to this in

Developers’ rights - what should they be? [1]

with answers as diverse as the right for good hardware and the availability of information.

Important to me are quiet work environment, best tools, no politics (subsumption of Kent Beck's list in XP). And as I view programming as a creative process: flexible working hours.


Ahh poo! I did a search and didn't find anything. The hints when adding the question failed to bring anything up either. - Martin
[+7] [2008-09-19 08:56:13] TraumaPony


Lots and lots of training.

(1) "skimp on training and keep your devs from straying..." - geocoin
(1) Is it more important to keep your devs, or to have them perform the best they can? With the understanding that without training, they're not performing at their best. - Chris Jester-Young
(2) "Training is what you do to dogs. What you should be doing with people is educating them, not training them. There is a big, big difference" - Erann Gat - - Jimmy
I don't know about you, but I'm at least twice the developer I was when I was first hired. - Aaron
Even if the training is about dancing? - Enrique
Most of the training courses I've seen are more of developer vacations - you'd learn more by having the same amount of free time at work to bang away at free tutorials... - Dean J
[+4] [2008-09-19 09:09:00] Jonas

Because our job is mainly working with computers I think it's important that programmers get the opportunity to socialize when not working. Things like office games, rooms for hanging out with your co-workers, etc. are really important if you're going to feel appreciated.

I'm curious on how that one splits up between "22 year old developers" and "more senior folks". - Dean J
[+4] [2008-09-19 23:54:38] TonyOssa

A high quality keyboard and mouse.

[+4] [2010-02-19 14:07:39] Matt

The right not to use Lotus Notes

[+2] [2008-09-19 09:17:16] Garth Gilmour

The right to be recognized as a profession. Everything else flows from that...

[+2] [2008-09-19 10:26:33] Wgaffa

Environment with no or little distractions Good computer with tools that I am used too

These are my top priorities when working.

I have quit a job where I had a 2Ghz CPU and 512M memory with 20G harddrive. Not an optimal computer to work with.

[+2] [2008-09-19 10:47:51] skiphoppy

I have the right to leave my job at any time. What more do I need? If I don't like my conditions, I can leave my job and find another or start my own, more to my liking.

problem with that is do it too many times after a short period and it doesn't look too hot on your CV/Resume - geocoin
Some companies have that clause, allowing either side to terminate employment without notice. Two-edged sword, yes. Hope you like it. :-) - Chris Jester-Young
I do indeed like it. That's why I posted it. :) - skiphoppy
I'd have the opposite assuming it's 2-way. I'd hate the thought I could be turfed out with no notice and no income. If I want to leave a job I have I can always hand in notice and wait a month. It'd be the best month ever! - Valerion
Dunno. The original unions got us the 5-day-workweek, paid vacations, and healthcare, so perhaps there's something to a bit of formality. - Dean J
post hoc. Also, you might want to revisit your history on the provision of employer-provided healthcare insurance. - skiphoppy
[+2] [2008-09-19 11:02:27] Teifion

Are there any programming Unions, particularly international ones? If so why not join one of them?

I couldnt agree more! - Optimal Solutions
(2) Try searching for "union" and "programming". See how well that works out for you :) - Gordon Tucker
Touché my good man - Teifion
There is one in Denmark: - sumek
[+1] [2008-09-19 10:59:38] Ashish C

My bill of rights would include a nice comfy chair, a big 21" LCD monitor, loads of excellent coffee...and immunity from "weekly status meetings"

(4) 21" isn't really big these days... - André
@André, three of them is certainly better than a 30", and much better than one. - iconiK
[+1] [2008-09-19 08:47:23] Scott Langham

A suitably powerered computer with two decent monitors.

[+1] [2010-07-26 15:28:39] Dean J

Treat me with the respect you'd give people with my amount of experience in other specialized fields, where very few people from the general population are actually able to do my job well.

I'm not asking to be treated like a doctor or a CEO, but giving me more respect than an entry level call-center employee is a start. I can work faster and more efficiently with a better monitor, and I'll take less breaks if I have a better chair. If I'm in a quiet environment, studies have shown I'm likely to be upwards of 10x more productive, even!

Giving me a reasonable number of days off - and allowing me to take them - will make me less likely to leave for greener pastures. Allowing me to prioritize quality will stop me from having to lose my weekends to a pager, and will keep our customers happier.

If you're not a technical manager - if you came from an MBA school, and not a CS degree - listen to what I have to say about technology. Odds are I've spent more time than you have doing this one thing, and while I'm a bit rough around the edges of explaining things, I'm often right; if I wasn't, you should fire me and hire someone else anyways.

Finally, respect that offshoring software development has the same price savings as offshoring manufacturing... but additionally, has the same quality problems. Since software is often far, far more detailed and precise than building a Sony Walkman, perhaps quality deserves a wee bit more focus than a shortsighted bottom line will ever give it the first time through.

[+1] [2009-03-12 13:43:04] Petros

If I couldn't have every right, I would at least ask for a quiet environment without interruptions. I believe though that every right mentioned is essential.

[0] [2008-12-17 15:55:34] Michael Beck

I have to agree about paid overtime.

I think mine would have to be having a supportive management structure. What I mean by that is if you need something to do your job you ask management for it and you get it. So this could include a monitor or 2, multiple workstations, time off when necessary, etc.

[0] [2010-03-28 02:04:06] Paul Creasey

The right to download .msi files in a .net shop.


[0] [2010-03-28 02:23:23] Kami
  • The right to choose our Operating System (Linux, the distr that you are confortable to work with) even more : the right to choose the machine you want. (I would really appreciate to have my own iMac at work)

  • The team leader has to be a at least an ex-programmer who really understand what your job is about ! Not an arrogant "Top Manager" that has only some knowledge of marketing and management !

[0] [2008-09-19 12:45:14] TraumaPony

@ Teifion [1]

I believe there's the IEEE and the ACM.

[1] #101102

[-1] [2010-02-06 03:16:10] Jim

You guys that complain about not getting any respect for the time quotes you give, then turn around and meet the time quotes others give, that are shorter. See the problem? Every time someone other than me gives a time quote, for a program I need to write, will have their timeline missed. If you want them to take your quotes seriously...quit meeting their time quotes.

But if you do meet their time quotes then obviously their quote was better, it made you work harder and more efficiently. Unless you worked overtime or anything but you shouldn't do that to meet a quote you haven't specified. - Paul