January 29, 2013

The first generation of Functional Size Measurement

Every now and again there is debate amongst the practitioners of Functional Size Measurement about the best Functional Size Measurement method. In essence there is nothing wrong with such a debate.
nothing wrong with a good debateProfessionals 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.
 
The generation differentiation was the result of a discussion within the COSMIC community if there was something that identified the difference between COSMIC and existing Functional Size Measurement methods. That something had to be simple enough to be understood by people outside the community of practitioners to make it useful for marketing purposes. That something was the generation. Everyone has an understanding of generation. What is troubling the generation debate in Functional Size Measurement is that there is no common understanding. I do not exactly recollect when COSMIC introduced the generation concept, but I already used it in a chapter in the 2004 NESMA Anniversary book Measure! Knowledge! Action!  called COSMIC, the next generation. This is the first blogitem in a series of two to create that common understanding.
Who am I to do this. The general principles of Functional Size Measurement are described by ISO/IEC 14143-1:2007 with the definition of concepts. Under this general principles currently five Functional Size Measurement methods have proven to be compliant with this standard:
There are only three persons in the world who have been responsible for more than one of these methods:
  • Adri Timp, who is CPC chair for NESMA and IFPUG
  • Charles Symons, who is MPC chair for COSMIC and a member of the UKSMA MPC
  • Me, member of the COSMIC MPC and the NESMA CPC
Since the NESMA and IFPUG FPA methods are very similar and Charles has a primary focus on COSMIC, it's up to me to create the common understanding about the generations.

A first generation Functional Size Measurement method is a method that is based on empirical results rather than on proven software engineering principles. Some first generation methods do not make a distinction between size and effort. Most first generation methods define their own terminology, which may have overlap with other terms in software engineering. In plain language: They work because the application of the method gives sensible results for estimating and/or benchmarking of software engineering activities.
 
There are dozens of these methods. In the chapter on the history and evolution of software metrics from the third edition of Applied Software Measurement, Capers Jones sums up the 20 Functional Size Measurement methods that he regards as the top 20. Except for the COSMIC method they all meet the criteria for a first generation Functional Size Measurement method. In a separate post I will replicate the list for those who don't have the book.
 

Common misconception #1 - First generation means old

First generation says something about the nature of the Functional Size Measurement method, not about the year of introduction. Some recently developed methods are pure first generation:

Common misconception #2 - First generation means unusable

Part of the definition of a first generation method is that it gives sensible results for estimating and/or benchmarking of software engineering activities. Their use may be limited to the environment the method is designed for, but under the right condition they are useful. I would not be a member of the NESMA CPC if I did not believe in the use of FPA.
 

Common misconception #3 - First generation means unstandardized

One of the very good things first generation Functional Size Measurement methods have brought to the world is standardization. First there were a number of first generation methods, then there was ISO/IEC 14143 and then there was standardization. The methods that are brought under an ISO/IEC standard are well regulated by a body that regulates the use of the method. On the other hand, there are a lot of first generation methods that are not standardized. That is true. But standardization is does not necessarily mean that a Functional Size Measurement method is better than an unstandardized one.

Does this help the debate

It is my intention to explain that the generation designation is only meant to distinguish between the nature of Functional Size Measurement methods. It is not meant as a quality label. It says nothing about the quality of one method over another. The quality of a method is determined by the way in which it is able to predict or explain aspects of software engineering. Functional Size is only one part of the puzzle.
 

And what about the second generation

Key elements of a second generation Functional Size Measurement method are:
  • Adoption of all measurement concepts from the ISO metrology
  • A clear defined measurement unit
  • It is fully compliant with ISO/IEC 14143 
  • It is tested
Preferrably a second generation Functional Size Measurement method is:
  • Domain independent
  • An open standard
My next blogitem will describe this in detail, since this blogitem is already far too long.

Related blogpost : What is a second generation FSM method
 

No comments: