1 Introduction to software project management 1
1.1 Introduction 1
1.2 Why is software project management important? 2
1.3 What is a project? 2
1.4 Software projects versus other types of project 4
1.5 Contract management and technical project management 5
1.6 Activities covered by software project management 5
1.7 Plans,methods and methodologies 8
1.8 Some ways of categorizing software projects 9
1.9 Stakeholders 11
1.10 Setting objectives 11
1.11 The business case 13
1.12 Project success and failure 14
1.13 What is management? 15
1.14 Management control 16
1.15 Conclusion 18
Annex 1 Contents list for a project plan 18
1.16 Further exercises 19
2 Project evaluation and programme management 21
2.1 Introduction 21
2.2 A business case 22
2.3 Project portfolio management 24
2.4 Evaluation of individual projects 26
2.5 Cost-benefit evaluation techniques 28
2.6 Risk evaluation 34
2.7 Programme management 38
2.8 Managing the allocation of resources within programmes 39
2.9 Strategic programme management 40
2.10 Creating a programme 40
2.11 Aids to programme management 43
2.12 Some reservations about programme management 45
2.13 Benefits management 45
2.14 Conclusion 47
2.15 Further exercises 48
3 An overview of project planning 49
3.1 Introduction to Step Wise project planning 49
3.2 Step 0:Select project 53
3.3 Step 1:Identify project scope and objectives 53
3.4 Step 2:Identify project infrastructure 55
3.5 Step 3:Analyse project characteristics 58
3.6 Step 4:Identify project products and activities 60
3.7 Step 5:Estimate effort for each activity 65
3.8 Step 6:Identify activity risks 67
3.9 Step 7:Allocate resources 68
3.10 Step 8:Review/publicize plan 69
3.11 Steps 9 and 10:Execute plan/lower levels of planning 70
3.12 Conclusion 71
3.13 Further exercises 71
4 Selection of an appropriate project approach 73
4.1 Introduction 73
4.2 Build or buy? 74
4.3 Choosing methodologies and technologies 76
4.4 Choice of process models 81
4.5 Structure versus speed of delivery 81
4.6 The waterfall model 82
4.7 The spiral model 84
4.8 Software prototyping 84
4.9 Other ways of categorizing prototypes 86
4.10 Incremental delivery 88
4.11 Agile methods 92
4.12 Atern/Dynamic Systems Development Method 93
4.13 Extreme programming(XP) 95
4.14 Managing iterative processes 99
4.15 Selecting the most appropriate process model 100
4.16 Conclusion 101
4.17 Further exercises 101
5 Software effort estimation 103
5.1 Introduction 103
5.2 Where are estimates done? 105
5.3 Problems with over- and under- estimates 107
5.4 The basis for software estimating 108
5.5 Software effort estimation techniques 108
5.6 Bottom-up estimating 109
5.7 The top-down approach and parametric models 111
5.8 Expert judgement 112
5.9 Estimating by analogy 113
5.10 Albrecht function point analysis 114
5.11 Function points Mark Ⅱ 117
5.12 COSMIC full function points 119
5.13 COCOMO 13:a parametric productivity model 120
5.14 Conclusion 125
5.15 Further exercises 126
6 Activity planning 129
6.1 Introduction 129
6.2 The objectives of activity planning 130
6.3 When to plan 131
6.4 Project schedules 131
6.5 Projects and activities 133
6.6 Sequencing and scheduling activities 138
6.7 Network planning models 139
6.8 Formulating a network model 140
6.9 Adding the time dimension 144
6.10 The forward pass 146
6.11 The backward pass 146
6.12 Identifying the critical path 148
6.13 Activity float 150
6.14 Shortening the project duration 150
6.15 Identifying critical activities 151
6.16 Activity-on-arrow networks 151
6.17 Conclusion 160
6.16 Further exercises 160
Risk management 162
7.1 Introduction 162
7.2 Risk 163
7.3 Categories of risk 165
7.4 A framework for dealing with risk 166
7.5 Risk identification 166
7.6 Risk assessment 168
7.7 Risk planning 172
7.8 Risk management 173
7.9 Evaluating risks to the schedule 176
7.10 Applying the PERT technique 176
7.11 Monte Carlo simulation 182
7.12 Critical chain concepts 183
7.13 Conclusion 188
7.14 Further exercises 188
8 Resource allocation 192
8.1 Introduction 192
8.2 The nature of resources 194
8.3 Identifying resource requirements 195
8.4 Scheduling resources 197
8.5 Creating critical paths 201
8.6 Counting the cost 202
8.7 Being specific 203
8.8 Publishing the resource schedule 204
8.9 Cost schedules 204
8.10 The scheduling sequence 207
8.11 Conclusion 209
8.12 Further exercises 209
9 Monitoring and control 212
9.1 Introduction 212
9.2 Creating the framework 213
9.3 Collecting the data 216
9.4 Visualizing progress 218
9.5 Cost monitoring 222
9.6 Earned value analysis 223
9.7 Prioritizing monitoring 229
9.8 Getting the project back to target 229
9.9 Change control 232
9.10 Conclusion 235
9.11 Further exercises 235
10 Managing contracts 236
10.1 Introduction 236
10.2 Types of contract 237
10.3 Stages in contract placement 243
10.4 Typical terms of a contract 247
10.5 Contract management 250
10.6 Acceptance 251
10.7 Conclusion 252
10.8 Further exercises 252
11 Managing people in software environments 254
11.1 Introduction 254
11.2 Understanding behaviour 256
11.3 Organization behaviour:a background 257
11.4 Selecting the right person for the job 258
11.5 Instruction in the best methods 261
11.6 Motivation 261
11.7 The Oldham-Hackman job characteristics model 264
11.8 Stress 265
11.9 Health and safety 266
11.10 Some ethical and professional concerns 267
11.11 Conclusion 269
11.12 Further exercises 269
12 Working in teams 271
12.1 Introduction 271
12.2 Becoming a team 273
12.3 Decision making 276
12.4 Organizational structures 281
12.5 Coordination dependencies 283
12.6 Dispersed and virtual teams 284
12.7 Communication genres 286
12.8 Communication plans 288
12.9 Leadership 289
12.10 Conclusion 292
12.11 Further exercises 292
13 Software quality 293
13.1 Introduction 293
13.2 The place of software quality in project planning 294
13.3 The importance of software quality 295
13.4 Defining software quality 295
13.5 ISO 9126 298
13.6 Product versus process quality management 304
13.7 Quality management systems 306
13.8 Process capability models 308
13.9 Techniques to help enhance software quality 314
13.10 Testing 319
13.11 Quality plans 322
13.12 Conclusion 323
13.13 Further exercises 323
Appendix A PRINCE2-an overview 325
Appendix B Answer pointers 337
Further reading 375