Senior management prizes one simple attribute: predictability. Whether they communicate this value clearly or not, predictability can be more important to your bosses than cost. Trust emerges from the intuitive belief that things are under control. Things are not under control if delivery cannot be predicted accurately.
Management is trained to deal with problems and make decisions, given accurate information. So it's no wonder that deep frustration results when operating departments (including IT) uncover last-minute inaccuracies, leaving management with no ability to control the outcome. Imagine a manufacturing department that regularly encounters last-minute issues in production rates or quality.
Many IT departments measure status, quality, cost, effort, architectural reuse and a variety of other technical metrics, but most don't measure predictability. They should, however. In fact, IT should adjust some of its key metrics and related behavior to encourage and enhance predictability.
Here are some ways IT can do that:
1. Create a culture of estimating and measuring. Require all IT staff members to estimate the effort needed for all of their activities. Then measure actual results. In my experience, extreme variances will be common and should be discussed. But don't yell at the junior programmer for being 200 percent over his estimate. Instead, use it as a learning experience. Help him understand what went wrong, and coach him to do better next time. Without this learning culture, programmers and project managers are encouraged to "sweep it under the rug," which means that they learn nothing about predictability.
2. Reward openness regarding problems. I have been shocked over and over by programmers who say, "I was afraid to tell you about this problem." It's essential to create project teams that work together to identify and work on outstanding issues, not hide them. Last-minute complications will be reduced, and predictability will improve measurably.
3. Don't authorize long-running projects whose length precludes the ability to predict effort. Don't estimate the effort needed to develop a system when the requirements aren't clear. Effort will be impossible to predict. In these situations, divide the project into phases in which the effort and results are predictable.
4. Don't allow senior management to force you to estimate a project too early. You'll be setting yourself up to fail, and that means your delivery will be unpredictable.