Friday, October 14, 2005

Estimation Techniques

There are multiple ways of estimating. But most often we use the major two ways

a) Program Complexity Model (PCM)
b) Function Point Analysis (FPA)

Let me classify the PCM
The program complexity model is again classified into three parts

A) UI Screen
B) Middle-tier-components
C) Database layers

Each of the part can have multiple complexities and its based on the project. So , we can have
i) Simple (e.g. Of a simple screen is a screen with say 3 text boxes and 3 label with 2 command buttons)
ii) Medium
iii) Complex
iv) Very Complex and etc..

Each classification of complexity based on the programming language has a definite way of attributing the number of hours. Viz,

Lets take an Eg. Of a Front end screen and Some middle tier mechanics

UI
Simple takes 2 days
Medium takes 3 days
Complex takes 5 days

Similarly we need to do this for Middle-tier components.

This time data is available from multiple sources , but we primarily use three sources

Experience
Organizational Benchmarks
Internet :)

Uff…. I think I wrote a lengthy one abt the PCM

FPA (Function Point Analysis)

Function Point Analysis has been proven as a reliable method for measuring the size of computer software. In addition to measuring output, Function Point Analysis is extremely useful in estimating projects, managing change of scope, measuring productivity

There are five Components of Function Points Data Functions
Internal Logical Files
External Interface Files
Transactional Functions
External Inputs
External Outputs
External Inquiries

Apart from these 5 components there are two more adjusting factors which you should consider

i) Functional Complexity
ii) Value Adjustment factor

Though FPA is not 100% correct in estimating, it is considered to be a better approach of estimating coz, it considers the productivity measures and the complexity measures. These adjustment factors also differ based on Language to language.

So Now knowing the background, now you can start answering the question..

For those who wanted a “r” me too. J … interviewers are never looking for the answer in the number of hours, they are looking for what to do and how you approach the problems. This is very similar to a MS interview Question..

For those who wanted a challenge … “ How many aeroplanes are flying at the Indian air space at any given point of time” ?