Almost every manager I know wants to know when a project will be done. Some managers decree when a project will be done. Some managers think they can decree both the date and the feature set. There is one other tiny small subset, those managers who ask, “When can you finish this set of ranked features?”
And, some managers want you to estimate the budget as well as the date. And now, you're off into la-la land. Look, if you had any predictive power, you'd be off somewhere gambling, making a ton of money. But, you do have options. All of them require iterating on the estimates and the project.
First, a couple of cautions:
- Never, ever, ever provide a single date for a project or a single point for a budget without a range or a confidence level.
- Expect to iterate on the release date and on the budget, and train your managers to expect that from you.
- If you get a ranked feature set, you can provide working product in the order in which your managers want the work done, while you keep refining your estimates. This has to be good for everyone.
- If you can say this without being patronizing, practice saying, “Remember, the definition of estimate is guess.”
First, remember that a project is a system. And, a system has multiple aspects.
If you've been managing projects for a while, you know that there is no iron triangle. Instead, there is more of a project pyramid. On the outside, there are the typical corporate constraints: Who will work on the project (the people and their capabilities), the work environment, and the cost to release. Most often, those are fixed by the organization. “Bud, we'll give you 50 people, 5 months, and this pile of money to go do that project. OK?”
Whether or not it's ok, you're supposed to nod your head like a bobble-headed doll. But, if your management has not thought about the constraints, they may be asking you to smush more features in insufficient time that the people can accomplish, given the requested time to release, with the expected number of low defects in the expected cost to release.
The time to release is dependent on the number of people and their capabilities and the project environment. You can make anything work. And, there are delays with geographically distributed teams, lifecycles that do not include iteration with long lists of features.
This is why estimation of the budget or the time to release is so difficult.