Chapter 3. Managing Estimates

3.1 Chapter Objectives

After reading and thinking about the concepts and case studies presented in this chapter, you will be able to do the following:

• Understand what estimation is and what it is not

• Understand when to estimate

• Understand the major approaches of estimation that can be used

• Understand what contributes to an estimation model and its successful use

• Identify key problems with estimation

• Understand key decisions to make with estimation

• Understand how to choose an approach to estimation

3.2 Context

This chapter will help you identify problems with estimation and ways to improve the estimation processes that you use. It will help you see how to gather information and apply that information to improve estimates in the future. Estimation should not be a black art (McConnell 2006) but should become a systematic, disciplined practice that you can use to better support your software development efforts. Estimation is sometimes considered as something that is done to get managers off one’s back or to fill out the paperwork to start a project. We view estimation and evaluating decisions about estimates as essential components of successful software project management.

To begin our discussion of estimation, we need to define the concept of an estimate. Estimates are the information we use to evaluate the cost of a future decision. The following are some commonly used definitions for estimate and estimation:

Estimate: An approximate calculation of quantity, degree, or worth.

Estimate: A judgment of the qualities of something or somebody (Princeton University).

Estimation: The prediction of the quantitative result. It is usually applied to project costs, resources, and durations (Wideman).

Most of these definitions are similar statements about what is needed to make a best guess at a future value. Here we paraphrase the last definition to relate it more directly to software estimation:

Software estimate: An approximate calculation of the scope, time, quality, and cost of a software product (the four dimensions of project stakeholder concern).

The last definition works well for the models used in the book and for the purpose of managing estimates with respect to stakeholder expectations. See Chapter 9, “Managing Stakeholder Expectations,” for further information on how to manage the four dimensions of stakeholder expectation.

So, what do software project managers do to manage estimates? People who manage estimates perform activities such as the following:

• Understanding requirements

• Conceptually designing a solution

• Performing element-wise decomposition (divide)

• Allocating resources from the bottom-up (conquer)

• Allocating overhead

• Estimating construction

• Estimating change management

Table 3-1 describes the activities to be performed when managing estimates in detail. Study the table, and think of any other activities that you may have performed when managing estimates.

Table 3-1: Descriptions of Activities in Managing Estimates

image

image

When performing the activities of managing estimates, you may need to consider multiple dimensions of stakeholder expectation at the same time. In other words, you may have to estimate aspects of projects that are related but not the same, such as scope versus quality or budget (cost) versus schedule (time). Trade-offs of the different dimensions of stakeholder expectation makes estimation decisions difficult and complicated.

Another helpful approach when managing estimates is to view estimates as snapshots in time. As soon as you have more information, you should consider updating your estimates. Even global positioning systems acquire information on a regular basis to update their estimates. With his famous “cone of uncertainty,” McConnell (2006) explained that the only way to increase “certainty” in estimation is to move in time toward the solution. As McConnell suggested, you cannot improve the estimate by staying with your current knowledge. Likewise, Cohn (2005) stated that trying harder at the same point may actually reduce the value of your estimate. Therefore, we propose that you estimate early and often.

Figure 3-1 is a modification of McConnell’s traditional “cone of uncertainty” diagram. It expands the cone to include the ideas of scope and quality so that all four dimensions of stakeholder expectation for projects are discussed.

Figure 3-1: Modified cone of uncertainty showing how estimates for the four dimensions of stakeholder expectation become more accurate as a project progresses

image

Many practices can help narrow the cone and make estimation easier. Historical data, Wideband Delphi (to bring in experience), and even algorithmic models (estimation tools) can all help improve your estimates.

Because of the sheer number of decisions that are dependent on estimates, any improvement in the estimation process can make for a significant improvement across the entire project. Examples of direct decisions that are dependent on estimates appear throughout this book. To understand the direct relationship and impact on project decisions, we will look at estimation decisions that concern the following dimensions of stakeholder expectations:

• Cost

• Scope

• Schedule (Time)

• Quality

As you begin to estimate your software projects, you can manage your estimates and ensure their proper use by understanding and documenting the inputs to your decisions about estimates and by tracking the results of your estimation decisions. Table 3-2 describes some estimation methodologies that can help you to understand your estimates. The rightmost column in the table describes some what-if questions to consider when using a particular technique to evaluate and make decisions about estimates. Explore the table, and determine whether you have used any of these estimation techniques in the past.

Table 3-2: Using Different Estimation Techniques with PEAK

image

Let’s look at how you could use the PEAK model to make decisions about estimates that are based on expert judgment:

(P) Problem: Provide a reasonable representation of the scope, cost, schedule, and quality of the software effort for the organization that the customer will accept.

