Pub. Date:
Practical Software Estimation: Function Point Methods for Insourced and Outsourced Projects / Edition 1

Practical Software Estimation: Function Point Methods for Insourced and Outsourced Projects / Edition 1

Current price is , Original price is $49.99. You

Temporarily Out of Stock Online

Please check back later for updated availability.

4 New & Used Starting at $1.99


"A clearly written book that is a useful primer for a very complicated set of topics."

--Capers Jones, Chief Scientist Emeritus, Software Productivity Research LLC

Practical Software Estimation brings together today's most valuable tips, techniques, and best practices for accurately estimating software project efforts, costs, and schedules. Written by a leading expert in the field, it addresses the full spectrum of real-world challenges faced by those who must develop reliable estimates.

M. A. Parthasarathy draws on the immense experience of Infosys, one of the world's largest and most respected providers of IT-enabled business solutions, to bring you the only book with detailed guidance on estimating insourced and outsourced software projects, as well as projects that blend both approaches. He demonstrates how to successfully utilize Function Point (FP) methods, the industry's leading estimation model. Then, using real case studies, he systematically identifies pitfalls that can lead to inaccurate estimates--and offers proven solutions.

Coverage includes

  • How to estimate all types of software projects, including "fresh" development, reengineering, and maintenance
  • How to incorporate the impact of core project elements on estimates: scope, environment, experience, and tools
  • FP analysis from start to finish: data and transaction functions, general system characteristics, and more
  • FP methods for any platform or business function
  • Innovative re-estimation methods to track progress
  • How to quote RFPs and prepare contracts: fixed price, time/material, and project execution lifecycle models
  • Alternatives to FP: Delphi, COCOMO II, and COSMIC-FFP
  • How to choose the right estimation tools

Practical Software Estimation is the definitive reference for anyone who must estimate software projects accurately: project and IT managers, individual developers, system designers, architects, executives, consultants, and outsourcers alike.

List of Figures
List of Tables




Chapter 1: Introduction
Chapter 2: Role of Estimation in Software Projects
Chapter 3: A Study of Function Point Analysis
Chapter 4: Data Functions
Chapter 5: Transactional Functions
Chapter 6: General System Characteristics
Chapter 7: Size, Effort, and Scheduling of Projects
Chapter 8: Estimation Flavors
Chapter 9: A Sense of Where You Are
Chapter 10: Tips, Tricks, and Traps
Chapter 11: Insourcing versus Outsourcing
Chapter 12: Key Factors in Software Contracts
Chapter 13: Project Estimation and Costing
Chapter 14: Other Estimation Methods
Chapter 15: Estimation Tools
Chapter 16: Estimation Case Study
Appendix A: Reference Tables: Transaction Function Counts
Appendix B: Reference Tables: Data Function Points

Product Details

ISBN-13: 9780321439109
Publisher: Addison-Wesley
Publication date: 03/12/2007
Series: Infosys Press Series
Edition description: New Edition
Pages: 432
Product dimensions: 6.90(w) x 9.00(h) x 1.10(d)

About the Author

M. A. Parthasarathy, Associate Vice President at Infosys Technologies Ltd., has been actively involved in software development and delivery for more than twenty years. Parthasarathy heads the Outsourcing Academy under the Strategic Global Sourcing unit, and plays an active role in setting Infosys estimation strategies, supporting their deployment, and conducting estimation-related training. A Certified Quality Analyst (QAI), he has twice been honored with the prestigious Infosys Excellence Award.

Table of Contents

List of Figures xvii

List of Tables xix

Foreword xxv

Preface xxvii

Acknowledgments xxxiii

Chapter 1: Introduction 1

What Is Software Estimation? 1

Ingredients of a Good Estimation 6

Software Project Estimation 8

Continuous Improvement Cycle 12

Why Software Estimation? 15

Estimation--Who and How 19

Conclusion 21

References 22

Other Interesting Reading Material 23

