Software project management
- Concerned with activities involved in ensuring that software is delivered on time and on schedule
- Project management is needed because software development is always subject to budget and schedule constraints that are set by the organization developing the software.
Success criteria
- Deliver the software to the customer at the agreed time
- Keep overall costs within budget
- Deliver software that meets the customer’s expectations
- Maintain a happy and well-functioning development team
Software management distinctions
- The product is intangible
Software cannot be seen or touched. Software project managers cannot see progress by simply looking at the artefact that is being constructed.
- Software processes are variable and organization specific
We still cannot reliably predict when a particular software process is likely to lead to development problems.
Management activities
- Project planning
Project managers are responsible for planning, estimating and scheduling project development and assigning people to tasks
- Reporting
Project managers are usually responsible for reporting on the progress of a project to customers and to the managers of the company developing the software
- Risk management
Project managers assess the risks that may affect a project, monitor these risks and take action when problems arise
- People management
Project managers have to choose people for their team and establish ways of working that leads to effective team performance
- Proposal writing
The first stage in a software project may involve writing a proposal to win a contract to carry out an item of work. The proposal describes the objectives of the project and how it will be carried out.
Risk management
- Risk management is concerned with identifying risks and drawing up plans to minimize their effect on a project
- A risk is some adverse circumstance that might occur
- Categories of risks (based on what they affect primarily):
–Project risks affect schedule or resources
–Product risks affect the quality or performance of the software being developed
–Business risks affect the organization developing or procuring the software
Examples of common project, product, and business risks
Risk | Affects | Description |
Staff turnover | Project | Experienced staff will leave the project before it is finished. |
Management change | Project | There will be a change of organizational management with different priorities. |
Hardware unavailability | Project | Hardware that is essential for the project will not be delivered on schedule. |
Requirements change | Project and product | There will be a larger number of changes to the requirements than anticipated. |
Specification delays | Project and product | Specifications of essential interfaces are not available on schedule. |
Technology change | Business | The underlying technology on which the system is built is superseded by new technology. |
Product competition | Business | A competitive product is marketed before the system is completed. |
The risk management process
- Risk identification
Identify project, product and business risks
- Risk analysis
Assess the likelihood and consequences of these risks
- Risk planning
Draw up plans to avoid or minimize the effects of the risk
- Risk monitoring
Monitor the risks throughout the project
Risk identification
- May be a team activities or based on the individual project manager’s experience
- A checklist of common risks may be used to identify risks in a project
–Technology risks
–People risks
–Organizational risks
–Tools risks
–Requirements risks
–Estimation risks
Examples of different risk types
Risk type | Possible risks |
Technology | The database used in the system cannot process as many transactions per second as expected |
People | Key staff are ill and unavailable at critical times. |
Organizational | The organization is restructured so that different management are responsible for the project.
Organizational financial problems force reductions in the project budget. |
Tools | The code generated by software code generation tools is inefficient. |
Requirements | Customers fail to understand the impact of requirements changes. |
Estimation | The time required to develop the software is underestimated. |