We're fortunate in our company to each have 2 decent-sized monitors and reasonably fast machines. This alone is enough to impress many of my peers who are stuck working with poor equipment. But should things like this really be seen as a luxury? What about a quiet working environment? Should this be guaranteed? How about comfy chairs?

What should developers expect to be provided with in order to be productive and successful?

1 suggestion per answer please, to help individual "rights" bubble to the top :)

+14  A: 

As in "Extreme Programming" by Kent Beck:

  • The programmer has the right to estimate work and have those estimates respected by the rest of the team.
  • The programmer has the right to honestly report progress.
  • The programmer has the right to produce high-quality work at all times.
  • The programmer has the right to know what is most important to work on next.
  • The programmer has the right to ask business-oriented questions whenever they arise.
+1  A: 

I spent the summer working on the software dev team of a medium-sized company. They had dozens of software products and tools, yet less than a dozen total developers--despite the company being valued by the higherups at a roughly estimated $250 million. They recently got a new CTO who, upon finding out the dev team was so incredibly small, was completely shocked.

And I'd say this leads to the most important Developers' Right: to have a boss who understands enough of what every developer under him is doing to make reasonable decisions about where projects should head and how to manage development (and to know when to listen to his employees!). This alone is probably responsible for an enormous amount of the productivity they managed to achieve, especially when compared to the stereotypical case of a clueless manager.

If you would complain that a boss cannot know that much, then there's clearly a problem: he's managing too many developers ;)

Dark Shikari
+4  A: 
  1. Decent spec machine
  2. Monitor of reasonable size
  3. Comfortable chair (this is not programmer-specific, though)
  4. Quiet/Peaceful work area with few interruptions

I think it's time we got over ourselves... we may like the latest and greatest in terms of gadgets and accessories, but we do not need dual monitors, aeron chairs, or for the most part, 8GB of RAM.

These things are nice to have, but by no means necessary, or our right to have.

I agree with your suggestions, but I disagree about dual monitors. I've tried working on a single monitor recently and I just can't go back to it. My productivity plummets.
Sam Wessel
I agree, I *love* my dula monitors, but Sam asked what we shoudl expect as our right... I just don't think a dual setup fits the bill.
To make the most of your everyday work I thing you'll *need* a (very)high-resolution monitor or a dual-screen as a developer.
Monitors are dirt cheap. If your employer doesn't want to spend $200 on a screen for you, he's either stupid and/or doesn't respect you.
+1  A: 

If the number of monitors connected to the machine in front of you is your biggest problem, then you don't have any problems.

I find this unhelpful. Why should we expect to be burdened with poor equipment? Sure, you could program on a ZX Spectrum if you really had to, but as modern developers, can we not allow ourselves the expectation of the right tools for the job? It's hardly arrogant.
Sam Wessel
He's not saying you shouldn't have two monitors, but that it's not as important as other things :)
brian d foy
What if the number of monitors is zero?
+6  A: 

I think saying that having dual monitors should be a "right" is slightly ridiculous. Your job is typically to do the best you can with tools you are given. Of course, you can make a case for more / better equipment, but to say developers have a right to them seems wrong. Expectation, yes, no doubt with developer workstations slowly taking over the entire desk-space.

Never forget that the most powerful tool in your armoury is your brain.

Dual screens maybe not, but I'd draw the line just below the stuff I use at work - I can just about live with my LCD's ghosting, slow response time and visible dithering. It's a huge upgrade from the 70Hz 1024x768 CRT I had to use when I first started there, though.
Ant P.
The cost differences in the equipment is so low that I think it's reasonable. Especially if it gives you an increase in productivity, which in my experience is the case. The company makes more money buy having dual monitors for developers.
Dan Herbert
Even in 2008 the prices for LCDs were so low than dual monitors should have been a right of every developer. Now I think three monitors is the norm; ATI's 5 series Radeon will feed three monitors without breaking a sweat for very little cost.
+3  A: 

My own 2 cents, from this article Chris Fournier suggested:

Every team or programmer shall have access to the information it, he or she needs to get the work done.

Sam Wessel
+2  A: 

A fast machine, capable of running all the tools you need

