What is an estimate?
An estimate is just that - an intelligent guess based on a problem description provided by you and some investigation provided by me. The more accurate your problem description the more 'on target' will be my investigation and thus the more easy it will be to make the estimation.
An estimate is a forward projection of a time period that a task or set of tasks will take, based on whatever knowledge is currently available. If along the way the knowledge changes then the estimation may also need to change.
When I give an estimate I am giving a target figure. We set a goal in terms of a task to be undertaken and I tell you that my best guess is it will take x hours. For up to x billing hours I devote my time to that task.
As the target approaches it may become apparent that the task will indeed take longer than estimated. In that case I do my best to round things off at the target time. Round things off means trying to ensure that everything runs, even if all details are not yet finalised. In these cases I try to review with you what has been achieved and what still might be achieved and what problems are arising. If more detailing of the task is required then we set a new estimate for accomplishing that detailing.
An estimate is not a quote.
An estimate has a high or low degree of certainty. The certainty is proportional to the time I put in investigating what might be required to complete your task. The more time I put into investigation the more confidence I have in the accuracy of the estimation. So for example if I put in 15 minutes on spec. and give you an estimate of 10 hours then I really only have a 40% confidence rating in the accuracy of the estimation. That's because I cannot familiarise myself with all the facts in 15 minutes. If I put in an hour or so billing time to go a bit deeper into the preliminary investigation I might feel the estimate has about 70% probability of being correct. If we want 100% accuracy for the estimate then for a 10 hour estimation I'll need to put in 10 hours investigation.
If we want a fixed price of 10 hours then one or both of us will need to take on the risk of the work actually taking longer than estimated. If you wish me to take on that risk and give you a fixed price beforehand then I will add a price component in to cover me for that risk. That price component could increase the cost of the task to you considerably depending on the degree to which the task has any uncertainties in it. I think it is normal to include an element of cost for that risk management in a quotation, it is just an expense that is often over-looked by you. I am prepared to consider working on a quotation basis for some tasks but if you ask for a quotation (ie fixed price) do be aware that you are paying up front for the risk that the task takes longer than expected. Some tasks I will only do on an estimation/actual hours basis.
In other words if you require certainty, I will need to invoice you somehow for the time it takes to reach that certainty.
If I give an estimate after a short period of investigation you are taking on the larger part of the risk of us needing more time to complete your work. If you require that I take on the risk then the time I need to do the investigation before-hand increases in proportion to the degree of risk you wish me to take. I need to charge you for that investigative time.
The accuracy of an estimation depends also on how much of a 'recipe' exists already. I mean that some tasks are pretty repetitive and involve the same steps along the way. Those are tasks I've done before so can have a higher degree of confidence in an estimate. In those cases I may even be prepared to give a fixed price quotation. Most tasks however are pretty unique. After 4 years doing only Drupal work still the vast majority of my tasks that cross my desk involve me creating the recipe along the way. If the recipe already existed you would probably be doing it yourself. :)
In summary, when you ask me for an estimate I undertake a short investigation and give you a figure as accurate as I can. If the accuracy is important to you let me know and I will put in more time on the investigation, and will need to invoice you for that investigation time. We can discuss beforehand how much time to put into the investigation - for example we can set a figure of one hour to investigate a pathway for carrying out the task and coming up with a preliminary estimate of the time that will be involved. Investigation is not necessarily easier work than the actual implementation. In fact it can require quite some degree of concentration and scientific rigour and previous exposure to a whole range of tools and methods and ways things are done, and a particular skill-set developed over time. I like to think I've grown my ability to manage all those aspects - and that is why I do charge for investigation time.