Estimating Software Costs: Bringing Realism to Estimating

Estimating Software Costs: Bringing Realism to Estimating

by Capers Jones
Estimating Software Costs: Bringing Realism to Estimating

Estimating Software Costs: Bringing Realism to Estimating

by Capers Jones

eBook

$64.99  $86.40 Save 25% Current price is $64.99, Original price is $86.4. You Save 25%.

Available on Compatible NOOK devices, the free NOOK App and in My Digital Library.
WANT A NOOK?  Explore Now

Related collections and offers


Overview

Deliver bug-free software projects on schedule and within budget

Get a clear, complete understanding of how to estimate software costs, schedules, and quality using the real-world information contained in this comprehensive volume. Find out how to choose the correct hardware and software tools, develop an appraisal strategy, deploy tests and prototypes, and produce accurate software cost estimates. Plus, you'll get full coverage of cutting-edge estimating approaches using Java, object-oriented methods, and reusable components.

  • Plan for and execute project-, phase-, and activity-level cost estimations
  • Estimate regression, component, integration, and stress tests
  • Compensate for inaccuracies in data collection, calculation, and analysis
  • Assess software deliverables and data complexity
  • Test design principles and operational characteristics using software prototyping
  • Handle configuration change, research, quality control, and documentation costs

"Capers Jones' work offers a unique contribution to the understanding of the economics of software production. It provides deep insights into why our advances in computing are not matched with corresponding improvements in the software that drives it. This book is absolutely required reading for an understanding of the limitations of our technological advances." --Paul A. Strassmann, former CIO of Xerox, the Department of Defense, and NASA


Product Details

ISBN-13: 9780071776790
Publisher: McGraw Hill LLC
Publication date: 05/10/2007
Sold by: Barnes & Noble
Format: eBook
Pages: 644
File size: 11 MB
Note: This product may take a few minutes to download.

About the Author

Capers Jones is a leading authority in the world of software estimating. He was the founder and chairman of Software Productivity Research, where he currently serves as chief scientist emeritus.

Read an Excerpt

Chapter 12: Automated Estimates from Minimal Data

Among software project managers, having full information about a software project to create an initial cost is a rarity. Estimates are demanded by both clients and senior management before the requirements are known, before the team is assembled, and before the tools and methods are selected. The majority of early cost estimates have to be produced in a hurry with less than complete information about the factors that will influence the outcome of the project.

This chapter discusses some of the estimating features that commercial estimating-tool vendors have developed to allow useful estimates from imperfect and partial information. These early estimates have the advantage of being easy and very quick to create. Often, from the time an estimating tool is turned on until the estimate is finished is a matter of less than five minutes. Of course, no one can expect high precision from estimates that are based only on a few known factors.

Whether software cost estimation is performed manually or via MT., means, it is still a complex technical activity that requires dealing with a large number of rules and with many kinds of adjustment factors. However, with estimating tools many of the factors are assigned default values or can be inherited from similar projects.

The commercial software-estimating tools are usually calibrated so that average performance is the assumed value for all settings and This means that when you are creating an initial cost estimate and don't yet know all of the information needed for high Precision you can simply accept the average settings for such topics assignment scopes, available workhours, or team experience levels and create preliminary estimates using these default settings until more accurate information is known later.

To give a framework for discussing the sequence of activities that must be completed when constructing an initial software cost estimate for a project, three stages can highlight the basic sequence of software-estimating activities:

    Stage 1: Recording administrative and project information

    Stage 2: Preliminary sizing of key deliverables

    Stage 3: Producing a preliminary cost estimate

As a general sequence describing the way early software estimation works, these three stages apply both to software cost estimation tools and to manual software cost estimation methods.

As we move through the stages of preparing software cost estimates, note that the same factors that influence the outcome of the estimate are also key factors for software measurement purposes. This explains why so many of the software cost estimating vendors are also measurement experts and have benchmarking services: You cannot build an effective software cost estimating tool without substantial historical data from which to derive the algorithms.

For any kind of software cost estimate, some kind of input information has to be provided by the users, sizing of various deliverables must occur, adjustments to basic estimates for experience and complexity and other factors must be made, and all of the pieces of the estimate must be totaled at the end to produce the final estimate.

We'll begin our tour of automated estimating by examining the minimum kinds of information needed to do preliminary, early estimates. Then we will move to the more extensive kinds of information needed to calibrate and adjust the estimate for optimal precision.

