How to estimate a programming task if you have no experience in it [closed]
I am having a difficult time with management asking for estimates on programming tasks that are using third-party controls that I have no prior experience with.
I definitely understand why they would want the estimates, but I feel as though any estimate I give will either be a) too short and make me look bad or b) too long and make me look bad.
What estimate or reply could I give management to get them off of my back so that I can continue doing my work!
The best answer you can give is to ask for time to knock up a quick prototype to allow you to give a more accurate estimate. Without some experience with a tool or a problem, any estimate you give is essentially meaningless.
As an aside, there is very rarely a problem with giving too long an estimate. Unanticipated problems occur, priorities change, and requirements are "updated". Even if you don't use all the time you asked for, you will have more testing time, or can release "early".
I've always been far too optimistic in my estimates, and it can put a lot of stress into your life, especially when you are a young programmer without the experience and self-confidence to tell bosses uncomfortable truths.
I'll let you in on a secret. Even if you were an expert with that technology, your estimate is likely to be highly inaccurate. It is the nature of the beast when doing something that is an inherently R&D task. Unfortunately management often tries to apply a manufacturing model and demand accurate estimates. To illustrate my point, consider the difficulty in accurately estimating the following two efforts:
A) Manufacture another 11K umbrellas that are the exact same as the 2K you churned out last month. B) Design a new kind of umbrella and build the first one.
Software development is B, but they are asking for an estimate assuming A.
The best you can do is break the task down into the smallest pieces possible (no more than 1/2 day each) and then triple the final number you come up with.(Spolsky Method)
Alternately, Steve McConnell has a whole book (arguably several) on this aspect of software engineering. http://www.amazon.com/Software-Estimation-Demystifying-Practices-Microsoft/dp/0735605351