The title says it all really. If asked to produce an estimate for a project when is still very unclear what the system is, what do you do? Would you refuse to provide an estimate? Or inflate it massively? On this occasion it doesn't appear I'll have the opportunity to obtain clarity around the system.
Many years ago, a drinking buddy of mine gave me some wisdom.
At the start of any project, before committing to anything, you need the answers to three questions:
- What is the problem we are trying to solve?
- What are the deliverables?
- How will we know we are finished?
If the answers to ALL THREE of these questions are not known, written down, and agreed upon by all parties, then the ONLY thing you can and should do is work to get the answers known, written down, and agreed. In particular, without those three answers, you cannot give any kind of estimate.
You can't. Someone is going to get burned, and probably, you.
I arranged with my clients to work for time and expenses to write the software spec, a process that included interviewing the project manager and others who had applicable information, and revising it spec until we all agreed that it described what they wanted. It would have been at this point that I'd have priced and signed a contract with them.
(Although, since my contracts were largely R&D contracts, most managers actually preferred to engage me for T&E, for the flexibility it gave them to quickly change direction as new information emerged.)