Let's start with a quick overview of Function Point Analysis:
Function Point Analysis is a technique for measuring the functionality that is meaningful to a user, independent of technology. It was invented by Allan Albrecht of IBM in 1979. Several standards exist in the industry, but the International Function Point Users Group (IFPUG) is the most widely used. IFPUG produces the Function Point Counting Practices Manual, used by Certified Function Point Specialists (CFPS) to conduct function point counts. IFPUG is one of the ISO standards for software sizing (ISO/IEC 28926:2009).
Function Point Analysis considers five major components of an application or project: External Inputs, External Outputs, External Inquiries, Internal Logical Files and External Interface Files. The analyst evaluates the functional complexity of each component and assigns an unadjusted function point value. The analyst can also analyze the application against 14 general system characteristics to further refine the sizing and determine a final adjusted function point count.
“The effective use of function points centers around three primary functions: estimation, benchmarking and identifying service-level measures.” [i]
More and more organizations are adopting some form of Agile framework for application development and enhancement. The most recent VisionOne State of Agile Survey reveals that 94% of organizations practice Agile.[ii] Hot technologies such as big data, analytics, cloud computing, portlets and APIs are becoming ever more popular in the industry.
Let’s explore each of the three primary functions of function points and their relevance in today’s Agile dominated IT world and with new technologies.
Whether it is a move from traditional waterfall to Agile or from mainstream technologies to new innovations, project teams still have a responsibility to the business to deliver on time and within budget. Estimates of the overall project spend and duration are critical for financial and business planning.
Parametric estimation is the use of statistical models, along with parameters that describe a project to derive cost and duration estimates. These models use historical data to make predictions. The key parameters necessary to describe a project are size, complexity and team experience. Many other parameters can be used to further calibrate the estimate and increase its accuracy, including whether the project is using an Agile framework. Several tools can be used to perform parametric estimation, including SEER, SLIM and COCOMO.
Project size can be described in several ways, with software lines of code (SLOC) and function points being the most common. SLOC has some inherent problems, one being that inefficient coding produces more lines of code, another being the fact that determining the SLOC size of a project before it is coded is itself an estimate. That’s where function point analysis provides real value as a sizing tool. Even in software developed using the latest innovations in technology, the five components of function point analysis still exist so function point counting remains a valuable tool for measuring software size. Because a function point count can be done based on a requirements document or user stories, and the expected variance in function point counts between two certified function point analysts is between 5% and 10%, an accurate and consistent measure of the project size can be derived. And because function point analysis is based on the users view and independent of technology it works just as well as technology evolves.
The function point size, along with the other parameters described above are then used by the parametric estimation tool to provide a range of cost and duration estimates for the entire project within a cone of uncertainty. This information can be used for financial budgeting and business planning.
Projects in an Agile framework can create estimates for the individual user stories with techniques like planning poker, t-shirt size or relative mass valuation. These estimates are used for sprint planning and are refined through the backlog grooming process. As the team measures and refines its velocity the estimates are further updated. Ultimately all of these estimates should converge on the overall projected estimate created using parametric estimation.
Regardless of the technologies used for development, in this way estimates of the overall project through parametric estimation and Agile estimation techniques can coexist and complement each other in support of the business’s need for financial and business planning.
Whatever technology or development framework is being used, constant improvement is essential to an organizations ability to survive and thrive in a competitive environment. Baselining an organization’s performance relative to productivity, quality and timeliness is the starting point for benchmarking and the first step toward an IT organization’s delivery improvement.
Function points are a common currency for metrics equations. They provide a consistent measure of the functionality delivered, allowing benchmark comparison of performance over time, of one technology against another, internally across various departments or vendors, and externally against the industry in which a company competes. Benchmarking is also used in outsourcing governance models as a way to ensure a vendor is providing value with respect to contractual commitments and competitors in the marketplace.
A large amount of function point based industry benchmark data is available from many suppliers. Some of the suppliers include: The Gartner Group, Rubin Systems Inc. META Group, Software Productivity Research, International Software Benchmarking Standards Group (ISBSG) and DCG Software Value.
To execute a benchmark, data is collected for the target projects, including function point size, effort and duration. The data is analyzed and functional metrics are created and baselined for the target projects. Quantitative comparison of these baselines is done against suitable industry benchmarks. Qualitative assessment is done to further analyze the target projects and determine contributing factors to performance differences with the benchmark.
Regardless of the development framework or technology used, function points is the basis for baselining and benchmarking an organization to determine their performance relative to the industry and allowing for improvements to move toward best-in-class performance.
Service-level metrics are most commonly used in outsourcing governance to measure the performance of the outsourcer to ensure contract compliance. With IT’s increased alignment with the business, service-level metrics are increasingly used internally as well. Delivery framework and technology don’t change the need for this kind of oversight.
Outsourcing is typically done at the individual project or application level, for application maintenance, or the entire ADM environment. Let’s examine each of these outsourcing models and how function point based service-level metrics can be used to monitor them.
Individual project or application:
In the case of individual project or application outsourcing service-level definition is based on the provider’s responsibility, the standards required by the customer and how success is defined. Function point analysis has a role in all three of these areas.
Definition of the outsourcer’s responsibilities helps identify the hand-off points. Function point sizing at requirements hand-off provides an initial baseline of the project size for all metrics to be built upon. As requirements change throughout the project the baseline can be updated through change control.
The standards and development practices lead to establishment of compliance measures and targets for the outsourcer to meet. Function point sizing can be used here as the basis of measures like productivity.
Success can be measured with function point based measures of delivery rate, duration and quality against contractual requirements or internal standards.
Measurement of maintenance in an outsourcing includes customer expectations, response time, defect repair, portfolio size, application expertise and others. Let’s explore those that involve function point analysis.
Customer expectations can be thought of as the size of the portfolio being maintained, as well as the cost of maintaining it. The portfolio size can be measured with function points to establish the maintenance baseline and its growth over time can be monitored.
Support efficiency can be measured as the size of the support staff needed to maintain the maintenance baseline. This can also be measured over time to show trends.
Entire ADM environment:
The measurement needs for ADM outsourcing are different from those of the previous two scenarios. A multi-year outsourcing requires more complex measures to ensure the services provided by the outsourcer meet contractual commitments. To do this more complex metrics dashboards are often built to allow a wide range of measurements to be analyzed.
To build a metrics dashboard that provides the level of monitoring required, many factors must be considered including contractual requirements, end customer expectations and organizational standards and goals.
The table below describes metrics derived from performance considerations and business drivers. [iii]
Many of these metrics are based on functional size so function point analysis can be used to build the measurements.
For outsourcing and internal IT, effective measurement is critical to monitor performance and improvements and should be linked to the organizations goals and objectives. Metrics based on functional size are key to a service-level measurement program without regard to the delivery framework or technology used.
We have seen above that function point analysis is versatile and adaptable with changing technology and processes. All technologies still have the five basis components of function point analysis and organizations are still asking “when it will be done?”, “how much will it cost?” and “what will I get?”. It is for these reasons that function point analysis remains relevant in today’s IT world.
- Garmus, D. Herron, D., Function Point Analysis, Measurement Practices for Successful Projects, Addison-Wesley, 2001
- IFPUG Metrics View, February 2016, International Function Point Users Group
- 9th Annual State of Agile Survey, VersionOne Inc., 2015