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% 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.
5. Understand that uncertainty is not a failing; it's a nod to reality. Software development is at the intersection of artistic creativity and manufacturing. No two projects are exactly the same, and so there is inherent variability in the levels of effort required. In one recent case, a CIO presented the board with an estimate of 12,462 staff hours to complete the development of the next-generation software system. There was no contingency plan to allow for exigencies and adjustments.
- Make predictability one of your key metrics for measuring value.
- Reward attempts to predict results, even if they are initially inaccurate.
- Talk to senior management about the relationship between predictability and results.
- Don't estimate development schedules without clear requirements.
- Split up any project that's over six months in length or that you can't estimate to within 20% accuracy.
- Add contingency plans; they're not an admission of failure.
Don't present such plans. They set an expectation for extreme accuracy, which is almost impossible for these kinds of projects. If you can run numerous IT projects simultaneously that are accurate to within 15% to 20% of the original estimate, you are above average in your predictability.
Predictability is the key emotional factor that builds confidence. If the plumber couldn't tell you how long it would take to replace the sink, you wouldn't hire him. Build and reinforce a culture of specialists whose estimating and predicting skills are continuously improving and being rewarded. Your annual budgets and plans will improve, and management's respect for IT will grow.