Preface
Guided tour
Acknowledgements
I Introduction to software project management
1.1 Introduction
1.2 Why is software project management important?
1.3 What is a project?
1.4 Software projects versus other types of project
1.5 Contract management and technical project management
1.6 Activities covered by software project management
1.7 Plans, methods and methodologies
1.8 Some ways of categorizing software projects
1.9 Stakeholders
1.10 Setting objectives
1.11 The business case
1.12 Project success and failure
1.13 What is management?
1.14 Management control
1.15 Conclusion
Annex 1 Contents list for a project plan
1.16 Further exercises
2 Project evaluation and programme management
2.1 Introduction
2.2 A business case
2.3 Project portfolio management
2.4 Evaluation of individual projects
2.5 Cost-benefit evaluation techniques
2.6 Risk evaluation
2.7 Programme management
5.8 Managing the allocation of resources within programmes
2.9 Strategic programme management
2.10 Creating a programme
2.11 Aids to programme management
2.12 Some reservations about programme management
2.13 Benefits management
2.14 Conclusion
2.15 Further exercises
3 An overview of project planning
3.1 Introduction to Step Wise project planning
3.2 Step O: Select project
3.3 Step 1: Identify project scope and objectives
3.4 Step 2: Identify project infrastructure
3.5 Step 3: Analyse projec characteristics
3.6 Step 4: Identify project products and activities
3.7 Step 5: Estimate effort for each activity
3.8 Step 6: Identify activity risks
3.9 Step 7: Allocate resources
3.10 Step 8: Review/publicize plan
3.11 Steps 9 and10: Execute plan/lower levels of planning
3.12 Conclusion
3.13 Further exercises
4 Selection of an appropriate project approach
4.1 Introduction
4.2 Build or buy?
4.3 Choosing methodologies and technologies
4.4 Choice of process models
4.5 Structure versus speed of delivery
4.6 The waterfall model
4.7 The spiral model
4.8 Software prototyping
4.9 Other ways of categorizing prototypes
4.10 Incremental delivery
4.11 Agile methods
4.12 Atern/Dynamic Systems Development Method
4.13 Extreme programming (XP)
4.14 Managing iterative processes
4.15 Selecting the most appropriate process model
4.16 Conclusion
4.17 Further exercises
5 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 Bottom-up estimating
5.7 The top-down approach and parametric models
5.8 Expert judgement
5.9 Estimating by analogy
5.10 Albrecht function point analysis
5.11 Function points Mark Il
5.12 COSMIC full function points
5.13 COCOMO 13: a parametric productivity model
5.14 Conclusion
5.15 Further exercises
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 models
6.8 Formulating a network model
6.9 Adding the time dimension
6.10 The forward pass
6.11 The backward pass
6.12 Identifying the critical path
6.13 Activity float
6.14 Shortening the project duration
6.15 Identifying critical activities
6.16 Activity-on-arrow networks
6.17 Conclusion
6.16 Further exercises
7 Risk management
7.1 Introduction
7.2 Risk
7.3 Categories of risk
7.4 A framework for dealing with risk
7.5 Risk identification
7.6 Risk assessment
7.7 Risk planning
7.8 Risk management
7.9 Evaluating risks to the schedule
7.10 Applying the PERT technique
7.11 Monte Carlo simulation
7.12 Critical chain concepts
7.13 Conclusion
7.14 Further exercises
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
8.8 Publishing the resource schedule
8.9 Cost schedules
8.10 The scheduling sequence
8.11 Conclusion
8.12 Further exercises
9 Monitoring and control
9.1 Introduction
9.2 Creating the framework
9.3 Collecting the data
9.4 Visualizing progress
9.5 Cost monitoring
9.6 Earned value analysis
9.7 Prioritizing monitoring
9.8 Getting the project back to target
9.9 Change control
9.10 Conclusion
9.11 Further exercises
10 Managing contracts
10.1 Introduction
10.2 Types of contract
10.3 Stages in contract placement
10.4 Typical terms of a contract
10.5 Contract management
10.6 Acceptance
10.7 Conclusion
10.8 Further exercises
11 Managing people in software environments
11.1 Introduction
11.2 Understanding behaviour
11.3 Organizationbehaviour: a backgrou nd
11.4 Selecting the right person for the job
11.5 Instruction in the best methods
11.6 Motivation
11.7 TheOIdham Hackman job characteristics nrodel
11.8 Stress
11.9 Health and safety
11.10 Some ethical and professional concerns
11.11 Conclusion
11.12 Further exercises
12 Working in teams
12.1 Introduction
12.2 Becoming a team
12.3 Decision making
12.4 Organizational structures
12.5 Coordination dependencies
12.6 Dispersed and virtual teams
12.7 Communication genres
12.8 CommunicationpJans
12.9 Leadership
12.10 Conclusion
12.11 Further exercises
13 Software quality
13.1 hrtroduc'tion
13.2 iheplaceofsoftwarequalityin project planning
13.3 The importance of software quality
13.4 Defining software quality
13.5 ISO 9126
13.6 Product versus process quality management
13.7 Quality management systems
13.8 Process capability models
13.9 Techniques to help enhance software quality
13.10 resting
13.11 Quality plans
13.12 Conclusion
13.13 Further exercises
Appendix A PRINCE2 - an overview
Appendix B Answer pointers
Further reading
Index