For an increasing number of companies, the agile development and modification of their software has become the standard approach. Users are happier because they see the desired changes in the softwaremore quickly. Developers are happier because they are in direct contact with users to create software that is actually used.
For the budget owners and controllers it is a different story. How can they convince decision makers to free up budget for agile projects, and how can they ensure that agile developed software really adds value to the organization? For a large project, you can make a business case, but how do you do that for biweekly releases, let alone for continuous deployment? And what sort of value of the software do we want to measure? Agile is particularly concerned about user value, by giving stories with the highest user value the highest priority. Decision makers often think in balance sheet value, so notably the cost of realizing the software plays a major role in their decisions. The story points that the scrum teams use are well suited to plan sprints and determine which user value from the backlog is transformed into working software. They are not suitable to determine a price in a commercial contract or to compare the performance of different projects and releases in terms of money, time and quality.
Function points can be useful to meet that end (see the 2012 article by Jolijn Onvlee & Rini van Solingen). With the aid of function points the functionality of the software can be sized objectively. Since software development means that the functionality of the software is modified, function points can be used to measure the productivity of software development. Budget owners thus have a measure to monitor the volume of their software and modifications thereof.
Why is it is not applied everywhere then? We see the following reasons:
- Function points measure the size of functionality. This is not exactly the same as the value of the functionality.
- Function Points are not suitable to plan sprints and therefore don’t fit into the flow of the iteration. Scrum Teams therefore see measuring function points as waste, because it does not contribute to the realisation of software.
- Function Points are determined on the basis of the documentation. In many scrum teams the documentation which is most suited to determine the function point size has become waste when an agile way of working has been adopted.
The first reason is the field of play of the product owner. The product owner ensures that only functionality that is valuable for the organization is developed. If that prioritization works well, an increase of the functionality is also an increase in the value. But how does a product owner determine which functionality has a large value? That’s not as easy as it seems. Take the example of Whatsapp. The functionality of the app is not very large in terms of function points. But its value in terms of the number of users and the frequency of the use of the app is huge. Apparently there are also other aspects that influence value in addition to functionality.
User value is an important concept in agile software development, but what exactly determines the user value, has not been established conclusively. Research has shown that the traditional values on time and within budget hardly affect the perceived user value. The quality of the delivered software is the strongest predictor of user value. The quantity of delivered function points is a good predictor of cost, quality and schedule time, but has only limited influence on the perceived user value.
We think that a solution to point 2 and 3 is to automate the measurement of the volume of delivered software. This makes it a release activity in the flow of an iteration, and the absence or presence of other documentation than the code is no longer an issue. When you automate measurement, based on the delivered code, instead of on a document that may or may not be present, then the measurement of the delivered software is an integral part of an iteration, or a project.
One of the few solutions for the automatic counting of feature points that is used in the practice at this time is a commercial product of CAST. This is a bespoke solution, its operation and its quality can not be tested independently. The very fact that function points are independently audited, is the strength of this methodology. A bespoke solution does not fit well with that aspect.
Therefore, we investigate the possibility to create an open-source solution. There are parsers available in the market for the most common programming languages. Parsers convert the contents of a piece of software code, to a data structure that can be used to analyze the code. Also there are already several parties that published their algorithms to translate data structures to function points. OMG has already published a working standard for the IFPUG standard and Renault has released its algorithms based on the MATLAB documentation for the COSMIC standard. By using open-source software to implement these standards on data structures delivered by the parsers, the software code can be translated to function points in a testable way.
Research shows that many experts see in function points is an important tool to underpin and justify investment decisions and that automation of this is a major step forward. The main obstacles are seen here are:
- The difference between functionality and contents
- Complexity and variation in source code
- The large number of programming languages
We see that function points are an important tool for managing software development, in traditional but also in agile environments. It would be good if there is an open-source solution to measure the function points directly from the delivered code rather than from documentation. In that way function points connect better to faster and short cyclical delivery of software.
This blogpost was originally published in Dutch as “Waarde agile in functiepunten” in AutomatiseringGids and is based on a research paper published at the ICSSP conference (see below). The full research paper “An Exploratory Study on Functional Size Measurement based on Code” is available from the article section of this website.
About the authors
Frank Vogelezang is Pricing Officer at Ordina Management & Outsourcing. He is specialized in the determination of the cost and value of IT systems and contracts.
Hennie Huijgens is Software Analytics Specialist at Goverdson. He specializes in the measurement, analysis and benchmarking of IT projects.
A blog post represents the personal opinion of the authors
and may not necessarily coincide with official Nesma policies.
The International Conference on Software Engineering (ICSE) is the oldest and largest conference on software development, where the latest developments are presented and discussed. This year’s conference will be preceded by a host of specialized workshops and conferences. One of these is the International Conference on Software and System Processes (ICSSP) in which developments are shared on bringing together the rapidly changing business processes and processes to realize the supporting software. As a first step in the development of an open-source solution that measures function points directly from code rather than documentation we have, together with researchers from TU Delft, CWI and SIG, conducted a global survey amongst measurement specialists. In this survey 334 specialists from 40 countries took part. These specialists were given a detailed questionnaire on the utility, application, added value and feasibility of automating function point sizing. The results are analyzed and described in a publication that has been accepted after a thorough review process on the ICSSP conference. On that conference the results were presented to and discussed with an international company experts in the field of process automation. Main conclusions from the study:
– A large majority (87%) of respondents function points called an important tool for decision makers to support or justify investment decisions.
– The automated measurement of function points is seen by 44% of respondents as a major step forward, both from the perspective of experts and decision-makers.
– In terms of content, there are still some hurdles to take to get working the idea, according to 50% of respondents. Main obstacles to be seen are the difference between functionality and technical content (26%), complexity and variation in source code (14%) and the large number of programming languages (10%).
– As the best way to automate Functional Size Measurement 25% of the respondents indicate the COSMIC method to be best option.