The Programmer's Bill of Rights

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.

“Every painter I hired had to buy their own brushes.”

for consistency sake, you should apply this analogy to the entire programmer’s toolbox you have listed above, including chair. this is a standard way of doing business for men who make their living as mechanics. when you come to the job, you bring your own tools, and when you leave, you take them with you. the same should go for programmers.

Proposed:

If you want a programmer to work more than 40 hours a week, you need to pay them for more than 40 hours a week.

Just because the boss was once an Arthur Android, and gets a heroin-like endorphin rush from working from 4AM to 10PM doesn’t mean everybody else in the industry does, or should. The practice of the “exempt” employee, paid for a week’s work, but continuously worked for double shifts because of artificially-skewed deadlines, poor specs, feature creep, and salesman’s disease (of course it can display your data in Klingon! It’ll be in the demo next Thursday!) should be banned outright. It burns out more programmers than any other practice, bar none.

My favorite poster: “A lack of planning on your part does not constitute an emergency on my part.”

—Gwen (who still has nightmares of being chased by androids)

I agree with Chris Szurgot - I don’t mind too much whether the workplace is silent or has a lot of background noise, but I don’t see that anyone can work productively if they’re faced with constant distractions.

What we need is a big sign.

    GO AWAY

(No, really - I mean it)

Oh, and regarding fast machines, I agree with the point that developers need two machines - a high-spec box for coding and building, and a testing machine with similar spec to what a customer will use.

Although testing on a customer-spec box may not help if the developer isn’t testing with customer-level data. A UI might be fine on the small volume the developer tested with, but fail miserably when put into production with a thousand times the volume.

  1. Every office, like we’ll ever have one, OK, every Roomic Cube should have Indirect lighting with dimmers. Trying to work though the glare of an overly lighted workspace is not only annoying, but eventually will blind you.

No programmer shall be forced to use a CRT monitor. LCD monitors are cheap and much easier on the eyes after a long day of hacking away.

Rightly said… I would add one more-
“Every programmer shall have their choice of IDE.” - Just like an artist has his choice of tools, the IDE is a programmer’s prime tool. It’s his personal choice and can never be enforced on him and he can never be deprived of his favorite IDE by the employer.

1 Like

6/6.

Proud to be working for Clarity Systems.

#2 and #6 seem to be issues with a lot of companies. This is because ‘programmers’ are sometimes grouped in with ‘IT’ which a lot of people think is a help desk and don’t fully understand software engineering and its needs. Standard issue computer that everyone else in the company gets, plus a cube in the middle of noisy traffic.

The link on the last point (“quiet working conditions”) is broken :cry:

1 Like

Good point – I updated all the links and freshened them up a bit.

Great, thanks a lot!

Thank you for writting this, Jeff. The 6 principles you mention here are indeed fundamental to the quality of work life for a software developer; and, from an educational point of view, you have done a great service to the industry by writing this article.

Based on the foundations of this article, a few weeks ago I wrote a revisited version of The Programmer Bill of Rights. It includes other 4 principles that IMHO have become basic rights as well during the last 10 years; and they aren’t extravagant demands either.

In short, these 4 additions are: “1) Every programmer shall be free to choose her preferred IDE”, “2) Every programmer shall have admin rights on his computer”, “3) Every programmer shall have access to the big picture” and “4) Every programmer shall have autonomy in his daily work”. They are explained in further deatil in my article, in which I have also included your original 6 rights, providing further evidence of their importance.

It would be great to know your opinion about the 4 new proposals :).

Ported from https://trajano.net/2017/01/enterprise-programmers-bill-of-rights/

  • Every programmer needs to physically work where they can be the most virtually efficient.
    
  • Every programmer is responsible for his own equipment.
    
  • Shared development tooling must have 100% up time.
    
  • Any development branch must have the right to be built by the continuous integration system.
    
  • Development artifacts must be searchable and allow for rich-content.
    
  • Regular meetings must be called out

The quiet working conditions thing is so important for me. When I joined my current employer, they were based in a converted barns with each team in its own room. We’ve now moved to an open plan, fancy pants office in the city centre. The only quiet places here are the boardroom and two meeting rooms. Some bright spark thought it was a good idea to have a ping pong table outside the boardroom. I was actually in a retrospective meeting in that room when one of our architects starting playing ping pong.
In this kind of environment you learn to recognise the people whose voices carry the most, or who don’t know how to moderate the level of their conversation for the sake of others. For me at least, this just builds up resentment and frustration. Yes, I could wear headphones, but why should I be forced to do so when I am trying to be a productive developer? Not everyone works well whilst listening to music, radio or podcasts.

I a developer, I am going to get a third screen
1 for reading (browser, documents)
1 for editor
1 for log, ssh, tail, etc…

I recently joined a terrible (20-30 peoples and profitable) company and I don’t think they match even one of the pointers.

When I joined, I had to wait for like 2-3 weeks for a Windows machine because I am most productive on it. I requested them to allow me to use my own machine for work but NO. I got it after 3 weeks only because I kept pestering them and was not able to work at all.

When they were ordering the laptop, I asked for bigger storage. They asked me the reason why? I said so I can copy all my songs on a new laptop and listen them. “It’s not going to help the company, so NO”.

One month ago, they sent a internal memo to employees to ask them to avoid streaming services because it affects skype calls. Of course they cannot buy a better or one more additional internet connection.

I have single monitor and a laptop with tiny screen. I asked for additional screen. I never got. I work from home sometime. I tried asking for additional power cable so I don’t have to remove the plug and take it with me everytime. No reply. I bought it from my own money then.

They have ergonomic chair but it’s not very comfortable and also missed head rest. After all this, I have not bothered them to ask for another because I know the answer.

I have a habit of taking short 1min break every half to relax my eyes and myself. Most of the time my boss is like “All good? How is work going?”.

I’m also pretty sure I am not a terrible programmer. They sponsored my visa, so I must be good. Also we had annual review in December. They rate my coding skills very high and didn’t had anything bad to say about it. They are very impressed actually. But am I going to get a raise because I exceeded their expectation. Nope. They are also kind of company who like to underpay their workers.

Oh btw I got one negative feedback during annual review. I am too demanding person because I don’t wanted to waste mine and company time and asked for laptop several times.

And remember: you can either change your company, or you can change your company.

My company is not a kind of place where you can demand your rights. I think in my case, I am going to find a new job.