Function Point Analysis: Measurement Practices for Successful Software Projects
ISBN: 0201699443
Buy this book at www.fatbrain.com
Analyzing Function Points Back in the mainframe era, the crude methodology was to measure a projects complexity by counting lines of code, and determine a development teams effectiveness by tracking the man-months it took to build the program. These days, lines of code, lines of code per programmer per day, and person-months are no longer accepted as meaningful measurements. For the past 15 years or so, the industrys best yardstick has been an applications function-point count, and a teams efficiency has been measured by the number of person-hours per function point, and software quality by bugs per function point. Reprinted with permission of SDTimes. Originally appeared in Issue 26, March 15, 2001.
By Alan Zeichick
How big is this project? Thats a hard question to answer when it comes to applications development. But its an important question, because unless you know how big a project is, you cant estimate its costs or development schedule accurately. You cant assess its quality fairly, or see if your organization is getting betteror worseat handling projects of this size, or compare a development teams efficiency against other teams within your enterprise or against industry norms
Yet unlike counting lines of COBOL code, its hard to count the function points in a complex application, and seeing that complexity, many senior development managers and IT directors simply ignore the metric, and stick with counting lines of code. Thats why IBM Corp., which invented the function-point concept in the late 1970s, created an independent organization, the International Function Point Users Group (www.ifpug.org), to shepherd, simplify and promote function points to the broader software-development universe. And thats why David Garmus and David Herron, two software-metric consultants, have written Function Point Analysis: Measurement Practices for Successful Software Projects.
What is a function point, anyway? One of the few weaknesses in Garmus and Herrons book is that they dont even get around to discussing that rather obvious point until halfway through the textand even then, they cant just come out with a clear and unambiguous definition. But briefly stated, an applications function points are the sum of the different data types and sources used by the application (both internally generated and externally referenced), and the transactions and transformations applied to those data sources. Different weights are applied to different types of data and transactions, and some organizations also factor in so-called general system characteristics, such as required real-time performance, online data entry, code reusability and requirements for easy installation, to increase an applications function-point count.
The authors primary audience is for the practitioner: the individual charged with learning all about function points, counting them and presenting the analysis to top IT management. However, any manager who is considering the use of formal function-point analysis to help instrument the software-development process, or who is part of an organization that uses function points, should have a good understanding of exactly what a function point isnot just to help with interpreting the analysis, but also because the entire concept of a function point is bound up with the parts of a piece of software that are hard to design, write and test.
The first five chapters of Function Point Analysis build the case for the use of function points. The arguments are no less persuasive because theyre familiar: Unless you can define and measure a process, you cant determine its cost and efficiency, and unless you know its efficiency, you cant quantitatively and qualitatively improve the process. Written largely for managers, the third chapter in particular points out how function-point counts can be used to track an application development projects productivity, quality and financial costs, and also to estimate how hard it will be to maintainthe authors make the compelling point that for any development organization considering outsourcing new code development or maintenance, function-point benchmarks are a valuable tool for calculating ROI and for creating service-level agreements.
The next major section delves into the process of counting function points. Its a maze of two- and three-letter acronyms for concepts like DETs and FTRs (data element types and file types referenced), ILFs and EIFs (internal logical files and external interface files), and then its EIs, EOs and EQs (external inputs, external outputs and external queries). Techniques for counting those acronyms constitute the essential elements of function-point analysis and can be used to derive the fundamental measurement, the unadjusted function-point count. Through these chapters, Garmus and Herron skillfully lead the reader through a minefield of dos and donts, some of which can be quite unintuitive and even bewildering.
One area in which more guidance would have been appreciated is the discussion of modifying the unadjusted function-point count by applying subjective general system characteristics. Garmus and Herron make the point that a growing minority of organizations have chosen to ignore this particular process, called the value adjustment factor. I wish theyd provided clear advice: Should you use them or not?
The remainder of the book contains advice and advanced techniques for adapting function-point analysis to the modern world of the Web, GUIs, and object-oriented software. When the technique was first pioneered more than 20 years ago, applications were batch oriented and used structured programming techniques, and code reuse meant a library of standard subroutines. Garmus and Herron show where some aspects of function-point counting have lagged behind the state of software development.
Is function pointing for everyone? No. Is it a useful measurement? Yes. If youre familiar with function-point analysis but want to know more, or if you dont know anything about it beyond what Ive written here, then this book represents the best single work on the topic that Ive found.
|
You know what I love? How there's two nuts named after people: Hazel and Filbert. - George Costanza |



