SOFTWARE PROCESS DYNAMICS Raymond J Madachy IEEE PRESS WILEY-INTERSCIENCE A JOHN WILEY & SONS, INC., PUBLICATION SOFTWARE PROCESS DYNAMICS IEEE Press 445 Hoes Lane Piscataway, NJ 08854 IEEE Press Editorial Board Mohamed E El-Hawary, Editor in Chief R Abari S Basu A Chatterjee T Chen T G Croda S Farshchi B M Hammerli R J Herrick S V Kartalopoulos M S Newman Kenneth Moore, Director of IEEE Book and Information Services (BIS) Catherine Faduska, Senior Acquisitions Editor Jeanne Audino, Project Editor Technical Reviewers Raman Aravamudham, University of Iowa Márcio Barros, UNIRIO/Brazil Guilherme H Travassos, COPPE/Federal University of Rio de Janeiro, Brazil SOFTWARE PROCESS DYNAMICS Raymond J Madachy IEEE PRESS WILEY-INTERSCIENCE A JOHN WILEY & SONS, INC., PUBLICATION Copyright © 2008 by the Institute of Electrical and Electronics Engineers, Inc All rights reserved Published by John Wiley & Sons, Inc., Hoboken, New Jersey Published simultaneously in Canada No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning, or otherwise, except as permitted under Section 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 750-4470, or on the web at www.copyright.com Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permission Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best efforts in preparing this book, they make no representations or warranties with respect to the accuracy or completeness of the contents of this book and specifically disclaim any implied warranties of merchantability or fitness for a particular purpose No warranty may be created or extended by sales representatives or written sales materials The advice and strategies contained herein may not be suitable for your situation You should consult with a professional where appropriate Neither the publisher nor author shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages For general information on our other products and services or for technical support, please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002 Wiley also publishes its books in a variety of electronic formats Some content that appears in print may not be available in electronic format For information about Wiley products, visit our web site at www.wiley.com Library of Congress Cataloging-in-Publication Data is available ISBN 978-0-471-27455-1 Printed in the United States of America 10 CONTENTS Foreword Barry Boehm xiii Preface xvii PART FUNDAMENTALS Chapter Introduction and Background 1.1 Systems, Processes, Models, and Simulation 1.2 Systems Thinking 1.2.1 The Fifth Discipline and Common Models 1.2.2 Systems Thinking Compared to System Dynamics 1.2.3 Weinberg’s Systems Thinking 1.3 Basic Feedback Systems Concepts Applied to the Software Process 1.3.1 Using Simulation Models for Project Feedback 1.3.2 System Dynamics Introductory Example 1.4 Brooks’s Law Example 1.4.1 Brooks’s Law Model Behavior 1.5 Software Process Technology Overview 1.5.1 Software Process Modeling 1.5.2 Process Lifecycle Models 1.5.3 Process Improvement 1.6 Challenges for the Software Industry 1.7 Major References 1.8 Chapter Summary 1.9 Exercises 9 10 10 13 14 16 19 22 22 29 40 45 47 48 49 v vi CONTENTS Chapter The Modeling Process with System Dynamics 2.1 System Dynamics Background 2.1.1 Conserved Flows Versus Nonconserved Information 2.1.2 The Continuous View Versus Discrete Event Modeling 2.1.3 Model Elements and Notations 2.1.4 Mathematical Formulation of System Dynamics 2.1.5 Using Heuristics 2.1.6 Potential Pitfalls 2.2 General System Behaviors 2.2.1 Goal-Seeking Behavior 2.2.2 Information Smoothing 2.2.3 Example: Basic Structures for General Behaviors 2.3 Modeling Overview 2.3.1 An Iterative Process 2.3.2 Applying the WinWin Spiral Model 2.4 Problem Definition 2.4.1 Defining the Purpose 2.4.2 Reference Behavior 2.4.3 Example: Model Purpose and Reference Behavior 2.5 Model Conceptualization 2.5.1 Identification of System Boundary 2.5.2 Causal Loop Diagrams 2.6 Model Formulation and Construction 2.6.1 Top-Level Formulation 2.6.2 Basic Patterns and Rate Equations 2.6.3 Graph and Table Functions 2.6.4 Assigning Parameter Values 2.6.5 Model Building Principles 2.6.6 Model Integration 2.6.7 Example: Construction Iterations 2.7 Simulation 2.7.1 Steady-state Conditions 2.7.2 Test Functions 2.7.3 Reference Behavior 2.8 Model Assessment 2.8.1 Model Validation 2.8.2 Model Sensitivity Analysis 2.8.3 Monte Carlo Analysis 2.9 Policy Analysis 2.9.1 Policy Parameter Changes 2.9.2 Policy Structural Changes 2.9.3 Policy Validity and Robustness 2.9.4 Policy Suitability and Feasibility 2.9.5 Example: Policy Analysis 2.10 Continuous Model Improvement 2.10.1 Disaggregation 53 54 55 55 56 56 60 60 61 61 63 63 64 68 70 73 73 74 75 75 78 79 83 84 90 96 99 101 103 104 110 112 113 115 116 117 121 125 126 127 128 129 130 130 131 132 CONTENTS 2.11 2.12 2.13 2.14 2.15 2.16 2.10.2 Feedback Loops 2.10.3 Hypotheses 2.10.4 When to Stop? 2.10.5 Example: Model Improvement Next Steps Software Metrics Considerations 2.11.1 Data Collection 2.11.2 Goal–Question–Metric Framework 2.11.3 Integrated Measurement and Simulation Project Management Considerations 2.12.1 Modeling Communication and Team Issues 2.12.2 Risk Management of Modeling Projects 2.12.3 Modeling Documentation and Presentation 2.12.4 Modeling Work Breakdown Structure Modeling Tools Major References Chapter Summary 2.15.1 Summary of Modeling Heuristics Exercises Chapter Model Structures and Behaviors for Software Processes 3.1 Introduction 3.2 Model Elements 3.2.1 Levels (Stocks) 3.2.2 Rates (Flows) 3.2.3 Auxiliaries 3.2.4 Connectors and Feedback Loops 3.3 Generic Flow Processes 3.3.1 Rate and Level System 3.3.2 Flow Chain with Multiple Rates and Levels 3.3.3 Compounding Process 3.3.4 Draining Process 3.3.5 Production Process 3.3.6 Adjustment Process 3.3.7 Coflow Process 3.3.8 Split Flow Process 3.3.9 Cyclic Loop 3.4 Infrastructures and Behaviors 3.4.1 Exponential Growth 3.4.2 S-Shaped Growth and S-Curves 3.4.3 Delays 3.4.4 Balancing Feedback 3.4.5 Oscillation 3.4.6 Smoothing 3.4.7 Production and Rework 3.4.8 Integrated Production Structure 3.4.9 Personnel Learning Curve vii 132 132 133 133 134 134 135 136 138 139 140 141 142 142 145 146 148 149 155 155 157 157 159 159 160 160 160 161 162 163 163 163 164 165 165 166 166 167 169 175 177 180 182 183 183 viii 3.5 3.6 3.7 3.8 CONTENTS 3.4.10 Rayleigh Curve Generator 3.4.11 Attribute Tracking 3.4.12 Attribute Averaging 3.4.13 Effort Expenditure Instrumentation 3.4.14 Decision Structures Software Process Chain Infrastructures 3.5.1 Software Products 3.5.2 Defects 3.5.3 People Major References Chapter Summary Exercises 185 186 187 187 188 192 193 196 200 203 204 204 PART APPLICATIONS AND FUTURE DIRECTIONS Introduction to Applications Chapters 211 Chapter People Applications 4.1 Introduction 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.5 Learning 4.5.1 Example: Learning Curve Models 4.6 Team Composition 4.6.1 Example: Assessing Agile Team Size for a Hybrid Process 4.7 Other Application Areas 4.7.1 Motivation 4.7.2 Personnel Hiring and Retention 4.7.3 Skills and Capabilities 4.7.4 Team Communication 4.7.5 Negotiation and Collaboration 4.7.6 Simulation for Personnel Training 4.8 Major References 4.9 Chapter Summary 4.10 Exercises 217 217 221 222 222 224 224 227 231 234 235 252 252 256 260 260 261 263 265 265 267 Chapter Process and Product Applications 5.1 Introduction 5.2 Overview of Applications 5.3 Peer Reviews 5.3.1 Example: Modeling an Inspection-Based Process 5.3.2 Example: Inspection Process Data Calibration 269 269 273 274 275 289 REFERENCES 587 [Reifer 2002] Reifer D, Software Management (6th edition), Los Alamitos, CA, IEEE Computer Society Press, 2002 [Reifer et al 2003] Reifer D, Basili V, Boehm B, and Clark B, “Eight lessons learned during COTS system maintenance,” IEEE Software, 20(5), 94–96, 2003 [Repenning 2001] Repenning N, “Understanding fire fighting in new product development,” Journal of Product Innovation Management, 18, 285–200, 2001 [Richardson, Pugh 1981] Richardson G P and Pugh A, Introduction to System Dynamics Modeling with DYNAMO, Cambridge, MA: MIT Press, 1981 [Richardson 1986] Richardson G, “Problems with causal-loop diagrams,” System Dynamics Digest, 1986 [Richardson 1991] Richardson G P, “System dynamics: Simulation for policy analysis from a feedback perspective,” in Fishwich and Luker (Eds.), Qualitative Simulation Modeling and Analysis Springer-Verlag, 1991 [Richmond 1994] Richmond B, System dynamics/systems thinking: Let’s just get on with it, Proceedings of the 1994 International System Dynamics Conference, Sterling, Scotland, July 1994 and http://www.hps-inc.com/st/paper.html [Richmond et al 1990] Richmond B et al., Ithink User’s Guide and Technical Documentation, Hanover, NH, isee systems Inc., 1990 [Riordan 1977] Riordan J S, “An evolution dynamics model of software systems development,” in Software Phenomenology—Working Papers of the (First) SLCM Workshop, August 1977, Airlie, Virginia, Pub ISRAD/AIRMICS, Comp Sys Comm US Army, Fort Belvoir VA, 339–360, 1977 [Rodriguez et al 2006] Rodríguez D, Sicilia M A, Cuadrado J J, and Pfahl D, “E-Learning in project management using simulation models: A case study based on the replication of an experiment,” IEEE Transactions on Education, 49, 451–463, 2006 [Roehling, Collofello 2000] Roehling S and Collofello J, “System dynamics modeling applied to software outsourcing decision support,” Software Process Improvement and Practice, 5(2–3), 2000 (Initial version in Proceedings of ProSim Workshop 1999.) [Rothman 1996] Rothman J, “Applying systems thinking to the issues of software product development,” in Proceedings of the 1996 International System Dynamics Conference, Cambridge, MA, July 1996 [Royce 1970] Royce W, “Managing the development of large software systems,” in Proceedings IEEE Wescon, 1970 [Royce 1998] Royce W, Software Project Management—A Unified Approach, Reading, MA: Addison-Wesley, 1998 [Rubin 1997] Rubin H, The United States IT Workforce Shortage (Version 3.0), META Research Report 1997 [Rubin et al 1994] Rubin H, Johnson M, and Yourdon E, “With the SEI as my copilot: Using software process flight simulation to predict the impact of improvements in process maturity,” American Programmer, September 1994 [Rubin et al 1995] Rubin H, Johnson M, and Yourdon E, “Software process flight simulation: dynamic modeling tools and metrics,” Information Systems Management, Summer 1995 [Ruhe et al 2003] Ruhe G, Eberlein A, and Pfahl D, “Tradeoff analysis for requirements selection,” International Journal of Software Engineering and Knowledge, 13(4), pp 345–366, 2003 [Ruiz et al 2001] Ruiz M, Ramos I, and Toro M, “A simplified model of software project dy- 588 REFERENCES namics,” Journal of Systems and Software, 59(3), 2001 (Initial version in Proceedings of ProSim Workshop 2000.) [Ruiz et al 2002] Ruiz M, Ramos I, and Toro M, “Integrating dynamic models for CMM-based software process improvement,” Lecture Notes in Computer Science, Vol 2559/2002, Product Focused Software Process Improvement: 14th International Conference, PROFES 2002, Finland, Berlin / Heidelberg, Springer, 2002 [Ruiz et al 2004] Ruiz M, Ramos I, and Toro M, “An integrated framework for simulationbased software process improvement,” Software Process Improvement and Practice, 9(2), 2004 (Initial version in Proceedings of ProSim Workshop 2003.) [Rus et al 1999] Rus I, Collofello J, and Lakey P, “Software process simulation for reliability management,” Journal of Systems and Software, 46(2–3), 1999 (Initial version in Proceedings of ProSim Workshop 1998.) [Rus 1998] Rus I, Modeling the Impact on Cost and Schedule of Software Quality Engineering Practices, Ph.D dissertation, Computer Science and Engineering Dept., Arizona State University, March 1998 [Rus, Collofello 1998] Rus I and Collofello J, “Software process simulation for reliability strategy assessment,” in Proceedings of ProSim Workshop ’98, Portland, OR, June 1998 [Rus et al 2003] Rus I, Halling M, and Biffl S, “Supporting decision-making in software engineering with process simulation and empirical studies,” International Journal of Software Engineering and Knowledge Engineering, 13(5), 531–546, 2003 [Schach 2002] Schach S R, Jin B, Wright D R, Heller G Z, and Offutt A J, “Maintainability of the Linux Kernel,” IEE Proceedings—Software, 149(1), 18–23, February 2002 [Scacchi, Mi 1993] Scacchi W and Mi P, “Modeling, enacting and integrating softare engineering processes,” in Proceedings of the 3rd Irvine Software Symposium, Costa Mesa, CA, April, 1993 [Scacchi 2004a] Scacchi W, “Understanding free/open source software evolution,” in Madhavji N H, Lehman M M, Ramil J F, and Perry D (Eds.), Software Evolution, New York: Wiley, 2004 [Scacchi 2004b] Scacchi W, “Socio-technical interaction networks in free/open source software development processes,” in Acuña S T and Juristo N (Eds.), Peopleware and the Software Process, Singapore: World Scientific Press, 2004 [Schmid, Verlage 2002] Schmid K and Verlage M, “The economic impact of product line adoption and evolution,” IEEE Software, 19(4), 50–57, July 2002 [Schrage 2000] Schrage M, Serious Play, Boston MA: Harvard Business School Press, 2000 [SEI 2003] CMMI (Capability Maturity Model Integration) website, http://www.sei.cmu.edu/ cmmi/, 2003 [SEI 2005] ISO-15504 website, http://www.sei.cmu.edu/ISO-15504/, 2005 [Selby 2005] Selby R, “Measurement-driven dashboards enable leading indicators for requirements and design of large-scale systems,” in Proceedings of the 11th IEEE International Symposium on Software Metrics (METRICS 2005), 2005 [Senge 1990] Senge P, The Fifth Discipline, New York: Doubleday, 1990 [Senge et al 1994] Senge P, Kleiner A, Roberts C, Ross R, and Smith B, The Fifth Discipline Fieldbook, New York: Doubleday, 1994 [Sharma 2002] Sharma S, Sugumaran, and Rajagopalan B, “A framework for creating hybrid open-source software communities,” Information Systems Journal, 12(1), 7–25, 2002 REFERENCES 589 [Smith 1999] Smith M and Kollock P (Eds.), Communities in Cyberspace, London: Routledge, 1999 [Smith et al 1993] Smith B, Nguyen N, and Vidale R, “Death of a software manager: How to avoid career suicide through dynamic process modeling,” American Programmer, May 1993 [Smith et al 2005] Smith N, Capiluppi A, and Ramil J, “A study of open source software evolution data using qualitative simulation,” Software Process Improvement and Practice, 10(3), 287–300, 2005 [Smith et al 2006] Smith N, Capiluppi A, and Ramil J, “Users and developers: An agent-based simulation of open source software evolution,” in Proceedings of the International Software Process Workshop and International Workshop on Software Process Simulation and Modeling (SPW/ProSim 2006), Shanghai, China, Springer-Verlag, 2006 [Sommerville et al 1996] Sommerville I and Rodden T, Human, “Social and organizational influences on software processes,” in Fugetta A and Wolf A (Eds.), Software Process, vol of Trends in Software, Wiley, 1996 [Stallinger 2000] Stallinger F, “Software process simulation to support ISO/IEC 15504 based software process improvement,” Software Process Improvement and Practice, 5(2–3), 2000 (Initial version in Proceedings of ProSim Workshop 1999.) [Stallinger, Gruenbacher 2001] Stallinger F and Gruenbacher P, “System dynamics modelling and simulation of collaborative requirements engineering,” Journal of Systems and Software, 59(3), 2001 (Initial version in Proceedings of ProSim Workshop 2000.) [Sterman 1989] Sterman J, “Modeling managerial behavior: Misperceptions of feedback in a dynamic decision making experiment,” Management Science, 35(3), 321–339, 1989 [Sterman 2000] Sterman J, Business Dynamics: Systems Thinking and Modeling for a Complex World, New York: Irwin McGraw-Hill, 2000 [Stutzke 1994] Stutzke R, “A Mathematical Expression of Brooks’ Law,” in Proceedings of the Ninth International Forum on COCOMO and Cost Modeling, Los Angeles, CA, 1994 [Sycamore 1995] Sycamore D, Improving Software Project Management Through System Dynamics Modeling, M.S Dissertation, Computer Science and Engineering Dept., Arizona State University, 1995 [Taweponsomkiat 1996] Taweponsomkiat C, “Report for re-engineering of concurrent incremental software development model,” Computer Science and Engineering Dept., Arizona State University, August 1996 [Tvedt 1995] Tvedt J, “A system dynamics model of the software inspection process,” Computer Science and Engineering Dept., Arizona State University, January 1995 [Tvedt 1996] Tvedt J D, An Extensible Model for Evaluating the Impact of Process Improvements on Software Development Cycle Time, Ph.D Dissertation, Arizona State University, 1996 [Tvedt, Collofello 1995] Tvedt J and Collofello J, “Evaluating the effectiveness of process improvements on software development cycle time via system dynamics modeling,” University of Arizona, 1995 [Twaites et al 2006] Twaites G, Collefello J, and Zenzen F, “Modeling inspections to evaluate prioritization as a method to mitigate the effects of accelerated schedules,” in Proceedings of the 12th ISSAT International Conference on Reliability and Quality in Design, International Society of Science and Applied Technology, vol 12, 2006 [USC 2004] University of Southern California, Software Engineering Economics, CS510 Course Notes USC Computer Science Department, 2004 590 REFERENCES [Vennix, Vennix 1996] Vennix J A M and Vennix J A C, Group Model Building: Facilitating Team Learning Using System Dynamics, New York: Wiley, 1996 [Ventana 2006] Ventana Systems, http://www.vensim.com, 2006 [Verner, Tate 1988] Verner J and Tate G, “Estimating size and effort in fourth generation development,” IEEE Software, pp 15–22, July 1988 [Waeselynck, Pfahl 1994] Waeselynck H and Pfahl D, “System dynamics applied to the modelling of software projects,” Software Concepts and Tools, 15(4), 162–176, 1994 [Wakeland et al 2004] Wakeland W, Martin R, and Raffo D, “Using design of experiments, sensitivity analysis, and hybrid simulation to evaluate changes to a software development process: a case study,” Software Process Improvement and Practice, 9(2), pp 107–119, 2004 (Initial version in Proceedings of ProSim Workshop 2003.) [Wakeland et al 2005] Wakeland W, Shervais S, and Raffo D, “Heuristic optimization as a V&V tool for software process simulation models,” Software Process Improvement and Practice, 10(3), 301–309, 2005 [Weinberg 1992] Weinberg G, Quality Software Management, Volume 1, Systems Thinking, New York: Dorset House Publishing, 1992 [Weinberg 1998] Weinberg G, The Psychology of Computer Programming: Silver Anniversary Edition, New York: Dorset House Publishing, 1998 [Weiner 1961] Weiner N, Cybernetics: or Control and Communication in the Animal and the Machine, Cambridge, MA: The MIT Press, 1961 [Weiss, Lai 1999] Weiss D and Lai C T R, Software Product Line Engineering, Reading, MA: Addison-Wesley, 1999 [Wernick, Lehman 1999] Wernick P and Lehman M, “Software process dynamic modeling for FEAST/1,” Software Process Improvement and Practice, 7(3–4), 2002 (Initial version in Proceedings of ProSim Workshop 1998.) [Wernick, Hall 2002] Wernick P and Hall T, “Simulating global software evolution processes by combining simple models: An initial study,” Journal of Systems and Software, 46(2–3), 1999 (Initial version in Proceedings of ProSim Workshop 2001.) [Widman et al 1989] Widman L, Loparo K, Nielson N, Artificial Intelligence, Simulation, and Modeling, New York: Wiley, 1989 [Williams, Cockburn 2003] Williams L and Cockburn A, “Agile software development: It’s about feedback and change,” IEEE Computer, 36(6), 39–43, June 2003 [Williford, Chang 1999] Williford J and Chang A, “Modeling the FedEx IT division: A system dynamics approach to strategic IT planning,” Journal of Systems and Software, 46(2–3), 1999 (Initial version in Proceedings of ProSim Workshop 1998.) [Wise 2006] Wise A, “Little-JHIL 1.5 language report,” University of Massachusetts technical report, UM-CS-2006-51, 2006 [Wise et al 2000] Wise A, Cass A, Lerner B, McCall E, Osterweil L, and Sutton S, “Using Little-JIL to coordinate agents in software engineering,” in Proceedings of the Automated Software Engineering Conference (ASE 2000), Grenoble, France, pp 155–163, 2000 [Wood, Silver 1995] Wood J and Silver D, Joint Application Development, 2nd edition, New York: Wiley, 1995 [Wolstenholme 1990] Wolstenholme E, System Enquiry: A System Dynamics Approach, West Sussex, England: Wiley, 1990 [Yamamura 1999] Yamamura G, “Process improvement satisfies employees,” IEEE Software, September/October 1999 REFERENCES 591 [Ye 2004] Ye Y, Nakajoki K, Yamamoto Y, and Kishida K, “The co-evolution of systems and communities in free and open source software development,” in Koch S (Ed.), Free/Open Source Software Development, pp 59–82, Hershey, PA: Idea Group Publishing, 2004 [Yourdon 1993a] Yourdon E, Decline and Fall of the American Programmer, Englewood Cliffs, NJ: Prentice-Hall, 1993 [Yourdon 1993b] Yourdon E (Ed.), American Programmer, New York: Cutter Information Group, 1993 [Yourdon 1994] Yourdon E (Ed.), American Programmer, New York: Cutter Information Group, September 1994 [Yourdon 2004] Yourdon E, Death March (2nd edition), New York: Yourdon Press, 2004 INDEX Abdel-Hamid, Tarek, 4, 10, 25, 27, 47, 51, 221, 265, 362, 374, 378, 392, 460, 474, 496, 531, 533–535, 556 Abdel-Hamid’s integrated project dynamics model, see Integrated project dynamics model Acuña, Silvia, 221, 260, 265, 267, 273, 362, 482, 531, 535 Acquisition models, 490 Agile and hybrid processes, 235, 482, 488 See also Hybrid process model Agile methods, 37 Agile team size, 235 Architecting, see Software architecting Artificial intelligence, 474 Attribute averaging, 187 Attribute tracking, 186 Attrition, 257 Auxiliaries 15, 57, 159 examples, 59, 159 model formulation, 89 Balancing feedback model infrastructure, 175 Barros, Márcio, 28, 157, 473, 476, 478, 491, 535, 536–539 Boehm, Barry, 20, 25, 30, 32, 33, 35, 47, 140, 212, 218, 236, 238, 243, 245, 280, 282, 311, 327, 331, 337, 366, 396, 397, 399, 410, 422, 460, 474, 476, 479, 480, 481, 482, 484, 485, 486, 487, 490, 491, 494, 496, 499, 535, 550 Brooks, Fred, 16, 20, 47, 426, 428, 441 Brooks’s Law, 10, 16, 426 model, 17, 152, 153, 154, 215, 259, 260, 264, 382, 464, 465, 565, 567 model behavior, 19 model equations, 18 team partitioning, 464, 465 Burnout, 224 See also Exhaustion Business processes, 395, 490 See also Software business case analysis Capabilities of people, 260, 267 Capability maturity models, 41, 327 See also Software process improvement Capability Maturity Model-Integrated (CMMI), 41, 220, 364 key process areas, 42 FAA-iCMM, 41 key process area modeling, 354 level five and employee motivation, 252 model example for, 343–362 People Capability Maturity Model, 41, 220 simulation uses at CMM levels, 43 Software Acquisition Capability Maturity Model (SA-CMM), 41 Software Capability Maturity Model (CMM or SW-CMM), 7, 41, 220 Causal (loop) diagram, 79 Causal relations, 81 Change deferral, 241 organizational, 462 Software Process Dynamics By Raymond J Madachy Copyright © 2008 the Institute of Electrical and Electronics Engineers, Inc 593 594 Change (continued) traffic, 239 rapid, 239, 479 Christie, Alan, 28, 261, 262, 268, 542 Closed system, 12 Coincident flows (coflows), 96, 164 effort expenditure, 187 defects, 196, 397 Collaboration, 261, 268 Constructive Cost Model (COCOMO) calibration for inspection model, 277, 288 cost driver derivation from simulation model, 285 detailed, 285 dynamic, 125, 239, 243, 397 dynamic modeling vs COCOMO for learning, 263 experience factors in Brooks’s Law model, 20 experience factors and learning curves, 231 job size for integrated project dynamics model, 386 people factors, 218 platform volatility factor, 243 process and product factors, 270 project and organization factors, 370 reliability factor in value-based product model, 399 reuse model, 300 static modeling vs dynamic modeling, 25, 218 system dynamics and, 551 Constructive Quality Model (COQUALMO), 331, 365 Collofello, James, 28, 263, 338, 475, 540–541, 556, 558, 560 Commercial off-the-shelf (COTS) software, 38, 238, 309, 484 See also COTS Communication overhead, 17, 303 Abdel-Hamid’s integrated project model and, 382 Brooks’s Law model and, 17, 19, 464, 465 COCOMO model and, 218 Component-based model development, 476 Confidence intervals, 525 calculation, 527 Connectors and feedback loops, 160 See also Information links Conserved flows, 55 INDEX Conserved versus nonconserved product flow, 194 Construction iterations in the modeling process, 104 Continuous model improvement, 131 Continuous systems modeling, see System dynamics Control and operational management applications, 28 Control systems theory, 11 COTS and process concurrence, 437 COTS glue code development and COTS integration application model (Kim, Wook), 310–317 application development, 315 COTS component factors, 314 glue code development, 312 model overview, 311 test results, 316 COTS-based systems (CBSs), 309, 366 COTS-Lifespan Model (COTS-LIMO), 317 Cybernetics, 10–11 Cyclic modeling process, 70 Data collection, 134 Decision structures, 188 Defect analysis for process improvement, 327 Defect coflows, 196, 397 Defects and quality, 327 Defects as levels, 158 Defect dynamics example application model (Abdel-Hamid), 328–330 Defect chain model infrastructures, 196, 327 amplification, 199, 365 categories, 200 chain examples, 200, 329 coflows, 196 detection (filters), 197 generation and propagation, 196, 365 multiplication, 199 rework, 197 Defect removal techniques and Orthogonal Defect Classification (ODC) application model (Madachy), 330–337 Defect rework policies, 191 Defense Modeling and Simulation Office (DMSO), 8, 472, 473, 476 595 INDEX Delays, 93, 169 cascaded, 173 higher-order, 173 hiring, 172 model structures, 93 DeMarco, Tom, 219, 227, 255, 258, 261, 265, 267, 268, 499, 531, 542 Desired staff model structure, 188 Discrete event simulation, 24, 55, 469, 471 inspections, 275 product attributes, 269, 273 Distributed global development, 480 Dynamic COCOMO, 125, 239, 243, 397 Dynamic process models, Dynamics, Earned value, 442 general project procedures, 449 Earned value application model (Madachy), 450–460, 466 Litton applications, 460 testing, 452 usage, 456 Effort expenditure instrumentation, 187 Empirical data collection for simulation models, 493 Empirical research and theory building, 492 Endogenous view, 79 Error detection rate, 330 Evolutionary development, 31 Exhaustion model, 222–227, 567 Experimental design, 523 Exponential decay, 172 Exponential growth, 166 See also Positive feedback Feedback loops, 11, 132 Feedback opportunities in organizations, 371 Feedback systems concepts applied to software process, 10 Fernández-Ramil, Juan, 238, 488 See also Ramil, Juan Fifth Discipline, 5, Flight simulation, 5, 23, 263 Flow, see Rate Flow chains, 156 generic flows in model formulation, 85 identification of in modeling process, 84 infrastructures, 192 Ford, David, 237, 322, 423, 424, 466 Forrester, Jay, 4, 6, 47, 53, 54, 61, 118, 119, 134, 142, 145, 203, 488, 496 Fourth-generation languages, 39, 301 Game playing, 475, 479 See also training Generic flow processes, 155, 160 adjustment process, 163 coflow process, 164 compounding process, 162 cyclic loop, 165 draining process, 163 flow chain, 161 production process, 163 rate and level system, 160 split flow process, 165 stock and flow, 160 Global (process) feedback, 13, 291 Glue code, see COTS Glue code Goal–question–metric (GQM) framework, 135, 477 application to inspection modeling, 138 Goal-seeking behavior, 61 Goodness-of-fit tests, 521 Heuristics, 60 modeling heuristic summary, 148 Hiring delays, 256 Hybrid process (agile and plan-driven) application model (Madachy et al.), 235–252 model overview, 240 scalable spiral model, 238 scenarios and test results, 246 software value, 249 tradeoff functions, 243 Houston, Dan, 27, 341, 473, 544–545 Humphrey, Watts, 220, 253, 258, 265 Hybrid modeling, 24, 469, 491, 551 Hypotheses in the modeling process, 132 Hypothesis testing, 525 Incremental development, 30, 239 Information links 15, 58, 160 equations, 90 examples, 58, 160 model formulation, 89 nonconservation of, 58 Information smoothing, 63, 180 596 Infrastructures, 155 examples, 59 Infrastructures and behaviors, 166–192 balancing feedback, 175 delays, 169 exponential growth, 166 integrated production structure, 183 oscillation, 177 personnel learning curve, 183 production and rework, 182 smoothing, 180 S-shaped growth and S-curves, 167 Inspection model (Madachy), 195, 196, 199, 200, 202, 203, 210, 279, 365, 413 calibration, 277 demonstration and evaluation, 281 derivation of detailed cost driver, 285 industrial data collection and analysis for, 276 modification for walk-throughs, 289 overview, 277 validation, 287 Inspection process data calibration, 289 Inspection-based process, modeling, 275 Integrated measurement and simulation, 136 Integrated project dynamics model (AbdelHamid), 109, 152, 182, 195, 199, 200, 202, 203, 205, 217, 221, 234, 255, 264, 281, 328, 341, 372, 373–395, 414, 424, 450, 461, 462, 465, 466, 477, 489, 567, 568 control sector, 385 exhaustion model, 222–227 follow-ons to Abdel-Hamid’s work, 393 human resources sector, 374, 567 insights and implications, 392–393 manpower allocation sector, 378 personnel sector 222–224, 267 planning sector, 375 quality assurance and rework sector, 328, 382 software development productivity subsector, 380 software development sector, 379 software production sector, 378 system testing sector, 384 ISO 9000, 44 ISO/IEC 15504, 44 INDEX Iterative development, 32 compared to waterfall life-cycle process, 39 Iterative modeling process, 68 Johnson, Margaret, 265, 267, 373, 394, 395, 477, 545, 567, 568 Kellner, Marc, 22, 23, 24, 26, 28, 29, 47 Knowledge diffusion example model, 169 Knowledge-based simulation, 474 Learning, 227 Learning curves, 229, 267, 302 comparison with COCOMO experience data, 231 fixed learning functions, 234 language levels and, 302 models, 231 Lehman, Manny, 13, 27, 29, 210, 291, 292, 293, 295, 488, 535, 540, 546, 547–548, 561 Levels (stocks) 15, 57, 157 examples, 58, 157 initialization and equilibrium, 101 model formulation, 86 oscillation and, 86 state variables, 59 Lin, Chi, 234, 393, 394, 550 Litton, 209, 263, 276, 277, 288, 460 Madachy, Raymond, 28, 32, 47, 136, 138, 195, 235, 263, 264, 273, 274, 275, 276, 277, 281, 282, 284, 285, 287, 288, 327, 363, 365, 474, 475, 483, 535, 549–550 See also Inspection model Martin, Robert, 24, 27, 553 Mental models, 9, 10, 118 Meta-models (general modeling techniques), 491–492 Metamodels (system dynamics), 478, 491 Mission control centers, analysis, and training facilities, 494, 500 Model analysis, 473 Model assessment, 116 Model building principles, 101 Model conceptualization, 75 endogenous view, 79 597 INDEX Model elements, 155, 157 auxiliaries, 159 connectors, 160 feedback loops, 160 flows, 159 levels, 157 sources and sinks, 159 rates, 159 stocks, 157 Model formulation and construction, 83 accuracy, 99 addition and multiplication of effects, 95 assigning parameter values, 99 auxiliaries, 89 basic patterns, 90 bounds, 100 coincident flows (coflows), 96 connectors, 90 feedback loops, 90 generic flows, 85 graph and table functions, 96 overtime multiplier function, 97 level initialization and equilibrium, 101 levels, 86 major flow chains, 84 model sectors, 84 negative (balancing) feedback, 94 oscillation, 86 parameters and validity, 100 plumbing, 85 positive (reinforcing) feedback growth or decline, 92 rate equations, 90 constant rate with a level, 91 variable rate with a level, 91 rates, 89 snapshot test, 87 sources and sinks, 88 time delays, 93 time horizon considerations, 87 top-level, 84 Model infrastructures, see Infrastructures Model integration, 103, 489 common unified models, 489 meta-model integration, 491 related disciplines and business processes, 490 Model refinement, when to stop, 133 Model response surface, 524 Model sensitivity analysis, 121 Model structures, see also Infrastructures and general behaviors, 65 and component-based model development, 476 Model types, Model validation, 117 tests, 119, 120, 121 Modeling communication, 139 Modeling documentation and presentation, 141 Modeling heuristics, see Heuristics Modeling tools, 142 Model-Based Systems Architecting and Software Engineering (MBASE), 32, 36, 70, 319, 466 Monte Carlo analysis, 125, 262, 474, 515 inverse transform, 515 Motivation, 252 overtime function, 253 Motorola, 45, 263, 327 NASA, 234, 330, 331, 343, 346, 393 Negative feedback, see also Balancing feedback as balancing feedback, 175 general behavior, 62, 63, 67 in personnel hiring, 172 model structure, 63, 94, 175 Negotiation, 261 Networked simulations, 475, 498 Nonconserved information, 55 Object-oriented framework for model structures, 156 methods, 478 Open source software development, 486 Open system, 11, 12 Open-source software, 38, 486–488 Opportunity trees, 212 people, 219 process and product, 271 project and organization, 370 Orthogonal defect classification (ODC), 200, 328, 330 example model for, 330–333 Oscillation, 61, 177 and multiple levels, 86 model structures for, 178 598 Osterweil, Leon, 22, 23, 24, 25, 47 Overtime, 253, 267 multiplier, 97, 253 Peer reviews, 274, 276 See also Inspections, Walk-throughs People, see also Personnel applications, 217–268 COCOMO cost model factors, 218–219 model infrastructures for, 200–203 People maturity model, 41, 220 People subsystem, 352 Peopleware, 219, 258, 261, 265, 268 Perceived quality, 181 Personnel chain model infrastructures, 200 chain examples, 203 Personnel hiring and retention, 256 Personnel learning curve, 183 Personnel pools, 201 Personnel (resource) allocation, 15, 411 allocation policy, 411 contention models, 411 dynamic resource allocation with initially fixed levels, 413 parameterized allocation profiles, 413 project contention, 414 squeaky wheel gets the grease, 411 Personnel sector model (Abdel-Hamid), 222–223, 267 Personnel talent supply and demand, 488 See also Workforce Personnel training, simulation for, 263 See also Software manager training, Training Pfahl, Dietmar, 27, 28, 137, 138, 263, 273, 337, 346, 475, 476, 477, 535, 551–554, 561 Planning applications, 26 Policy analysis, 126 Policy parameter changes, 127 Policy structural changes, 128 Policy suitability and feasibility, 130 Policy validity and robustness, 129 Positive feedback exponential growth, 92, 166 general behavior, 62, 63, 67 model structure, 63, 92 Powell, Anthony, 27, 237, 238, 555 Probability, 502 INDEX Probability distributions, 503 empirical, 513 gamma, 511 interpreting, 505 lognormal, 509 measures of location, variability, and symmetry, 506 normal, 509 PERT, 509 triangular, 508 uniform, 508 Problem definition, 73 Process and product modeling applications, 269 Process and product opportunity tree, 271 Process concurrence, 322, 423–442, 466 architecting, 322 COTS, 437 external process concurrence, 428 internal process concurrence, 426 phase leverage analysis with process concurrence, 432 RAD example of external process concurrence, 432 systems engineering staffing considerations, 433 trying to accelerate software development, 425 Process flight simulation, see Flight simulation Process improvement, see also Software process improvement capability maturity models, 41 ISO 9000, 41 ISO/IEC 15504, 41 overview, 40 Six Sigma, 41 technology adoption applications and, 28 Process improvement model, 274 Process life-cycle models, 29 Process model types, 23 Process performance, 213 Process and product applications, 269–368 Production structure, 182–183 Product(s), see Software product(s) Product quality, see Quality Project and organization applications, 369–468 Project feedback (using simulation for), 13 INDEX Project management in the modeling process, 138 Project workforce modeling, 222 Project rescoping framework, 14 Prototyping, 36 Putnam, Larry, 419, 425, 466 Quality defects and, 327 lost, 367 perceived, 181, 400 representative attributes of, 272 Quality assurance tradeoffs, 330 Quality assurance model sector, 382 Quality modeling and value functions, 399 Ramil, Juan, 27, 273, 291, 293, 296, 484, 549, 558 See also Fernández-Ramil, Juan Raffo, David, 24, 47, 275, 475, 481, 493, 551, 555 Rates (flows) 15, 57, 159 equations, 90 examples, 58, 159 model formulation, 89 Rational Unified Process (RUP), 32, 319, 466 Rayleigh curve models, 366, 418–422 calibrated to COCOMO, 397 defect modeling, 333, 422 model enhancements, 422, 465, 466 Rayleigh curve generator, 185 Rayleigh manpower distribution model, 418 system dynamics implementation, 419 Rayleigh curves for staffing profiles, 397, 417, 418 dynamic requirements changes, 422 incremental development, 422 Rayleigh curve versus flat staffing, 422 Reengineering, 38 Reference behavior, 76, 115, 282 patterns, 74 Reliability attribute of quality, 272 required software reliability cost factor, 270 modeling, 399, 400 sweet spot, 409 599 Requirements evolution and volatility, 337 process inputs, 11 volatility, 333, 466 Requirements volatility application model (Ferreira), 337–343 causal model, 340 results, 342 simulation model, 341 Resource allocation, see also Personnel resource allocation model infrastructures for, 190 Reuse, 38 See also Software reuse Rework model structure, 182 Richardson, George, 53, 54, 64, 69, 74, 80, 119, 127, 142, 146, 227 Richmond, Barry, 9, 53, 64, 146, 204, 227 Risk analysis, 502 Risk management, 140 Royce, Walker, 30, 32, 36, 47, 460 Rubin, Howard, 28, 258, 264, 265, 394, 557 Rus, Ioana, 27, 478, 558 Sample size, 525 Scacchi, Walt, 24, 487, 488, 490, 499 Scalable spiral model, 238 Scheduled completion date model structure, 190 S-curves, 167 See also S-shaped growth Sensitivity analysis, 123 Simulation definition of, 8, introduction, knowledge-based, 474 modeling process and, 110 networked, 475 personnel training and, 263 statistics of, 501 Simulation environments and tools, 472 Simulation input, analysis of, 521 Simulation output, analysis of, 525 Simulation report, 143 Six Sigma, 44, 367 Skills, 260 Slack (time), 227, 255, 267 Smoothing of information, 63, 180 Snapshot test, 87 Software Acquisition CMM (SA-CMM), 41 600 Software architecting application model (Fakharzadeh, Mehta) , 319–327 empirical reference data, 320 model overview, 321 Software business case analysis, 395 Software Capability Maturity Model (CMM or SW-CMM), 41 See also Capability Maturity Models Software Engineering Institute (SEI), 7, 24, 41, 309, 339, 343 Software evolution, 291 See also Global process feedback open-source systems and, 488 Software evolution progressive and antiregressive application model (Ramil), 293–299 model overview 295 calibration and experimentation, 296 Software entropy, 167, 367 Software life-cycle phases and modeling steps, 69 Software manager training, 263, 264, 460 Software metrics, 134 etiquette, 463 Software process, Software process chain infrastructures, 192 Software process control system, 13 Software process improvement (SPI), see also Capability maturity models, Process improvement simulation in support of, 343 Software process improvement application model (Ho), 346–362, 367 high-level feedback, 347 KPA processing subsystem, 354 life-cycle subsystem, 351 model changes, 357 people subsystem, 352 sensitivity analysis, 360 test runs, 359 Xerox adaptation, 354 Software process model types, 23 Software process modeling overview, 22–26 characterization, 26 characterization matrix, 27 discrete, 24 hybrid, 24 major models, 27 modeling approaches, 23 INDEX Software process simulation technology, 469 Software process technology, 22 Software product chain infrastructures, 193 chain examples, 195 Software production rate, 14 Software project management simulator, 337 Software project dynamics, 4, 5, 10 See also Abdel-Hamid, Tarek Software Project Management Simulator (SPMS) model, 338 Software reliability, see Reliability Software reuse, 299 Software reuse and fourth-generation languages application model (Lo), 301–309 model description, 302 results, 304 Spiral model, 33 modeling process usage, 70 scalable spiral model, 238 WinWin spiral model, 35 Spreadsheets, 26 S-shaped growth and S-curves, 167 Staffing, see also Personnel applications, 416 calculation parameters, 245 desired staff model structure, 188 Dynamic COCOMO, 125, 243, 397 integrating Rayleigh curves, process concurrence, and Brooks’s interpretations, 441 process concurrence modeling for staffing profiles, 423–442 See also Process concurrence Rayleigh curves for staffing profiles, 417, 418–422 Stallinger, Friedrich, 268, 559 State variables, 6, 59 Static versus dynamic modeling, 25 Steady-state behavior, 113 Steady-state conditions, 112 Sterman, John, 53, 121, 146, 237, 322, 423, 424, 466, 476, 502 Stock, see Level Stock and flow representation, 14 Strategic management applications, 26 Sweet spot (determination of), 405 System boundary, 70, 78, 148, 149 601 INDEX System dynamics, 3, 5, 8, 11, 14, 16, 24, 25, 54 background, 54 continuous view, 55 heuristics, 60 mathematical formulation, 56 structure of a model, 59 model element summary, 15 model elements, 56, 57 auxiliaries, 57 information linkages, 58 level, 57 rate, 57 sources and sinks, 57 notation, 56 numerical integration, 59 potential pitfalls, 60 System feedback, see Feedback Systems (definition of), closed (closed loop), 6, 11 combined, 6, continuous, 6, discrete, 6, dynamic, 6, open (open loop), 6, 11 static, variables, Systems of systems, 236, 483 software-intensive, 235, 236, 483 Systems thinking, 3, 8, 10 compared to system dynamics, Team communication, 260 Team composition, 234 Team issues, 139 Team partitioning, 464, 465 Team size, 235 Test functions, 113 Time horizon, 87 Training game playing and, 475 software project management, 263, 264, 460 simulation for, 4, 263 Training and learning applications, 28 Training overhead in Brooks’s Law model, 17, 19 Tvedt, John, 138, 195, 196, 210, 237, 275, 341, 365, 544, 560 U.S Defense Modeling and Simulation Office (DMSO), 8, 472 Usability of simulation tools, 473, 498 User- and people-oriented focus, 482 Value-based product application model (Madachy), 396–411 applications, 402 model overview, 397 quality modeling and value functions, 399 Value-based software engineering, 396 Walk-throughs, 288 See also Peer reviews Waterfall (life-cycle) process, 29 compared to iterative process, 39 Weinberg, Gerry, 10, 47, 51, 152, 220, 265, 268, 416, 467 Wernick, Paul, 27, 291, 292, 293, 547, 561–562 WinWin spiral model, 35, 70, 262 Work breakdown structure for modeling, 142, 144 Workforce modeling, 222 desired workforce levels, 223 Workforce shortage, 258, 268, 499 causal loop, 259 Xerox Corporation, 354, 357, 361 Yourdon, Ed, 265, 393, 563 ... the dynamics of software processes with the help of simulation modeling Software process dynamics is a more general term than software project dynamics, which is limiting in the sense that dynamics. . .SOFTWARE PROCESS DYNAMICS Raymond J Madachy IEEE PRESS WILEY- INTERSCIENCE A JOHN WILEY & SONS, INC., PUBLICATION SOFTWARE PROCESS DYNAMICS IEEE Press 445 Hoes Lane... for software development processes ț Review the field of software process modeling with system dynamics Show how others have used the principles of system dynamics to analyze and improve processes