(and which doesn't take an age to compile the current project, like my old one)

Sam Wessel
+14  A: 

Support from your Boss.

I was lucky enough to work for a superb boss in a large company a few years ago. The company valued development at roughly the level of facilities management (there to serve the company in whatever manner required). She shielded and defended her team fully. If you were in the wrong you got a bolloxing, but if you were in the right or could support your opinions she defended you fully (even where we disagreed) to the outside teams.

Having seen the results from ourselves as opposed to other teams (the interruptions they received and the blame they received for failed projects, mostly due to scope creep or business interuptions), I'd say this should be a self-evident right!

+6  A: 

A pay scale that rewards excellent developers, rather than rewarding the people who have been with the company the longest.

+7  A: 

A chair you can sit in for 8 hours and not be in pain.


Free Coffee.

+2  A: 

some form of compensation for overtime - be it money or time off later.

+2  A: 

Flexible working hours

+6  A: 

We need to avoid thinking of this as "rights"--the company doesn't owe you a job, much less two monitors. Is there a better term than "rights" to express this that might convey work conditions that benefit both the company and the programmer?

It is a good question, Your bold question is better than the headline.

Patrick Szalapski
Necessities? That doesn't seem like a better term.
+1  A: 

With the way things are going in the economy here in the US, I won't complain if I'm just given Notepad and gcc on an ancient Pentium II.

Robert S.
pentium II = ancient!!!! lol
+2  A: 

Have a boss who actually listens to your input

+1  A: 

Sorry, it's not one "right", but if companies just did the stuff recommended in Peopleware, their developers wouldn't need to ask what their rights should be.

+1  A: 

There should be a known process for how code is to be written and reviewed. There should be a process for knowing which projects are being worked on, they are at what stage, and what is required next to help produce excellent results.

JB King
+3  A: 

You don't have "rights", you get what you can negotiate with an intelligent boss and explain that they are wasting money by not creating a productive environment.

At the end of the day it is the responsobility of the one paying the bills to make sure that they are getting value for money and the developers responsobility to explain where money is being wasted.

Any mention of rights is really just self important nonsense. Developers (in most cases) get hired to provide a service to thier employee. If that employee wants to waste money on poor working environments and excessive costs in constantly hiring new programmers, that is thier stupidity.

Do cleaners have a "bill of rights"? People in the army? Why are programmers special?

It is only IT professionals unprecedented power and expense that could lead to this concept.

If I were an employer and you came to me waving a piece of paper and demanding your "rights", I would mark you down in my little mental list of numpties forever.

If, on the other hand you came up to me saying "Hey boss, I have found ten simple and relatively cheap ways of increasing your developers productivity!" it would be a completely different reaction.

"If, on the other hand you came up to me saying "Hey boss, I have found ten simple and relatively cheap ways of increasing your developers productivity!" it would be a completely different reaction."If it's the wording of the title of the list that's got your panties in a wad, maybe you'd better take your own advice and get over *yourself*. This is a community of IT professionals, so of course we are melodramatic and self-important here. Soldier's BOR: Cleaner's BOR:
Chris McCall

A good gym membership.

Helps restore concentration and creativity.

Software developers, like other professions sit a lot and is considerably bad for our stomach/health.

That's a perk, like private health insurance (in the UK where healthcare is free, and private healthcare is a taxable benefit), and free cellphones. For the avoidance of doubt, we provide both of the above at Airsource.
Airsource Ltd

I used to be all about the "creature comforts" like big dual monitors, "nice" bosses that listen, big money, "fun" projects, etc.

But, having been in software dev for over 15 years through both up and down markets, I have found that job security and liking where you live trumps almost everything. In other words, providing for my family's needs is all that is truly important, everything else is really just a luxury.

Does that make me a wage slave? Maybe. Can I sleep at nite? Peacefully.

Ed Griebel
+3  A: 

The right to make decisions that they're the most qualified people to make. Nothing annoys me more than a manager that thinks they're better qualified to make technical decisions than they really are.

By the same token, I think that programmers should be insulated from business decisions they're not qualified to make. Really, this should also mean that programmers shouldn't try to make business decisions, but this is a bill of rights after all.

Jason Baker
+2  A: 

Ability to offer ideas no matter what level of the team you are on from the junior dev to the big dog.

+2  A: 

The developer should be able to veto any programming-related decision made by management.

The developer should be given the hardware necessary to maximize his/her productivity. If a faster computer will save the developer 10 minutes a day, management should be willing to spend on hardware what it costs to have the developer working an extra week a year.

Kire Haglin
+1  A: 

These relate to the physical environment:

  1. No cubical walls

Edit: Sorry, misread the 1 "right" per post

+1  A: 

These relate to the physical environment:

  1. Decent amount of space to work in.
+2  A: 

These relate to the physical environment:

  1. Air conditioning