Chapter 1. Managing Decisions

1.1 Chapter Objectives

This chapter introduces concepts about evaluating decisions for software development projects and other software engineering efforts. This chapter will help you understand the purpose, rationale, and application of a model for evaluating decisions. Succeeding chapters will illustrate how to apply the model to decisions being made to manage various aspects of software projects and to handle problems faced by the stakeholders in case scenarios. Managing decisions involves identifying a problem to be solved, formulating and evaluating alternative solutions to the problem, selecting among the alternative solutions, and executing the decision or implementing the solution. The model discussed in this chapter applies to the following phases: identifying the problem, formulating and evaluating alternative solutions, and selecting among alternative solutions or decision. The case studies in the succeeding chapters focus on these phases but may also include the execution aspect of managing decisions.

1.2 Context

A decision involves passing judgment on an issue under consideration. It is commonly understood to be the act of reaching a conclusion or of making up one’s mind. All software projects involve making decisions. Even the act of not making a decision is a decision. For example, if a software project manager chooses to ignore a project member’s request for more resources, the manager is making a decision not to act and must deal with the consequences of this noncommittal decision. Increasing a software professional’s responsibility increases the number of decisions that the professional must make. This book will explore decisions made by different software project stakeholders and will shed light on how these decisions can be made.

The importance of managing the way in which project decisions are made is evident by the numerous publications that discuss decision making, particularly in the context of managing projects, of managing project risks, and more specifically of managing projects involving product development. The following references are just a few select examples of current publications in these areas. For more about decision making as an integral part of project management, see Cleland and Ireland (2007), McManus (2004), Pollack-Johnson and Liberatore (2006), and Verine and Trumper (2007). For more about the relationship between decision making and risk, see Chapman and Ward (2002), Dillon and Tinsley (2008), Hussey and Hall (2007), and Warkentin et al. (2009). For product development project decisions, see Barry et al. (2006), Gutierrez et al. (2008), Krishnan and Ulrich (2001), Messerschmitt (2004), and Schmidt et al. (2001) With the rise of global development, there is also an increasing interest in the effect of cultural, geographical, and time differences on how decisions are made within organizations and projects. For a current discussion of these issues, see Bourgault et al. (2008), Brett (2001), Espinosa et al. (2007), Mojtahedi et al. (2008), Shore (2008), and Wang and Liu (2007).

In general, software professionals do not understand how to systematically make decisions that result in software projects that are considered to be successful by the project stakeholders. One main problem is that decision makers for software projects often do not state or analyze the inputs and outputs of their decision processes specifically with respect to the needs and expectations of the stakeholders. They may recall that a solution was successful for a particular problem, but then they are surprised when the solution is not successful in solving a similar problem in which the stakeholders have different expectations. This book focuses on the viewpoints of different software project stakeholders to help you refine your decision-making processes so that the resulting solutions are more likely to satisfy stakeholder needs and values.

In general, software project stakeholders make decisions to satisfy their expectations regarding the scope of the project deliverables, the time for the project (schedule), the quality of the project deliverables or product, and the cost (budget). Figure 1-1 shows a model of the expectations that stakeholders have for software projects and the project deliverables.

Figure 1-1: Stakeholder expectation model

image

The model shows that the dimensions of stakeholder expectation (scope, time, quality, and cost) are related. Stakeholders trade different values for scope, time, quality, and cost when establishing the requirements for a software project. Prioritizing their expectations can help stakeholders to make trade-offs more easily and effectively. Different software project stakeholders make different decisions to support their interests. They have different inputs feeding their decision process and different expectations about the outcomes of their decisions. For instance, stakeholders have different levels of tolerance for the risks associated with the decisions that they make.

Consider an example of how software stakeholders make decisions based upon their expectations with respect to scope, time, quality, and cost. Suppose a customer decides upon an acceptable budget for a specified work product, schedule, and quality. Likewise, the solution provider establishes a definition of quality to satisfy both the customer’s expectations for the work product as well as the product standards set by the solution provider (who has a reputation in the market to maintain). The solution provider then determines an amount to charge that factors in the cost of developing the work product to satisfy the customer’s expectations regarding scope, time, and quality.

But what happens if the customer’s acceptable cost is lower than the amount that the solution provider wants to charge? This case would generate another set of decisions. Will the customer and solution provider agree to negotiate the amount to be charged? Will the stakeholders consider alternative scopes, schedules, levels of quality, and budgets? Or will the stakeholders decide that they are unwilling to negotiate an amount to be charged that is agreeable to both of them?

