It's unbelievable to me that a company would pay a developer $60-$100k in
salary, yet cripple him or her with terrible working conditions and
crusty hand-me-down hardware. This makes no business sense whatsoever.
And yet I see it all the time. It's shocking how many companies still
don't provide software developers with the essential things they need to
succeed.
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.
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. 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. 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. 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. 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. 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.
The few basic rights we're asking for are easy. They aren't extravagant
demands. They're fundamental to the quality of work life for a software
developer. If the company you work for isn't getting it right, making it
right is neither expensive nor difficult. Demand your rights as a
programmer! And remember: you can either change your company, or you can
change your company.
BTW .. got this from PLUG!