Sunday, December 30, 2007

Eckels on managing software projects

Bruce Eckels (new feed of mine, so I'm working through the archives [1]) distilled a lot of professional experience into a commencement address [2]. I've emphasized one statement that a less kind person than I would suggest be applied to certain persons with a branding iron ...

The Mythical 5%

... some companies have adopted a policy where at the end of some predetermined period each team evaluates everyone and drops the bottom 10% or 20%. In response to this policy, a smart manager who has a good team hires extra people who can be thrown overboard without damaging the team. I think I know someone to whom this happened at Novell. It's not a good policy; in fact it's abusive and eats away at company morale from within. But it's one of the things you probably didn't learn here, and yet the kind of thing you need to know, even if it seems to have nothing directly to do with programming.

Here's another example: People are going to ask you the shortest possible time it takes to accomplish a particular task. You'll do your best to guess what that is, and they'll assume you can actually do it. What you need to tell them for an estimate like this, and for all your estimates, is that there's a 0% probability that you will actually get it done in that period of time, that such a guess is only the beginning of the probability curve. Each guess needs to be accompanied by such a probability curve, so that all the probabilities combined produce a real curve indicating when the project might likely be done. You can learn more about this by reading a small book called Waltzing with Bears...

I admit, I'd not thought about the inevitable unintended consequence of the "bottom 10%" cuts. Once one person figures out the "hire human sacrifices" strategy everyone will soon learn it, just as ingenious hacks percolate in prisons. Now it's hit on the web, so it's known to the metamind. Humans adapt, and a ruthless corporate culture will breed ruthless employees -- which might not work out as intended.

The rest of the essay is all good advice, most of which I've learned the hard way.

[1] Tip: When you find a good blog, explore the archives deliberately. In bloglines I mark a post as 'keep current' as a reminder that I'm still mining the knowledge. If it's a decent blog there will be far more gold in the best of the archives than in the day-to-day (average) posts of even the very best blogs. (Basic stats - sampling curves.)

[2] I remember when things like this were said once, barely heard, then vanished. Now they live on. I don't think we understand how much difference this makes.

No comments: