Software configuration management handbook

15
Software Configuration Management Handbook Third Edition Alexis Leon ARTECH HOUSE BOSTON|LONDON artechhouse.com

Transcript of Software configuration management handbook

Page 1: Software configuration management handbook

Software ConfigurationManagement Handbook

Third Edition

Alexis Leon

ARTECH

HOUSE

BOSTON|LONDONartechhouse.com

Page 2: Software configuration management handbook

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

Page 3: Software configuration management handbook

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

Page 4: Software configuration management handbook

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

Page 5: Software configuration management handbook

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

Page 6: Software configuration management handbook

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

Page 7: Software configuration management handbook

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

Page 8: Software configuration management handbook

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

Page 9: Software configuration management handbook

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

Page 10: Software configuration management handbook

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

Page 11: Software configuration management handbook

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

Page 12: Software configuration management handbook

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

Page 13: Software configuration management handbook

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

Page 14: Software configuration management handbook

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

Page 15: Software configuration management handbook

xx Contents

SCM Bibliography 371

Glossary and List of Acronyms 391

About the Author 403

Index 405