software configuration management handbook
TRANSCRIPT
Software ConfigurationManagement Handbook
Third Edition
Alexis Leon
ARTECH
HOUSE
BOSTON|LONDONartechhouse.com
Contents
Preface xxi
Changes in the Third Edition xxii
How to Use This Book xxiii
Who Should Read This Book? xxiii
Overview of SCM 1
Introduction 1
Common SCM Myths 3
SCM Means More Work and Procedures 3
SCM Will Change Current Practices and It Will Create Product
Failures 3
SCM Is a Difficult, Monotonous, and Time-Consuming Activity 3
SCM Is the Responsibility of Management 4
SCM Is Just for Developers 4
SCM Is Just for the SCM Team 4
SCM Is Just for the Maintenance and Technical Support Team 5
SCM Will Make Many Employees Redundant and Jobless 5
SCM Slows Down the Software Development Process 6
SCM Is Just To Get Certification Like ISO and CMM 6
SCM Tools Will Take Care of Everything 6
One SCM Tool Will Suit Everybody 6
SCM Is Very Expensive 7
Once the SCM Implementation Is Complete, There Will Be No
Additional Expenses 7
SCM Is Just for the Source Code 7
SCM Is Change Management and Defect Tracking 8
Software Development Can Succeed Without SCM 8
SCM Is Just To Impress Customers 8
A Brief History of SCM 9
SCM: Concepts and Definitions 10
Importance of SCM 12
Benefits of SCM 13
Summary 13
References 14
vii
viii Contents
The Software Development Process 15
Introduction 15
Software Development Life Cycle (SDLC) 16
SDLC Phases 18
Project Start-up 18
Requirements Analysis and Requirements Specification 20
Systems Analysis 21
High-Level Design 23
Low-Level or Detailed Design (LLD) 24
Coding and Unit Testing 25
System Testing 26
Acceptance Testing 27
Implementation 27
Project Windup 28
Project Maintenance 28
Retirement 28
Summary 30
References 30
Selected Bibliography 31
Pitfalls in the Software Development Process 33
Introduction 33
Communications Breakdown Problem 33
Shared Data Problem 36
Multiple Maintenance Problem 37
Simultaneous Update Problem 38
Summary 40
References 40
CHAPTER 4
Need and Importance of SCM
Introduction
Need for SCM
The Nature of Software Products, Projects, and Development Teams
Increased Complexity and Demand
The Changing Nature of Software and The Need for ChangeManagement
Benefits of SCM
Improved Organizational CompetitivenessBetter Customer Service and Improved Customer Goodwill
Better Return on Investment
Improved Management Control Over Software Development Activities
Improved Software Development ProductivityEasier Handling of Software Complexity
Contents ix
Improved Security 46
Higher Software Reuse 47
Lower Maintenance Costs 47
Better QA 48
Reduction of Defects and Bugs 48
Faster Problem Identification and Bug Fixes 49
Process-Dependent Development Rather Than Person-DependentDevelopment 49
Assurance That the Correct System Has Been Built 50
Summary 50
References 50
SCM: Basic Concepts 53
Introduction 53
Overview of SCM 54
Baselines 55
Check-In and Check-Out 57
Versions and Variants 58
Parallel Development and Branching 59
Naming of Versions 61
Source and Derived Items 61
System Building 62
Releases 62
Deltas 63
SCM Database 65
SCM Activities 66
Summary 67
References 67
Selected Bibliography 67
Configuration Identification 69
Introduction 69
Impact of CI Selection 72
Effects of Selecting Too Many CIs 72
Effects of Selecting Too Few CIs 73
Baselines 73
CI Selection 75
Checklist for Selection of CIs 75
Designation: Naming of CIS 76
CI Description 77
Acquisition of CIs 77
Summary 78
References 78
Selected Bibliography 78
X Contents
CHAPTER 7
Configuration Control 81
Introduction 81
Change 82
Proposing Changes to the Customer 82
Deviations and Waivers 83
Change and Configuration Control 83
Problems of Uncontrolled Change 84
Configuration Control 84
Change Initiation 86
Change Classification 88
Change Evaluation/Analysis 88
Change Disposition 89
Change Implementation 90
Change Verification 90
Baseline Change Control 91
File-Based versus Change-Based Change Management 91
Escalation and Notification 93
Emergency Fixes 93
Problem Reporting and Tracking 94
Problem Reports and CRs 94
Problem Identification 95
Defect Classification 96
Requirements Analysis 96
Design Phase 97
Coding and Testing Phase 98
Defect Severity 98
Defect Prevention 98
Causal Analysis 99
Defect Knowledge Base and Help Desks 99
CCB 99
CCB Composition 100
Functions of the CCB 101
Functioning of the CCB 102
Summary 103
References 104
Selected Bibliography 104
Status Accounting 107
Introduction 107
Status Accounting Information Gathering 108
Status Accounting Database 109
Importance of Status Accounting 110
Status Accounting Reports 111
Change Log 112
Contents xi
Progress Report 112
CI Status Report 112
Transaction Log 112
Status Accounting and Automation 112
Change and Problem Tracking Reports 114
Difference Reporting 114
Ad Hoc Queries 114
Journals 114
Summary 115
References 115
Selected Bibliography 115
Configuration Verification and Audits 117
Introduction 117
Software Reviews 119
Configuration Verification 120
The When, What, and Who of Auditing 121
FCA 122
PCA 123
Auditing the SCM System 123
Role of the SCM Team in CAs 123
CAs and SCM Tools 124
Summary 124
References 124
Selected Bibliography 125
SCM: Advanced Concepts 127
Introduction 127
Version Control 127
System Building 128
Release Management 129
Interface Control 130
Subcontractor Control 131
Software Library 132
Summary 133
References 134
Selected Bibliography 134
SCM Standards 137
Introduction 137
Military Standards 141
DOD-STD-2167A 141
DOD-STD-2168 141
xii Contents
MIL-STD-498 142
MIL-HDBK-61A (SE) 142
MIL-STD-2549 143
MIL-STD-480B 143
MIL-STD-481B 144
MIL-STD-482 144
MIL-STD-973 144
MIL-STD-1521B 144
MIL-STD-961E 145
International/Commercial Standards 145
EIA-649-B 146
IEEE Std-828-2012 146
ANSI/IEEE Std-1042-1987 147
ANSI/IEEE Std-730-2014 147
ANSI/IEEE Std-730.1-1995 147
ANSI/IEEE Std-1028-2008 147
ISO/IEC/IEEE12207-2008 148
ISO/IEC/IEEE 15288:2008 148
ISO 9001:2008 149
ISO/IEC 90003: 2004 150
ISO 10007: 2003 151
Summary 151
Selected Bibliography 152
Software Process Improvement Models and SCM 153
Introduction 153
CMM 153
CMM Interactive (CMMI) 154
ISO/IEC 15504 155
BOOTSTRAP 156
Trillium Model 157
Information Technology Infrastructure Library (ITIL) 158
Change Evaluation 160
Change Management 160
Release and Deployment Management 160
Service Asset and CM 161
Control Objectives for Information and Related Technology (COBIT) 161
Software Engineering Body of Knowledge (SWEBOK) 162
Summary 164
Selected Bibliography 164
SCM Plans (SCMPs) 167
Introduction 167
SCMP and the Incremental Approach 168
Contents xiii
SCMPs and SCM Tools 168
SCMPs and Standards 169
ANSI/IEEE Std-828-1998 and ANSI/IEEE Std-1042-1987 170
MIL-HDBK-61A (SE)-2001 170
EIA-649-B: 2011 172
ISO 10007: 2003 172
Audit of the SCMP 174
How to Write a Good SCMP 174
Contents of a Typical SCMP 176
Sample SCMPS 181
Summary 181
Reference 182
Selected Bibliography 182
SCM Organization 183
Introduction 183
SCM and the Organization 183
SCM Organization 186
Automation and SCM Team Size 188
Skill Inventory Database 188
CCB Organization 190
Summary 192
Reference 192
Selected Bibliography 193
SCM Tools 195
Introduction 195
Evolution of SCM Tools 195
Reasons for the Increasing Popularity of SCM Tools 196
Advantages of SCM Tools 197
Information Integration 197
Flexibility 197
Better Analysis and Planning Capabilities 198
Use of the Latest Technology 198
Why Many SCM Tool Implementations Fail 198
SCM Tools and SCM Functions 199
Version Management 200
Change Management 201
Problem Tracking 202
Promotion Management 203
System Building 203
Status Accounting (Querying and Reporting) 204
CAs 204
Access and Security 204
xiv Contents
Customization 205
Web Enabling 205
SCM Tool Selection 206
Selection Process 207
Selection Committee 207
Working with Vendors 208
Role of Technology 208
Selection Criteria 209
Tool Implementation 212
SCM Tools: Make or Buy? 214
Summary 216
References 216
Selected Bibliography 217
Documentation Management and Control (DMC) and Product Data
Management (PDM) 219
Introduction 219
Document Life Cycle 220
Document Creation 221
Document Storage 222
Publishing 222
Viewing 222
Modification or Change, Review and Approval 222
Records Retention 223
Document Disposal 223
Archiving 223
Documentation and SDLC Phases 223
DMC 225
PDM and DMC 227
Overview of PDM 228
Data Management 230
Process Management 230
Benefits of PDM 231
Reduced Time to Market 231
Improved Design Productivity 231
Improved Design and Manufacturing Accuracy 232
Better Use of Creative Team Skills 232
Data Integrity Safeguarded 232
Better Control of Projects 232
A Major Step Toward Total Quality Management 232
PDM and SCM 233
PDM Resources 234
Summary 234
References 234
Selected Bibliography 235
Contents xv
CHAPTER 17
SCM Implementation 237
Introduction 237
Managing the Implementation 237
Preimplementation Tasks—Getting Ready 238
Importance of Preparation 238
Before You Leap 239
Assembling the Participants 241
Feasibility Study Review 241
Project Mission and Vision Statements Creation 241
Determination of Organizational Structure 242
Determination of the Modules To Be Implemented 242
Creating the Core Team 242
Establishing the Training Needs 242
Establishing the Data Conversion or Migration Strategy 243
Establishing Interfaces 244
Determining Work Estimates 244
Cost of Consultants 244
Calculation of Implementation Time 245
Identifying Constraints 245
Establishing Policies and Guidelines 245
In-House Implementation—Pros and Cons 246
SCM Implementation Plan 247
Risk Assessment 249
Implementation Strategy 249
Budget 250
Cost 251
Cost-Benefit Analysis 252
Performance Measurement 253
SCM Implementation Team 254
Composition of the Implementation Team 256
Organization of the Implementation Team 257
How the Implementation Team Works 262
Problem Resolution 264
System Issues 264
Consultants 265
Role of the Consultants 268
Contract with the Consultants 269
Package Vendors 269
Vendors and Vendor Management 270
Role of the Vendor 272
Contract with the Vendor 273
Training and Education 275
Overview of Training 276
Training Costs 277
Need and Importance of Training 278
xvi Contents
Training Phases 280
Preimplementation Training 280
User Training (During and After Implementation) 282
Training, Assessment, and Review 283
Training Strategy 284
Success Factors 285
Employees and Employee Resistance 287
Reasons for Employee Resistance 288
Fear of Being Redundant 288
Fear of Failure 288
Fear of the Future 289
Dealing with Employee Resistance 289
Training and Education 289
Implement an Organizational Change Management Program 290
Creating SCM Champions 290
Pilot Projects 290
Involve Employees in SCM Process 291
Address Issues of Fear, Uncertainty, and Self-Esteem 291
Manage Expectations 291
Contract with the Employees 292
Company-Wide Implementation 293
SCM Implementation: The Hidden Costs 293
Training 293
Integration and Testing 294
Data Conversion or Migration 294
Data Analysis 294
External Consultants 294
Brain Drain (Employee Turnover) 295
Continuing Maintenance 295
Summary 295
Reference 296
Selected Bibliography 296
The Different Phases of SCM Implementation 299
Introduction 299
Objectives of SCM Implementation 300
Scope 301
Resources 301
Risk 301
Complexity 301
Benefits 301
Different Phases of SCM Implementation 302
SCM System Design 305
SCMP Preparation 306
SCM Team Organization 306
SCM Infrastructure Setup 306
Contents xvii
SCM Team Training 307
Project Team Training 307
SCM System Implementation 308
Operation and Maintenance of the SCM System 308
Records Retention 309
SCM System Retirement 309
SCM Tool Retirement 309
Why Many SCM Implementations Fail 310
Lack of Top Management Buy-in, Commitment, and Support 310
Improper Planning and Budgeting 310
Use of the Wrong SCM Tool 310
Lack of Training 311
Work Culture of the Organization 311
Summary 311
Reference 312
Selected Bibliography 312
SCM Deployment Models and Transition Strategies 313
Introduction 313
Traditional License or On-Premises Deployment 313
Advantages of On-Premises SCM System 313
Disadvantages of On-premises SCM System 314
Cloud Computing 314
Cloud Computing Models 315
IaaS 315
PaaS 316
SaaS 316
SCM and Cloud Computing 316
Hosted System Deployment 317
Advantages of a Hosted SCM System 318
Disadvantages of a Hosted SCM System 318
SaaS or On-Demand Deployment 318
Advantages of SaaS SCM Systems 319
Disadvantages of SaaS SCM Systems 320
SCM Transition Strategies 324
Big-Bang Strategy 325
Phased Implementation 326
Choosing a Strategy 327
Summary 328
References 328
Source Code Repositories 329
Overview 329
Software Development in a Code Repository 329
How Will Repositories Help Software Companies? 331
xviii Contents
Features Available at Source Code Repositories 332
Factors to Consider When Choosing a Repository 333
Advantages and Disadvantages 334
Advantages 334
Disadvantages 334
Summary 335
Selected Bibliography 335
Implementation Challenges 337
Introduction 337
Implementation Challenges 338
Inadequate Requirements Definition 338
Resistance to Change 338
Inadequate Resources 339
Lack of Top Management Support 339
Lack of Organizational Readiness 339
Inadequate Training and Education 340
Inaccurate Expectations 340
Poor Package Selection 340
Poor Project Management 341
Customization Issues 341
Poor Communication and Cooperation 341
Data Quality Costs 342
Hidden Implementation Costs 342
Improper Operation or Use 342
Summary 342
Reference 343
SCM Operation and Maintenance 345
Introduction 345
Employee Relocation and Retraining 346
Organizational Structure 346
Roles and Skills 347
Knowledge Management 347
SCM Tools and Technology 348
Review 348
Operation of the SCM System 349
Interdepartmental Coordination 350
SWOT Analysis 350
Documentation 350
Training 351
Audits and Reviews 351
CCB Formation 351
Contents xix
SCM Database Management 352
Software Upgrades, Enhancements, and Modifications 352
Help Desks 353
Change and Problem Requests from Customers and In-field EmergencyFixes 353
Reusability Improvement 354
Metrics 354
SCM Maintenance Phase 355
Summary 356
Selected Bibliography 356
SCM in Special Circumstances 357
Introduction 357
SCM and Project Size 357
SCM in Very Large Projects 358
Performance of SCM Tools 359
Implementation Strategy 359
Distributed, Concurrent, and Parallel Development 360
Change Management 360
Status Accounting 361
System Building 361
Skill Inventory Database 361
Training 362
Help Desks and Other Knowledge-Sharing Systems 362
SCM Costs 362
Concurrent and Parallel Development 363
Web Site Management 363
SCM in Integrated Development Environments 364
SCM in Distributed Environments 364
SCM and Case Tools 365
Summary 365
References 366
Selected Bibliography 366
SCM Resources on the Internet 367
Organizations and Institutes 367
Resource Pages 367
Commercial Research Organizations 368
Digital/On-Line Libraries 368
Magazines and Periodicals 368
General Sites 369
Major SCM Tools 369
xx Contents
SCM Bibliography 371
Glossary and List of Acronyms 391
About the Author 403
Index 405