The problem is that almost all software schedules and budgets are bogus. They are created for political effect and have little relationship to reality. Thus, whether they are met has nothing to do with the people working on the project.
Who makes your schedules? Project managers? They are almost certainly the wrong people. You can’t predict how long something will take unless you are an expert at doing it. The programmers? Are they allowed to say “we don’t have enough information to make a prediction”? Are they ever told “that is too long, you’ll have to do it in six months”? The only way to get honest schedules is from people who have experience in doing the work who know that they need to get the schedule right and not under or over-estimate.
I asked an IT VP the other day why he thought every project in the company is late, and he said, “Bad estimating.”
No . . . there’s a difference between bad estimating and dishonest estimating. If we were dealing with bad estimating, I’d expect to see estimates all over the place, including some way too high and some way too low.
“Man, that’s some bad estimating!” I’d say.
But when every estimate is too low, that’s not bad estimating, that’s dishonesty. It may be forced dishonesty, but it’s dishonesty nonetheless.
Thus spoke The Programmer.