1
Fundamentals of Software Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2
What is Software Engineering? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3
Challenges in Software Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4
Software Processes and Lifecycles . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4.1
Waterfall Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2
Spiral Lifecycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.3
Rational Unified Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.4
Agile Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.5
Continuous Software Development . . . . . . . . . . . . . . . . . . 14
1.5
Activities in Software Development . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.1
Requirements Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.2
Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5.3
Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5.4
Software Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.5.5
Support and Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.6
Software Inspections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.7
Software Project Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.8
CMMI Maturity Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.9
Formal Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.10
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.11
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2
Professional Responsibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2
What is a Code of Ethics? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.1
What is Computer Ethics? . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.2
Codes of Conduct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.3
Role of a Whistle-Blower . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3
IEEE Code of Ethics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4
British Computer Society Code of Conduct . . . . . . . . . . . . . . . . . . . 37
2.5
ACM Code of Professional Conduct and Ethics . . . . . . . . . . . . . . 37
2.6
Precautionary Principle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.7
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.8
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3
Ethical Software Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2
Safety and Ethics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.1
Therac-25 Disaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2.2
Space Shuttle Challenger Disaster . . . . . . . . . . . . . . . . . . . 47
3.3
Ethical Software Design and Development . . . . . . . . . . . . . . . . . . . 49
3.3.1
Volkswagen Emissions Scandal . . . . . . . . . . . . . . . . . . . . . . 53
3.4
Ethical Software Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.5
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.6
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4
Legal and Ethical Responsibilities of Project Managers . . . . . . . . . . . . 59
4.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2
Professional Responsibilities of Project Managers . . . . . . . . . . . . 60
4.2.1
PMI Code of Ethics for Project Managers . . . . . . . . . . . . 61
4.3
Legal Aspects of Project Management . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.1
Legal Impacts of Failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.2
Lawsuits and Professional Negligence . . . . . . . . . . . . . . . 63
4.3.3
Legal Breach of Contact in Outsourcing . . . . . . . . . . . . . 63
4.3.4
The Law of Tort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3.5
Legal Aspects of Outsourcing . . . . . . . . . . . . . . . . . . . . . . . 65
4.3.6
Licenses for Tools and Software . . . . . . . . . . . . . . . . . . . . . 67
4.3.7
Privacy and the Law . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.8
EU GDPR Privacy Law . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.4
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.5
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5
Overview of Software Project Management . . . . . . . . . . . . . . . . . . . . . . . . 73
5.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.2
Project Start-Up and Initiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3
Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.3.1
Estimation Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.3.2
Work Breakdown Structure . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.4
Project Planning and Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.5
Risk Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.6
People Management in Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.7
Quality Management in Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.8
Project Monitoring and Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.9
Managing Issues and Change Requests . . . . . . . . . . . . . . . . . . . . . . . 85
5.10
Remote Project Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.11
Outsourcing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.12
Project Board and Governance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.13
Project Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.14
Project Closure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.15
Prince 2 Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.16
Project Manager Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.17
Project Management Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.18
Programme Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.19
Project Portfolio Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.20
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.21
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6
Software Project Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.2
Project Start-up and Initiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.3
Project Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.4
Preparing the Project Brief and Business Case . . . . . . . . . . . . . . . . 101
6.4.1
Investment Appraisal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.4.2
Investment Appraisal Example . . . . . . . . . . . . . . . . . . . . . . . 105
6.5
Project Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.6
Project Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.6.1
Estimation Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.6.2
Work Breakdown Structure . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.6.3
Function Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.7
Project Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.7.1
The Communication Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.7.2
The Project Quality Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.7.3
Project Test Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.7.4
Financial Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.7.5
Configuration Management Plan . . . . . . . . . . . . . . . . . . . . . 117
6.7.6
Training Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.7.7
Deployment Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.8
Schedule and Resource Management . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.9
Risk Management Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.10
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.11
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7
Risk Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.2
Risk Management Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.2.1
Risk Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.2.2
Risk Evaluation and Prioritization . . . . . . . . . . . . . . . . . . . 126
7.2.3
Risk Responses and Selection . . . . . . . . . . . . . . . . . . . . . . . 127
7.2.4
Risk Monitoring and Reporting . . . . . . . . . . . . . . . . . . . . . . 128
7.2.5
Risk Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.2.6
Risk Management Checklist . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.3
Risk Management Case Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.3.1
Risk Monitoring and Control (COVID-19) . . . . . . . . . . . 131
7.4
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
7.5
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8
Quality Management of Software Projects . . . . . . . . . . . . . . . . . . . . . . . . . . 135
8.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
8.1.1
What is Software Quality? . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
8.2
A Short History of Quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
8.3
Total Quality Managements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
8.3.1
Problem-Solving Techniques . . . . . . . . . . . . . . . . . . . . . . . . . 143
8.4
ISO 9000 Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
8.5
Software Process Improvement with CMMI . . . . . . . . . . . . . . . . . . 145
8.6
Software Quality Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
8.6.1
Software Inspections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
8.6.2
Software Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
8.6.3
Audits and Quality Assurance Group . . . . . . . . . . . . . . . . 152
8.6.4
Quality Review of Projects . . . . . . . . . . . . . . . . . . . . . . . . . . 155
8.6.5
Learning Lessons in Projects . . . . . . . . . . . . . . . . . . . . . . . . 155
8.7
Problem-Solving Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
8.7.1
Fishbone Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
8.7.2
Histograms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8.7.3
Pareto Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
8.7.4
Trend Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.7.5
Scatter Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
8.7.6
Metrics and Statistical Process Control . . . . . . . . . . . . . . . 163
8.8
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
8.9
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
9
Project Monitoring and Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
9.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
9.2
Monitoring and Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
9.2.1
Project Status Meetings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.2.2
Monitoring Project Deliverables . . . . . . . . . . . . . . . . . . . . . 170
9.2.3
Monitoring Project Risks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
9.2.4
Monitoring Project Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
9.2.5
Monitoring Change Requests . . . . . . . . . . . . . . . . . . . . . . . . 171
9.2.6
Monitoring Project Defects . . . . . . . . . . . . . . . . . . . . . . . . . . 172
9.2.7
Effort, Schedule and Budget Monitoring . . . . . . . . . . . . . 173
9.2.8
Business Case Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.2.9
Monitoring of Outsourcing . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.2.10
Monitoring of Audits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
9.2.11
Recording Lessons Learned . . . . . . . . . . . . . . . . . . . . . . . . . . 174
9.2.12
Controlling the Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
9.3
Managing Change Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
9.4
Managing Defects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
9.5
Milestone Reviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
9.5.1
Earned Value Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
9.6
Managing Stages and Stage Boundaries . . . . . . . . . . . . . . . . . . . . . . 180
9.7
Progress Reporting and Project Board Reviews . . . . . . . . . . . . . . . 180
9.8
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
9.9
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
10
Outsourcing—Supplier Selection and Management . . . . . . . . . . . . . . . . 185
10.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
10.2
Planning and Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
10.3
Identifying Suppliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
10.4
Prepare and Issue RFP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
10.5
Evaluate Proposals and Select Supplier . . . . . . . . . . . . . . . . . . . . . . . 189
10.6
Formal Agreement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
10.7
Managing the Supplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
10.8
Acceptance of Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
10.9
Rollout and Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
10.10
Ethical Software Outsourcing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
10.11
Legal Breach of Contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
10.12
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
10.13
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
11
Project Closure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
11.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
11.2
Handover to Customer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
11.3
Lessons Learned Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
11.4
End Project Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
11.5
Complete Outstanding Administration . . . . . . . . . . . . . . . . . . . . . . . . 202
11.6
Celebrate Success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
11.7
Project Closure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
11.8
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
11.9
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
12
Configuration Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
12.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
12.2
Configuration Management System . . . . . . . . . . . . . . . . . . . . . . . . . . 211
12.2.1
Identify Configuration Items . . . . . . . . . . . . . . . . . . . . . . . . . 212
12.2.2
Document Control Management . . . . . . . . . . . . . . . . . . . . . 212
12.2.3
Source Code Control Management . . . . . . . . . . . . . . . . . . . 213
12.2.4
Configuration Management Plan . . . . . . . . . . . . . . . . . . . . . 213
12.3
Change Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
12.4
Configuration Management Audits . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
12.5
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
12.6
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
13
Project Management in the Agile World . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
13.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
13.2
Scrum Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
13.2.1
User Stories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
13.2.2
Estimation in Agile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
13.2.3
Pair Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
13.3
Software Testing in Agile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
13.3.1
Test-Driven Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
13.3.2
Agile Test Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
13.4
Advantages and Disadvantages of Agile . . . . . . . . . . . . . . . . . . . . . . 229
13.5
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
13.6
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
14
Project Management Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
14.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
14.2
The Goal Question Metric Paradigm . . . . . . . . . . . . . . . . . . . . . . . . . 234
14.3
The Balanced Scorecard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
14.4
Software Metrics for Project Management . . . . . . . . . . . . . . . . . . . . 238
14.4.1
Customer Satisfaction Metrics for Project . . . . . . . . . . . . 239
14.4.2
Process Improvement Metrics . . . . . . . . . . . . . . . . . . . . . . . . 240
14.4.3
Human Resources Metrics for Project Management . . . . . . . . . . . . . . . . . . . . . . 242
14.4.4
Project Management Effectiveness . . . . . . . . . . . . . . . . . . . 243
14.4.5
Development and Testing Metrics for Project . . . . . . . . 245
14.4.6
Quality Audit Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
14.4.7
Customer Care Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
14.4.8
Miscellaneous Metrics for an Organization . . . . . . . . . . . 254
14.5
Implementing a Metrics Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
14.5.1
Data Gathering for Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . 257
14.6
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
14.7
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
15
Tools for Project Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
15.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
15.2
Tools for Project Estimation and Scheduling . . . . . . . . . . . . . . . . . . 262
15.3
Project Manager Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
15.4
Tools for Project Portfolio Management . . . . . . . . . . . . . . . . . . . . . . 267
15.5
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
15.6
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
16
Continuous Improvement of Project Management . . . . . . . . . . . . . . . . . . 271
16.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
16.2
Software Process Improvement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
16.2.1
What is a Software Process? . . . . . . . . . . . . . . . . . . . . . . . . . 273
16.2.2
Benefits of Software Process Improvement . . . . . . . . . . . 275
16.2.3
Software Process Improvement Models . . . . . . . . . . . . . . 275
16.2.4
Process Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
16.2.5
Process Improvement Initiatives . . . . . . . . . . . . . . . . . . . . . 276
16.2.6
Barriers to Success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
16.2.7
Setting up an Improvement Initiative . . . . . . . . . . . . . . . . . 278
16.2.8
Appraisals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
16.3
Improving Project Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
16.3.1
Best Practice in Prince 2 Methodology . . . . . . . . . . . . . . . 280
16.3.2
Best Practice in Project Manager Professional (PMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
16.3.3
Best Practice with CMMI . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
16.4
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
16.5
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
17
Epilogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
17.1
The Future of Project Management . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
This essential textbook presents an overview of software project management in an ethical and responsible software engineering environment. The book covers the essentials of software project management, and highlights the importance of ethics and professional responsibility as part of the skill set of the modern project manager.
This practical and easy-to-follow textbook/reference is ideal for computer science students seeking to understand software project management. The text also serves as a self-study primer for software engineers, project managers and software managers.