At work, I essentially function as an independent consultant. For management and customers, I need to estimate the amount of time it will take to develop software as part of my computational science research. However, my time estimates are usually off. I know that there are methods to estimate the time it takes to develop software. Will these methods give me accurate estimates for research tasks? Are they even useful in a research setting? If they aren't, is there a better method than "keep records and revise estimates accordingly"?

  • 1
    $\begingroup$ Given that there is an order of magnitude difference between the brightest and the not-so-bright programmers, re-using existing data sets will not make your estimates magically fit the reality. What you can do, however, is walk through your prior projects and collect complexity data, and fit a couple of simple regressions. Research is different from other kinds of activities in that there is a significant risk of hitting a brick wall a few times... Build in margins related to the relative novelty of your project, and use Murphy's Law to correct for your own optimism. $\endgroup$ – Deer Hunter May 19 '13 at 11:48
  • 4
    $\begingroup$ In a previous career as a software developer I regularly did these kinds of estimates for well specified projects. If the design was complete enough, and there were no significant technical risks, this worked out reasonably well. However, the kind of software development I do now is really more research than software development- there are significant questions of whether the idea will even work, and unexpected problems come up all the time. $\endgroup$ – Brian Borchers May 19 '13 at 13:54

In most research settings, you do not have access to professional programmers with relatively uniform skill level whose time you can dictate. Rather, you have a mix of experienced programmers (maybe postdocs, maybe faculty) and grad students with little programming experience and no experience at all regarding large-scale projects. Furthermore, all of these actors have numerous other duties (teaching, TAing, reviewing papers, sitting on committees) that vary greatly throughout time. As a consequence, I think it's going to be very difficult to have accurate estimates. Certainly, my experience is that "it's going to take longer than I thought".

  • $\begingroup$ You are right about all of these issues in the general case. I was curious because in my case, I am often the only one working on coding (at most, one or two other people also do coding on the same project, but usually on unrelated or independent tasks). Also, due to the consultant-like nature of my job, I know to high confidence how much time I can devote to a given project weekly, which reduces uncertainty quite a bit. $\endgroup$ – Geoff Oxberry May 20 '13 at 20:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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