Chapter 1 THE SOFTWARE ENGINEER S JOB 1
1.1 What Is Software Engineering? 1
1.2 Why Is Good Engineering Important? 2
1.3 The Personal Software Process 2
1.4 The Discipline of High-Quality Work 3
1.5 The Importance of High-Quality Work 3
1.6 How to Improve the Quality of Your Work 4
1.7 The Improvement Process 5
1.8 The Strategy of This Book 6
1.9 Summary 7
1.10 Assignment 1 7
Reference 8
Chapter 2 TIME MANAGEMENT 9
2.1 The Logic of Time Management 9
2.2 Understanding How You Spend Time 11
2.3 The Engineering Notebook 12
2.4 The Notebook Design 12
2.5 Engineering Notebook Examples 14
2.6 Summary 14
2.7 Assignment 2 17
Chapter 3 TRACKING TIME 19
3.1 Why Track Time? 19
3.2 Recording Time Data 20
3.3 Tracking Your Time 21
3.4 Use a Standard Time Recording Log 22
3.5 Handling Interruptions 25
3.6 Tracking Completed Tasks 25
3.7 Keeping Time Logs in the Engineering Notebook 26
3.8 Hints on Logging Your Time 28
3.9 Summary 29
3.10 Assignment 3 29
Chapter 4 PERIOD AND PRODUCT PLANNING 31
4.1 Period and Product Plans 31
4.2 The Weekly Activity Summary 33
4.3 Summarizing Weekly Times 35
4.4 Calculating Period Times and Rates 38
4.5 Using the Weekly Activity Summary 40
4.6 Summary 43
4.7 Assignment 4 43
Chapter 5 PRODUCT PLANNING 45
5.1 The Need for Product Plans 45
5.2 Why Product Plans Are Helpful 46
5.3 What Is a Product Plan? 46
5.4 Product Planning in This Book 47
5.5 Planning Small Jobs 47
5.6 Some Definitions 48
5.7 The Job Number Log 48
5.8 Some Suggestions on Using the Job Number Log 54
5.9 Using Product Times and Rates Data 55
5.10 Summary 56
5.11 Assignment 5 56
Chapter 6 PRODUCT SIZE 57
6.1 The Product Planning Process 57
6.2 Size Measurement 58
6.3 Some Cautions on Using Size Measures 59
6.4 Program Size 59
6.5 Other Size Measures 62
6.6 Estimating Program Size 62
6.7 Making a Larger Size Estimate 63
6.8 Using Size Measures in the Job Number Log 66
6.9 Summary 70
6.10 Assignment 6 71
Chapter 7 MANAGING YOUR TIME 73
7.1 Elements of Time Management 73
7.2 Categorizing Your Activities 74
7.3 Gather Data on Time Spent by Activity 74
7.4 Evaluating Your Time Distribution 74
7.5 Making a Time Budget 75
7.6 Finding More Time 77
7.7 Setting Ground Rules 78
7.8 Prioritizing Your Time 81
7.9 Managing Your Time Budget 83
7.10 Suggestions on Managing Variable Time 84
7.11 Your Time Management Objective 85
7.12 Summary 85
7.13 Assignment 7 86
Chapter 8 MANAGING COMMITMENTS 87
8.1 Defining Commitment 87
8.2 Responsibly Made Commitments 89
8.3 Example of a Commitment 89
8.4 An Example in Industry 92
8.5 Handling Missed Commitments 92
8.6 The Importance of Managing Commitments 93
8.7 The Consequences of Not Managing Commitments 93
8.8 The Way to Manage Commitments 94
8.9 Summary 95
8.10 Assignment 8 96
Chapter 9 MANAGING SCHEDULES 97
9.1 The Need for Schedules 97
9.2 The Gantt Chart 98
9.3 Making a Project Schedule 100
9.4 Checkpoints 101
9.5 Tracking Project Plans 103
9.6 Tracking Earned Value 105
9.7 Summary 108
9.8 Assignment 9 109
References 110
Chapter 10 THE PROJECT PLAN 111
10.1 The Need for Project Plans 111
10.2 The Project Plan Summary 112
10.3 The Summary 114
10.4 Program Size 114
10.5 Time in Phase 118
10.6 Estimating Accuracy 118
10.7 Summary 120
10.8 Assignment 10 120
References 121
Chapter 11 THE SOFTWARE DEVELOPMENT PROCESS 123
11.1 Why We Use Processes 123
11.2 Some Definitions 124
11.3 The Process Script 125
11.4 Checkpoints and Phases 127
11.5 The Updated Project Plan Summary Form 127
11.6 A Planning Example 130
11.7 An Example of To Date Calculations 132
11.8 Summary 136
11.9 Assignment 11 136
Reference 136
Chapter 12 DEFECTS 137
12.1 What Is Software Quality? 137
12.2 Defects and Quality 138
12.3 What Are Defects? 139
12.4 Defects Versus Bugs 140
12.5 Defect Types 141
12.6 Understanding Defects 142
12.7 The Defect Recording Log 143
12.8 Counting Defects 147
12.9 Using the Defect Recording Log 148
12.10 The Updated PSP Process 149
12.11 Summary 155
12.12 Assignment 12 155
References 155
Chapter 13 FINDING DEFECTS 157
13.1 A Personal Commitment to Quality 157
13.2 The Steps in Finding Defects 158
13.3 Ways to Find and Fix Defects 158
13.4 Code Reviews 159
13.5 Why Find Defects Early? 160
13.6 The Costs of Finding and Fixing Defects 161
13.7 Using Reviews to Find Defects 163
13.8 Reviewing Before Compiling 164
13.9 Data on Compile and Test Defects 165
13.10 The Updated PSP Project Plan Summary Form 167
13.11 Other Kinds of Reviews 167
13.12 Summary 173
13.13 Assignment 13 173
References 174
Chapter 14 THE CODE REVIEW CHECKLIST 175
14.1 Why Do Checklists Help? 175
14.2 An Example Code Review Checklist 176
14.3 Using a Code Review Checklist 179
14.4 Building a Personal Checklist 182
14.5 Improving the Checklist 185
14.6 Coding Standards 186
14.7 Summary 188
14.8 Assignment 14 191
Chapter 15 PROJECTING DEFECTS 193
15.1 Defect Rates 193
15.2 Using Defect Data 195
15.3 Defect Density 196
15.4 Projecting Defect Rates 196
15.5 Defect Estimation 197
15.6 The Updated Project Plan Summary Form and Example 199
15.7 Entering the Actual Data 206
15.8 Summary 207
15.9 Assignment 15 207
Reference 207
Chapter 16 THE ECONOMICS OF DEFECT REMOVAL 209
16.1 The Need for Quality Work 209
16.2 The Defect-Removal Problem 210
16.3 Defect-Removal Time 211
16.4 Defect-Injection and -Removal Experience 211
16.5 Defect-Removal Savings 213
16.6 Calculating Defects/Hour on the PSP Project Plan Summary 215
16.7 Calculating Yield on the Project Plan Summary 220
16.8 Improving Defect-Removal Rates 221
16.9 Reducing Defect-Injection Rates 222
16.10 Summary 223
16.11 Assignment 16 223
References 224
Chapter 17 DESIGN DEFECTS 225
17.1 The Nature of Design Defects 225
17.2 Identifying Design Defects 227
17.3 What Is Design? 227
17.4 The Design Process 228
17.5 The Causes of Design Defects 229
17.6 The Impact of Design Defects 230
17.7 Design Representation 231
17.8 Summary 236
17.9 Assignment 17 236
References 237
Chapter 18 PRODUCT QUALITY 239
18.1 Quality Comes First 239
18.2 Testing 240
18.3 The Filter View of Testing 241
18.4 The Benefits of Careful Work 242
18.5 Calculating Yield Values 244
18.6 Estimating the Ultimate Yield 246
18.7 The Benefits of 100% Process Yield 247
18.8 Yield Experience 247
18.9 Prototyping 249
18.10 Summary 250
18.11 Assignment 18 251
Reference 251
Chapter 19 PROCESS QUALITY 253
19.1 Process Measures 253
19.2 The Defect-Removal Paradox 254
19.3 A Defect-Removal Strategy 255
19.4 Cost of Quality 256
19.5 Calculating the Cost of Quality 256
19.6 The Appraisal/Failure Ratio 257
19.7 Improving Review Rates 265
19.8 Calculating the True Cost of Quality 266
19.9 Summary 268
19.10 Assignment 19 268
Chapter 20 A PERSONAL COMMITMENT TO QUALITY 269
20.1 The Importance of Quality 269
20.2 The Increasing Risks of Poor Quality 270
20.3 Making a Commitment to Quality 271
20.4 Your Personal Objectives 272
20.5 The Rewards of Accomplishment 272
Reference 273
INDEX 274
SUPPLEMENTS PAGE 279