Chapter 2: Role of Estimation in Software Projects 25

Software Projects and Estimation 25

Estimation and Measurement 31

Large Application Systems 40

Conclusion 42

References 43

Other Interesting Reading Material 43

Chapter 3: A Study of Function Point Analysis 45

Why Estimation? 45

Function Points 47

Function Point Analysis 51

Conclusion 70

References 72

Chapter 4: Data Functions 73

Introduction 73

Definition of Files 74

Data Functions Defined by IFPUG 75

Conclusion 95

References 96

Other Interesting Reading Material 96

Chapter 5: Transactional Functions 97

Introduction 97

Definition of Transactions 98

Albrecht's Definition of Transactions 100

Transactional Functions Defined by IFPUG 102

EI, EO, and EQ 104

Complexity and FP Count Contributions 111

Invoice System--FP Counting Process 116

Conclusion 118

References 119

Other Interesting Reading Material 119

Chapter 6: General System Characteristics 121

Introduction 121

Functional and Non-Functional Requirements 122

Introduction to General System Characteristics 123

Guidelines for General System Characteristics 125

GSC and NFR 137

Conclusion 146

References 147

Other Interesting Reading Material 147

Chapter 7: Size, Effort, and Scheduling of Projects 149

Importance of Size 149

Inputs to Sizing 155

Impact of Delivery Rate 159

Effort and Schedule 163

Conclusion 167

References 168

Other Interesting Reading Material 169

Chapter 8: Estimation Flavors 171

Change Forever 171

Development Projects 173

Reengineering Projects 177

Migration Projects 182

Maintenance Projects 183

Conclusion 192

References 192

Chapter 9: A Sense of Where You Are 193

On the Right Track, On Time 193

Pervasive Estimations 196

Agile Software Projects 199

Estimation Maturity 208

Conclusion 211

References 212

Other Interesting Reading Material 213

Chapter 10: Tips, Tricks, and Traps 215

Introduction 215

Tricks 221

Traps 225

Conclusion 230

References 231

Other Interesting Reading Material 231

Chapter 11: Insourcing versus Outsourcing 233

Introduction 233

Environment--The Differentiator 234

Estimation Approach 239

Insourcing versus Outsourcing: Pros and Cons 242

Conclusion 247

References 247

Chapter 12: Key Factors in Software Contracts 249

Introduction 249

Types of Contracts 250

Project Execution Methods 257

Conclusion 263

References 263

Chapter 13: Project Estimation and Costing 265

Introduction 265

Project Lifecycle Phases and Cost 266

Estimation and TCO 272

Conclusion 274

Other Interesting Reading Material 275

Chapter 14: Other Estimation Methods 277

Introduction 277

Estimation Methods 277

Heuristic Approach 279

Parametric Approach 285

Estimation Models Pros and Cons 291

Conclusion 294

References 294

Other Interesting Reading Material 295

Chapter 15: Estimation Tools 297

Why Use Tools? 297

List of Tools 302

Conclusion 305

References 306

Other Interesting Reading Material 306

Chapter 16: Estimation Case Study 307

Introduction 307

Case Study: 1--Invoicing System 312

Case Study 2: Enhanced Invoicing System 350

Conclusion 359

References 359

Other Interesting Reading Material 359

Appendix A: Reference Tables: Transaction Function Counts 361

Reference Table to Calculate ILF/EIF FP Count 361

Reference Table to Calculate EI/EO/EQ FP Count 362

Reference Table to Calculate Total FP Count 362

Reference Table to Calculate VAF from GSC--Total Degree of Influence 363

Appendix B: Reference Tables: Data Function Points 365

Internal Logical Files and External Interface Files 365

External Inputs/External Outputs/External Inquiries 366

Bibliography 369

Index 373


