A Textbook and Practitioner's Guide to Software Estimation
Naseem Mariam
Practical Software Estimation: Function Point Methods for Insourced and Outsourced Projects by M.A. Parthasarathy, Addison-Wesley, 2007, ISBN 0-321-43910-4, 388 pp.
Author M.A. Parthasarathy draws on his immense experience with software projects at InfoSys to distill software-estimation methodologies, techniques, and practice into this book. Detailed exposition of case studies makes this a textbook for novices and reference manual for experienced practitioners. The book is an encyclopedia of information and a pleasure to read.
A Function Point (FP) is an ISO standard unit of measure for arriving at a software application’s size. Comparing FP counts for different project types provides a relative measure of complexity. The author details how to use FPs in different software project types. His elaboration of data and transactional functions is superb, as are his explanations of the International Function Point Users Group definitions and concepts with respect to function point analysis (FPA).
The book explains FPA clearly with case studies and examples. It includes informative tables, figures, and side boxes throughout, along with references and sections on other interesting reading material at the end of each chapter. The author anticipates and answers practitioner questions in tips, techniques, and tricks for all types of software projects: new development, reengineering (porting), and maintenance (bug fixes, minor and major enhancements). He draws the reader’s attention to key issues, such as understanding the project’s scope, ensuring the input data’s accuracy, addressing the user’s view of project parameters, balancing user and programmer views, calculating step-by-step FP contributions, and estimating FPs at the module level. He sheds light on the terms used in defining internal and external logic file and warns readerss of the range and variances in general system characteristics that estimates must account for.
The case studies describe the limitations project developers face and offer practical solutions to many of them. The “Tips, Tricks, and Traps” chapter gave me first a feeling of déjà vu and then eye-opening glimpses into common mistakes made while estimating software.
The book includes many figures that clarify issues—for example, fluctuations and variances in estimations derived from different estimation methods. You will have to read other books on methods other than FP, but Parthasarathy does include three tables that will serve as a starting point and quick reference. The book’s last chapter, “Estimation Case Study,” details size-estimation solutions for a typical software development scenario. The depth of detail in this chapter guarantees its classic status for me.
My only serious criticism is that each chapter is written as a self-contained unit. Given the book’s wealth of knowledge, reading flows—similar to what the preface offers—would help guide readers. Additionally, the estimation-tools section would benefit from an explanation of why tools are required. Otherwise, I only wish Parathasarathy would write a sequel with the same detail and clarity for other estimation methods. I recommend Practical Software Estimation: Function Point Methods for Insourced and Outsourced Projects as a textbook and guide for all software practitioners. The clear explanations could prompt all engineers to apply these techniques to estimate any generic engineering project.
Naseem Mariam is an architect and engineering head at Aricent Chennai. Contact her at naseem.mariam@aricent.com.