I've re-titled the last Estimates III as "Models - I", as it really deserves it's own serious.
Pressing on ...
(AKA - Stupid Project Management Tricks; a True Story)
The code is big stinking mess, all over the floor. The team is dependent on a vendor who hasn't delivered a good build to us yet. We have no idea when anything is going to be ready. My best bet is three months out, but nobody really knows. Senior Management is Antsy. What will the project manager say?
Ok, so I wasn't there, but I know what happens: He walks into the big office and says "THE PROJECT WILL BE DONE IN FIVE MONTHS."
Where did that number come from? I have no idea. There was probably a gannt chart somewhere that added up to five months, but nobody really knew, and nobody technical trusted the vendor.
All I do know is that senior management went home that night - and they slept well, because they had a date. A firm commitment. None of this "gee, we don't really know, how long does it take to find your lost keys?" business. A firm date.
It was bogus, but, whatever. They could sleep.
... time passes ...
Four and a half months later, and it becomes obvious that the team won't deliver in two weeks. I've been pulled off to work on another, different death march(*), but I take a general, cynical tester's interest in the project.
Again, the word comes down from on high "WE'VE HAD ANOTHER SLIP. THE PROJECT WILL SHIP IN FOUR MONTHS ..."
Of course, four months goes by ...
Eventually, the project was cancelled: Over a year late.
Now, I criticize a lot of things about that project. 99% of the time, I think the project management was irresponsible, incompetant, and (possibly) unethical.
Then again, 99% of the time, senior management was able to sleep at night, because, dang nab it, they had a date. None of this "uncertainty" business.
Which reminds me of an old quote by DeMarco/Lister - all too often, people would rather be certain and wrong than uncertain. After all, it's better to be a team player than be negative.
So, the basic technique is this: If you have no idea when you'll be done, make up a date so far in the future that you've got a good shot. When it becomes obvious that you cannot hit that date, well ... make up a new one.
Or, in other words: When uncertainty is politically impossible, do what gets you rewards.
Like I said before, 99% of the time, I think this is an incompetant and bogus way to "lead" projects. But that 1% of the time, I think: Man, if you have no idea when it's going to be done, making up a date real far away and slipping if you have to is a decent approach. (It can't be too far out - otherwise you'll get push back.)
All of that presupposes that you actually can ship at all. The problem in the story is that we couldn't, and anyone with decent systems thinking skills could see that, advise management, and would, er, well ...
... "find other projects."
(*) - Actually, to be honest, that one was a relief; it was a death march, and I worked massive overtime, and it was painful, AND IT SHIPPED.
Schedule and Events
March 26-29, 2012, Software Test Professionals Conference, New Orleans
July, 14-15, 2012 - Test Coach Camp, San Jose, California
July, 16-18, 2012 - Conference for the Association for Software Testing (CAST 2012), San Jose, California
August 2012+ - At Liberty; available. Contact me by email: Matt.Heusser@gmail.com