21.01.2022 Views

Sommerville-Software-Engineering-10ed

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

22.1 ■ Risk management 645

as expected. This may affect the overall performance of the system so that it is

slower than expected.

3. Business risks affect the organization developing or procuring the software. For

example, a competitor introducing a new product is a business risk. The introduction

of a competitive product may mean that the assumptions made about

sales of existing software products may be unduly optimistic.

Of course, these risk categories overlap. An experienced engineer’s decision to

leave a project, for example, presents a project risk because the software delivery

schedule will be affected. It inevitably takes time for a new project member to understand

the work that has been done, so he or she cannot be immediately productive.

Consequently, the delivery of the system may be delayed. The loss of a team member

can also be a product risk because a replacement may not be as experienced and

so could make programming errors. Finally, losing a team member can be a business

risk because an experienced engineer’s reputation may be a critical factor in winning

new contracts.

For large projects, you should record the results of the risk analysis in a risk register

along with a consequence analysis. This sets out the consequences of the risk

for the project, product, and business. Effective risk management makes it easier to

cope with problems and to ensure that these do not lead to unacceptable budget or

schedule slippage. For small projects, formal risk recording may not be required, but

the project manager should be aware of them.

The specific risks that may affect a project depend on the project and the organizational

environment in which the software is being developed. However, there are

also common risks that are independent of the type of software being developed.

These can occur in any software development project. Some examples of these common

risks are shown in Figure 22.1.

Software risk management is important because of the inherent uncertainties in

software development. These uncertainties stem from loosely defined requirements,

requirements changes due to changes in customer needs, difficulties in estimating the

time and resources required for software development, and differences in individual

skills. You have to anticipate risks, understand their impact on the project, the product,

and the business, and take steps to avoid these risks. You may need to draw up contingency

plans so that, if the risks do occur, you can take immediate recovery action.

An outline of the process of risk management is presented in Figure 22.2. It

involves several stages:

1. Risk identification You should identify possible project, product, and business risks.

2. Risk analysis You should assess the likelihood and consequences of these risks.

3. Risk planning You should make plans to address the risk, either by avoiding it or

by minimizing its effects on the project.

4. Risk monitoring You should regularly assess the risk and your plans for risk

mitigation and revise these plans when you learn more about the risk.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!