Greenspun on Managing Software Engineers
Cryofan writes "Very interesting story on managing programmers. Lays bare the dynamics behind what is happening to the software industry." I think Greenspun has it right about the distribution of talent in software engineering, but I'm not sure I agree with his concept that it is necessary to work 70-hour weeks (though for unreasonably long hours, they do pay unreasonably large salaries).
- Get a boxload of toys, hand out to programmers, repeat if needed.
If programmers don't complain:ManicHawk - Just because you're manic doesn't mean the walls aren't bouncy
Greenspun and his ilk are going to find it hard to find people willing ot program 70 hrs a week for sustained periods if you aren't going to offer them at least a million in post-tax compensation over the course of a two or three year employment stint.
I agree with the lot, the only one is the number of hours. The myth that more hours = more top quality code. Brook's says it, Peopleware says it, almost every study made says it. Reduce the communication between teams so teams are more productive so can work lower hours and thus be able to concentrate more and create better code.
Everyone thinks that they are more productive in 4 x 100 hour weeks than 4 x 40 hour weeks. But the fact is that in week 4 you are destroying the project with your lack of concentration, and in the other you are still productive.
Its still like herding cats though.
An Eye for an Eye will make the whole world blind - Gandhi
Greespun writes: "... the average programmers will consume nearly their entire work day just in reading and understanding the new code generated by the good programmers."
Something is very wrong if this happens in Greenspun's hypothetical workplace. Either programmers are rewarded for *writing* complex code, or what Greenspun assumes to be good programmers are, in fact, hackers who are incapable of creating and designing maintainable code.
The whole point of engineering is to create solutions that are simple, flexible, and effective - and that can be *understood*.
Writing code that the average programmer cannot *understand* is not what classifies a good programmer. A good programmer will write code that is elegant, simple, straight-forward, can be understood *and maintained* by the average programmer. It is the initial coding *solution* that discriminates the good programmer from the coder.
Recently I moved into what you might call a "management" role - a Program Manager at Microsoft. Despite the title, my work lies much closer to the realm of Negotiator than to Boss. A PM has many responsibilities and deadlines, but s/he has no official authority to execute them. If I want something done by a certain date, I need to convince the other teams (dev, test, ops) that my way is the best way. If I can't convince them, which is often the case, then my job is to discover a compromise.
Greenspun has hit the nail on the head about management by consensus. When friends of mine regale me with tales of old-school management I try to show them the superiority of a system where the leaders are the actual workers, and the titular bosses are nothing more than organizers of the group's talent.
In tech it makes sense to follow a more democratic model. If the workers aren't intelligent enough to contribute to design decisions, why were they hired in the first place? And if they are intelligent enough, why squander that ability with petty micromanagement?
-konstant
Yes! We are all individuals! I'm not!
-konstant
Yes! We are all individuals! I'm not!
Is "high pay" the latest excuse to justify crap treatment?
It gets worse. Get married? Have a kid? Need to cut back the work hours to "only 40-50 hrs/wk" as a responsibility to your family. Then you get fired. And no IT company will hire older workers that have a life because they won't work 80 hours weeks (like recent college grads and H1B visa workers can), even though their contract never mentions more than 40 hours, or mentions overtime pay or days off for additional work hours, which employees get fired if they actually try to claim that pay/time. And of course having the company cell phone 24/7 on weekends or at night is never considered to be so much as one working hour.
If companies don't start treating IT workers better, tech unions WILL form. Think they're a bad idea? Hate untions? Hate the corruption? Hate the politics? Hate the strongarming? Well, hey Mr. Employer, then this is your lucky day, because you have a chance to FIX THINGS NOW, before the union forms. Otherwise, don't start whining when some union has your business upsidedown by the balls down the road, because you had your chance to fix things now. Why are you wasting time reading this while your IT staff is 6 braincells short of pulling triggers from overwork? Go and make their lives more pleasant. Yes, it'll even boost productivity. Happy workers are productive workers.
What a lot of people don't realize is that programming is hard work. Brain work. People don't realize that the brain is just like a muscle. It gets tired. It needs to be stretched. Most of what is called "play" here is the same as stretching muscles. You've got to do it, or you'll get a brain cramp. And that's not fun, if you've ever experienced it. After a long coding session, your brain locks and suddenly a trained monkey could do better than you could.
Anyone who has coded a long time has had the experience of having a hugely frustrating problem, going off for a movie or a nap or whatever, coming back, and fixing the problem in a few minutes of coming back.
Of course, you've got to make sure you do real work too. Twenty minutes playing videogames can boost productivity tremendously after a long session. Three hours of videogames is obviously just slacking.
This is one reason like coders like visceral twitch games like Quake. They allow us to turn off part of the brain and limber up for a while.
The cake is a pie
The economy is good right now--very, very good. So good that We The Programmers can often dictate the terms of our employment.
Being human, we get greedy. We willingly work unhealthy hours at the promise of scrumptiously high wages. To help us along with being in the office 70 hours/week, employers give us cushy toys and comfy offices.
What happens, though, when the golden days end?
What happens when you wake up one day, find that you don't have the comfy office environment you once did, that there aren't fifty gazillion companies who'd hire you in a second, and, because you've done it so willingly for so long, you're still expected to work the same 70-hour week as before (or stand to lose the job you can't replace in a heartbeat anymore)?
The companies are only your friends now because it's the only way they can keep talent. What do you do when the tech cup no longer runneth over, and you've already willingly committed yourself to a dangerously unhealthy work week?
We're taking the work of generations' worth of workers' rights activists and throwing it all out the window because of a sudden, unexpected, and extremely volatile explosion in the amount of leverage the common tech worker has. We're willingly launching ourselves back into indentured servitude, and it's only going to be to our benefit for as long as the boom lasts...
Obliteracy: Words with explosions
Maybe your best people have a life. Maybe they are married, have kids, or have hobbies. Maybe they work on a really cool open source project outside work. Maybe they have better things to do than dedicate every waking hour to your ever so important project ... maybe they are smarter than you think!
And finally, maybe they are good enough or smart enough to accomplish more than what's required from 8 am - 6 pm. And you just want to extract every last ounce of servitude you can. Not a nice way to treat people.
Great Windows SFTP Server!
Well, the ArsDigita link is slashdotted. Strange contrast to their claims of the reliability of their server/software architecture that they hype up to high heaven on their site. Perhaps overpaying programmers/sysdamins to crank out Tcl code or set up AOLserver boxes for 70 hours does not necessarily work for designing stable Web sites.
Zigbee Central: A Zigbee weblog
A neighbor of mine was a single guy who owned his own house, has a nice boat, nice car, and over a million dollars (if he sold his investments) He had a stroke at 39, and will spend the rest of his life in a nursing home unable to enjoy any of that money. Well, unless you call paying a nurse to help you to the bathroom enjoying. Personally I respect my fellow humans too much to want someone else wiping my rear end.
Point is, if you live a healthy life to 75 or more, retiring at 38 is great and worth the years of working too long of hours. If your health disappears what good is all that money.
Of those I graduated from high school with, several didn't live to their 5 year class reunion due to accidents. (I'm not even counting drugs or suicide which account for a couple more) Accidents happen, and there is nothing you can do about them.
therefore, I'm enjoying my life now. If I live to be 123 and am healthy all the time, great, but if not I've enjoyed what I had. Mind you, I am puttting a large sum of money into retirment funds so I can retire early, but I'm not working more then 50 hour weeks (and that much rarely) so I can enjoy what my health while I have it.
"It is easy to make an office more entertaining than the average person's home. Most people have a TV at home but they don't have friends with whom to watch it. "
Comments like this and obvious expectation to work 70 hour weeks seem rather condescending and also imply an expectation that work is more important than your life. In my experience, at 70 hrs/wk, work becomes your social life too. Sorry, but that's not acceptable to me anymore. I have and want a life outside work. I recently got engaged, and in my opinion, family comes first. Then friends. Work should have a lower priority than your happiness, and it shouldn't try to provide all those things (afterall, most employment that I've experienced in the US is "at will" and they will drop you with no compassion if they need to make cutbacks). I might love my job, but not over other aspects of my life. I work to live, not live to work.
If other people want to work that hard and enjoy it... fine, but don't be resentful of those who want to work 40hr weeks, and don't try to make them feel guilty for that. I've seen too many examples of managers trying to manipulate people with families, outside interests, etc, by telling them that a load of other people in the office are working twice as many hours. That's not fair: most of those other people are either single, or slowly destroying their personal relationships. What's the point of working 70+hr weeks on a project if you wind up with a divorce? You've lost somebody from your life who should be there long after you've left your employer. You might have earnt a lot of money (assuming that the project succeeded), but it's no good if you have nobody to share it with, and enjoy life with.
The more I read of Greenspun, the more I am convinced he's completely clueless.
WRT reinforcement: His little folk wisdom is thoroughly trashed by the many actual studies cited in Punished by Rewards: The Trouble with Gold Stars, Incentive Plans, A's, Praise, and Other Bribes by Alfie Kohn. Study after study demonstrates that "positive reinforcement" is devastating to creative or intellectual workplaces. Greenspun's comment:
is absurd, factually incorrect, and, when you think about it, contrary to what is known by every open source contributor! I recommend Kohn's book highly to anyone planning going into management, in part because what he has to say about why people do difficult intellectual work dovetails perfectly with what people have observed in the open source movement -- only he was writing back in like 1994.In fact a lot of what Greenspun talks about as "obviously" true has no actual support in research. He talks about how overtime is such a wonderful thing, and how it makes companies so wealthy. I have in other places noted the mathematics of wages and resources which are so advantageous -- to the company. After all, if you donate 20 hrs beyond a 40hr work week without further compensation, your manager gets a project done for half the money (and possibly in half the time, if there is no exhaustion penulty). Very efficient that.
What of merit there is in Greenspun's article was long ago written by Orson Scott Card in his famous essay "How Software Companies Die" -- the one which originated the metaphor that managing programmers was more like keeping bees than planting crops.
Frankly, Greenspun comes off as manipulative and exploitative and pretty skanky. And superstitious: it sounds like his explanations of his company's success are post hoc, and reflect more what he'd like to believe that his actual practice.
-*- Any technology indistinguishable from magic is insufficiently advanced -*-