Hand Drawn Chart Saturday
Why should anyone spend the time and effort needed to count function points? While some value can be gained from the process of counting function points (it can be leveraged as a formal analysis technique) the value from IFPUG function points comes primarily from how they are used once counted. Function points have four primary uses.
Estimation: Size is a partial predictor of effort or duration. Estimating projects is an important use of software size. Effort can be thought of as a function of size, behavior and technical complexity. All parametric estimation tools, home grown or commercial, require project size as one of the primary input. An example of the relationship between size and effort is seen in the Jones equation for estimation which says that effort is a function of size, behavior and complexity.
Denominator: Size is a descriptor that is generally used to add interpretive information to other attributes or as a tool to normalize other attributes. When used to normalize other measures or attributes, size is usually used as a denominator. Effort per function point is an example of using function points as denominator. Using size as a denominator helps organizations make performance comparisons between projects of differing sizes. For example if two projects discovered ten defects after implementation, which had better quality? The size of the delivered functionality would have to be factored into the discussion of quality.
Reporting: Many measures and metrics are collected and used in most organizations to paint a picture of project performance, progress or success. Organizational report cards may also be leveraged, again with many individual metrics, any one of which may be difficult to compare individually. Using function points as a denominator to synchronize many disparate measures so that they may be compared and reported.
Control: Understanding performance allows project managers, team leaders and project team members to understand where they are in an overall project or piece of work and therefore take action to change the trajectory of the work. Knowledge allows the organization to control the flow of work in order to influence the delivery of functionality and value in a predictable and controlled manner.
Organizations that have found the greatest value use the counting process as an analysis technique, if Agile they use function points to size stories and review sprint efficiency, estimation and reporting are uses for function points that can generate value for all organizations. IFPUG Function Points (or any functional metric variation) only have value if used.