Let us now consider the three software cost estimating stages in sequence, starting with the minimum amount of information that has to be provided in order to allow at least a rough estimate using commercial software-estimating tools.

Stage 1: Recording Administrative and Project Information

Since software cost estimates will have a life expectancy that can run from weeks up to several years, the first kind of information that needs to be recorded is administrative information, such as the name of the project for which the estimate is being prepared, and some information about the participants in the estimating process so that they can be contacted if needed.

Most items of administrative information are straightforward and readily available and are known even before the requirements begin. A few optional topics are exceptions, however, such as recording a standard industry classification or identifying the starting date of the project in question.

Following are samples of some of the questions used by the author and other vendors of commercial software cost estimating tools to collect basic administrative information when performing software cost estimates.

This administrative information is optional in terms of getting some kind of estimate out of a commercial software-estimating tool. However, to keep one project's estimate from being confused with another, at least the names of the project, the project manager, and the person preparing the estimate should be recorded. Also, this kind of administrative information will allow an estimate to be picked up after a period Of weeks or months without confusion as to which project it deals with.

The security level is optional for many estimates, but is an important item for military and classified software projects. Security may also have relevance for software estimates in competitive situations, such as bids, or for software estimates being prepared in the course of litigation, such as tax cases or breach of contract cases.

The project name is included for convenience in telling one estimate from another, since any large company may have dozens of ongoing software projects in any given month.

The estimate number is useful in distinguishing early estimates from later estimates. For example, an estimate numbered 1 for a particular project is not likely to be as firm as an estimate numbered 6 for the same project.

For estimates that are being prepared for litigation, it is important to record the name of the estimating tool. Also, some large enterprises have as many as half a dozen different software cost estimating tools available, so it is useful to record which tool is used for which estimate. Of course, most of the commercial software cost estimating tools identify themselves on their printed outputs and also on screen, but some in-house estimation tools may not do this.

The project description is optional and, of course, does not affect the outcome of a project at all. Its purpose is to facilitate separating one project from another if a company does a lot of similar kinds of work. For example, as the Eurocurrency conversion work expands throughout the world, project descriptions might be used for such purposes as "Euro conversion for project A," "Euro conversion for project B," and so on.

The standard industry classification (SIC) code is optional, but can be very useful. The SIC coding method was developed by the U.S. Department of Commerce to assist in performing statistical studies of trends within industries. Many large-scale economic studies utilize SIC codes, including software benchmarking studies.

There are two-digit and four-digit versions of the SIC code, with the four-digit form giving greater granularity. The full set of SIC codes and their definitions are available from the Government Printing Office in Washington, D.C., or even as advertisements from such companies as Dun and Bradstreet.

The purpose of recording the optional SIC codes is to allow benchmark comparisons of your projects with similar projects within the same industry. Although use of the SIC code is purely optional, if you want to compare your projects against a knowledge base of projects from within your own industry, then use of the SIC code is recommended. . . .

Table of Contents

Foreword Preface Acknowledgments Section 1 Introduction to Software Cost Estimation Chapter 1 Introduction Chapter 2 The Origins of Software Cost Estimation Chapter 3 Six Forms of Software Cost Estimation Chapter 4 Software Cost Estimating Tools and Project Success and Failure Rates Chapter 5 Sources of Error in Software Cost Estimation Section 2 Preliminary Estimation Methods Chapter 6 Manual Software Estimating Methods Chapter 7 Manual Software Estimating Methods Derived from Agile Projects and New Chapter 8 Automated Estimates from Minimal Data Section 3 Sizing Software Deliverables Chapter 9 Sizing Software Deliverables Section 4 Cost Estimating Adjustment Factors Chapter 10 Compensation and Work-Pattern Adjustments Chapter 11 Activity Pattern Adjustment Factors Chapter 12 Software Technology Adjustment Factors Section 5 Activity-Based Software Estimating Chapter 13 Estimating Software Requirements Chapter 14 Estimating Software Prototypes Chapter 15 Estimating Software Specifications and Design Chapter 16 Estimating Design Inspections Chapter 17 Estimating Programming or Coding Chapter 18 Estimating Code Inspections Chapter 19 Estimating Software Configuration Control and Change Management Chapter 20 Estimating Software Testing Chapter 21 Estimating User and Project Documentation Chapter 22 Estimating Software Project Management Section 6 Maintenance and Enhancement Cost Estimating Chapter 23 Maintenance and Enhancement Estimating Chapter 24 Software Cost-Estimating Research Issues Index
From the B&N Reads Blog

Customer Reviews