By Deane Barker | April 14, 2006 | 5 Comments
The Development Abstraction Layer: There’s a big quote here, but it’s worth reading, as it the entire article. This is why I want to work at Fog Creek.
A programmer is most productive with a quiet private office, a great computer, unlimited beverages, an ambient temperature between 68 and 72 degrees (F), no glare on the screen, a chair that’s so comfortable you don’t feel it, an administrator that brings them their mail and orders manuals and books, a system administrator who makes the Internet as available as oxygen, a tester to find the bugs they just can’t see, a graphic designer to make their screens beautiful, a team of marketing people to make the masses want their products, a team of sales people to make sure the masses can get these products, some patient tech support saints who help customers get the product working and help the programmers understand what problems are generating the tech support calls, and about a dozen other support and administrative functions which, in a typical company, add up to about 80% of the payroll. It is not a coincidence that the Roman army had a ratio of four servants for every soldier. This was not decadence. Modern armies probably run 7:1. (Here’s something Pradeep Singh taught me today: if only 20% of your staff is programmers, and you can save 50% on salary by outsourcing programmers to India, well, how much of a competitive advantage are you really going to get out of that 10% savings?)
Management’s primary responsibility to create the illusion that a software company can be run by writing code, because that’s what programmers do. And while it would be great to have programmers who are also great at sales, graphic design, system administration, and cooking, it’s unrealistic. Like teaching a pig to sing, it wastes your time and it annoys the pig.
Microsoft does such a good job at creating this abstraction that Microsoft alumni have a notoriously hard time starting companies. They simply can’t believe how much went on below decks and they have no idea how to reproduce it.
I broke this rule when I managed a group of nine developers (one of whom writes for this blog). Instead of being concerned about how my team was doing, I just wanted to write code. I was too immature of a developer to stop writing code, so I kept writing it and somehow expected that I would be able to manage nine people — each with four of five projects on their plate — on top of that.
I should have just been getting people drinks.
Amen brother. I’ll take that drink now.
Love it. I want a nice big desk with 3 monitors, a fridge full of BAWLS or Dew and a microwave where I can heat up an infinate supply of leftover pizza. I’d only leave when nature called.
So THAT’S why I program better and faster at home in my comfortable chair, with my familiar computer, and with a fridge of Dew than at school in a hard chair with a random computer and no soda allowed.
I can just imagine if I had the environment described above. I’ll take it.
I think you got me a Mt. Dew on my first day Deane. And by the way, I liked you as a manager.
After programming for 28+ years in more dead languages on dead O/S’es than I care to remember, I can say that the answer to how to make programmers productive is only partly right. The biggest problem and impediment to programming productivity is IMHO Bad Management. Management does not understand software or how to create it, does not understand those who do and refuse to invest the time necessary to break through that barrier. From that position of ignorance, (Bad) Management causes massive problems through right-to-left scheduling of milestones, arbitrary and anal reporting schemes, wild-ass pie-in-the-sky promises to customers, lousy to non-existant requirements management (as if some suit really understood what a Real Requirement was in the first place), among a host of other heinous and stupid actions.
To hell with the fridge stocked with Dew. I would get my own coffee (28+ years remember? yup, I am an Old Dude!) gladly for the opportunity to work on projects for some enlightened management who actually understood what was going on. Frankly, I think hope of that happening is getting dimmer by the microsecond in our U.S.A. as we send “rote programming” jobs overseas and let the weirdos who run major IT organizations to persist in their stupid “lockdown” fantasies…
Sigh. Maybe I’d like working at Fog Creek… Too bad they aren’t here around Detroit…