I never imagined that writing a book would be such an exhausting but exciting experience. Originally I only had a mental picture of how the book would evolve, with certain key aspects of software estimation I intended to write down. But as the chapters unfolded one after another, the thoughts poured out more freely. The difficult part was organizing the thoughts into a structured way of presentation, adding tables and diagrams to enhance the enumeration, and tying up other loose ends to make the whole discussion complete in all respects (almost all). I hope I have been successful in doing this.

Although I had fairly deep knowledge and experience in software estimation techniques from my early years as an IT professional, it was at Infosys that I had the extraordinary experience of doing a deep dive into a huge variety of estimation-related interactions. Having personally trained more than 500 software professionals at Infosys on Function Points and other estimations methods, the amount of knowledge I acquired during these sessions was huge. Added to this was the visibility I gained as an estimation expert, which brought another storehouse of enriched knowledge. This enrichment happened through a regular stream of queries and issues that the project managers, programmers, and architects brought to me. Analyzing and solving these issues was exciting, although challenging. But the biggest benefit was to me, that of improving my estimation skills. Every situation was unique and needed interpretation and application of a variant of standard estimation methods.

IT professionals who have been working with large outsourcing organizations similar to Infosys across the globe have likely experienced a fairly wide variety of project execution situations during their service. The experience takes various forms, including project execution, technical challenges, customer interactions, testing and debugging issues, and to some extent estimation-related challenges. I have been quite fortunate to have received the maximum experience of estimation-related challenges across a wide variety of projects, either directly or through issues and challenges posed to me by project teams. It is this experience that I have hoped to put together in the form of this book and share with a global community of IT professionals.

Quite frequently I have seen IT professionals in need of assistance to arrive at a good estimation figure for a complex or unique project. I have tried to provide that assistance, realistically and practically, throughout this book. I would receive the ultimate satisfaction from knowing that IT professionals have been able to resolve the majority of estimation-related issues through the examples and instruction in this book!

Layout of Chapters

Having been actively involved in software project management and software estimation-related activities for a long time, direct interaction with software project managers, architects, and programmers was among the many benefits I received. The layout of the chapters of this book has been designed to start with general software estimation topics, including an introduction to basic estimation concepts, followed by a discussion of the function point estimation method and, finally, in later chapters, coverage of a variety of other software project estimation needs.

Chapter 1, "Introduction," has been written as an introduction to estimation concepts for project managers and programmers who have had very little exposure to estimation principles and the ingredients that constitute estimation. This chapter broadly covers basic aspects of how estimations are done in different project execution situations and how these estimates can be refined through continuous improvement cycles.

Chapter 2, "Role of Estimation in Software Projects," takes you forward toward establishing a link between estimation and software project execution. The intention is to explain various complexities of software projects and show how estimates also need to be customized accordingly. Complexities include project execution lifecycle models, technology platform variations, and project size. Project managers with previous project execution and basic estimation related exposure can skip this chapter.

Chapter 3, "A Study of Function Point Analysis," takes you through the various aspects of the IFPUG Function Point Analysis (FPA) method. The FPA method is discussed in full detail here, including discussion on how to identify attributes of the various components of the FPA method. IT professionals who do not have a good knowledge of IFPUG FPA method should definitely read this chapter in detail.

Chapters 4 and 5 cover "Data Functions" and "Transactional Functions" extensively. For IT practitioners, it is essential that a mapping of the FPA estimation method is provided to the actual software project execution process. These chapters provide the detailed mapping along with extensive examples from real software project situations. If you have gone through Chapter 3, it is advisable to read Chapters 4 and 5 also.

Chapter 6, "General System Characteristics," has been especially written to delve into the most critical and complex part of the IFPUG FPA method. Estimators have often experienced difficulty in making the right judgment of the correct level of impact (degree of influence) of each of the 14 general system characteristic (GSC) parameters. An effort to map the GSCs to the software architecture and its performance parameters have been made here. This chapter should be very interesting to serious estimators.

Chapter 7, "Size, Effort, and Scheduling of Projects," has been put together to help understand the process of converting the software size, as discovered in earlier chapters, to effort and schedule. Criticality of certain software project execution environment including productivity of the team, resource loading, and use of tools has been used as important input to derive project effort and schedule. All estimators, managers, and even programmers should definitely go through this chapter.

