"Risk is the potential future harm that may arise from some present action" [wikipedia.org]. Risk Management is a process that is used to minimize or eradicate risk before it can harm the productivity of a software project. With only 28% of software projects finishing on time and on budget, risk and the management of risk play an important role in software development.

There are two ways that software engineers can handle risk. A reactive software engineer corrects a problem as it occurs, while a proactive software engineer starts thinking about possible risks in a project before they occur.

There are several types of risk that can occur during a software development project. These include:

Risk Type Description
Generic Risks generic threats across all projects. For example, requirements change, loss of team members, loss of funding
Product-Specific Risks high level risks associated with the type of product being developed. For example: availability of testing resources
Project Risks affect project schedule or resources
Product Risks affect quality or performance of software
Business Risks affect the viability of the software

There are also specific risks associated with team members, customers, tools, technology, time estimation, and team size. Many of these risks can be minimized by the development methodology used for the project. There are many different tools that can be used to analyze the risk apparent in a project and that can help choose the best way to minimize or eliminate that risk.

Author: Laurie Williams and Sarah Heckman
Maintained By: Sarah Heckman
Last Updated: 2008-08-14