(E) Experience: This is the history the “expert” has with the type of project being proposed and the types of environments that will be used in the project.

(A) Assumptions: The project is similar enough to past projects that the experts in the company can relate the two efforts. Other assumptions might be the following:

• The expert understands all new technology on the project.

• The scope of the project is similar to the scopes of the other projects with which the expert is familiar.

• The company is not in a hiring phase and therefore not likely to add new people that the expert will not know.

(K) Knowledge: The expert has a very good understanding of the skills that people have and the resources that will be used to solve the problem. The expert clearly understands the problem.

As you can see from these inputs, the solution produced will be at risk if things are changing rapidly around the expert who has to make the decisions. You can think about many projects where people are changing, groups are moving between buildings, or new equipment and technologies are being adopted. You can see how these changes will greatly influence the risk associated with the solution produced by this decision process. As we proceed through the cases, we will discuss the four stakeholder expectation dimensions. You will note how the stakeholders’ views about scope, time, quality, and cost affect their use of different estimation techniques as well as the PEAK inputs to their project decisions.

Estimating Budget (Cost) for Project

An old comic strip shows a scientist in front of a chalkboard with a massive number of equations. The last equation on the board shows the equation “time = $” with the caption “Oh my, time does equal money.”

In the software field, we are expected to accurately estimate the time it will take to do a job that requires creative thought, that usually requires the team members to learn new concepts, and that pushes team members to provide undivided attention for long periods of time. These three factors are difficult to measure and even more difficult to estimate, but we need to deal with these concerns because estimation is a fact that we must handle to exist in the real world. The days of “Take as long as you need and here is a blank check” are over (if they ever existed).

Software is an integral part of systems, and dependency on software is increasing (Commander 2005). Therefore, it is also a significant part of the cost of the project. We not only have to estimate time, but we also have to estimate the resources needed to ensure the time is properly applied. Estimates for the cost of the project are generated from the very first moment a software person provides a value that can be related to time. Time is immediately multiplied by some “factor,” and this generates a cost number. Loaded cost, engineering costs, and shop cost are all values, for example, that are derived from some number of units per hour multiplied by time.

You can apply the decision model to help you generate good estimates. You need to relate the PEAK inputs from the estimation process to the outputs needed from the estimate. Let’s look at the inputs to see how they are tied to the estimation process and then look at the outputs. This will enable you to identify both in the case studies and later in your own projects.

(P) Problem: You need to allocate a value to the resources that will be committed entirely to the project or to any piece of the project. Therefore, if you estimate each piece, the decision process will be repeated multiple times. The allocated values can be time, money, or direct resources that you plan to use on the project.

(E) Experience: This includes what you have done in the past or estimates that you have developed for resource needs in the past that will help you with this estimation problem. How accurate were they, and do you still have the information?

(A) Assumptions: These are things that you assume are “facts” even though you do not have direct evidence to show them as facts. Examples might be availability of people, skill sets people have, or resource availability at the time it is needed. Others might be productivity of people, quality level of products, and reusability of components.

(K) Knowledge: This is what you know and can be confirmed that might help you determine what the project estimate would be. These are the facts you can apply to the requirements that will help you resolve the estimate.

These assumptions in turn tend to contribute to the assumed risks that accompany the solution. We assume a level of productivity that may not be achievable if people get sick, leave their jobs, or get hit by a bus!

Estimating Scope for Project

In addition to the effect of “development” time on cost, there is also the impact of the project scope. Our immediate response on a new project is to try to do everything, but the first thing that we do when the project falls behind is to cut scope.

The reality is that not all scope is of the same priority. You must consider how to prioritize the scope, or you can fall into the trap of thinking everything is of equal value. In fact, if you develop a “threshold of success,” then you can see there are categories for pieces of the scope such as “must have,” “should have,” and “nice to have.” (See Chapter 7, “Managing Risk” for more details.) These categories can quickly set the priority for the scope and help with estimation of the project.

These priorities for the scope determine the inputs into the decision process for estimation. Our decisions about what you can do are based on what you must have and what resources are available. A “must have” requirement that requires an engineer to go to training for a month is still a month away at best. The engineer should not be scheduled for tasks that occur during training, and training should be scheduled prior to when the engineer needs the skill to complete a task. This shows that estimation is also related to the planning decisions. See Chapter 4, “Managing Plans,” for more details.

In estimation of scope for a project, reality, timing, and capability are all part of the decision process. One of the key issues when estimating scope is size. A number of estimation processes look at size or relative size. Some techniques for making decisions about scope (size estimation) are function points (Albrecht 1979), story points (Cohn 2004), and use case points (Schneider and Winters 2001). All support relative size estimation and provide a value for “scope.” Other techniques provide for lines-of-code values, which also give you a feeling for size that can then be used to determine or justify scope.

