Software Project Management: Risks, Costs, and Scheduling

What Is the Purpose of Risk Management in Software Projects?

Risk management aims to identify risks that may affect the project schedule, product quality, or the organization. It involves creating plans to minimize these risks. Risk management is a crucial activity in software projects due to the many difficulties inherent in such projects, including requirements, schedule and cost estimates, and recruitment of qualified staff.

Three Parameters That Influence Software Cost

  • Cost of hardware and software licenses, including maintenance, replacement, and upgrades.
  • Travel and training costs.
  • Effort costs associated with developing the software.

Techniques for Software Cost Estimation

Expert Judgment

Several experts in the application domain and development techniques are consulted to reach a consensus on the appropriate estimate for the project. Multiple meetings may be necessary to reach an agreement.

Estimation by Analogy

The project cost is estimated by comparing it with similar completed projects. Using actual data from past projects enables the creation of a (theoretically) more reliable forecast. However, changes between past and future projects may affect the estimates, such as:

  • Distributed systems versus mainframe systems.
  • Development with reuse versus development from scratch.
  • Use of scripting languages such as TCL.
  • Use of CASE tools and code generators versus development without support tools.

Pricing to Win

This strategy is commonly used when the system requirements are not fully known at the time of the estimate. The project cost is based on an agreed outline of the proposed system and the client’s available funds. Design and specification are negotiated within the defined cost. Requirements may need to be changed so that the specific cost is not exceeded. Additional requirements may be negotiated separately.

Algorithmic Cost Modeling

An algorithmic cost model can be represented as:

A * SizeB * M

  • A: A constant that depends on the software.
  • Size: An evaluation of software size in terms of lines of code or an estimate of the number of features.
  • B: An element whose value typically falls between 1 and 1.5.
  • M: A multiplier defined by considering a combination of process, product, and development attributes, such as reliability requirements and the development team’s experience.

Types of Risks That May Affect a Project

  • Project Risks: These affect the project timeline or resources. Example: The loss of an experienced architect.

  • Product Risks: These affect the quality or performance of the product. Example: A purchased component may not work as expected.

  • Business Risks: These affect the organization that develops or acquires the software. Example: A competitor’s product launch that poses a risk to the business.

Three Reasons That Hinder Project Schedule Establishment

  • Estimating the difficulty of problems is complicated.
  • Productivity is not proportional to the number of people working on the project. Adding people to a late project delays it further.
  • Unexpected problems always occur.
  • Data from similar projects are rarely available to support the implementation of estimates.

What Is a Product, and How Does It Differ From a Milestone?

  • Milestone: A recognizable endpoint of a software process activity. Examples: A feasibility report, requirements document, software architecture.

  • Product: A project result delivered to the customer. Examples: A document specifying requirements, a user manual, a software prototype.

Products are milestones, but not every milestone is a product.