The customer may decide to pursue other solution providers and find that the costs posed by these solution providers are significantly higher than the amount asked by the first solution provider. The customer may then discover that the first solution provider in the meantime has taken on other projects and will not be available to perform the work until a future time that is not acceptable to the customer. What will the customer do now? Did something go wrong in the customer’s decision-making process?

This customer–solution provider scenario highlights the interconnected or causal nature of decision making: One good or poor decision frequently leads to another good or poor decision. As the scenario described, a mismatch between the customer’s acceptable cost and the solution provider’s desired price may result in a cascade of successive decisions that eventually may leave the customer with the choice of selecting a solution provider who would charge a higher amount or abandoning the desired work to be done.

Therefore, it is important that stakeholders understand the factors that affect their decisions as well as the potential consequences of their decisions. Project delays and failures are usually related to a series of poor decisions. When asked how a project becomes a year late, Frederick Brooks answered, “One day at a time” (Brooks 1995, 160). We suggest that a more revealing answer is “One decision at a time.”

One way to solve the problem of interconnected decisions is to disconnect them as much as possible, but this solution is not always applicable. For instance, a mismatch between customer and solution provider expectations is common. The issue is how to manage the stakeholder decisions to resolve the mismatch in a way that leads to the best possible outcome. The stakeholders need a systematic way to make software engineering decisions that are likely to lead to successful results. They also need a management strategy to monitor and correct less than optimal decisions before further harm is done to a project.

The purpose of this book is to help you refine your decision-making processes and decision management strategies. We examine the decision-making process with respect to the decision evaluation model presented in the next section. The model is a visualization of factors that are used to make decisions in software development and software project management. The model also provides decision makers with a systematic way to analyze the inputs and outputs of the decision-making process. The book shows how software project stakeholders use their expectations regarding scope, time, quality, and cost as inputs to making project decisions in case scenarios.

The model emphasizes that every decision incurs some amount of assumed risk and that the solution may not succeed in solving the stated problem. It is important for decision makers to understand the risk assumed when making a decision because it may be unacceptable to the project stakeholders. Assumed risk may accumulate over time to a level that is unhealthy for software projects. The objective is to recognize decision situations that need to be carefully managed because (1) the risk assumed in making these decisions is high or (2) the cost associated with unsuccessful outcomes to these decisions is high. The case study analyses in the book show how the model can be applied to make less risky decisions for critical software project management and engineering scenarios. In particular, the case study analyses show how stating the inputs and outputs of the decision model in terms of the stakeholder expectations helps reduce the risks assumed by alternative solutions.

The next section and the remaining chapters in the book will answer questions such as the following within the context of software projects:

• What do decision makers know when making decisions?

• Do decision makers use a process when making decisions?

• Are all decisions of equal value?

• Are software project decisions different from those for other projects? If so, how?

• What does it mean to manage decisions?

• Why is it important to manage decisions?

1.3 Decision Model for Software Engineering

For many people, the decision-making process consists of three basic (and usually vague) stages:

1. Information goes into a decision process.

2. A person-dependent miracle occurs.

3. A solution or decision comes out.

Professionals often consider people to be experts or gurus in their fields if they can make good decisions easily. This section gives an overview of a decision model whose purpose is to help software professionals manage their decision processes so that they better understand the solutions they generate.

The PEAK decision model presented in Figure 1-2 does not indicate “what a particular decision should be.” It simply implies that stakeholders need to carefully examine their decision processes to help ensure that successful decisions are made. When making decisions, stakeholders should consider the inputs and their relationship to the solution as well as the risk assumed with alternative solutions. The model provides insight into how the inputs and outputs of the decision-making process influence the way in which decisions are made.

Figure 1-2: PEAK decision model

image

The inputs to the decision model are the following elements:

(P) Problem: What is the issue to be resolved or the problem to be solved? The problem statement should provide a clear representation of what needs to be solved.

(E) Experience: From prior events, what does the decision maker know or know how to do that might help with this problem? Has the decision maker seen or solved a problem like this one before? How appropriate and accurate is the decision maker’s historical information?

(A) Assumptions: What information is accepted as fact without having evidence? What information about the problem does the decision maker abstract away because the information is not thought to be relevant to the solution?

(K) Knowledge: What conceptual understanding or factual basis can help the decision maker with the problem? What has the decision maker learned since last dealing with a problem like this? What facts does the decision maker have about the problem? What is the environment that surrounds this problem? For instance, when looking at military problems to be solved, soldiers might ask, “What is the current situation and terrain?”

The outputs from the model are the following elements:

