Search code examples
project-managementestimation

How to estimate times when working on a new technology?


I have been working on Flex for last couple of months and as this was the first time I had to actually do Flex I ended up underestimating the project tasks which resulted in a delay. So how does one estimate the project timings when working on a new technology?


Solution

  • I also recommend looking at this thread: Does anyone work with Function Points?

    Function Points are an "industry standard" (whatever that means) for estimating how long it takes to do something. For a most part they try to map out what the program does, and THEN you put them into an algorythm like this:

    long GetManHoursForProject()
    {
        long   Count_of_Function_Points = GetFunctionPointCountFromAnalyticalPhaseOfSDLC();
        double Average_Complexity       = 1;  // .8 for easy, 1 for normal, 1.2 for hard
        long   Programming_Language     = 130; // for C++ (higher level languages have higher values)
    
    
        double Man_Months = Count_of_Function_Points * Programming_Language * Average_Complexity;
    
    
        long   Man_Hours = Man_Months * 20 * 8; // 20 days per month, 8 hours per day
    
        return Man_Hours;
    }
    

    The thread I linked to from above talks about Story Board Points, which is an interresting conversation in and among itself. I would look into both of these subjects to find which one works for you.

    The nice thing about function points and story board points is that they have a language multiplier. The same way of thinking is used for all languages.

    If you are learning a new language, then the complexity would be higher for your specific system.