About the Book
Effective decisions are crucial to the success of any software project, but to make better decisions you need a better decision-making process. In Evaluating Project Decisions, leading project management experts introduce an innovative decision model that helps you tailor your decision-making process to systematically evaluate all of your decisions and avoid the bad choices that lead to project failure.
Using a real-world, case study approach, the authors show how to evaluate software project problems and situations more effectively, thoughtfully assess your alternatives, and improve the decisions you make. Drawing on their own extensive research and experience, the authors bridge software engineering theory and practice, offering guidance that is both well-grounded and actionable. They present dozens of detailed examples from both successful and unsuccessful projects, illustrating what to do and what not to do.
Evaluating Project Decisions will help you to analyze your options and ultimately make better decisions at every stage in your project, including:
Requirements–Elicitation, description, verification, validation, negotiation, contracting, and management over the software life cycle
Estimates–Conceptual solution design, decomposition, resource and overhead allocation, estimate construction, and change management
Planning–Defining objectives, policies, and scope; planning tasks, milestones, schedules, budgets, staff and other resources; and managing projects against plans
Product–Proper product definition, development process management, QA, configuration management, delivery, installation, training, and field service
Process–Defining, selecting, understanding, teaching, and measuring processes; evaluating process performance; and process improvement or optimization
In addition, you will see how to evaluate decisions related to risk, people, stakeholder expectations, and global development. Simply put, you’ll use what you learn here on every project, in any industry, whatever your goals, and for projects of any duration, size, or type.
Table of Contents:
Preface xi
Acknowledgments xxi
About the Authors xxiii
Chapter 1: Managing Decisions1
1.1 Chapter Objectives 1
1.2 Context 1
1.3 Decision Model for Software Engineering 5
Case Study: Software Test Rerun Problem 7
Case Study: California Bridge Problem 10
Case Study: Unfamiliar Legacy Code Problem 12
Case Study: Data-Processing Problem 14
1.4 Summary 18
Chapter 2: Managing Requirements19
2.1 Chapter Objectives 19
2.2 Context 19
2.3 Case Studies 39
Case Study: The New Account Project at HBC 39
Case Study: On Time, Within Budget, but Wrong 54
2.4 Summary 65
Chapter 3: Managing Estimates67
3.1 Chapter Objectives 67
3.2 Context 67
3.3 Case Studies 77
Case Study: Estimation as a Tool 78
Case Study: When a Team Runs a Race 84
3.4 Summary 92
Chapter 4: Managing Plans93
4.1 Chapter Objectives 93
4.2 Context 93
4.3 Case Studies 108
Case Study: To Replan or Not to Replan? 109
Case Study: Managing Plans Is in the Details 125
4.4 Summary 137
Chapter 5: Managing Product139
5.1 Chapter Objectives 139
5.2 Context 139
5.3 Case Studies 146
Case Study: New Technology–Is It Always the Best? 147
Case Study: Why Is This Product Wrong? 159
5.4 Summary 165
Chapter 6: Managing Process167
6.1 Chapter Objectives 167
6.2 Context 167
6.3 Case Studies 174
Case Study: Bank on the Verge 175
Case Study: Damn the Process, Full Speed Ahead 189
6.4 Summary 193
Chapter 7: Managing Risk195
7.1 Chapter Objectives 195
7.2 Context 195
7.3 Case Studies 201
Case Study: SEWeb and Russoft Technologies 201
Case Study: Falcon Edutainment and the RiskSim Project 223
7.4 Summary 231
Chapter 8: Managing People Interactions233
8.1 Chapter Objectives 233
8.2 Context 233
8.3 Case Studies 242
Case Study: To Be or Not to Be: A Sense of Urgency at TestBridge 243
Case Study: A Friend or Foe at Hanover-Tech 258
8.4 Summary 264
Chapter 9: Managing Stakeholder Expectations267
9.1 Chapter Objectives 267
9.2 Context 267
9.3 Case Studies 275
Case Study: TCP Enhancements at Gigaplex Systems 275
Case Study: Tough Sell at Henkel Labs 292
9.3 Summary 304
Chapter 10: Managing Global Development305
10.1 Chapter Objectives 305
10.2 Context 305
10.3 Case Studies 311
Case Study: Globally Distributed Team: FibreNet Project
Case Study: Managing Global Software Development at FibOptia 330
10.4 Summary 341
References 343
Index 355
About the Author :
Dr. Carol Hoover has been actively engaged in software systems design and research for more than 20 years. She heads a start-up company with the goal to launch and grow a business process and technology company that enables organizations to solve management and operational problems at an affordable cost. Her company, BiznessLegion LLC, currently focuses on making best practices available to organizations involved in software engineering and management. As a consultant, Carol leads research involving the analysis and design of real-time software systems. She also shares her experiences with students as an Adjunct Faculty Consultant for Carnegie Mellon University. From 2002-2004, Hoover held director and senior systems scientist positions at Carnegie Mellon University in the Institute for Software Research International. She worked with other faculty to develop and launch innovative programs in software engineering education at the new Carnegie Mellon West Coast campus. She designed scenario-based curriculum for professional master's programs that prepares students for careers in software engineering and project management. As a supervising faculty member, she guided students to achieve program/project goals. In cooperation with corporate partners of Carnegie Mellon, she led the planning and creation of industry-specific projects to meet their needs. Recently she designed and supervised a two-course capstone series that focuses on the consulting practice for the aerospace industry. The inaugural graduate students and clients were from the Lockheed Martin Corporation. Hoover came to Carnegie Mellon University (Pittsburgh, PA) in 1992 as a lecturer for the Masters of Software Engineering Program and led the effort to define and create specialization tracks in the master's program for real-time computing, human-computer interaction, and business management. She also created and taught a course to introduce software engineers to engineering techniques and research relevant to the development of high-quality real-time software systems. Hoover holds a doctorate in electrical and computer engineering at Carnegie Mellon University. She attended graduate school at Ohio State University, where she was a University Fellow and completed her master's of science degree in computer and information sciences in 1987. She was a Graduate Research Intern at NASA Lewis Research Center (Cleveland, OH) after completing her post-baccalaureate degree in computer science and applied mathematics with additional studies in science and engineering at the University of Akron. Prior to 1985, she was involved in education and technology as a computer manager for a U.S. Congressional office, as an educational consultant, and as an educator in the public schools. She has been a member of IEEE and ACM since 1987. She is also a member of Sigma Xi. Mel Rosso-Llopart is currently Associate Director of Carnegie Mellon University's Masters of Software Engineering program, the Director of its Distance Education program, and a Senior Lecturer in both programs. He has extensive experience in research and development, managing project communications, and fiscal project management for large and small projects. He is also well versed in a variety of computing environments, has developed large network configurations, and developed large database applications. He earned Bachelor's degrees in Physics, Biology, and Computer Science at the University of California, and holds a Masters of Software Engineering from the School of Computer Science at Carnegie Mellon University. He is also an SEI-registered Personal Software Process (PSP) instructor. Gil Taran is a faculty member and Associate Director for Corporate Relations in the Master of Software Engineering Professional Programs at Carnegie Mellon University - School of Computer Science. He has experience in planning, development and management of large-scale multi-national projects working mostly with government clients in the financial, operational and defense sectors. He has worked on production as well as simulated systems and is knowledgeable in a variety of computing environments. Taran holds a Masters in Information Security at Carnegie Mellon University. His research interests include risk based decision making, project management games simulations and Activity based/game based learning