Using the PEAK model, you can ask the following questions to make decisions about scope:

(P) Problem: What is the scope that is most likely achievable on this project within the constraints?

(E) Experience: What are the reusable components you know about from previous projects that will make this scope achievable?

(A) Assumptions: Should you assume that people currently working on other projects will be free to work on this project and that training will be available for any new technology needed to support the scope?

(K) Knowledge: What skills and resources do you have available for the project?

Estimating Schedule (Time) for Project

There is a difference between development time and clock time. In a sense, development time assumes an ideal world. Every hour will equal one hour of productive work produced. Reality is far from this.

When you estimate the schedule for a project, you almost always look at the things that have gone wrong in past projects. You see these as “unusual” events that affected the project. However, if you were to look over time, you would see that these unusual events are the norm for these types of projects. Things just happen. As you estimate, you are trying to evaluate the future environment. The analogy that best fits this is driving in a car from one place to another.

You have to be able to answer the following three questions in order to answer the age-old children’s question on automobile trips (“When will we get there?”):

• How far did we have to go originally (problem)?

• How far have we traveled so far (experience)?

• How fast are we going now, or what is our average speed (knowledge)?

The first question in the trip analogy concerns the topic of scope. That is, how far do you plan to travel? The second question is a project-tracking issue. What have you done with the time you have already spent? In other words, what distance have you traveled? You can also use the distance traveled and time to generate your “average” velocity (assumption). Knowing the velocity, you can “assume” that if everything remains the same, then the distance left to travel divided by the velocity is the time you have left (solution). You can use this time to estimate the remaining schedule for the project.

Many of the Agile methods specifically call this “calculating the velocity of the team.” These Agile methods combine the estimation, tracking, and planning steps into one action. This can be useful if it is understood.

The following is how to apply the PEAK model to determine a time estimate:

(P) Problem: How long will it take?

(E) Experience: How much have you done?

(A) Assumptions: You can keep doing things at the same rate.

(K) Knowledge: How much did you have to do when you started?

Estimating Quality for Project

Quality is the fourth dimension you need to estimate for a project. The question is, “What type and degree of quality is right for your project?” You need to consider the level of quality that your project can afford. People have a tendency in software to trade quality for time or scope. For example, people trade testing to ship a product on time. This is a direct trade-off. You also have indirect trade-offs such as cutting inspection or reviews from the development process to save time.

The following is how to apply the PEAK model to decide upon the right quality for a project:

(P) Problem: How much quality process is needed to support this project?

(E) Experience: What processes are in place to support the effort?

(A) Assumptions: You know that this level of effort is correct for this project.

(K) Knowledge: What have you done in the past that has worked?

When considered individually for estimation, software project cost, scope, time, and quality have the added benefit of producing multiple estimation views. Table 3-3 summarizes applicable estimation techniques when the focus is each of these dimensions. Examine the table, and identify the techniques that you have used in the past.

Table 3-3: Multiple Views on Estimation

image

3.3 Case Studies

These case studies will emphasis the key issues involved with estimation for software projects. In particular, they will look at overcoming entrenched estimation practices that affect decisions dealing with estimation either adversely or in a ways that are not well understood. The case studies will take a software project manager’s point of view and show you how the software project manager identified, planned for, and corrected the estimation issues affecting their software projects.

The mini case study, “Estimation as a Tool,” examines how people interested in improving their estimation process might begin to look for information that will help them with future decisions about estimates. Most of the techniques for estimation require historical information. Understanding this information and its origin will make using the data easier and more productive for estimating.

The full-length case study, “When a Team Runs a Race,” examines how estimation can be influenced indirectly by aspects that need to be understood. It also examines the influence that multiple projects operating at the same time can have on a currently running project when there are interdependencies of resources, personnel, and developments.

3.4 Summary

This chapter focused on the following activities for managing estimation in the context of decision making for software projects. The items marked with asterisks are involved in making decisions about all types of estimates.

• Understanding requirements (see Chapter 2, “Managing Requirements”)*

• Conceptually designing a solution

• Performing element-wise decomposition (divide)

• Allocating resources from the bottom-up (conquer)

• Allocating overhead

• Estimating construction

• Estimating change management

The case studies in the chapter presented decision issues associated with managing the estimates of current and future projects. The first case study, “Estimation as a Tool,” discussed how you can use the decisions made when gathering information to defend future estimate decisions. The case concerned estimates of overhead allocation and estimate change management. The second case study, “When a Team Runs a Race,” covered the issues of estimate construction as well as divide and conquer.

As you increase your experience in estimation, your PEAK analyses can show you how to better evaluate your decisions about estimates.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset