Just sharing some of my inconsequential lunch conversations with you... RSS  

Thursday, May 03, 2007

The Programmer's Bill of Rights

Last year Jeff Atwood stated his "Programmer's Bill of Rights". Here they are:

  1. 1. Every programmer shall have two monitors

    With the crashing prices of LCDs and the ubiquity of dual-output video cards, you'd be crazy to limit your developers to a single screen. The productivity benefits of doubling your desktop are well documented by now. If you want to maximize developer productivity, make sure each developer has two monitors.

  2. 2. Every programmer shall have a fast PC

    Developers are required to run a lot of software to get their jobs done: development environments, database engines, web servers, virtual machines, and so forth. Running all this software requires a fast PC with lots of memory. The faster a developer's PC is, the faster they can cycle through debug and compile cycles. You'd be foolish to pay the extortionist prices for the extreme top of the current performance heap-- but always make sure you're buying near the top end. Outfit your developers with fast PCs that have lots of memory. Time spent staring at a progress bar is wasted time.

  3. 3. Every programmer shall have their choice of mouse and keyboard

    In college, I ran a painting business. Every painter I hired had to buy their own brushes. This was one of the first things I learned. Throwing a standard brush at new painters didn't work. The "company" brushes were quickly neglected and degenerated into a state of disrepair. But painters who bought their own brushes took care of them. Painters who bought their own brushes learned to appreciate the difference between the professional $20 brush they owned and cheap disposable dollar store brushes. Having their own brush engendered a sense of enduring responsibility and craftsmanship. Programmers should have the same relationship with their mouse and keyboard-- they are the essential, workaday tools we use to practice our craft and should be treated as such.

  4. 4. Every programmer shall have a comfortable chair

    Let's face it. We make our livings largely by sitting on our butts for 8 hours a day. Why not spend that 8 hours in a comfortable, well-designed chair? Give developers chairs that make sitting for 8 hours not just tolerable, but enjoyable. Sure, you hire developers primarily for their giant brains, but don't forget your developers' other assets.

  5. 5. Every programmer shall have a fast internet connection

    Good programmers never write what they can steal. And the internet is the best conduit for stolen material ever invented. I'm all for books, but it's hard to imagine getting any work done without fast, responsive internet searches at my fingertips.

  6. 6. Every programmer shall have quiet working conditions

    Programming requires focused mental concentration. Programmers cannot work effectively in an interrupt-driven environment. Make sure your working environment protects your programmers' flow state, otherwise they'll waste most of their time bouncing back and forth between distractions.


I have some doubts about the last one, if taken too much seriously: it's important to maintain focus, as long as you can get some healthy silliness's breaks :) And no, for me the 3rd one is also not as issue.

2 comments:

Paulo Rocha said...

As usual there are opinions and (some more) opinions :).

For me items 2, 4, 5 and 6 are absolutely indispensable.

I can manage quite well with only one monitor (as long as it is a good monitor) and i don't need a keyboard and mouse with all sort of gizmos and bells and wistles (i'm quite happy with the standard ones).

'Quiet work conditions' are 'gold' for me ... :)

Miguel Lourenço said...

Every single one of them for me, except for the 1st...
2 monitors is great, but most of the times there isn't any space left on the desk for a 2nd monitor :)

Development Catharsis :: Copyright 2006 Mário Romano