0

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)

YumYumYum
  • 377
  • 2
  • 4
  • 12
  • 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 Answers1

3

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.

Oded
  • 53,326
  • 19
  • 166
  • 181
  • 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
  • Of course, for smaller changes ("change this text" or "swap the position of those two buttons"), I don't go through that process. In fact, those rarely get estimated as individual tasks. I usually identify the modules and find other work involving those modules and estimate either a number of small changes or include those small changes into a more significant change. – Thomas Owens Nov 17 '11 at 14:05
  • First line, change "You should" to "You must". – gnasher729 Jul 31 '16 at 07:27