Richard E. Fairley
Managing and Leading Software Projects
Richard E. Fairley
Managing and Leading Software Projects
- Gebundenes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
_ The book is organized around basic principles of software project management: planning and estimating, measuring and controlling, leading and communicating, and managing risk. _ Introduces software development methods, from traditional (hacking, requirements to code, and waterfall) to iterative (incremental build, evolutionary, agile, and spiral). _ Illustrates and emphasizes tailoring the development process to each project, with a foundation in the fundamentals that are true for all development methods. _ Topics such as the WBS, estimation, schedule networks, organizing the project team,…mehr
Andere Kunden interessierten sich auch für
- Donald J. ReiferSoftware Management135,99 €
- Richard W. SelbySoftware Engineering143,99 €
- Susan M. LandPractical Support for CMMI-SW Software Project Documentation Using IEEE Software Engineering Standards167,99 €
- Mike HolcombeRunning an Agile Software Development Project131,99 €
- Andreas OpeltAgile Contracts77,99 €
- Dwayne PhillipsThe Software Project Manager's Handbook160,99 €
- Celeste Labrunda YeakleyCollaborative Process Improvement111,99 €
-
-
-
_ The book is organized around basic principles of software project management: planning and estimating, measuring and controlling, leading and communicating, and managing risk.
_ Introduces software development methods, from traditional (hacking, requirements to code, and waterfall) to iterative (incremental build, evolutionary, agile, and spiral).
_ Illustrates and emphasizes tailoring the development process to each project, with a foundation in the fundamentals that are true for all development methods.
_ Topics such as the WBS, estimation, schedule networks, organizing the project team, and performance reporting are integrated, rather than being relegating to appendices.
_ Each chapter in the book includes an appendix that covers the relevant topics from CMMI-DEV-v1.2, IEEE/ISO Standards 12207, IEEE Standard 1058, and the PMI Body of Knowledge.
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
_ Introduces software development methods, from traditional (hacking, requirements to code, and waterfall) to iterative (incremental build, evolutionary, agile, and spiral).
_ Illustrates and emphasizes tailoring the development process to each project, with a foundation in the fundamentals that are true for all development methods.
_ Topics such as the WBS, estimation, schedule networks, organizing the project team, and performance reporting are integrated, rather than being relegating to appendices.
_ Each chapter in the book includes an appendix that covers the relevant topics from CMMI-DEV-v1.2, IEEE/ISO Standards 12207, IEEE Standard 1058, and the PMI Body of Knowledge.
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Produktdetails
- Produktdetails
- Verlag: IEEE Press / Wiley & Sons
- 1. Auflage
- Seitenzahl: 512
- Erscheinungstermin: 1. Februar 2009
- Englisch
- Abmessung: 260mm x 183mm x 32mm
- Gewicht: 1018g
- ISBN-13: 9780470294550
- ISBN-10: 0470294558
- Artikelnr.: 23593212
- Verlag: IEEE Press / Wiley & Sons
- 1. Auflage
- Seitenzahl: 512
- Erscheinungstermin: 1. Februar 2009
- Englisch
- Abmessung: 260mm x 183mm x 32mm
- Gewicht: 1018g
- ISBN-13: 9780470294550
- ISBN-10: 0470294558
- Artikelnr.: 23593212
Richard E. (Dick) Fairley, PhD, is founder and Principal Associate of Software Engineering Management Associates (SEMA), a firm specializing in consulting services and training in software systems engineering, software project management, cost estimation, project planning and control techniques, risk management, and process assessment and improvement. He is also an Adjunct Professor of Computer Science and Engineering at Colorado Technical University in Colorado Springs, Colorado. He is a former associate dean, department head, director of software engineering, and professor of computer science at the OGI School of Science and Engineering in Beaverton, Oregon. Dr. Fairley has designed and implemented educational programs in universities and in industry, headed research programs in software engineering, and lectured to and consulted with many companies worldwide.
Preface xv
1 Introduction 1
1.1 Introduction to Software Project Management 1
1.2 Objectives of This Chapter 2
1.3 Why Managing and Leading Software Projects Is Difficult 2
1.3.1 Software Complexity 3
1.3.2 Software Conformity 4
1.3.3 Software Changeability 4
1.3.4 Software Invisibility 5
1.3.5 Team-Oriented Intellect-Intensive Work 6
1.4 The Nature of Project Constraints 9
1.5 A Workflow Model for Managing Software Projects 13
1.6 Organizational Structures for Software Projects 16
1.6.1 Functional Structures 16
1.6.2 Project Structures 17
1.6.3 Matrix Structures 17
1.6.4 Hybrid Structures 18
1.7 Organizing the Project Team 19
1.7.1 The System Engineering Team 19
1.7.2 The Software Engineering Team 20
1.8 Maintaining the Project Vision and the Product Vision 21
1.9 Frameworks Standards and Guidelines 22
1.10 Key Points of Chapter 1 23
1.11 Overview of the Text 23
References 24
Exercises 25
Appendix 1A: Frameworks Standards and Guidelines for Managing Software
Projects 28
1A.1 The CMMI-DEV-v1.2 Process Framework 28
1A.2 ISO/IEC and IEEE/EIA Standards 12207 34
1A.3 IEEE/EIA Standard 1058 36
1A.4 The PMI Body of Knowledge 37
2 Process Models for Software Development 39
2.1 Introduction to Process Models 39
2.2 Objectives of This Chapter 42
2.3 A Development-Process Framework 42
2.3.1 Users Customers and Acquirers 43
2.3.2 System Requirements and System Design 46
2.3.3 Software Requirements Architecture and Implementation 47
2.3.4 Verification and Validation 50
2.4 Tailoring the System Engineering Framework for Software-Only Projects
52
2.5 Traditional Software Development Process Models 54
2.5.1 Hacking 54
2.5.2 Requirements-to-Code 55
2.5.3 The Waterfall Development Model 55
2.5.4 Guidelines for Planning and Controlling Traditional Software Projects
58
2.6 Iterative-Development Process Models 58
2.6.1 The Incremental-Build Model 59
2.6.2 The Evolutionary Model 64
2.6.3 Agile Development Models 66
2.6.4 The Scrum Model 68
2.6.5 The Spiral Meta-Model 69
2.6.6 Guidelines for Planning and Controlling Iterative-Development
Projects 71
2.7 Designing an Iterative-Development Process 72
2.8 The Role of Prototyping in Software Development 74
2.9 Key Points of Chapter 2 75
References 76
Exercises 77
Appendix 2A: Frameworks Standards and Guidelines for Software Development
Process Models 79
2A.1 The CMMI-DEV-v1.2 Technical Solution Process Area 79
2A.2 Development Processes in ISO/IEC and IEEE/EIA Standards 12207 80
2A.3 Technical Process Plans in IEEE/EIA Standard 1058 81
2A.4 The PMI Body of Knowledge 81
Appendix 2B: Considerations for Selecting an Iterative- Development Model
82
3 Establishing Project Foundations 85
3.1 Introduction to Project Foundations 85
3.2 Objectives of This Chapter 86
3.3 Software Acquisition 87
3.4 Requirements Engineering 88
3.4.1 Requirements Development 89
3.4.2 Requirements Analysis 96
3.4.3 Technical Specifications 98
3.4.4 Requirements Verification 105
3.4.5 Requirements Management 106
3.5 Process Foundations 109
3.5.1 Specifying the Scope of Your Project 110
3.5.2 The Contractual Agreement 110
3.6 Key Points of Chapter 3 112
References 113
Exercises 114
Appendix 3A: Frameworks Standards and Guidelines for Product Foundations
116
3A.1 The CMMI-DEV-v1.2 Process Areas for Requirements Development and
Requirements Management 116
3A.2 Product Foundations in ISO/IEC and IEEE/EIA Standards 12207 117
3A.3 IEEE/EIA Standard 1058 118
3A.4 The PMI Body of Knowledge 118
4 Plans and Planning 119
4.1 Introduction to the Planning Process 119
4.2 Objectives of This Chapter 120
4.3 The Planning Process 121
4.4 The CMMI-DEV-v1.2 Process Area for Project Planning 125
4.4.1 Planning Agile Projects 128
4.4.2 Balancing Agility and Discipline 129
4.5 A Minimal Project Plan 129
4.6 A Template for Software Project Management Plans 130
4.6.1 Front Matter 130
4.6.2 Project Summary 132
4.6.3 Evolution Definitions and References 134
4.6.4 Project Organization 136
4.6.5 Managerial Processes 137
4.6.6 Technical Processes 143
4.6.7 Supporting Processes 145
4.6.8 Additional Plans Appendixes Index 149
4.7 Techniques for Preparing a Project Plan 150
4.7.1 Tailoring the Project Plan Template 150
4.7.2 Including Predefined Elements 152
4.7.3 Using Organizational Support 152
4.7.4 Leading a Planning Team 153
4.7.5 Incremental Planning 153
4.8 Key Points of Chapter 4 154
References 154
Exercises 155
Appendix 4A: Frameworks Standards and Guidelines for Project Planning 156
4A.1 The CMMI-DEV-v1.2 Project Planning Process Area 156
4A.2 ISO/IEC and IEEE/EIA Standards 12207 157
4A.3 IEEE/EIA Standard 1058 158
4A.4 The PMI Body of Knowledge 158
Appendix 4B: Annotated Outline for Software Project Management Plans Based
on IEEE Standard 1058 159
4B.1 Purpose 159
4B.2 Evolution of Plans 160
4B.3 Overview 160
4B.4 Format of a Software Project Management Plan 160
4B.5 Structure and Content of the Plan 162
5 Project Planning Techniques 173
5.1 Introduction to Project Planning Techniques 173
5.2 Objectives of This Chapter 174
5.3 The Scope of Planning 175
5.4 Rolling-Wave Planning 175
5.5 Scenarios for Developing a Project Plan 176
5.6 Developing the Architecture Decomposition View and the Work Breakdown
Structure 177
5.7 Guidelines for Designing Work Breakdown Structures 182
5.8 Developing the Project Schedule 188
5.8.1 The Critical-Path Method 190
5.8.2 The PERT Method 190
5.8.3 Task-Gantt Charts 193
5.9 Developing Resource Profiles 193
5.10 Resource-Gantt Charts 199
5.11 Estimating Project Effort Cost and Schedule 199
5.12 Key Points of Chapter 5 201
References 202
Exercises 202
Appendix 5A: Frameworks Standards and Guidelines for Project Planning
Techniques 204
A5.1 Specific Practices of the CMMI-DEV-v1. 2
Project Planning Process Area 204
5A.2 ISO/IEC and IEEE/EIA Standards 12207 205
5A.3 IEEE/EIA Standard 1058 205
5A.4 The PMI Body of Knowledge 206
6 Estimation Techniques 207
6.1 Introduction to Estimation Techniques 207
6.2 Objectives of This Chapter 208
6.3 Fundamental Principles of Estimation 209
6.4 Designing to Project Constraints 214
6.5 Estimating Product Size 216
6.6 Pragmatic Estimation Techniques 224
6.6.1 Rule of Thumb 224
6.6.2 Analogy 226
6.6.3 Expert Judgment 227
6.6.4 Delphi Estimation 227
6.6.5 WBS/CPM/PERT 229
6.7 Theory-Based Estimation Models 230
6.7.1 System Dynamics 230
6.7.2 Slim 231
6.8 Regression-Based Estimation Models 234
6.8.1 COCOMO Models 238
6.8.2 Monte Carlo Estimation 244
6.8.3 Local Calibration 244
6.9 Estimation Tools 249
6.10 Estimating Life Cycle Resources Effort and Cost 249
6.11 An Estimation Procedure 251
6.12 A Template for Recording Estimates 256
6.13 Key Points of Chapter 6 258
References 258
Exercises 259
Appendix 6A: Frameworks Standards and Guidelines for Estimation 262
6A.1 Estimation Goals and Practices of the CMMI-DEV-v1.2 Project Planning
Process Area 262
6A.2 ISO/IEC and IEEE/EIA Standards 12207 263
6A.3 IEEE/EIA Standard 1058 263
6A.4 The PMI Body of Knowledge 263
7 Measuring and Controlling Work Products 265
7.1 Introduction to Measuring and Controlling Work Products 265
7.2 Objectives of This Chapter 268
7.3 Why Measure? 268
7.4 What Should Be Measured? 269
7.5 Measures and Measurement 270
7.6 Measuring Product Attributes 276
7.6.1 Measuring Operational Requirements and Technical Specifications 276
7.6.2 Measuring and Controlling Changes to Work Products 281
7.6.3 Measuring Attributes of Architectural Design Specifications 285
7.6.4 Measuring Attributes of Software Implementation 288
7.6.5 Complexity Measures for Software Code 293
7.6.6 Measuring Integration and Verification of Software Units 298
7.6.7 Measuring System Verification and Validation 299
7.7 Measuring and Analyzing Software Defects 301
7.8 Choosing Product Measures 309
7.9 Practical Software Measurement 311
7.10 Guidelines for Measuring and Controlling Work Products 311
7.11 Rolling-Wave Adjustments Based on Product Measures and Measurement 313
7.12 Key Points of Chapter 7 313
References 314
Exercises 315
Appendix 7A: Frameworks Standards and Guidelines for Measuring and
Controlling Work Products 319
7A.1 The CMMI-DEV-v1.2 Monitoring and Control Process Area 319
7A.2 ISO/IEC and IEEE/EIA Standards 12207 320
7A.3 IEEE/EIA Standard 1058 321
7A.4 The PMI Body of Knowledge 321
7A.5 Practical Software and Systems Measurement (PSM) 321
Appendix 7B: Procedures and Forms for Software Inspections 322
7B.1 Conducting a Software Inspection 322
7B.2 The Defect Checklist 324
7B.3 Conducting an Inspection Meeting 325
8 Measuring and Controlling Work Processes 333
8.1 Introduction to Measuring and Controlling Work Processes 333
8.2 Objectives of This Chapter 336
8.3 Measuring and Analyzing Effort 336
8.4 Measuring and Analyzing Rework Effort 339
8.5 Tracking Effort Schedule and Cost; Estimating Future Status 342
8.5.1 Binary Tracking 342
8.5.2 Estimating Future Status 345
8.6 Earned Value Reporting 347
8.7 Project Control Panel® 353
8.8 Key Points of Chapter 8 357
References 358
Exercises 358
Appendix 8A: Frameworks Standards and Guidelines for Measuring and
Controlling Work Processes 361
9 Managing Project Risk 363
9.1 Introduction to Managing Project Risk 363
9.2 Objectives of This Chapter 365
9.3 An Overview of Risk Management for Software Projects 366
9.4 Conventional Project Management Techniques 369
9.5 Risk Identification Techniques 373
9.5.1 Checklists 373
9.5.2 Brainstorming 375
9.5.3 Expert Judgment 375
9.5.4 SWOT 375
9.5.5 Analysis of Assumptions and Constraints 375
9.5.6 Lessons-Learned Files 376
9.5.7 Cost and Schedule Modeling 376
9.5.8 Requirements Triage 379
9.5.9 Assets Inventory 380
9.5.10 Trade-Off Analysis 380
9.6 Risk Analysis and Prioritization 381
9.7 Risk Mitigation Strategies 382
9.7.1 Risk Avoidance 382
9.7.2 Risk Transfer 383
9.7.3 Risk Acceptance 383
9.7.4 Immediate Action 384
9.7.5 Contingent Action 385
9.8 Top-N Risk Tracking and Risk Registers 388
9.9 Controlling the Risk Management Process 392
9.10 Crisis Management 394
9.11 Risk Management at the Organizational Level 395
9.12 Joint Risk Management 396
9.13 Key Points of Chapter 9 396
References 397
Exercises 397
Appendix 9A: Frameworks Standards and Guidelines for Risk Management 399
9A.1 The CMMI-DEV-v1.2 Risk Management Process Area 399
9A.2 ISO/EIC and IEEE/EIA Standards 12207 400
9A.3 IEEE/EIA Standard 1058 400
9A.4 The PMI Body of Knowledge 401
9A.5 IEEE Standard 1540 402
Appendix 9B: Software Risk Management Glossary 404
10 Teams Teamwork Motivation Leadership and Communication 407
10.1 Introduction 407
10.2 Objectives of This Chapter 408
10.3 Managing versus Leading 408
10.4 Teams and Teamwork 410
10.5 Maintaining Morale and Motivation 417
10.6 Can't versus Won't 418
10.7 Personality Styles 420
10.7.1 Jungian Personality Traits 420
10.7.2 MBTI Personality Types 421
10.7.3 Dimensions of Social Styles 425
10.8 The Five-Layer Behavioral Model 427
10.9 Key Points of Chapter 10 430
References 430
Exercises 432
Appendix 10A: Frameworks Standards and Guidelines for Teamwork and
Leadership 433
10A.1 The CMMI-DEV-v1.2 Framework Processes 433
10A.2 ISO/IEC and IEEE/EIA Standards 12207 433
10A.3 IEEE/EIA Standard 1058 433
10A.4 The PMI Body of Knowledge 434
10A.5 Other Sources of Information 434
10A.5.1 The People CMM 434
10A.5.2 The Personal Software Process 435
10A.5.3 The Team Software Process 436
10A.5.4 Peopleware 436
11 Organizational Issues 439
11.1 Introduction to Organizational Issues 439
11.2 Objectives of This Chapter 440
11.3 The Influence of Corporate Culture 441
11.4 Assessing and Nurturing Intellectual Capital 443
11.5 Key Personnel Roles 444
11.6 Fifteen Guidelines for Organizing and Leading Software Engineering
Teams 449
11.6.1 Introduction to the Guidelines 449
11.6.2 The Guidelines 450
11.6.3 Summary of the Guidelines 463
11.7 Key Points of Chapter 11 464
References 464
Exercises 465
Appendix 11: Frameworks Standards and Guidelines for Organizational Issues
467
A11.1 The CMMI-DEV-v1.2 Process Framework 467
A11.2 ISO and IEEE Standards 12207 469
A11.3 IEEE/EIA Standard 1058 470
A11.4 The PMI Body of Knowledge 470
Glossary of Terms 471
Guidance for Term Projects 481
Index 487
1 Introduction 1
1.1 Introduction to Software Project Management 1
1.2 Objectives of This Chapter 2
1.3 Why Managing and Leading Software Projects Is Difficult 2
1.3.1 Software Complexity 3
1.3.2 Software Conformity 4
1.3.3 Software Changeability 4
1.3.4 Software Invisibility 5
1.3.5 Team-Oriented Intellect-Intensive Work 6
1.4 The Nature of Project Constraints 9
1.5 A Workflow Model for Managing Software Projects 13
1.6 Organizational Structures for Software Projects 16
1.6.1 Functional Structures 16
1.6.2 Project Structures 17
1.6.3 Matrix Structures 17
1.6.4 Hybrid Structures 18
1.7 Organizing the Project Team 19
1.7.1 The System Engineering Team 19
1.7.2 The Software Engineering Team 20
1.8 Maintaining the Project Vision and the Product Vision 21
1.9 Frameworks Standards and Guidelines 22
1.10 Key Points of Chapter 1 23
1.11 Overview of the Text 23
References 24
Exercises 25
Appendix 1A: Frameworks Standards and Guidelines for Managing Software
Projects 28
1A.1 The CMMI-DEV-v1.2 Process Framework 28
1A.2 ISO/IEC and IEEE/EIA Standards 12207 34
1A.3 IEEE/EIA Standard 1058 36
1A.4 The PMI Body of Knowledge 37
2 Process Models for Software Development 39
2.1 Introduction to Process Models 39
2.2 Objectives of This Chapter 42
2.3 A Development-Process Framework 42
2.3.1 Users Customers and Acquirers 43
2.3.2 System Requirements and System Design 46
2.3.3 Software Requirements Architecture and Implementation 47
2.3.4 Verification and Validation 50
2.4 Tailoring the System Engineering Framework for Software-Only Projects
52
2.5 Traditional Software Development Process Models 54
2.5.1 Hacking 54
2.5.2 Requirements-to-Code 55
2.5.3 The Waterfall Development Model 55
2.5.4 Guidelines for Planning and Controlling Traditional Software Projects
58
2.6 Iterative-Development Process Models 58
2.6.1 The Incremental-Build Model 59
2.6.2 The Evolutionary Model 64
2.6.3 Agile Development Models 66
2.6.4 The Scrum Model 68
2.6.5 The Spiral Meta-Model 69
2.6.6 Guidelines for Planning and Controlling Iterative-Development
Projects 71
2.7 Designing an Iterative-Development Process 72
2.8 The Role of Prototyping in Software Development 74
2.9 Key Points of Chapter 2 75
References 76
Exercises 77
Appendix 2A: Frameworks Standards and Guidelines for Software Development
Process Models 79
2A.1 The CMMI-DEV-v1.2 Technical Solution Process Area 79
2A.2 Development Processes in ISO/IEC and IEEE/EIA Standards 12207 80
2A.3 Technical Process Plans in IEEE/EIA Standard 1058 81
2A.4 The PMI Body of Knowledge 81
Appendix 2B: Considerations for Selecting an Iterative- Development Model
82
3 Establishing Project Foundations 85
3.1 Introduction to Project Foundations 85
3.2 Objectives of This Chapter 86
3.3 Software Acquisition 87
3.4 Requirements Engineering 88
3.4.1 Requirements Development 89
3.4.2 Requirements Analysis 96
3.4.3 Technical Specifications 98
3.4.4 Requirements Verification 105
3.4.5 Requirements Management 106
3.5 Process Foundations 109
3.5.1 Specifying the Scope of Your Project 110
3.5.2 The Contractual Agreement 110
3.6 Key Points of Chapter 3 112
References 113
Exercises 114
Appendix 3A: Frameworks Standards and Guidelines for Product Foundations
116
3A.1 The CMMI-DEV-v1.2 Process Areas for Requirements Development and
Requirements Management 116
3A.2 Product Foundations in ISO/IEC and IEEE/EIA Standards 12207 117
3A.3 IEEE/EIA Standard 1058 118
3A.4 The PMI Body of Knowledge 118
4 Plans and Planning 119
4.1 Introduction to the Planning Process 119
4.2 Objectives of This Chapter 120
4.3 The Planning Process 121
4.4 The CMMI-DEV-v1.2 Process Area for Project Planning 125
4.4.1 Planning Agile Projects 128
4.4.2 Balancing Agility and Discipline 129
4.5 A Minimal Project Plan 129
4.6 A Template for Software Project Management Plans 130
4.6.1 Front Matter 130
4.6.2 Project Summary 132
4.6.3 Evolution Definitions and References 134
4.6.4 Project Organization 136
4.6.5 Managerial Processes 137
4.6.6 Technical Processes 143
4.6.7 Supporting Processes 145
4.6.8 Additional Plans Appendixes Index 149
4.7 Techniques for Preparing a Project Plan 150
4.7.1 Tailoring the Project Plan Template 150
4.7.2 Including Predefined Elements 152
4.7.3 Using Organizational Support 152
4.7.4 Leading a Planning Team 153
4.7.5 Incremental Planning 153
4.8 Key Points of Chapter 4 154
References 154
Exercises 155
Appendix 4A: Frameworks Standards and Guidelines for Project Planning 156
4A.1 The CMMI-DEV-v1.2 Project Planning Process Area 156
4A.2 ISO/IEC and IEEE/EIA Standards 12207 157
4A.3 IEEE/EIA Standard 1058 158
4A.4 The PMI Body of Knowledge 158
Appendix 4B: Annotated Outline for Software Project Management Plans Based
on IEEE Standard 1058 159
4B.1 Purpose 159
4B.2 Evolution of Plans 160
4B.3 Overview 160
4B.4 Format of a Software Project Management Plan 160
4B.5 Structure and Content of the Plan 162
5 Project Planning Techniques 173
5.1 Introduction to Project Planning Techniques 173
5.2 Objectives of This Chapter 174
5.3 The Scope of Planning 175
5.4 Rolling-Wave Planning 175
5.5 Scenarios for Developing a Project Plan 176
5.6 Developing the Architecture Decomposition View and the Work Breakdown
Structure 177
5.7 Guidelines for Designing Work Breakdown Structures 182
5.8 Developing the Project Schedule 188
5.8.1 The Critical-Path Method 190
5.8.2 The PERT Method 190
5.8.3 Task-Gantt Charts 193
5.9 Developing Resource Profiles 193
5.10 Resource-Gantt Charts 199
5.11 Estimating Project Effort Cost and Schedule 199
5.12 Key Points of Chapter 5 201
References 202
Exercises 202
Appendix 5A: Frameworks Standards and Guidelines for Project Planning
Techniques 204
A5.1 Specific Practices of the CMMI-DEV-v1. 2
Project Planning Process Area 204
5A.2 ISO/IEC and IEEE/EIA Standards 12207 205
5A.3 IEEE/EIA Standard 1058 205
5A.4 The PMI Body of Knowledge 206
6 Estimation Techniques 207
6.1 Introduction to Estimation Techniques 207
6.2 Objectives of This Chapter 208
6.3 Fundamental Principles of Estimation 209
6.4 Designing to Project Constraints 214
6.5 Estimating Product Size 216
6.6 Pragmatic Estimation Techniques 224
6.6.1 Rule of Thumb 224
6.6.2 Analogy 226
6.6.3 Expert Judgment 227
6.6.4 Delphi Estimation 227
6.6.5 WBS/CPM/PERT 229
6.7 Theory-Based Estimation Models 230
6.7.1 System Dynamics 230
6.7.2 Slim 231
6.8 Regression-Based Estimation Models 234
6.8.1 COCOMO Models 238
6.8.2 Monte Carlo Estimation 244
6.8.3 Local Calibration 244
6.9 Estimation Tools 249
6.10 Estimating Life Cycle Resources Effort and Cost 249
6.11 An Estimation Procedure 251
6.12 A Template for Recording Estimates 256
6.13 Key Points of Chapter 6 258
References 258
Exercises 259
Appendix 6A: Frameworks Standards and Guidelines for Estimation 262
6A.1 Estimation Goals and Practices of the CMMI-DEV-v1.2 Project Planning
Process Area 262
6A.2 ISO/IEC and IEEE/EIA Standards 12207 263
6A.3 IEEE/EIA Standard 1058 263
6A.4 The PMI Body of Knowledge 263
7 Measuring and Controlling Work Products 265
7.1 Introduction to Measuring and Controlling Work Products 265
7.2 Objectives of This Chapter 268
7.3 Why Measure? 268
7.4 What Should Be Measured? 269
7.5 Measures and Measurement 270
7.6 Measuring Product Attributes 276
7.6.1 Measuring Operational Requirements and Technical Specifications 276
7.6.2 Measuring and Controlling Changes to Work Products 281
7.6.3 Measuring Attributes of Architectural Design Specifications 285
7.6.4 Measuring Attributes of Software Implementation 288
7.6.5 Complexity Measures for Software Code 293
7.6.6 Measuring Integration and Verification of Software Units 298
7.6.7 Measuring System Verification and Validation 299
7.7 Measuring and Analyzing Software Defects 301
7.8 Choosing Product Measures 309
7.9 Practical Software Measurement 311
7.10 Guidelines for Measuring and Controlling Work Products 311
7.11 Rolling-Wave Adjustments Based on Product Measures and Measurement 313
7.12 Key Points of Chapter 7 313
References 314
Exercises 315
Appendix 7A: Frameworks Standards and Guidelines for Measuring and
Controlling Work Products 319
7A.1 The CMMI-DEV-v1.2 Monitoring and Control Process Area 319
7A.2 ISO/IEC and IEEE/EIA Standards 12207 320
7A.3 IEEE/EIA Standard 1058 321
7A.4 The PMI Body of Knowledge 321
7A.5 Practical Software and Systems Measurement (PSM) 321
Appendix 7B: Procedures and Forms for Software Inspections 322
7B.1 Conducting a Software Inspection 322
7B.2 The Defect Checklist 324
7B.3 Conducting an Inspection Meeting 325
8 Measuring and Controlling Work Processes 333
8.1 Introduction to Measuring and Controlling Work Processes 333
8.2 Objectives of This Chapter 336
8.3 Measuring and Analyzing Effort 336
8.4 Measuring and Analyzing Rework Effort 339
8.5 Tracking Effort Schedule and Cost; Estimating Future Status 342
8.5.1 Binary Tracking 342
8.5.2 Estimating Future Status 345
8.6 Earned Value Reporting 347
8.7 Project Control Panel® 353
8.8 Key Points of Chapter 8 357
References 358
Exercises 358
Appendix 8A: Frameworks Standards and Guidelines for Measuring and
Controlling Work Processes 361
9 Managing Project Risk 363
9.1 Introduction to Managing Project Risk 363
9.2 Objectives of This Chapter 365
9.3 An Overview of Risk Management for Software Projects 366
9.4 Conventional Project Management Techniques 369
9.5 Risk Identification Techniques 373
9.5.1 Checklists 373
9.5.2 Brainstorming 375
9.5.3 Expert Judgment 375
9.5.4 SWOT 375
9.5.5 Analysis of Assumptions and Constraints 375
9.5.6 Lessons-Learned Files 376
9.5.7 Cost and Schedule Modeling 376
9.5.8 Requirements Triage 379
9.5.9 Assets Inventory 380
9.5.10 Trade-Off Analysis 380
9.6 Risk Analysis and Prioritization 381
9.7 Risk Mitigation Strategies 382
9.7.1 Risk Avoidance 382
9.7.2 Risk Transfer 383
9.7.3 Risk Acceptance 383
9.7.4 Immediate Action 384
9.7.5 Contingent Action 385
9.8 Top-N Risk Tracking and Risk Registers 388
9.9 Controlling the Risk Management Process 392
9.10 Crisis Management 394
9.11 Risk Management at the Organizational Level 395
9.12 Joint Risk Management 396
9.13 Key Points of Chapter 9 396
References 397
Exercises 397
Appendix 9A: Frameworks Standards and Guidelines for Risk Management 399
9A.1 The CMMI-DEV-v1.2 Risk Management Process Area 399
9A.2 ISO/EIC and IEEE/EIA Standards 12207 400
9A.3 IEEE/EIA Standard 1058 400
9A.4 The PMI Body of Knowledge 401
9A.5 IEEE Standard 1540 402
Appendix 9B: Software Risk Management Glossary 404
10 Teams Teamwork Motivation Leadership and Communication 407
10.1 Introduction 407
10.2 Objectives of This Chapter 408
10.3 Managing versus Leading 408
10.4 Teams and Teamwork 410
10.5 Maintaining Morale and Motivation 417
10.6 Can't versus Won't 418
10.7 Personality Styles 420
10.7.1 Jungian Personality Traits 420
10.7.2 MBTI Personality Types 421
10.7.3 Dimensions of Social Styles 425
10.8 The Five-Layer Behavioral Model 427
10.9 Key Points of Chapter 10 430
References 430
Exercises 432
Appendix 10A: Frameworks Standards and Guidelines for Teamwork and
Leadership 433
10A.1 The CMMI-DEV-v1.2 Framework Processes 433
10A.2 ISO/IEC and IEEE/EIA Standards 12207 433
10A.3 IEEE/EIA Standard 1058 433
10A.4 The PMI Body of Knowledge 434
10A.5 Other Sources of Information 434
10A.5.1 The People CMM 434
10A.5.2 The Personal Software Process 435
10A.5.3 The Team Software Process 436
10A.5.4 Peopleware 436
11 Organizational Issues 439
11.1 Introduction to Organizational Issues 439
11.2 Objectives of This Chapter 440
11.3 The Influence of Corporate Culture 441
11.4 Assessing and Nurturing Intellectual Capital 443
11.5 Key Personnel Roles 444
11.6 Fifteen Guidelines for Organizing and Leading Software Engineering
Teams 449
11.6.1 Introduction to the Guidelines 449
11.6.2 The Guidelines 450
11.6.3 Summary of the Guidelines 463
11.7 Key Points of Chapter 11 464
References 464
Exercises 465
Appendix 11: Frameworks Standards and Guidelines for Organizational Issues
467
A11.1 The CMMI-DEV-v1.2 Process Framework 467
A11.2 ISO and IEEE Standards 12207 469
A11.3 IEEE/EIA Standard 1058 470
A11.4 The PMI Body of Knowledge 470
Glossary of Terms 471
Guidance for Term Projects 481
Index 487
Preface xv
1 Introduction 1
1.1 Introduction to Software Project Management 1
1.2 Objectives of This Chapter 2
1.3 Why Managing and Leading Software Projects Is Difficult 2
1.3.1 Software Complexity 3
1.3.2 Software Conformity 4
1.3.3 Software Changeability 4
1.3.4 Software Invisibility 5
1.3.5 Team-Oriented Intellect-Intensive Work 6
1.4 The Nature of Project Constraints 9
1.5 A Workflow Model for Managing Software Projects 13
1.6 Organizational Structures for Software Projects 16
1.6.1 Functional Structures 16
1.6.2 Project Structures 17
1.6.3 Matrix Structures 17
1.6.4 Hybrid Structures 18
1.7 Organizing the Project Team 19
1.7.1 The System Engineering Team 19
1.7.2 The Software Engineering Team 20
1.8 Maintaining the Project Vision and the Product Vision 21
1.9 Frameworks Standards and Guidelines 22
1.10 Key Points of Chapter 1 23
1.11 Overview of the Text 23
References 24
Exercises 25
Appendix 1A: Frameworks Standards and Guidelines for Managing Software
Projects 28
1A.1 The CMMI-DEV-v1.2 Process Framework 28
1A.2 ISO/IEC and IEEE/EIA Standards 12207 34
1A.3 IEEE/EIA Standard 1058 36
1A.4 The PMI Body of Knowledge 37
2 Process Models for Software Development 39
2.1 Introduction to Process Models 39
2.2 Objectives of This Chapter 42
2.3 A Development-Process Framework 42
2.3.1 Users Customers and Acquirers 43
2.3.2 System Requirements and System Design 46
2.3.3 Software Requirements Architecture and Implementation 47
2.3.4 Verification and Validation 50
2.4 Tailoring the System Engineering Framework for Software-Only Projects
52
2.5 Traditional Software Development Process Models 54
2.5.1 Hacking 54
2.5.2 Requirements-to-Code 55
2.5.3 The Waterfall Development Model 55
2.5.4 Guidelines for Planning and Controlling Traditional Software Projects
58
2.6 Iterative-Development Process Models 58
2.6.1 The Incremental-Build Model 59
2.6.2 The Evolutionary Model 64
2.6.3 Agile Development Models 66
2.6.4 The Scrum Model 68
2.6.5 The Spiral Meta-Model 69
2.6.6 Guidelines for Planning and Controlling Iterative-Development
Projects 71
2.7 Designing an Iterative-Development Process 72
2.8 The Role of Prototyping in Software Development 74
2.9 Key Points of Chapter 2 75
References 76
Exercises 77
Appendix 2A: Frameworks Standards and Guidelines for Software Development
Process Models 79
2A.1 The CMMI-DEV-v1.2 Technical Solution Process Area 79
2A.2 Development Processes in ISO/IEC and IEEE/EIA Standards 12207 80
2A.3 Technical Process Plans in IEEE/EIA Standard 1058 81
2A.4 The PMI Body of Knowledge 81
Appendix 2B: Considerations for Selecting an Iterative- Development Model
82
3 Establishing Project Foundations 85
3.1 Introduction to Project Foundations 85
3.2 Objectives of This Chapter 86
3.3 Software Acquisition 87
3.4 Requirements Engineering 88
3.4.1 Requirements Development 89
3.4.2 Requirements Analysis 96
3.4.3 Technical Specifications 98
3.4.4 Requirements Verification 105
3.4.5 Requirements Management 106
3.5 Process Foundations 109
3.5.1 Specifying the Scope of Your Project 110
3.5.2 The Contractual Agreement 110
3.6 Key Points of Chapter 3 112
References 113
Exercises 114
Appendix 3A: Frameworks Standards and Guidelines for Product Foundations
116
3A.1 The CMMI-DEV-v1.2 Process Areas for Requirements Development and
Requirements Management 116
3A.2 Product Foundations in ISO/IEC and IEEE/EIA Standards 12207 117
3A.3 IEEE/EIA Standard 1058 118
3A.4 The PMI Body of Knowledge 118
4 Plans and Planning 119
4.1 Introduction to the Planning Process 119
4.2 Objectives of This Chapter 120
4.3 The Planning Process 121
4.4 The CMMI-DEV-v1.2 Process Area for Project Planning 125
4.4.1 Planning Agile Projects 128
4.4.2 Balancing Agility and Discipline 129
4.5 A Minimal Project Plan 129
4.6 A Template for Software Project Management Plans 130
4.6.1 Front Matter 130
4.6.2 Project Summary 132
4.6.3 Evolution Definitions and References 134
4.6.4 Project Organization 136
4.6.5 Managerial Processes 137
4.6.6 Technical Processes 143
4.6.7 Supporting Processes 145
4.6.8 Additional Plans Appendixes Index 149
4.7 Techniques for Preparing a Project Plan 150
4.7.1 Tailoring the Project Plan Template 150
4.7.2 Including Predefined Elements 152
4.7.3 Using Organizational Support 152
4.7.4 Leading a Planning Team 153
4.7.5 Incremental Planning 153
4.8 Key Points of Chapter 4 154
References 154
Exercises 155
Appendix 4A: Frameworks Standards and Guidelines for Project Planning 156
4A.1 The CMMI-DEV-v1.2 Project Planning Process Area 156
4A.2 ISO/IEC and IEEE/EIA Standards 12207 157
4A.3 IEEE/EIA Standard 1058 158
4A.4 The PMI Body of Knowledge 158
Appendix 4B: Annotated Outline for Software Project Management Plans Based
on IEEE Standard 1058 159
4B.1 Purpose 159
4B.2 Evolution of Plans 160
4B.3 Overview 160
4B.4 Format of a Software Project Management Plan 160
4B.5 Structure and Content of the Plan 162
5 Project Planning Techniques 173
5.1 Introduction to Project Planning Techniques 173
5.2 Objectives of This Chapter 174
5.3 The Scope of Planning 175
5.4 Rolling-Wave Planning 175
5.5 Scenarios for Developing a Project Plan 176
5.6 Developing the Architecture Decomposition View and the Work Breakdown
Structure 177
5.7 Guidelines for Designing Work Breakdown Structures 182
5.8 Developing the Project Schedule 188
5.8.1 The Critical-Path Method 190
5.8.2 The PERT Method 190
5.8.3 Task-Gantt Charts 193
5.9 Developing Resource Profiles 193
5.10 Resource-Gantt Charts 199
5.11 Estimating Project Effort Cost and Schedule 199
5.12 Key Points of Chapter 5 201
References 202
Exercises 202
Appendix 5A: Frameworks Standards and Guidelines for Project Planning
Techniques 204
A5.1 Specific Practices of the CMMI-DEV-v1. 2
Project Planning Process Area 204
5A.2 ISO/IEC and IEEE/EIA Standards 12207 205
5A.3 IEEE/EIA Standard 1058 205
5A.4 The PMI Body of Knowledge 206
6 Estimation Techniques 207
6.1 Introduction to Estimation Techniques 207
6.2 Objectives of This Chapter 208
6.3 Fundamental Principles of Estimation 209
6.4 Designing to Project Constraints 214
6.5 Estimating Product Size 216
6.6 Pragmatic Estimation Techniques 224
6.6.1 Rule of Thumb 224
6.6.2 Analogy 226
6.6.3 Expert Judgment 227
6.6.4 Delphi Estimation 227
6.6.5 WBS/CPM/PERT 229
6.7 Theory-Based Estimation Models 230
6.7.1 System Dynamics 230
6.7.2 Slim 231
6.8 Regression-Based Estimation Models 234
6.8.1 COCOMO Models 238
6.8.2 Monte Carlo Estimation 244
6.8.3 Local Calibration 244
6.9 Estimation Tools 249
6.10 Estimating Life Cycle Resources Effort and Cost 249
6.11 An Estimation Procedure 251
6.12 A Template for Recording Estimates 256
6.13 Key Points of Chapter 6 258
References 258
Exercises 259
Appendix 6A: Frameworks Standards and Guidelines for Estimation 262
6A.1 Estimation Goals and Practices of the CMMI-DEV-v1.2 Project Planning
Process Area 262
6A.2 ISO/IEC and IEEE/EIA Standards 12207 263
6A.3 IEEE/EIA Standard 1058 263
6A.4 The PMI Body of Knowledge 263
7 Measuring and Controlling Work Products 265
7.1 Introduction to Measuring and Controlling Work Products 265
7.2 Objectives of This Chapter 268
7.3 Why Measure? 268
7.4 What Should Be Measured? 269
7.5 Measures and Measurement 270
7.6 Measuring Product Attributes 276
7.6.1 Measuring Operational Requirements and Technical Specifications 276
7.6.2 Measuring and Controlling Changes to Work Products 281
7.6.3 Measuring Attributes of Architectural Design Specifications 285
7.6.4 Measuring Attributes of Software Implementation 288
7.6.5 Complexity Measures for Software Code 293
7.6.6 Measuring Integration and Verification of Software Units 298
7.6.7 Measuring System Verification and Validation 299
7.7 Measuring and Analyzing Software Defects 301
7.8 Choosing Product Measures 309
7.9 Practical Software Measurement 311
7.10 Guidelines for Measuring and Controlling Work Products 311
7.11 Rolling-Wave Adjustments Based on Product Measures and Measurement 313
7.12 Key Points of Chapter 7 313
References 314
Exercises 315
Appendix 7A: Frameworks Standards and Guidelines for Measuring and
Controlling Work Products 319
7A.1 The CMMI-DEV-v1.2 Monitoring and Control Process Area 319
7A.2 ISO/IEC and IEEE/EIA Standards 12207 320
7A.3 IEEE/EIA Standard 1058 321
7A.4 The PMI Body of Knowledge 321
7A.5 Practical Software and Systems Measurement (PSM) 321
Appendix 7B: Procedures and Forms for Software Inspections 322
7B.1 Conducting a Software Inspection 322
7B.2 The Defect Checklist 324
7B.3 Conducting an Inspection Meeting 325
8 Measuring and Controlling Work Processes 333
8.1 Introduction to Measuring and Controlling Work Processes 333
8.2 Objectives of This Chapter 336
8.3 Measuring and Analyzing Effort 336
8.4 Measuring and Analyzing Rework Effort 339
8.5 Tracking Effort Schedule and Cost; Estimating Future Status 342
8.5.1 Binary Tracking 342
8.5.2 Estimating Future Status 345
8.6 Earned Value Reporting 347
8.7 Project Control Panel® 353
8.8 Key Points of Chapter 8 357
References 358
Exercises 358
Appendix 8A: Frameworks Standards and Guidelines for Measuring and
Controlling Work Processes 361
9 Managing Project Risk 363
9.1 Introduction to Managing Project Risk 363
9.2 Objectives of This Chapter 365
9.3 An Overview of Risk Management for Software Projects 366
9.4 Conventional Project Management Techniques 369
9.5 Risk Identification Techniques 373
9.5.1 Checklists 373
9.5.2 Brainstorming 375
9.5.3 Expert Judgment 375
9.5.4 SWOT 375
9.5.5 Analysis of Assumptions and Constraints 375
9.5.6 Lessons-Learned Files 376
9.5.7 Cost and Schedule Modeling 376
9.5.8 Requirements Triage 379
9.5.9 Assets Inventory 380
9.5.10 Trade-Off Analysis 380
9.6 Risk Analysis and Prioritization 381
9.7 Risk Mitigation Strategies 382
9.7.1 Risk Avoidance 382
9.7.2 Risk Transfer 383
9.7.3 Risk Acceptance 383
9.7.4 Immediate Action 384
9.7.5 Contingent Action 385
9.8 Top-N Risk Tracking and Risk Registers 388
9.9 Controlling the Risk Management Process 392
9.10 Crisis Management 394
9.11 Risk Management at the Organizational Level 395
9.12 Joint Risk Management 396
9.13 Key Points of Chapter 9 396
References 397
Exercises 397
Appendix 9A: Frameworks Standards and Guidelines for Risk Management 399
9A.1 The CMMI-DEV-v1.2 Risk Management Process Area 399
9A.2 ISO/EIC and IEEE/EIA Standards 12207 400
9A.3 IEEE/EIA Standard 1058 400
9A.4 The PMI Body of Knowledge 401
9A.5 IEEE Standard 1540 402
Appendix 9B: Software Risk Management Glossary 404
10 Teams Teamwork Motivation Leadership and Communication 407
10.1 Introduction 407
10.2 Objectives of This Chapter 408
10.3 Managing versus Leading 408
10.4 Teams and Teamwork 410
10.5 Maintaining Morale and Motivation 417
10.6 Can't versus Won't 418
10.7 Personality Styles 420
10.7.1 Jungian Personality Traits 420
10.7.2 MBTI Personality Types 421
10.7.3 Dimensions of Social Styles 425
10.8 The Five-Layer Behavioral Model 427
10.9 Key Points of Chapter 10 430
References 430
Exercises 432
Appendix 10A: Frameworks Standards and Guidelines for Teamwork and
Leadership 433
10A.1 The CMMI-DEV-v1.2 Framework Processes 433
10A.2 ISO/IEC and IEEE/EIA Standards 12207 433
10A.3 IEEE/EIA Standard 1058 433
10A.4 The PMI Body of Knowledge 434
10A.5 Other Sources of Information 434
10A.5.1 The People CMM 434
10A.5.2 The Personal Software Process 435
10A.5.3 The Team Software Process 436
10A.5.4 Peopleware 436
11 Organizational Issues 439
11.1 Introduction to Organizational Issues 439
11.2 Objectives of This Chapter 440
11.3 The Influence of Corporate Culture 441
11.4 Assessing and Nurturing Intellectual Capital 443
11.5 Key Personnel Roles 444
11.6 Fifteen Guidelines for Organizing and Leading Software Engineering
Teams 449
11.6.1 Introduction to the Guidelines 449
11.6.2 The Guidelines 450
11.6.3 Summary of the Guidelines 463
11.7 Key Points of Chapter 11 464
References 464
Exercises 465
Appendix 11: Frameworks Standards and Guidelines for Organizational Issues
467
A11.1 The CMMI-DEV-v1.2 Process Framework 467
A11.2 ISO and IEEE Standards 12207 469
A11.3 IEEE/EIA Standard 1058 470
A11.4 The PMI Body of Knowledge 470
Glossary of Terms 471
Guidance for Term Projects 481
Index 487
1 Introduction 1
1.1 Introduction to Software Project Management 1
1.2 Objectives of This Chapter 2
1.3 Why Managing and Leading Software Projects Is Difficult 2
1.3.1 Software Complexity 3
1.3.2 Software Conformity 4
1.3.3 Software Changeability 4
1.3.4 Software Invisibility 5
1.3.5 Team-Oriented Intellect-Intensive Work 6
1.4 The Nature of Project Constraints 9
1.5 A Workflow Model for Managing Software Projects 13
1.6 Organizational Structures for Software Projects 16
1.6.1 Functional Structures 16
1.6.2 Project Structures 17
1.6.3 Matrix Structures 17
1.6.4 Hybrid Structures 18
1.7 Organizing the Project Team 19
1.7.1 The System Engineering Team 19
1.7.2 The Software Engineering Team 20
1.8 Maintaining the Project Vision and the Product Vision 21
1.9 Frameworks Standards and Guidelines 22
1.10 Key Points of Chapter 1 23
1.11 Overview of the Text 23
References 24
Exercises 25
Appendix 1A: Frameworks Standards and Guidelines for Managing Software
Projects 28
1A.1 The CMMI-DEV-v1.2 Process Framework 28
1A.2 ISO/IEC and IEEE/EIA Standards 12207 34
1A.3 IEEE/EIA Standard 1058 36
1A.4 The PMI Body of Knowledge 37
2 Process Models for Software Development 39
2.1 Introduction to Process Models 39
2.2 Objectives of This Chapter 42
2.3 A Development-Process Framework 42
2.3.1 Users Customers and Acquirers 43
2.3.2 System Requirements and System Design 46
2.3.3 Software Requirements Architecture and Implementation 47
2.3.4 Verification and Validation 50
2.4 Tailoring the System Engineering Framework for Software-Only Projects
52
2.5 Traditional Software Development Process Models 54
2.5.1 Hacking 54
2.5.2 Requirements-to-Code 55
2.5.3 The Waterfall Development Model 55
2.5.4 Guidelines for Planning and Controlling Traditional Software Projects
58
2.6 Iterative-Development Process Models 58
2.6.1 The Incremental-Build Model 59
2.6.2 The Evolutionary Model 64
2.6.3 Agile Development Models 66
2.6.4 The Scrum Model 68
2.6.5 The Spiral Meta-Model 69
2.6.6 Guidelines for Planning and Controlling Iterative-Development
Projects 71
2.7 Designing an Iterative-Development Process 72
2.8 The Role of Prototyping in Software Development 74
2.9 Key Points of Chapter 2 75
References 76
Exercises 77
Appendix 2A: Frameworks Standards and Guidelines for Software Development
Process Models 79
2A.1 The CMMI-DEV-v1.2 Technical Solution Process Area 79
2A.2 Development Processes in ISO/IEC and IEEE/EIA Standards 12207 80
2A.3 Technical Process Plans in IEEE/EIA Standard 1058 81
2A.4 The PMI Body of Knowledge 81
Appendix 2B: Considerations for Selecting an Iterative- Development Model
82
3 Establishing Project Foundations 85
3.1 Introduction to Project Foundations 85
3.2 Objectives of This Chapter 86
3.3 Software Acquisition 87
3.4 Requirements Engineering 88
3.4.1 Requirements Development 89
3.4.2 Requirements Analysis 96
3.4.3 Technical Specifications 98
3.4.4 Requirements Verification 105
3.4.5 Requirements Management 106
3.5 Process Foundations 109
3.5.1 Specifying the Scope of Your Project 110
3.5.2 The Contractual Agreement 110
3.6 Key Points of Chapter 3 112
References 113
Exercises 114
Appendix 3A: Frameworks Standards and Guidelines for Product Foundations
116
3A.1 The CMMI-DEV-v1.2 Process Areas for Requirements Development and
Requirements Management 116
3A.2 Product Foundations in ISO/IEC and IEEE/EIA Standards 12207 117
3A.3 IEEE/EIA Standard 1058 118
3A.4 The PMI Body of Knowledge 118
4 Plans and Planning 119
4.1 Introduction to the Planning Process 119
4.2 Objectives of This Chapter 120
4.3 The Planning Process 121
4.4 The CMMI-DEV-v1.2 Process Area for Project Planning 125
4.4.1 Planning Agile Projects 128
4.4.2 Balancing Agility and Discipline 129
4.5 A Minimal Project Plan 129
4.6 A Template for Software Project Management Plans 130
4.6.1 Front Matter 130
4.6.2 Project Summary 132
4.6.3 Evolution Definitions and References 134
4.6.4 Project Organization 136
4.6.5 Managerial Processes 137
4.6.6 Technical Processes 143
4.6.7 Supporting Processes 145
4.6.8 Additional Plans Appendixes Index 149
4.7 Techniques for Preparing a Project Plan 150
4.7.1 Tailoring the Project Plan Template 150
4.7.2 Including Predefined Elements 152
4.7.3 Using Organizational Support 152
4.7.4 Leading a Planning Team 153
4.7.5 Incremental Planning 153
4.8 Key Points of Chapter 4 154
References 154
Exercises 155
Appendix 4A: Frameworks Standards and Guidelines for Project Planning 156
4A.1 The CMMI-DEV-v1.2 Project Planning Process Area 156
4A.2 ISO/IEC and IEEE/EIA Standards 12207 157
4A.3 IEEE/EIA Standard 1058 158
4A.4 The PMI Body of Knowledge 158
Appendix 4B: Annotated Outline for Software Project Management Plans Based
on IEEE Standard 1058 159
4B.1 Purpose 159
4B.2 Evolution of Plans 160
4B.3 Overview 160
4B.4 Format of a Software Project Management Plan 160
4B.5 Structure and Content of the Plan 162
5 Project Planning Techniques 173
5.1 Introduction to Project Planning Techniques 173
5.2 Objectives of This Chapter 174
5.3 The Scope of Planning 175
5.4 Rolling-Wave Planning 175
5.5 Scenarios for Developing a Project Plan 176
5.6 Developing the Architecture Decomposition View and the Work Breakdown
Structure 177
5.7 Guidelines for Designing Work Breakdown Structures 182
5.8 Developing the Project Schedule 188
5.8.1 The Critical-Path Method 190
5.8.2 The PERT Method 190
5.8.3 Task-Gantt Charts 193
5.9 Developing Resource Profiles 193
5.10 Resource-Gantt Charts 199
5.11 Estimating Project Effort Cost and Schedule 199
5.12 Key Points of Chapter 5 201
References 202
Exercises 202
Appendix 5A: Frameworks Standards and Guidelines for Project Planning
Techniques 204
A5.1 Specific Practices of the CMMI-DEV-v1. 2
Project Planning Process Area 204
5A.2 ISO/IEC and IEEE/EIA Standards 12207 205
5A.3 IEEE/EIA Standard 1058 205
5A.4 The PMI Body of Knowledge 206
6 Estimation Techniques 207
6.1 Introduction to Estimation Techniques 207
6.2 Objectives of This Chapter 208
6.3 Fundamental Principles of Estimation 209
6.4 Designing to Project Constraints 214
6.5 Estimating Product Size 216
6.6 Pragmatic Estimation Techniques 224
6.6.1 Rule of Thumb 224
6.6.2 Analogy 226
6.6.3 Expert Judgment 227
6.6.4 Delphi Estimation 227
6.6.5 WBS/CPM/PERT 229
6.7 Theory-Based Estimation Models 230
6.7.1 System Dynamics 230
6.7.2 Slim 231
6.8 Regression-Based Estimation Models 234
6.8.1 COCOMO Models 238
6.8.2 Monte Carlo Estimation 244
6.8.3 Local Calibration 244
6.9 Estimation Tools 249
6.10 Estimating Life Cycle Resources Effort and Cost 249
6.11 An Estimation Procedure 251
6.12 A Template for Recording Estimates 256
6.13 Key Points of Chapter 6 258
References 258
Exercises 259
Appendix 6A: Frameworks Standards and Guidelines for Estimation 262
6A.1 Estimation Goals and Practices of the CMMI-DEV-v1.2 Project Planning
Process Area 262
6A.2 ISO/IEC and IEEE/EIA Standards 12207 263
6A.3 IEEE/EIA Standard 1058 263
6A.4 The PMI Body of Knowledge 263
7 Measuring and Controlling Work Products 265
7.1 Introduction to Measuring and Controlling Work Products 265
7.2 Objectives of This Chapter 268
7.3 Why Measure? 268
7.4 What Should Be Measured? 269
7.5 Measures and Measurement 270
7.6 Measuring Product Attributes 276
7.6.1 Measuring Operational Requirements and Technical Specifications 276
7.6.2 Measuring and Controlling Changes to Work Products 281
7.6.3 Measuring Attributes of Architectural Design Specifications 285
7.6.4 Measuring Attributes of Software Implementation 288
7.6.5 Complexity Measures for Software Code 293
7.6.6 Measuring Integration and Verification of Software Units 298
7.6.7 Measuring System Verification and Validation 299
7.7 Measuring and Analyzing Software Defects 301
7.8 Choosing Product Measures 309
7.9 Practical Software Measurement 311
7.10 Guidelines for Measuring and Controlling Work Products 311
7.11 Rolling-Wave Adjustments Based on Product Measures and Measurement 313
7.12 Key Points of Chapter 7 313
References 314
Exercises 315
Appendix 7A: Frameworks Standards and Guidelines for Measuring and
Controlling Work Products 319
7A.1 The CMMI-DEV-v1.2 Monitoring and Control Process Area 319
7A.2 ISO/IEC and IEEE/EIA Standards 12207 320
7A.3 IEEE/EIA Standard 1058 321
7A.4 The PMI Body of Knowledge 321
7A.5 Practical Software and Systems Measurement (PSM) 321
Appendix 7B: Procedures and Forms for Software Inspections 322
7B.1 Conducting a Software Inspection 322
7B.2 The Defect Checklist 324
7B.3 Conducting an Inspection Meeting 325
8 Measuring and Controlling Work Processes 333
8.1 Introduction to Measuring and Controlling Work Processes 333
8.2 Objectives of This Chapter 336
8.3 Measuring and Analyzing Effort 336
8.4 Measuring and Analyzing Rework Effort 339
8.5 Tracking Effort Schedule and Cost; Estimating Future Status 342
8.5.1 Binary Tracking 342
8.5.2 Estimating Future Status 345
8.6 Earned Value Reporting 347
8.7 Project Control Panel® 353
8.8 Key Points of Chapter 8 357
References 358
Exercises 358
Appendix 8A: Frameworks Standards and Guidelines for Measuring and
Controlling Work Processes 361
9 Managing Project Risk 363
9.1 Introduction to Managing Project Risk 363
9.2 Objectives of This Chapter 365
9.3 An Overview of Risk Management for Software Projects 366
9.4 Conventional Project Management Techniques 369
9.5 Risk Identification Techniques 373
9.5.1 Checklists 373
9.5.2 Brainstorming 375
9.5.3 Expert Judgment 375
9.5.4 SWOT 375
9.5.5 Analysis of Assumptions and Constraints 375
9.5.6 Lessons-Learned Files 376
9.5.7 Cost and Schedule Modeling 376
9.5.8 Requirements Triage 379
9.5.9 Assets Inventory 380
9.5.10 Trade-Off Analysis 380
9.6 Risk Analysis and Prioritization 381
9.7 Risk Mitigation Strategies 382
9.7.1 Risk Avoidance 382
9.7.2 Risk Transfer 383
9.7.3 Risk Acceptance 383
9.7.4 Immediate Action 384
9.7.5 Contingent Action 385
9.8 Top-N Risk Tracking and Risk Registers 388
9.9 Controlling the Risk Management Process 392
9.10 Crisis Management 394
9.11 Risk Management at the Organizational Level 395
9.12 Joint Risk Management 396
9.13 Key Points of Chapter 9 396
References 397
Exercises 397
Appendix 9A: Frameworks Standards and Guidelines for Risk Management 399
9A.1 The CMMI-DEV-v1.2 Risk Management Process Area 399
9A.2 ISO/EIC and IEEE/EIA Standards 12207 400
9A.3 IEEE/EIA Standard 1058 400
9A.4 The PMI Body of Knowledge 401
9A.5 IEEE Standard 1540 402
Appendix 9B: Software Risk Management Glossary 404
10 Teams Teamwork Motivation Leadership and Communication 407
10.1 Introduction 407
10.2 Objectives of This Chapter 408
10.3 Managing versus Leading 408
10.4 Teams and Teamwork 410
10.5 Maintaining Morale and Motivation 417
10.6 Can't versus Won't 418
10.7 Personality Styles 420
10.7.1 Jungian Personality Traits 420
10.7.2 MBTI Personality Types 421
10.7.3 Dimensions of Social Styles 425
10.8 The Five-Layer Behavioral Model 427
10.9 Key Points of Chapter 10 430
References 430
Exercises 432
Appendix 10A: Frameworks Standards and Guidelines for Teamwork and
Leadership 433
10A.1 The CMMI-DEV-v1.2 Framework Processes 433
10A.2 ISO/IEC and IEEE/EIA Standards 12207 433
10A.3 IEEE/EIA Standard 1058 433
10A.4 The PMI Body of Knowledge 434
10A.5 Other Sources of Information 434
10A.5.1 The People CMM 434
10A.5.2 The Personal Software Process 435
10A.5.3 The Team Software Process 436
10A.5.4 Peopleware 436
11 Organizational Issues 439
11.1 Introduction to Organizational Issues 439
11.2 Objectives of This Chapter 440
11.3 The Influence of Corporate Culture 441
11.4 Assessing and Nurturing Intellectual Capital 443
11.5 Key Personnel Roles 444
11.6 Fifteen Guidelines for Organizing and Leading Software Engineering
Teams 449
11.6.1 Introduction to the Guidelines 449
11.6.2 The Guidelines 450
11.6.3 Summary of the Guidelines 463
11.7 Key Points of Chapter 11 464
References 464
Exercises 465
Appendix 11: Frameworks Standards and Guidelines for Organizational Issues
467
A11.1 The CMMI-DEV-v1.2 Process Framework 467
A11.2 ISO and IEEE Standards 12207 469
A11.3 IEEE/EIA Standard 1058 470
A11.4 The PMI Body of Knowledge 470
Glossary of Terms 471
Guidance for Term Projects 481
Index 487
"This book is readable, informative, and well organized.... The material presented is up to date with respect to documents that were published at the time the book was written." (Computing Reviews, May 15, 2009)
"Mark it up and keep it on your bookshelf, and be sure to reference it frequently." (Computing Reviews, April 28, 2008)
"Mark it up and keep it on your bookshelf, and be sure to reference it frequently." (Computing Reviews, April 28, 2008)