Software Project Management (Second Edition) Bob Hughes and Mike Cotterell, School of Information Management, University of Brighton The McGraw-Hill Companies London Burr Ridge, IL New York St Louis San Francisco Auckland Bogota Caracas Lisbon Madrid Mexico Milan Montreal New Delhi Panama Paris San Juan Säo Paulo Singapore Tokyo Toronto
Contents 1 Introduction to Software project management 1.1 Introduction 1.2 What is a project? 1.3 Software projects versus other types of project 1.4 Activities covered by Software project management 1.5 Some ways of categorizing Software projects 1.6 The project as a System 1.7 What is management? 1.8 Problems with Software projects 1.9 Management control 1.10 Stakeholders 1.11 Requirement specification 1.12 Information and control in organizations 1.13 Cönclusion 1.14 2 Step Wise: an overview of project planning 2.1 Introduction to Step Wise project planning 2.2 Step 0: Select project 2.3 Step 1: Identify project scope and objectives 2.4 Step 2: Identify project infrastructure 2.5 Step 3: Analyse project characteristics 2.6 Step 4: Identify project products and activities 2.7 Step 5: Estimate effort for each activity 2.8 Step 6: Identify activity risks 2.9 Step 7: Allocate resources 2.10 Step 8: Review/publicize plan 2.11 Steps 9 and 10: Execute plan and Lower levels of planning 2.12 Cönclusion 2.13 Further Exercises 3 Project evaluation 3.1 Introduction 3.2 Strategie assessment 3.3 Technical assessment 1 1 2 3 3 6 7 8 9 11 13 14 15 17 18 19 19 20 22 24 27 28 32 32 33 34 35 35 36 37 37 38 40
Vlll CONTENTS 3.4 3.5 3.6 3.7 3.8 3.9 Cost-benefit analysis Cash flow forecasting Cost-benefit evaluation techniques Risk evaluation Conclusion Selection of an appropriate project approach 4.1 Introduction 4.2 Choosing technologies 4.3 Technical plan contents list 4.4 Choice of process modeis 4.5 Structured methods 4.6 Rapid application development 4.7 The waterfall model 4.8 The V-process model 4.9 The spiral model 4.10 Software prototyping 4.11 Other ways of categorizing prototypes 4.12 Tools 4.13 A prototyping example 4.14 Incremental delivery 4.15 An incremental example 4.16 Selecting the most appropriate process model 4.17 Conclusion 4.18 Software effort estimation 5.1 Introduction 5.2 Where are estimates done? 5.3 Problems with over- and under-estimates 5.4 The basis for Software estimating 5.5 Software effort estimation techniques 5.6 Expert judgement 5.7 Estimating by analogy 5.8 Albrecht function point analysis 5.9 Function points Mark II 5.10 Object points 5.11 A procedural code-oriented approach 5.12 COCOMO: a parametric model 5.13 Conclusion 5.14 Additional exercises 40 42 43 50 55 55 57 57 59 63 63 64 64 65 66 67 67 70 71 72 73 76 76 77 77 79 79 81 82 84 85 87 88 89 92 94 96 97 103 104
CONTENTS IX 6 Activity planning 6.1 Introduction 6.2 The objectives of activity planning 6.3 When to plan 6.4 Project schedules 6.5 Projects and activities 6.6 Sequencing and scheduling activities 6.7 Network planning modeis 6.8 Formulating a network model 6.9 Using dummy activities 6.10 Representing lagged activities 6.11 Adding the time dimension 6.12 The forward pass 6.13 The backward pass 6.14 Identifying the critical path 6.15 Activity float 6.16 Shortening the project duration 6.17 Identifying critical activities 6.18 Precedence networks 6.19 Conclusion 6.20 7 Risk 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 management Introduction The nature of risk Managing risk Risk identification Risk analysis Reducing the risks Evaluating risks to the schedule Calculating the z values Conclusions 8 Resource allocation 8.1 Introduction 8.2 The nature of resources 8.3 Identifying resource requirements 8.4 Scheduling resources 8.5 Creating critical paths 8.6 Counting the cost 8.7 Being specific 107 107 108 109 109 111 115 116 117 121 122 122 124 125 127 128 129 129 130 131 132 133 133 133 135 137 139 142 143 147 150 150 151 151 152 153 154 159 161 161
CONTENTS 8.8 Publishing the resource schedule 162 8.9 Cost schedules 164 8.10 The scheduling sequence 165 8.11 Conclusion 167 8.12 167 Monitoring and control 169 9.1 Introduction 169 9.2 Creating the framework 169 9.3 9.4 9.5 9.6 9.7 9.8 9.9 9.10 9.11 Collecting the data Visualizing progress Cost monitoring Earned Value Prioritizing monitoring Getting the project back to target Change control Conclusions 173 175 179 180 185 186 188 190 190 10 Managing contracts 191 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 Introduction Types of contract Stages in contract placement Typical terms of a contract Contract management Acceptance Summary 191 192 198 203 206 208 208 208 11 Managing people and organizing teams 211 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 Introduction Understanding behaviour Organizational behaviour: a background Selecting the right person for the job Instruction in the best methods Motivation Working in groups Becoming a team Decision making 211 213 213 215 217 217 221 221 224 11.IC 1 Leadership 11.11 Organizational structures 11.12 Conclusion 11.13 226 229 232 232
CONTENTS 12 Software quality 235 12.1 Introduction 235 12.2 The place of Software quality in project planning 236 12.3 The importance of Software quality 237 12.4 Defining Software quality 237 12.5 ISO 9126 241 12.6 Practical Software quality measures 245 12.7 Product versus process quality management 246 12.8 External Standards 248 12.9 Techniques to help enhance Software quality 252 12.10 Conclusions 258 12.11 258 13 Small projects 261 13.1 Introduction 261 13.2 Some problems with Student projects 261 13.3 Content of a project plan 264 13.4 Conclusions 267 A PRINCE 2 - an overview 269 A.1 Introduction to PRINCE 2 269 A.2 The components of PRINCE 2 269 A.3 PRINCE planning technique 270 A.4 PRINCE 2 project Organization 271 A.5 Project Stages 273 A.6 Project procedures 273 A.7 Directing a project 275 A.8 Starting up a project 275 A.9 Initiating the project 275 A.10 Controlling a stage 276 A.ll Managing product delivery 278 A.12 Managing stage boundaries 279 A.13 Closing the project 280 B BS 6079:1996 - an overview 281 B.l Introduction 281 B.2 The planning process 285 B.3 BS 6079 planning steps 286 B.4 Project control 287 B.5 Supporting techniques 287 C Euromethod - an overview 289 C. 1 The aims of Euromethod 289 C.2 The basic Euromethod model 289
Xll CONTENTS C.3 An overview of the EM acquisition process 292 C.4 Acquisition goal defmition 292 C.5 Acquisition planning 293 C.6 Procurement 295 C.7 Adaptation planning 295 C.8 Method bridging 300 C.9 Conclusions 301 D ISO 12207 - an overview 303 D.l Introduction 303 D.2 The ISO 12207 approach to Software life cycle data 303 D.3 The ISO 12207 approach to Software life cycle processes 304 D.4 The acquisition process 305 D.5 The supply process 308 D.6 The development process 309 E Project Management Bodies of Knowledge 315 E.l Introduction 315 E.2 Project Management Institute 316 E.3 Australian Institute of Project Management 319 E.4 Association for Project Management 320 E.5 UK National Vocational Qualifications 322 E.6 Information Systems Examination Board 324 F Answer pointers 327 Further reading 367