CHAPTER 1 Conventional Software Management 5
PART Ⅰ SOFTWARE MANAGEMENT RENAISSANCE 5
1.1 The Waterfall Model 6
1.1.1 In Theory 6
FIGURE 1-1 The waterfall model 7
1.1.2 In Practice 11
FIGURE 1-2 Progress profile of a conventional software project 12
TABLE 1-1 Expenditures by activity for a conventional software project 13
FIGURE 1-3 Risk profile of a conventional software project across its life cycle 14
FIGURE 1-4 Suboptimal software component organization resulting from a requirements-driven approach 16
1.2 Conventional Software Management Performance 17
TABLE 1-2 Results of conventional software project design reviews 17
CHAPTER 2 Evolution of Software Economics 21
2.1 Software Economics 21
FIGURE 2-1 Three generations of software economics leading to the target objective 23
FIGURE 2-2 Return on investment in different domains 25
2.2 Pragmatic Software Cost Estimation 26
FIGURE 2-3 The predominant cost estimation process 28
CHAPTER 3 Improving Software Economics 31
TABLE 3-1 Important trends in improving software economics 32
3.1 Reducing Software Product Size 33
3.1.1 Languages 34
TABLE 3-2 Language expressiveness of some of today's popular languages 34
3.1.2 Object-Oriented Methods and Visual Modeling 36
3.1.3 Reuse 38
3.1.4 Commercial Components 39
FIGURE 3-1 Cost and schedule investments necessary to achieve reusable components 39
3.2 Improving Software Processes 40
TABLE 3-3 Advantages and disadvantages of commercial components versus custom software 40
TABLE 3-4 Three levels of process and their attributes 41
3.3 Improving Team Effectiveness 43
3.4 Improving Automation through Software Environments 46
3.5 Achieving Required Quality 48
TABLE 3-5 General quality improvements with a modern process 49
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
FIGURE 4-1 The top five principles of a modern process 64
TABLE 4-1 Modern process approaches for solving conventional problems 66
4.3 Transitioning to an Iterative Process 66
PART Ⅱ A SOFTWARE MANAGEMENT PROCESS FRAMEWORK 69
CHAPTER 5 Life-Cycle Phases 73
5.1 Engineering and Production Stages 74
TABLE 5-1 The two stages of the life cycle:engineering and production 74
FIGURE 5-1 The phases of the life-cycle process 75
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
FIGURE 6-1 Overview of the artifact sets 85
6.1.2 The Engineering Sets 86
FIGURE 6-2 Life-cycle focus on artifact sets 89
FIGURE 6-3 Life-cycle evolution of the artifact sets 92
6.1.3 Artifact Evolution over the Life Cycle 92
6.1.4 Test Artifacts 93
6.2 Management Artifacts 96
FIGURE 6-5 Typical release specification outline 97
FIGURE 6-4 Typical business case outline 97
FIGURE 6-6 Typical software development plan outline 99
FIGURE 6-7 Typical release description outline 100
FIGURE 6-8 Artifact sequences across a typical life cycle 102
6.3 Engineering Artifacts 103
FIGURE 6-9 Typical vision document outline 103
6.4 Pragmatic Artifacts 105
FIGURE 6-10 Typical architecture description outline 105
CHAPTER 7 Model-Based Software Architectures 109
7.1 Architecture: A Management Perspective 110
7.2 Architecture: A Technical Perspective 111
FIGURE 7-1 Architecture,an organized and abstracted view into the design models 113
CHAPTER 8 Workflows of the Process 117
8.1 Software Process Workflows 118
FIGURE 8-1 Activity levels across the life-cycle phases 119
TABLE 8-1 The artifacts and life-cycle emphases associated with each workflow 120
8.2 Iteration Workflows 121
FIGURE 8-2 The workflow of an iteration 121
FIGURE 8-3 Iteration emphasis across the life cycle 123
FIGURE 8-4 A typical build sequence associated with a layered architecture 124
CHAPTER 9 Checkpoints of the Process 125
9.1 Major Milestones 126
FIGURE 9-1 A typical sequence of life-cycle checkpoints 127
TABLE 9-1 The general status of plans,requirements,and products across the major milestones 128
FIGURE 9-2 Engineering artifacts available at the life-cycle architecture milestone 130
FIGURE 9-3 Default agendas for the life-cycle architecture milestone 131
9.2 Minor Milestones 132
FIGURE 9-4 Typical minor milestones in the life cycle of an iteration 133
9.3 Periodic Status Assessments 133
TABLE 9-2 Default content of status assessment reviews 134
PART Ⅲ SOFTWARE MANAGEMENT DISCIPLINES 135
10.1 Work Breakdown Structures 139
CHAPTER 10 Iterative Process Planning 139
10.1.1 Conventional WBS Issues 140
FIGURE 10-1 Conventional work breakdown structure,following the product hierarchy 141
10.1.2 Evolutionary Work Breakdown Structures 142
FIGURE 10-2 Default work breakdown structure 144
10.2 Planning Guidelines 146
FIGURE 10-3 Evolution of planning fidelity in the WBS over the life cycle 147
TABLE 10-1 WBS budgeting defaults 148
TABLE 10-2 Default distributions of effort and schedule by phase 148
10.3 The Cost and Schedule Estimating Process 149
10.4 The Iteration Planning Process 150
FIGURE 10-4 Planning balance throughout the life cycle 151
10.5 Pragmatic Planning 153
CHAPTER 11 Project Organizations and Responsibilities 155
11.1 Line-of-Business Organizations 156
FIGURE 11-1 Default roles in a software line-of-business organization 156
11.2 Project Organizations 158
FIGURE 11-2 Default project organization and responsibilities 159
FIGURE 11-3 Software management team activities 160
FIGURE 11-4 Software architecture team activities 161
FIGURE 11-5 Software development team activities 162
FIGURE 11-6 Software assessment team activities 164
11.3 Evolution of Organizations 165
FIGURE 11-7 Software project team evolution over the life cycle 165
CHARTER 12 Process Automation 167
12.1 Tools: Automation Building Blocks 168
FIGURE 12-1 Typical automation and tool components that support the process workflows 169
12.2 The Project Environment 172
12.2.1 Round-Trip Engineering 173
FIGURE 12-2 Round-trip engineering 174
12.2.2 Change Management 174
FIGURE 12-3 The primitive components of a software change order 176
FIGURE 12-4 Example release histories for a typical project and a typical product 179
TABLE 12-1 Representative examples of changes at opposite ends of the project spectrum 180
12.2.3 Infrastructures 181
FIGURE 12-5 Organization policy outline 183
12.2.4 Stakeholder Environments 184
FIGURE 12-6 Extending environments into stakeholder domains 185
CHAPTER 13 Project Control and Process Instrumentation 187
13.1 The Seven Core Metrics 188
TABLE 13-1 Overview of the seven core metrics 189
13.2 Management Indicators 190
13.2.1 Work and Progress 190
13.2.2 Budgeted Cost and Expenditures 191
FIGURE 13-1 Expected progress for a typical project with three major releases 191
FIGURE 13-2 The basic parameters of an earned value system 193
TABLE 13-2 Measurement of actual progress of book development(example) 194
FIGURE 13-3 Assessment of book progress(example) 194
13.2.3 Staffing and Team Dynamics 195
FIGURE 13-4 Typical staffing profile 196
13.3 Quality Indicators 196
13.3.1 Change Traffic and Stability 196
FIGURE 13-5 Stability expectation over a healthy project's life cycle 197
13.3.3 Rework and Adaptability 197
13.3.2 Breakage and Modularity 197
FIGURE 13-6 Modularity expectation over a healthy project's life cycle 197
FIGURE 13-7 Adaptability expectation over a healthy project's life cycle 198
FIGURE 13-8 Maturity expectation over a healthy project's life cycle 198
13.3.4 MTBF and Maturity 198
13.4 Life-Cycle Expectations 199
TABLE 13-3 The default pattern of life-cycle metrics evolution 200
13.5 Pragmatic Software Metrics 201
13.6 Metrics Automation 202
FIGURE 13-9 Examples of the fundamental metrics classes 205
FIGURE 13-10 Example SPCP display for a top-level project situation 206
CHAPTER 14 Tailoring the Process 209
14.1 Process Discriminants 209
FIGURE 14-1 The two primary dimensions of process variability 210
14.1.1 Scale 210
FIGURE 14-2 Priorities for tailoring the process framework 211
TABLE 14-1 Process discriminators that result from differences in project size 213
TABLE 14-2 Process discriminators that result from differences in stakeholder cohesion 214
14.1.2 Stakeholder Cohesion or Contention 214
14.1.3 Process Flexibility or Rigor 215
14.1.4 Process Maturity 215
TABLE 14-4 Process discriminators that result from differences in process maturity 216
TABLE 14-3 Process discriminators that result from differences in process flexibility 216
TABLE 14-5 Process discriminators that result from differences in architectural risk 217
14.1.5 Architectural Risk 217
14.1.6 Domain Experience 217
TABLE 14-7 Schedule distribution across phases for small and large projects 218
TABLE 14-6 Process discriminators that result from differences in domain experience 218
14.2 Example: Small-Scale Project versus Large-Scale Project 218
TABLE 14-8 Differences in workflow priorities between small and large projects 219
TABLE 14-9 Differences in artifacts between small and large projects 220
PART Ⅳ LOOKING FORWARD 221
CHAPTER 15 Modern Project Profiles 225
FIGURE 15-1 Progress profile of a modern project 226
15.1 Continuous Integration 226
TABLE 15-1 Differences in workflow cost allocations between a conventional process and a modern process 227
15.2 Early Risk Resolution 227
15.3 Evolutionary Requirements 228
FIGURE 15-2 Risk profile of a typical modern project across its life cycle 229
15.4 Teamwork among Stakeholders 229
FIGURE 15-3 Organization of software components resulting from a modern process 230
TABLE 15-2 Results of major milestones in a modern process 231
15.5 Top 10 Software Management Principles 231
15.6 Software Management Best Practices 232
FIGURE 15-4 Balanced application of modern principles to achieve economic results 233
16.1 Next-Generation Cost Models 237
CHAPTER 16 Next-Generation Software Economics 237
FIGURE 16-1 Next-generation cost models 239
FIGURE 16-2 Differentiating potential solutions through cost estimation 240
16.2 Modern Software Economics 242
FIGURE 16-3 Automation of the construction process in next-generation environments 242
CHAPTER 17 Modern Process Transitions 247
17.1 Culture Shifts 248
17.2 Denouement 251
FIGURE 17-1 Next-generation project performance 252
PART Ⅴ CASE STUDIES AND BACKUP MATERIAL 255
APPENDIX A The State of the Practice in Software Management 259
TABLE A-1 Technologies used on software projects 260
TABLE A-2 Social factors observed on software projects 261
TABLE A-3 Factors that affect the success of software projects 262
APPENDIX B The COCOMO Cost Estimation Model 265
B.1 COCOMO 266
TABLE B-1 COCOMO project characterization parameters 267
TABLE B-2 Effort and schedule partition across conventional life-cycle phases 268
B.2 Ada COCOMO 269
TABLE B-3 Default effort allocations across COCOMO WBS activities 269
FIGURE B-1 Profile of a conventional project 270
TABLE B-4 Ada COCOMO improvements to the effort adjustment factors 272
B.3 COCOMO Ⅱ 274
FIGURE B-3 COCOMO Ⅱ estimation over a project life cycle 276
FIGURE B-2 Software estimation over a project life cycle 276
TABLE B-5 Early design model effort adjustment factors 277
TABLE B-6 COCOMO Ⅱ post-architecture model updates to Ada COCOMO and COCOMO 278
TABLE B-7 COCOMO Ⅱ process exponent parameters 281
APPENDIX C Change Metrics 283
C.1 Overview 284
C.2 Metrics Derivation 286
C.2.1 Collected Statistics 288
TABLE C-1 Definitions of collected statistics 288
TABLE C-2 End-product quality metrics 291
C.2.2 End-Product Quality Metrics 291
C.2.3 In-Progress Indicators 293
TABLE C-3 Definitions of in-progress indicators 293
FIGURE C-1 Expected trends for in-progress indicators 294
FIGURE C-2 Expectations for quality trends 295
C.3 Pragmatic Change Metrics 297
APPENDIX D CCPDS-R Case Study 299
D.1 Context for the Case Study 300
D.2 Common Subsystem Overview 301
FIGURE D-1 CCPDS-R life-cycle overview 302
D.3 Project Organization 304
D.4 Common Subsystem Product Overview 305
FIGURE D-2 Full-scale development phase project organization 306
TABLE D-1 CSCI summary 307
FIGURE D-3 Common Subsystem SAS evolution 309
D.5 Process Overview 310
FIGURE D-4 Overview of the CCPDS-R macroprocess,milestones,and schedule 311
D.5.1 Risk Management: Build Content 312
FIGURE D-5 Common Subsystem builds 313
FIGURE D-6 Basic activities sequence for an individual build 315
D.5.2 The Incremental Design Process 315
D.5.3 Component Evolution 318
TABLE D-2 A typical component evolution from creation through turnover 319
TABLE D-3 NAS CSCI metrics summary at month 10 320
D.5.4 The Incremental Test Process 321
FIGURE D-7 Incremental baseline evolution and test activity flow 322
D.5.5 DOD-STD-2167A Artifacts 323
TABLE D-4 CCPDS-R software artifacts 325
D.6 Demonstration-Based Assessment 326
TABLE D-5 Software development file evolution 326
FIGURE D-8 CCPDS-R first demonstration activities and schedule 330
D.7 Core Metrics 337
D.7.1 Development Progress 338
FIGURE D-9 Development progress summary 339
FIGURE D-10 Common Subsystem development progress 340
D.7.2 Test Progress 340
TABLE D-6 SCO characteristics for build 2 BIT testing 341
FIGURE D-11 Common Subsystem test progress 342
TABLE D-7 Requirements verification work by test type and CSCI 342
D.7.4 Modularity 343
D.7.3 Stability 343
FIGURE D-12 Common Subsystem stability 343
D.7.5 Adaptability 344
FIGURE D-13 Common Subsystem modularity 344
D.7.7 Cost/Effort Expenditures by Activity 345
D.7.6 Maturity 345
FIGURE D-14 Common Subsystem adaptability 345
TABLE D-8 Common Subsystem cost expenditures by top-level WBS element 346
FIGURE D-15 Common Subsystem maturity 346
TABLE D-9 Common Subsystem lower level WBS elements 347
D.8 Other Metrics 348
D.8.1 Software Size Evolution 348
TABLE D-10 Common Subsystem CSCI sizes 349
TABLE D-11 SLOC-to-ESLOC conversion factors 350
TABLE D-12 Common Subsystem CSCI sizes in ESLOC 352
D.8.2 Subsystem Process Improvements 352
D.8.3 SCO Resolution Profile 353
TABLE D-13 CCPDS-R subsystem changes by CSCI 354
D.8.4 CSCI Productivities and Quality Factors 354
FIGURE D-16 Common Subsystem SCO change profile 355
TABLE D-14 Common Subsystem CSCI summary 355
D.9 People Factors 356
D.9.1 Core Team 357
D.9.2 Award Fee Flowdown Plan 358
D.10 Conclusions 359
TABLE D-15 CCPDS-R technology improvements 360
APPENDIX E Process Improvement and Mapping to the CMM 363
E.1 CMM Overview 363
TABLE E-1 Industry distribution across maturity levels 364
FIGURE E-1 Project performance expectations for CMM maturity levels 365
E.2 Pragmatic Process Improvement 366
E.3 Maturity Questionnaire 367
E.4 Questions Not Asked by the Maturity Questionnaire 387
E.5 Overall Process Assessment 390
Glossary 391
References 397
Index 401