I am always amazed when a developer can respond to a question like “How long will this take to develop ?” with a response of “I reckon 2 weeks”. 2 weeks ? why two weeks why not 68 hrs ? why not 68.3333 hours ? this estimating process can only lead to a poor outcome.
The second thing that surprises me is a developer who is willing to start a project on an hourly rate but would refuse to do the same job without a fixed price. If you cant estimate the job with enough confidence why start it ? It will only expose everyone to a cost overrun and frustration.
Of course these points are not really an issue for those small couple of hour jobs but for larger jobs where you would like to keep your sanity and your clients happy I believe a sensible solution to these issues are gold. So I am proposing the following two rules of project estimation:
Never provide an estimate without a confidence level and a step and price to become more confident if needed eg I believe that will take me 1 week and I am 50% confident but if you explain this part more thoroughly I will become more certain. I can sit with you and your staff for $x to make this happen.
They gives a price range for the job ahead, giving the customer the confidence that he can afford to pursue further it also gives him an understanding of how he can help improve the solution and of course make some money in the next step.
Never start work until you are 95% confident, it will most likely end in frustration and a poor customer service experience.
Love to hear other views to my approach.