How long will your project take?

After I wrote my post on software estimation using the quick method first developed by the navy I decided to build a simple app that lets you play with the concept. To use it, break down your project into a few tasks and give each one three estimates—optimistic (μ), nominal(ψ), pessimistic (ω). More explanation on these at the bottom of the page

Task μ ψ ω Mean Standard Deviation Shape A Shape B low high

The result:


How to use the result

In any software estimation process you have to balance uncertainty with the need to give people some level of information to work from. The range given above is designed to give you something you can have a 95% level of confidence in (of course this depends on you being suitably optimistic / pessimistic in your estimates). So now, the next time someone asks you how long something will take, you can tell them:

“Most likely it will take about (expected Time) days. To be on the safe side, I would plan for it taking between (low estimate) and (high estimate) days

The estimates

When you’re going through this software estimation exercise, use these definitions to guide your estimates

μ: Optimistic (Mu-nicorn)

How long this would take if the stars aligned, unicorns pair programmed with you and generally everything went so well you have to check yourself.The one in a thousand dream scenario

ψ: Nominal

This is the standard issue estimate, what you are used to giving—the amount of time you would expect a task to take under normal circumstances.

ω: Nukem

This is the longest it could take if pretty much everything went wrong. This is the one in a thousand worst case scenario; the Nukem (for more on this read about Nukem here).


  1. sunil
    Posted October 7, 2011 at 10:01 pm | Permalink

    Thanks. Will Use it and see how it works.

  2. Mike
    Posted February 28, 2012 at 3:25 pm | Permalink

    Oddly this doesn’t seem to work in Firefox 10. The graphs don’t update as I enter values. I get the following JS errror on page load

    Error: eventObj.srcElement is undefined
    Source File:
    Line: 301

    • Paul Barnes-Hoggett
      Posted February 28, 2012 at 7:53 pm | Permalink

      Thanks for the heads-up on ff10. I’m travelling at the moment, but will take a look when I get back to New York in April. Hopefully you can give it a shot on another browser before then!

      • Posted March 2, 2012 at 10:42 am | Permalink

        Oh yea works fine in Chrome. I’ve been using it almost every day for the past week and as someone who has never been all that comfortable giving time estimates I’m finding this app incredibly useful.

        However, I’ve been craving some features like saving to local storage or exporting to a file. I was wondering if you’d be alright with me adding in some of these features and posting the results on my own Blog or alternatively getting a small github project going.

        Let me know if you’re interested.

3 Trackbacks

  1. By A simple software estimation application on July 5, 2011 at 2:52 pm

    [...] Skip to content How long will your project take? « Software Estimation — A good simple way courtesy of the Navy and the cold war Try [...]

  2. [...] Skip to content How long will your project take? « Try this, my mini-application for software estimation Have you been hurt by code [...]

  3. By Web Technologies | Trivariate time estimation on May 29, 2012 at 2:18 am

    [...] figured somebody ought to have created an online calculator for the purpose. And indeed, there is a how long will your project take software estimation app, complete with an extended history of the method, instructions and graphs (try hovering over the [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • Stay in touch!

    If you want me to let you know when I add new posts, drop your email here

    * = required field