Software Process Dynamics
January 2008, Wiley-IEEE Press
PART 1 FUNDAMENTALS.
Chapter 1 Introduction and Background.
1.1 Systems, Processes, Models, and Simulation.
1.2 Systems Thinking.
1.3 Basic Feedback Systems Concepts Applied to the Software Process.
1.4 Brooks's Law Example.
1.5 Software Process Technology Overview.
1.6 Challenges for the Software Industry.
1.7 Major References.
1.8 Chapter 1 Summary.
Chapter 2 The Modeling Process with System Dynamics.
2.1 System Dynamics Background.
2.2 General System Behaviors.
2.3 Modeling Overview.
2.4 Problem Definition.
2.5 Model Conceptualization.
2.6 Model Formulation and Construction.
2.8 Model Assessment.
2.9 Policy Analysis.
2.10 Continuous Model Improvement.
2.11 Software Metrics Considerations.
2.12 Project Management Considerations.
2.13 Modeling Tools.
2.14 Major References.
2.15 Chapter 2 Summary.
Chapter 3 Model Structures and Behaviors for Software Processes.
3.2 Model Elements.
3.3 Generic Flow Processes.
3.4 Infrastructures and Behaviors.
3.5 Software Process Chain Infrastructures.
3.6 Major References.
3.7 Chapter 3 Summary.
PART 2 APPLICATIONS AND FUTURE DIRECTIONS.
Introduction to Applications Chapters.
Chapter 4 People Applications.
4.2 Overview of Applications.
4.3 Project Workforce Modeling.
4.3.1 Example: Personnel Sector Model.
4.4 Exhaustion and Burnout.
4.4.1 Example: Exhaustion Model.
4.6 Team Composition.
4.7 Other Application Areas.
4.8 Major References.
4.9 Chapter 4 Summary.
Chapter 5 Process and Product Applications.
5.2 Overview of Applications.
5.3 Peer Reviews.
5.4 Global Process Feedback (Software Evolution).
5.5 Software Reuse.
5.6 Commercial Off-the-Shelf Software (COTS)-Based Systems.
5.7 Software Architecting.
5.8 Quality and Defects.
5.9 Requirements Volatility.
5.10 Software Process Improvement.
5.11 Major References.
5.12 Provided Models.
5.13 Chapter 5 Summary.
Chapter 6 Project and Organization Applications.
6.2 Overview of Applications.
6.3 Integrated Project Modeling.
6.4 Software Business Case Analysis.
6.5 Personnel Resource Allocation.
6.7 Earned Value.
6.8 Major References.
6.9 Provided Models.
6.10 Chapter 6 Summary.
Chapter 7 Current and Future Directions.
7.2 Simulation Environments and Tools.
7.3 Model Structures and Component-Based Model Development.
7.4 New and Emerging Trends for Applications.
7.5 Model Integration.
7.6 Empirical Research and Theory Building.
7.7 Process Mission Control Centers, Analysis, and Training Facilities.
7.8 Chapter 7 Summary.
Appendix A: Introduction to Statistics of Simulation.
A.1 Risk Analysis and Probability.
A.2 Probability Distributions.
A.3 Monte Carlo Analysis.
A.4 Analysis of Simulation Input.
A.5 Experimental Design.
A.6 Analysis of Simulation Output.
A.7 Major References.
A.8 Appendix A Summary.
Appendix B: Annotated System Dynamics Bibliography.
Appendix C: Provided Models.
This book provides executable models and simulation tools: How to actually do hands-on modeling of software processes with system dynamics, and it synthesizes all previous work in the area. Included are descriptive summaries of the best research and applications.
It is accompanied by tools, executable model examples and other references for people to start modeling with.
There are a variety of exercises in the book that are provided to serve as homework assignments, exam questions and/or even as major research projects.
"When Ed Yourdon says that this is possible the 'best software engineering book' of the year, and possible the decade, one can hardly argue." (Ubiquity, June 10-16, 2008)This book is a critically important, timely and exciting contribution to software project management. In the last two decades, the application of System Dynamics to model and study the software development process has added significantly to our understanding of the complexities of software project dynamics. Transferring the lessons learned into practice has heretofore been hampered by the insufficiency of accessible teaching materials. Now, Ray Madachy has given us a major and much needed new textbook in his Software Process Dynamics.
Madachy's book is a comprehensive compilation of the wisdom and knowledge gathered over more than twenty years of research in the field, and contains a wealth of material covering all important aspects of software project dynamics. Because many of the concepts are accompanied by example models, Madachy has provided the practitioner with the building blocks and the tools to move ahead. This book is a gift to software project managers everywhere.
-Dr. Tarek Abdel-Hamid, Professor in the Graduate School of Business and Public Policy at the Naval Postgraduate School, author of Software Project Dynamics and pioneer in the field.
One of the best techniques for reasoning about the effects of complex interacting changes is the System Dynamics modeling framework that Ray Madachy presents in this book. As I’ve found in numerous applications of the method, it enables project personnel to model such effects and run the models to better understand the implications of candidate project strategies and decisions. His modeling experience as a technical leader in diverse organizations have given him a broad and deep perspective on the critical success factors for modeling various classes of software decision situations, while his teaching and research has enabled him to develop an integrating framework that makes system dynamics modeling much easier and cost-effective to learn and apply.
Overall, the book brings together a tremendous amount of useful process modeling material and experience in using it in practical software decision situations. It organizes this material into a unifying framework that makes it easier to apply and explain, and illustrates it with a wide variety of useful examples. I believe that the book will serve as a standard reference for the software process dynamics field and a great help to practitioners and researchers for a good long time.
-Dr. Barry Boehm, Professor in the Computer Science and Industrial and Systems Engineering Departments at the University of Southern California, Director of the USC Center for Systems and Software Engineering, a member of the National Academy of Engineering, a Fellow of ACM and IEEE, and pioneer in several areas of systems and software engineering
Ray Madachy's new book is not only the best software engineering book of 2007, but quite possibly the most important book of this entire first decade of the 21st century. Many of us were excited by the possibilities of system dynamics modeling and simulation of software projects and processes in 1991 based on the important book Software Project Dynamics by Tarek Abdel-Hamid. But it was ahead of its time, and it didn't incorporate many of the real-world issues and problems confronted by today's project managers. Madachy updates Adbel-Hamid's initial work with discussions of object-oriented methods, agile processes, open-source development, and distributed global development; and he also incorporates the best thinking of software cost models such as COCOMO II.
Project managers, IT executives, and CIO's often wring their hands and ask why software development can't be more of an engineering discipline, rather than a completely unpredictable form of witchcraft. Now there's an answer, courtesy of Ray Madachy: serious, metrics-based modeling and simulation of software development. Along with a few other gems like Fred Brooks' "The Mythical Man-Month," I predict that "Software Process Dynamics" is going to be one of those key books that every software engineer, and every IT manager, has on his or her desk.
-Ed Yourdon, internationally recognized consultant, author of Death March and over 27 other computer related books, IEEE and ACM member, and one of the most influential people in the software field