SOFTWARE PROJECT MANAGEMENT A Unified Framework WALKER ROYCE The Addison-Wesley Object Technology Series Grady Booch,Ivar Jacobson,and James Rumbaugh,Series Editors For more information,check out the series web site at www.awprofessional.com/otseries. Ahmed/Umrysh,Developing Enterprise Java Applications with J2EE™ Leffingwell/Widrig,Managing Software Requirements,2E:A Use Case and UML Approach Arlow/Neustadt,Enterprise Patterns and MDA:Building Better Software Manassis,Practical Software Engineering:Analysis and Design for the with Archetype Patterns and UML .NET Platform Arlow/Neustadt,UML and the Unified Process:Practical Object- Marshall,Enterprise Modeling with UML:Designing Successful Software Oriented Analysis and Design through Business Analysis Armour/Miller,Advanced Use Case Modeling:Software Systems McGregor/Sykes,A Practical Guide to Testing Object-Oriented Software Bellin/Simone,The CRC Card Book Mellor/Balcer,Executable UML:A Foundation for Model-Driven Bergström/Råberg,Adopting the Rational Unified Process:Success with Architecture the RUP Mellor et al.,MDADistilled:Principles of Model-Driven Architecture Binder,Testing Object-Oriented Systems:Models,Patterns,and Tools Naiburg/Maksimchuk,UML for Database Design Bittner/Spence,Use Case Modeling Oestereich,Developing Software with UML,2E:Object-Oriented Booch,Object Solutions:Managing the Object-Oriented Project Analysis and Design in Practice Booch,Object-Oriented Analysis and Design with Applications,2E Page-Jones,Fundamentals of Object-Oriented Design in UML Booch/Bryan,Software Engineering with ADA,3E Pohl,Object-Oriented Programming Using C++,2E Booch/Rumbaugh/Jacobson,The Unified Modeling Language User Pollice et al. Software Development for Small Teams:A RUP-Centric Guide Approach Box/Brown/Ewald/Sells,Effective COM:50 Ways to Improve Your COM Quatrani,Visual Modeling with Rational Rose 2002 and UML and MTS-based Applications Rector/Sells,ATLInternals Carlson,Modeling XML Applications with UML:Practical Reed,Developing Applications with Visual Basic and UML e-Business Applications Rosenberg/Scott,Applying Use Case Driven Object Modeling with UML: Collins,Designing Object-Oriented User Interfaces An Annotated e-Commerce Example Conallen,Building Web Applications with UML,2E Rosenberg/Scott,Use Case Driven Object Modeling with UML: D’Souza/Wills,Objects,Components,and Frameworks with UML:The A Practical Approach Catalysis(SM) Approach Royce,Software Project Management:A Unified Framework Douglass,Doing Hard Time:Developing Real-Time Systems with UML, Rumbaugh/Jacobson/Booch,The Unified Modeling Language Reference Objects,Frameworks,and Patterns Manual Douglass,Real-Time Design Patterns:Robust Scalable Architecture for Schneider/Winters,Applying Use Cases,2E:A Practical Guide Real-Time Systems Smith/Williams,Performance Solutions:A Practical Guide to Creating Douglass,Real Time UML,3E:Advances in The UML for Real-Time Responsive,Scalable Software Systems Stevens/Pooley,Using UML,Updated Edition:Software Engineering with Eeles/Houston/Kozaczynski,Building J2EE™Applications with the Objects and Components Rational Unified Process Unhelkar,Process Quality Assurance for UML-Based Projects Fontoura/Pree/Rumpe,The UML Profile for Framework Architectures van Harmelen,Object Modeling and User Interface Design:Designing Fowler,Analysis Patterns:Reusable Object Models Interactive Systems Fowler et al.,Refactoring:Improving the Design of Existing Code Wake,Refactoring Workbook Fowler,UML Distilled,3E:ABrief Guide to the Standard Object Warmer/Kleppe,The Object Constraint Language,2E:Getting Your Modeling Language Models Ready for MDA Gomaa,Designing Concurrent,Distributed,and Real-Time Applications White,Software Configuration Management Strategies and Rational with UML ClearCase®:APractical Introduction Gomaa,Designing Software Product Lines with UML The Component Software Series Graham,Object-Oriented Methods,3E:Principles and Practice Clemens Szyperski,Series Editor Heinckiens,Building Scalable Database Applications:Object-Oriented For more information,check out the series web site at Design,Architectures,and Implementations www.awprofessional.com/csseries. Hofmeister/Nord/Dilip,Applied Software Architecture Allen,Realizing eBusiness with Components Jacobson/Booch/Rumbaugh,The Unified Software Development Process Apperly et al.,Service- and Component-based Development:Using the Jordan,C++ Object Databases:Programming with the ODMG Standard Select Perspective™and UML Kleppe/Warmer/Bast,MDA Explained:The Model Driven Atkinson et al.,Component-Based Product Line Engineering with UML Architecture™:Practice and Promise Cheesman/Daniels,UML Components:A Simple Process for Specifying Kroll/Kruchten,The Rational Unified Process Made Easy:A Component-Based Software Practitioner’s Guide to the RUP Szyperski,Component Software,2E:Beyond Object-Oriented Kruchten,The Rational Unified Process,3E:An Introduction Programming Lau,The Art of Objects:Object-Oriented Design and Architecture Whitehead,Component-Based Development:Principles and Planning for Business Systems SOFTWARE PROJECT MANAGEMENT A Unified Framework WALKER ROYCE RATIONAL SOFTWARE CORPORATION ADDISON–WESLEY Boston • San Francisco • New York • Toronto • Montreal London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Manyofthedesignationsusedbymanufacturersandsellerstodistinguishtheirproductsareclaimedas trademarks.Wherethosedesignationsappearinthisbook,andAddison-Wesleywasawareofatrademarkclaim, thedesignationshavebeenprintedwithinitialcapitallettersorinallcapitals. Theauthorandpublisherhavetakencareinthepreparationofthisbook,butmakenoexpressedorimplied warrantyofanykindandassumenoresponsibilityforerrorsoromissions.Noliabilityisassumedforincidentalor consequentialdamagesinconnectionwithorarisingoutoftheuseoftheinformationorprogramscontained herein. Thepublisheroffersdiscountsonthisbookwhenorderedinquantityforbulkpurchasesandspecialsales.Formore information,pleasecontact: U.S.CorporateandGovernmentSales (800) 382-3419 [email protected] ForsalesoutsideoftheU.S.,pleasecontact: International Sales [email protected] VisitAddison-WesleyontheWebatwww.awprofessional.com LibraryofCongressCataloging-in-PublicationData Royce,Walker,1955- Software projectmanagement:aunifiedframework/WalkerRoyce. p. cm.–(TheAddison-Wesleyobjecttechnologyseries) Includes bibliographicalreferencesandindex. ISBN 0-201-30958-0 1. Computer software––Development––Management. I.Title. II.Series. QA76.76.D47R69 1998 005.1’2––dc21 98-20071 CIP Copyright©1998byAddison-Wesley Allrightsreserved.Nopartofthispublicationmaybereproduced,storedinaretrievalsystem,ortransmitted,in anyform,orbyanymeans,electronic,mechanical,photocopying,recording,orotherwise,withouttheprior consentofthepublisher.PrintedintheUnitedStatesofAmerica.PublishedsimultaneouslyinCanada. Forinformationonobtainingpermissionforuseofmaterialfromthiswork,pleasesubmitawrittenrequestto: PearsonEducation,Inc. RightsandContractsDepartment 75ArlingtonStreet,Suite300 Boston,MA 02116 Fax:(617)848-7047 SpecialpermissiontoparaphraseandusetheMaturityQuestionnaire,CMU/SEI-94-SR-007©1998byCarnegie MellonUniversity,inthebookSoftwareProjectManagement:AUnifiedFrameworkisgrantedbytheSoftware Engineering Institute. CapabilityMaturityModelisaservicemarkofCarnegieMellonUniversity,CMMSMregisteredintheU.S.Patent and Trademark Office. ISBN0201309580 Text printed on recycled paper 131415161718—IBT—0706050403 13thPrinting,August2004 T his work is dedicated to my father, Winston Royce, whose vision and practicality were always in balance. —Walker This page intentionally left blank Contents List of Figures...................................................................................... xiii List of Tables....................................................................................... xvii Foreword............................................................................................. xxi Preface................................................................................................. xxiii PART I SOFTWARE MANAGEMENT RENAISSANCE 1 CHAPTER 1 Conventional Software Management...................................................... 5 1.1 The Waterfall Model................................................................ 6 1.1.1 In Theory..................................................................... 6 1.1.2 In Practice.................................................................... 11 1.2 Conventional Software Management Performance................... 17 CHAPTER 2 Evolution of Software Economics............................................................. 21 2.1 Software Economics................................................................. 21 2.2 Pragmatic Software Cost Estimation........................................ 26 CHAPTER 3 Improving Software Economics................................................................ 31 3.1 Reducing Software Product Size............................................... 33 3.1.1 Languages.................................................................... 34 3.1.2 Object-Oriented Methods and Visual Modeling........... 36 3.1.3 Reuse........................................................................... 38 3.1.4 Commercial Components............................................. 39 3.2 Improving Software Processes.................................................. 40 3.3 Improving Team Effectiveness.................................................. 43 vii viii CONTENTS 3.4 Improving Automation through Software Environments.......... 46 3.5 Achieving Required Quality..................................................... 48 3.6 Peer Inspections: A Pragmatic View.......................................... 51 CHAPTER 4 The Old Way and the New........................................................................ 55 4.1 The Principles of Conventional Software Engineering.............. 55 4.2 The Principles of Modern Software Management..................... 63 4.3 Transitioning to an Iterative Process......................................... 66 PART II A SOFTWARE MANAGEMENT PROCESS FRAMEWORK 69 CHAPTER 5 Life-Cycle Phases........................................................................................ 73 5.1 Engineering and Production Stages........................................... 74 5.2 Inception Phase........................................................................ 76 5.3 Elaboration Phase.................................................................... 77 5.4 Construction Phase.................................................................. 79 5.5 Transition Phase....................................................................... 80 CHAPTER 6 Artifacts of the Process.............................................................................. 83 6.1 The Artifact Sets....................................................................... 84 6.1.1 The Management Set................................................... 85 6.1.2 The Engineering Sets.................................................... 86 6.1.3 Artifact Evolution over the Life Cycle.......................... 92 6.1.4 Test Artifacts............................................................... 93 6.2 Management Artifacts.............................................................. 96 6.3 Engineering Artifacts................................................................ 103 6.4 Pragmatic Artifacts................................................................... 105 CHAPTER 7 Model-Based Software Architectures....................................................... 109 7.1 Architecture: A Management Perspective................................. 110 7.2 Architecture: A Technical Perspective....................................... 111 CHAPTER 8 Workflows of the Process.......................................................................... 117 8.1 Software Process Workflows..................................................... 118 8.2 Iteration Workflows................................................................. 121 CHAPTER 9 Checkpoints of the Process........................................................................ 125 9.1 Major Milestones..................................................................... 126 9.2 Minor Milestones..................................................................... 132 9.3 Periodic Status Assessments...................................................... 133 CONTENTS ix PART III SOFTWARE MANAGEMENT DISCIPLINES 135 CHAPTER 10 Iterative Process Planning......................................................................... 139 10.1 Work Breakdown Structures..................................................... 139 10.1.1 Conventional WBS Issues............................................. 140 10.1.2 Evolutionary Work Breakdown Structures................... 142 10.2 Planning Guidelines.................................................................. 146 10.3 The Cost and Schedule Estimating Process............................... 149 10.4 The Iteration Planning Process................................................. 150 10.5 Pragmatic Planning................................................................... 153 CHAPTER 11 Project Organizations and Responsibilities.............................................. 155 11.1 Line-of-Business Organizations................................................ 156 11.2 Project Organizations............................................................... 158 11.3 Evolution of Organizations...................................................... 165 CHAPTER 12 Process Automation................................................................................... 167 12.1 Tools: Automation Building Blocks.......................................... 168 12.2 The Project Environment.......................................................... 172 12.2.1 Round-Trip Engineering............................................... 173 12.2.2 Change Management................................................... 174 12.2.3 Infrastructures.............................................................. 181 12.2.4 Stakeholder Environments........................................... 184 CHAPTER 13 Project Control and Process Instrumentation........................................... 187 13.1 The Seven Core Metrics............................................................ 188 13.2 Management Indicators............................................................ 190 13.2.1 Work and Progress....................................................... 190 13.2.2 Budgeted Cost and Expenditures.................................. 191 13.2.3 Staffing and Team Dynamics........................................ 195 13.3 Quality Indicators.................................................................... 196 13.3.1 Change Traffic and Stability......................................... 196 13.3.2 Breakage and Modularity............................................. 197 13.3.3 Rework and Adaptability............................................. 197 13.3.4 MTBF and Maturity.................................................... 198 13.4 Life-Cycle Expectations............................................................ 199 13.5 Pragmatic Software Metrics...................................................... 201 13.6 Metrics Automation................................................................. 202