# Software Engineering: Function Point Analysis: Effort Estimation

After you have a function point count, *Rapid Development* has the necessary formulas
to compute the total effort in man-months, the optimal schedule time in months,
and the number of lines of code (LOC).
The following abbreviations are used here:

*f* - function point count.
*m* - man-months of effort to be derived from the function point count.
*s* - schedule months for optimal schedule.
*j* - Jones's first-order estimate exponent.

## Choose type of project and team capabilities.

Jones's first-order estimation gives
an estimate for optimal schedule months from the function point count.
First you must choose the appropriate exponent, *j*, to use by identifying
the type of system and the general capability of the development team.

Exponents for Jones's first-order estimate
Kind of software | Best in class | Average | Worst in class |

Systems | 0.43 | 0.45 | 0.48 |

Business | 0.41 | 0.43 | 0.46 |

Shrink-wrap | 0.39 | 0.42 | 0.45 |

## Calculate schedule months from function points

Jones's first order estimate formula uses the exponent, *j*, from the
above table to compute schedule months, *s*, from function points, *f*.
Schedule months *do not include the requirements analysis phase*,
because this must have been completed to get the design needed for
the function point count.

**s = f**^{j}

## Calculate effort in man-months from function points

The following formula converts function points into total man-months.

**m = f**^{3*j} / 27

A spreadsheet could be used to compute this.

## Lines of code

To convert the function points / effort / schedule into lines of code,
use table 8-10 in *Rapid Development*
page 196 (or tables 8-8 or 8-9 if appropriate).
Look up the effort, then find the number of lines of code. This is for lines
of C (or similar) code (eg, not assembler). I did a quick calculation
and got about 100 lines of code per function point for one program.

## Differences between the formulas and tables

The formulas and tables are not exactly the same, but give similar results.
*Rapid Development* references papers which have studied the
relationships more closely, and where one might find clarification of the differences.

## Cost

Cost is often estimated from the man-months plus other expenses.
A large organization I worked for figured cost
was twice the salaries of the programmers to include benefits, office, and other
overhead.