Function Point Analysis (FPA) has been proven as a reliable method for measuring the size of computer software. First made public by Allan Albrecht of IBM in 1979, the FPA technique quantifies the functions contained within software in terms that are meaningful to the software users. It can be readily applied across a wide range of development environments and throughout the life of a development project, from early requirements definition to full operational use. In addition to measuring output, Function Point Analysis is extremely useful in estimating projects, managing change of scope, measuring productivity, and communicating functional requirements. The Function Point Analysis technique provides an objective, comparative measure that assists in the evaluation, planning, management and control of software production.
The function point measure itself is derived in a number of stages. Using a standardized set of basic criteria, each of the functions is a numeric index according to its type and complexity. These indices are totaled to give an initial measure of size which is then normalized by incorporating a number of factors relating to the software as a whole. The end result is a single number called the Function Point index which measures the size and complexity of the software product.
There are many benefits in using Function Point Analysis:
- Function Points can be used to communicate more effectively with user groups.
- Function Points can be used to reduce overtime.
- Function points can be used to establish an inventory of all transactions and files of a current project or application. This inventory can be used as a means of financial evaluation of an application. If an inventory is conducted for a development project or enhancement project, then this same inventory could be used to help maintain scope creep and to help control project growth. Even more important this inventory helps understand the magnitude of the problem.
- Function Points can be used to size software applications. Sizing is an important component in determining productivity (outputs/inputs), predicting effort, understanding unit cost, so on and so forth.
- Unlike some other software metrics, different people can count function points at different times, to obtain the same measure within a reasonable margin of error. That is, the same conclusion will be drawn from the results.
- FPA can help organizations understand the unit cost of a software application or project.
Once unit cost is understood tools, languages, platforms can be compared quantitatively instead of subjectively.
Further information can be found at http://www.ifpug.org