February 14, 2013

What is a second generation FSM method


Every now and again there is debate amongst practitioners of Functional Size Measurement about the best Functional Size Measurement method. In essence there is nothing wrong with such a debate.
Professionals should always be seeking ways to improve their profession. Discussions about the best way to do so are a logical part of such a quest. But they should be done based on the right arguments. And one of those arguments is often wrong in my point of view. That is the generation argument. I notice that there is a lot of misconception about what is meant with generation in relation to Functional Size Measurement. In my blogpost of January I discussed the first generation. In this one I will discuss the second generation of Functional Size Measurement.


Important concepts

The experience with first generation Functional Size Measurement methods like Function Point Analysis or Mk II FPA led to a number of general principles that are described by ISO/IEC 14143-1 with the definition of concepts for such a method. Some important concepts are:
  • The use of a Base Functional Component, an elementary unit of Functional User Requirements defined by and used by an FSM method for measurement purposes.
  • The restriction of the applicability to Functional User Requirements that represent the user practices and procedures that the software must perform to fulfil the users’ needs. They exclude Quality Requirements and any Technical Requirements
  • The notion that functional size is not an absolute entity. There is no such thing as the functional size of a piece of software. Any FSM method will describe a functional size, derived by quantifying the Functional User Requirements, according to the rules of the method.
  • It is not derived from any type of effort.
  • It is independent of development methods or physical software components.
  • It has a well-defined measurement process.
As I stated in my January blogpost first generation Functional Size Measurement methods are methods that are based on empirical results. Quite a number of them are derived from effort or physical software components, so they are not in conformity with ISO/IEC 14143-1. Four first-generation FSM methods claim to be ISO/IEC 14143 conformant:
 
 
 
There is one thing that these four methods all lack, which is a clearly defined measurement unit. The weights used by all four methods were originally empirically chosen in such a way that they produced a size measure with a good correlation to effort. All these methods have a measurement procedure which states that if a part of the Fuctional User Requirements satisfies a number of assessment criteria, it is awarded with a defined number of measurement units. This makes these methods rule-based. Since the measurement unit is not a concept in itself, the only way to determine the number of measurement units is by applying assessment criteria. This implies that first generation FSM methods need new rules when the ways in which Functional User Requirements are modeled or software is built change.
 

Rule-based versus Principle-based

The rule-based nature of existing FSM methods made a number of people who were involved in the conception of ISO/IEC 14143 look for a new generation of FSM methods that would be based on a model of software based on fundamental software engineering principles with a clearly defined measurement unit. Such a method could be built on the principles of identifying instances of this unit rather than on assessment rules to generate a number of measurement units. It would also have to contain a number of key elements to make it scientifically sound as well:
  • It adopts all measurement concepts from the ISO metrology
  • It has a clearly defined measurement unit
  • It is fully compliant with ISO/IEC 14143
  • It is tested (and the results are public)
And preferrably a second generation Functional Size Measurement method should also be:
  • Domain independent
  • An open standard
The first method that meets all these criteria is the COSMIC method (ISO/IEC 19761:2011). Designed and brought to life by an international group of measurement specialists who first met in London in 1998, where the ideas from the work on ISO/IEC 14143 were initially merged with the Full Function Point method from the UniversitĂ© de QuĂ©bec. Later on, the FFP concept was dropped and the group started again from the basic principles. To my knowledge there are no other second generation Functional Size Measurement methods available or on the drawing board at the moment, so why is the generation discussion that important to me? Because a number of aspects of the second generation are really important to make Functional Size Measurement succesful in the long run.
 

Adoption of all measurement concepts from the ISO metrology

Although ISO metrology is definitely not my favourite subject, I have to put it on the first spot. In the ISO metrology every concept is clearly defined and described. That is a very important feature, since a lot of concepts are interconnected in sometimes very complex ways. To make measurements meaningful to other areas of science and engineering it is important that its own concepts are defined and that they make correct use of concepts from other areas. The ISO metrology is the world-wide accepted basis for science and engineering concepts.
In practical terms, conformance to metrology principles means that functional size measures may be manipulated arithmetically (added, subtracted or scaled) as any ratio scale numbers.
 

A clearly defined measurement unit

I came across the COSMIC method when I tried to apply function points on components in a service oriented architecture. It could be done, but the rules had to be bent to the limit. For me this was an important learning experience. When you have a clearly defined measurement unit and some basic principles to describe that unit, you only have to find it. This may require different guiding in different situations, but the principle is always the same, regardless of the environment.
In the dynamic environment of software development there are radical changes to the way software is developed every couple of years. A clear defined measurement unit creates a stable anchor for the measurement method, which makes it more resistant to a changing environment than methods with a lot of different components like the FiSMA method or SCCQI.
 

Fully compliant with ISO 14143

As I have stated earlier, ISO/IEC 14143 contains a number of important concepts that are highly relevant to a good functional size measurement method. The most important one is the notion that size and effort are two separate concepts that should not be mixed within one measurement method.
Another important aspect is the understanding that there is no such thing as the functional size of a piece of software. Rather, depending on the scope and purpose af a measurement, we may measure a different size.
 

Tested with publicized results

There are a number of methods that are published of which no publicly verifiable results are known. In order to get measurement methods broadly accepted they should be tested and the results are to be made public. Hardly anyone believes in magic boxes anymore that produce a measurement result you have to rely on.
 
 

Domain independent

There is a non-mandatory requirement in ISO/IEC 14143 that states that an FSM method should be as independent as possible of particular software development methods or technologies. In today's world where everything is connected a domain dependent measurement unit becomes more and more indesirable. I cannot imagine a method that has a unique and clearly defined measurement unit that is domain dependent, but if someone finds such a measurement unit, I would not discard it because of this dependency. It would only limit the use of the FSM method associated with it.
 

Open standard

If there is one thing the Open Source community has taught us, it is that open standards evolve more quickly than closed ones. One simple aspect is that the supporting community is much bigger if you have an open standard. Another aspect is that you have a mix of a well-experienced core team and relative novice members who ask questions about elements of the method that may be obvious to the core team, but may still contain ambiguities.
In the COSMIC method you can see this process at work in the Method Update Bulletins. Over the years eleven of those bulletins have been issued. They have never changed the nature of the method, but clarified issues that had never been detected without a large open community that is keen on improving the method. Without this community the COSMIC method would not have been as sharp as it is on what we are measuring. The core team started with purpose, scope and layers. As a result of practical experience and feedback from the community, concepts such as the level of granularity, the functional user, the level of decomposition and measurement patterns have been added.
 
The aspect of an open community is not distinguishing a first generation FSM from a second generation FSM. IFPUG FPA has a supporting community and NESMA FPA has seen a lot of new activities lately. The big issue that both generations of Functional Size Measurement have to deal with is to persuade customer organizations to really use the power of FSM as the foundation for performance measurement benchmarking, project estimating and realistic contracting.




Related blogposts: From rules to principles : COSMIC and The first generation of FSM

No comments: