Some speaker at ApacheCon thru up a list like this. I wanted to get it into my frameworks category.
A good working environment for a programmer:
- An office with a door
- and no phone
- A culture of asynchronous communication
- A fast workstation
- and two monitors. You wouldn’t believe how much difference a second monitor makes
- and their operating system of choice
- Good development tools.
- A fast Internet connection
- Snacks and drinks they don’t need to leave the office for
- A good-natured working environment
- Flexible working hours
- Tasks appropriate to their ability
- and if at all possible, that they find interesting
- Investment (emotional or financial) in the end-product
This appears to be the original source: The floggings will continue until morale improves.
This is a great list as far as it goes.
But, there are some serious things wrong with this list. From the labor point of view it is is far too selfish in nature. From the manager point of view it’s reflects the what I’ve sometimes referred to as the dwarf model of labor management – “Lock them in a room with a pile of straw and wait for the gold to appear.” Organizations are more subtle creatures than that!
I’d certainly add things like effective organization, collaboration, and leadership. The no phone thing seems a bit over the top and probably redundant with the culture of asynchronous communication. Also lacking is anything about assuring the collective work is in fact collective. In fact I suspect that all the failure modes enumerated in Implementation Games could hide out in an organization that managed to do everything the list above.
Pingback: Ascription is an Anathema to any Enthusiasm » Culture of Asynchronous Communication
As ever, the ideal workplace is nothing like that. Take it from somebody who’s been both developer and manager: XP all the way. Agile, agile, agile. One room, no code until tests are written, obligatory pair programming on any non-spike code, a fully open social atmosphere, no fearful hiding, no monotonous over-large chunks of project, no more than 8 hours a day.
One can never go back. As a developer in the Closed Door world, I spent far too much time trying to suss out what the hell my colleagues were thinking, and fixing it when I found out what it was they intended (and doubtless vice versa). As a manager, I spent far too much effort trying to be the channel for communication that should have happened in realtime between the developers themselves.
XP only. Ever. All other workplaces are to be treated with skepticism (speaking as a customer) or superciliousness (speaking as a competitor).
Pingback: Ascription is an Anathema to any Enthusiasm » Blog Archive » Owning the Interuption Tax