Absolutely, it’s a guess. And everyone needs to be reasonable about the fact that things happen, and the first thing a good project manager does is to attempt to de-risk the schedule as much as possible: build in buffer time, identify potential obstacles that can be removed before they become an issue, etc.
But the reality is that business has deadlines. Some of them are certainly self-imposed, but some of them aren’t. I’ve spent a lot of time working in regulated industries, where there are simply deadlines that must be met. And the problem that I’ve experienced isn’t that there isn’t enough time to do the work, it’s the developers are rarely pragmatic about how they approach estimating.
One of the things I’ve always loved most about working with developers is that they tend to be very optimistic by nature. But the more optimistic the developer, the less reliable the estimates, and the more disastrous the project outcome.
Of course software development is complex and fraught with opportunity for obstacles and delays. But business is business. And, in the end, if the world around your business only gives you limited opportunity to get something shipped in order to sink or swim, then that’s all the time you get. There may be plenty of good reasons for why the estimate the business was counting on couldn’t be met, but that doesn’t change the fact that missing the target can still have business-crippling potential.
If it can’t be done, say so. If you see potential obstacles on the horizon, speak up immediately. Bad news doesn’t get better with age, and the longer you wait, the harder it is to deal with the downstream implications of a late delivery.
The biggest problem that the business side of the house always has with development is feeling blind-sided by being informed of delays at the last minute. And yet, in most cases, the developer saw it coming before that point. In more than a decade of doing this, both internally and in professional services environments, where I’ve seen the REAL problem is in not the late delivery itself—all reasonable people understand that things happen.
The real source of frustration is in poorly managed expectations. No one wants to be the bad guy by pointing out that the date can’t be made, so they wait. And then everyone ends up looking bad, which just further deteriorates the entire situation.