Solution: What do the stakeholders need in order to solve the problem or to resolve the issue? What alternative solutions are feasible, and why? What are the benefits and cost associated with each alternative? Have the relevant stakeholders discussed the issues concerning the alternative solutions and expressed their preferences? The stakeholders may not know whether a solution is successful until they implement it. The results, whether successful or not, of implementing a decision feed back into the model as part of the decision maker’s knowledge and experience. In response to a colleague who asked whether he thought himself to be a failure, Thomas Edison said, “Not at all. Now, I definitely know more than a thousand ways for how NOT to make a light bulb” (Rovira and Trias de Bes 2004, 1).

Assumed Risk: What is the probability that the solution will not work as envisioned? When a stakeholder makes a decision, the stakeholder assumes some level of risk that the solution or decision will not lead to a successful result. Risk is a consequence of making decisions. What are the risks associated with the alternative solutions? Have the relevant stakeholders discussed these risks with respect to their preferences for the alternatives?

Even if the decision maker is not aware of them, the inputs and outputs of a decision always exist when a decision is being made. To manage their decisions, stakeholders need to identify and manage these inputs and outputs when making decisions. The case studies in the book will describe situations in which most but not necessarily all of the inputs are known. Each case study will present the problem, the assumptions, and many facts. You will bring other knowledge and experience as inputs to the decision model. This book will help you use the inputs and feasible outputs of the model, as they occur in the case studies, to evaluate your decision processes.

So, why do decision makers need a model for evaluating decisions? A model helps decision makers think about the following aspects of their decision processes:

• Information that should be considered in making decisions

• The impact that the inputs to the decision process have on the outputs

• Solutions that are feasible with respect to the nature of the problem

• The assumed risk associated with alternative solutions

• Ways to improve the management of decisions

The remainder of this section provides four examples to illustrate how you can apply the model to the decision process. These examples clarify how to apply the model to evaluate alternative solutions and then to make a decision by selecting the best alternative. The first example, “Software Test Rerun Problem,” shows how to identify the inputs and outputs to a decision regarding whether to rerun a software test. The second example, “California Bridge Problem,” demonstrates how to apply the model to the more complex problem of building a bridge that can withstand earthquakes, a major issue for the California Department of Transportation. This example demonstrates how newly acquired knowledge feeds back into the decision-making process. The third example, “Unfamiliar Legacy Code Problem,” highlights the risk that is assumed when making a decision. The last example, “Data-Processing Problem,” clarifies why it is important to understand the nature of the real problem before working on a solution. The diagram shown with each story problem summarizes key inputs and outputs for the decision being made.

1.4 Summary

As shown in the example problems, the decision model presented in this chapter does not define your decision process. The model helps you better manage the inputs and outputs to your decision processes and thereby better evaluate your decisions. The case study analyses in the book will show how software professionals can achieve consistently good decisions by verifying that the inputs to their decision processes are valid and correct. You should be aware that there is no guarantee that decisions generated using the model will have successful results. Any one of the following events could occur:

• The decision makers may not apply the model correctly.

• The stakeholders may not implement solutions or decisions correctly.

• The decision makers may not understand reality and therefore may not identify valid or correct inputs.

If the results of the solutions or decisions generated using the decision model do not turn out as planned, the decision makers should review the process they used to make the decision to find any flaws in their understanding of the problem and other inputs. The decision model provides software project stakeholders with a way to analyze the results of their solutions or decisions and to check their understanding of how to manage the decision process. Software professionals can also use the model to reflect on decisions with good outcomes as well as those with poor results. Over time, software project managers and engineers will develop “patterns of thinking” about what constitutes a good decision for specific types of software project management and engineering problems. Knowledge acquired through reflection on past decisions can feed back into future decision making.

The book demonstrates how to apply the decision model to decisions in nine key areas of software engineering. Each chapter focuses on one key area and shows how the model applies to decision making to manage software projects in this area. Though its purpose is to help you make successful decisions, the book cannot model every software engineering decision that you will encounter. Therefore, we have selected the “high-value” decisions that frequently make or break software projects.

Lastly, we must emphasize that a decision process is individualistic. The purpose of this book is to help you better evaluate your own decision processes. The idea is for you to use the concepts presented in this chapter to model the inputs and outputs of your decision processes. Different people might need more or less of the inputs for specific problems, but all decision makers will need some of these inputs to develop solutions. Finally, we want you to understand the concept of risk associated with managing decisions. Managing decisions by managing the risk associated with these decisions is essential to successful software project management.

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

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