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.