Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Possible Duplicate:
How to respond when you are asked for an estimate?

In my company, i have a strange managers, they always asks me before starting how is it going? And how long it will take to finish? From Day 1 to end of the project life. Behind the screen they do not have any idea what language i will need to use. I was myself forced to use PHP, C, Java, Vala, D, Bash, many other platforms etc etc, where i was only a Visual basic 6.0 programmer.

But it takes me lot of time to complete a project, because i care about it before releasing, requires lot of testing etc etc.

The problem is, i still do not have any best answer when someone asks me "how long do you think it will take to finish this project?", although i have done lot of projects. But i can not answer such questions, because in my mind its never finished, i always wanted to do more and more optimized code even after release.

I would like to know how you guys tangle this question? (as pro-programmer way)

share|improve this question

marked as duplicate by Thomas Owens, Yannis Rizos, Mark Trapp Nov 17 '11 at 14:01

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

    
If you don't know how to define finished, then how are you supposed to estimate anything? It sounds like you have a lack of clearly defined requirements or expectations. –  maple_shaft Nov 17 '11 at 14:33

1 Answer 1

up vote 2 down vote accepted

You should refuse to estimate on the spot.

If you must, always qualify your answer as something that can be 2 orders of magnitude off, either way.

Insist that for a better estimate you need time to evaluate the project properly.

share|improve this answer
1  
+1 for the first statement, -1 for the second. Never, under any circumstances, provide an off-the-cuff or on-the-spot estimate. See: The Pragmatic Programmer. –  Thomas Owens Nov 17 '11 at 13:55
    
@ThomasOwens - Of course, The Pragmatic Programmer, the be all and end all of programming. They are never wrong. I guess you were never put on the spot in such a way that you had to give an answer. –  Oded Nov 17 '11 at 13:56
    
I believe this is also explicitly mentioned in Steve McConnell's Software Estimation: Demystifying the Black Art and referred to in the works of Watts Humphrey on the Personal Software Process. I don't believe that Hunt, Thomas, McConnell, and Humphrey would be wrong on this - they are among the experts on software development processes and best practices. –  Thomas Owens Nov 17 '11 at 13:58
4  
@ThomasOwens - They are. However, you don't always have a choice. In such a case, what would you suggest? Saying "I think this will take 2 months, but it could be as little as 2 days and as much as 2 years - give me some time to give you a better estimate" is not good enough? –  Oded Nov 17 '11 at 14:00
    
I never mention any time, at all, until I've had a chance to think about it. I say "give me the requirements and/or defect reports, let me read them, I'll get back to you in a couple of hours". I read the requirements or bug reports, come up with questions, ask them to the appropriate people, take a look at the modules that would most likely be affected, check the design documents, verify that the changes won't conflict with any other requirements, maybe do a little prototying, reflect on similar problems, then provide an estimate, which includes either an uncertainty or a time range. –  Thomas Owens Nov 17 '11 at 14:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.