Chapter 8, "Estimation Flavors," exposes you to some of the practical estimation-related problems encountered during actual project execution. Typical estimation methods provide us with basic estimation processes that are usable in software development projects and sometimes in maintenance projects. But this is not the total reality in an IT organization environment. There are a host of other project execution varieties including migration, reengineering, porting, and more. This chapter picks up a few such popular software projects and maps the standard estimation method (IFPUG FPA) to the situations.

Chapter 9, "A Sense of Where You Are," addresses the dynamic project execution situations and how estimates are required to be revisited at every milestone stage. It explains how the information about the executed part of the project can be effectively analyzed and utilized to predict the remaining project execution effort and duration.

Chapter 10, "Tips, Tricks, and Traps," brings to you a variety of complexities that occur during project execution situations and provides possible solutions on how to tackle these situations. This chapter will be very handy to estimators who face many complex project execution scenarios.

Chapter 11, "Insourcing versus Outsourcing," discusses various aspects of project execution that are unique to situations when the project is executed through insourcing as against the situation when the project is executed through an outsourcing vendor. The focus is on the way estimates are impacted by insourcing and outsourcing situations.

Chapter 12, "Key Factors in Software Contracts," will be of great interest to managers and software professionals involved in preparing software contracts. Popular contracting models involving fixed price, time, and material are discussed with respect to impact on estimation process. Also discussed are certain project execution lifecycle models that have a direct impact on estimations.

Chapter 13, "Project Estimation and Costing," takes you further from project sizing and effort estimations to converting them into actual costs. Discussions on aspects of resource loading based on project execution phases, technical complexities, and its impact on overall costs will help you understand some of the flavors of project costing.

Chapter 14, "Other Estimation Methods," is an important chapter for estimators and managers who are keen to know more about additional popular estimation methods (other than the function point method). This chapter discusses aspects of how various estimation methods are modeled based on heuristic and parametric approaches. Brief discussions on a few estimation methods, including Delphi method, COCOMO II, and COSMIC-FFP, are covered.

Chapter 15, "Estimation Tools," gives you key tips on features you should look for while selecting estimating tools for procurement. A comprehensive list of popular tools available in the market, along with a brief discussion on each tool's features, is provided.

Chapter 16, "Estimation Case Study," is perhaps one of the most important chapters for all serious software professionals, estimators, and managers. The first case study in this chapter extensively covers details of the estimation process for typical development projects. Also provided is a case study on estimation for executing an enhancement request in a maintenance project.

With the intention of providing ready-to-use formats for easy and quick counting of Function Point parameters like data and transaction functions, I have provided sample tables in Appendixes A and B.

Bangalore, 2007

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews

Practical Software Estimation: Function Point Methods for Insourced and Outsourced Projects 5 out of 5 based on 0 ratings. 1 reviews.
Guest More than 1 year ago
Much of the book is devoted to explaining the Function Point method for estimating the size of a software package that has yet to be written. The basic problem is that software is so intangible compared to designing hardware. Which makes it hard to define objective metrics. But the author suggests that finding the function points of a software package is the best approach. He also points out a key distinction between the size and the effort needed to write the package. The effort is essentially the number of person months. If you can get a reliable estimate of the size, then estimating the effort should be easier. While the book gives detailed explanations of how to find the function points, there is still an inherent subjectivity. Minimised mainly through experience. You need to work on several projects and apply the method. The strongest point in favour of function points could be that it is independent of how the software is written. To an American reader, a major interesting aspect of the book is its take on insourcing versus outsourcing. The author is a top executive at Infosys, one of the largest Indian outsourcing firms. You should look at chapter 11, which debates this issue. A commendably balanced treatment, giving tables that clearly lay out the pros and cons of either approach. There is no bias towards going with outsourcing.