software engineering

48
Risk Analysis and Management

Upload: vivekguptaaki

Post on 28-Nov-2014

95 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: software engineering

Risk Analysis and Management

Page 2: software engineering

Look Out!!

If you don't actively attack the risks, they will actively attack you.

-Tom Gilb

Page 3: software engineering

Risk Definitions

• Risk is the potential for realization of unwanted negative consequences of an event.

[Rowe, William D. An Anatomy of Risk 1988]

• Risk is the measure of the probability and severity of adverse effects.

[Lowrance, William W. Of Acceptable Risk 1976]

• Risk is the possibility of suffering loss, injury, disadvantage, or destruction.

[Webster's Third New International Dictionary 1981]

Page 4: software engineering

Risk Characteristics

• uncertainty - an risk may or may not happen

• loss - an risk has unwanted consequences or losses

Page 5: software engineering

What is Risk Management?

Making informed decisions by consciously assessing what can go wrong and the severity of its impact.

A comprehensive risk management strategy, as part of total quality management approach, aims at anticipating and eliminating all the causes of risk

Page 6: software engineering

Why Do Risk Management

– Eliminate surprises

– Anticipate issues - prevent problems

– Begin programs on the "right" foot and stay on track

– Reach business goals

Page 7: software engineering

MIS Risks

80

65

60

55

50

Creeping user requirements

Excessive schedule pressure

Low quality

Cost overruns

Inadequate conf. Control

Page 8: software engineering

System Software Risks

70

65

60

50

35

Long schedules

Inadequate cost estimation

Excessive paperwork

Error-prone modules

Cancelled projects

Page 9: software engineering

Commercial Software Risks

70

55

50

45

30

Inadequate user documentation

Low user satisfaction

Excessive time to market

Harmful competitive actions

Litigation expense

Page 10: software engineering

Defense Software Risks

90

85

75

70

45

Excessive paperwork

Low productivity

Long schedules

Creeping user requirements

Unusable software

Page 11: software engineering

Contract Software Risks

60

50

45

30

20

High maintenance costs

Contractor Vs client friction

Creeping user requirements

Legal ownershipUnanticipated acceptance criteria

Page 12: software engineering

End-user Software Risks

80

65

60

50

20

Non-transferable applications

Hidden errors

Unmaintainable software

Redundant applications

Legal ownership

Page 13: software engineering

Risk Analysis

– Risk Identification

– Risk Projection

– Risk Assessment

– Risk Management

Page 14: software engineering

Risk Identification

– Project Risks

– Technical Risks

– Business Risks

Page 15: software engineering

Project Risks

– Potential budgetary, schedule, personnel, resources, customer and requirements problems and their impact.

– Project complexity, size and structural uncertainty are determining factors.

Page 16: software engineering

Technical Risks

– Potential design, implementation, interfacing, verification and maintenance problems.

– Specification ambiguity, technical uncertainty, technical obsolescence and ``leading edge'' technology.

Page 17: software engineering

Business Risks

Market Risk : building a product that no one really wants.

Product Risks: building a product that no longer fits into the overall product strategy for the company.building a product that the sales force doesn't understand how to sell.

Management Risk: losing the support of senior management due to a change in focus or people.

Budget Risk: losing budgetary or personnel commitment.

Page 18: software engineering

Risk-item checklist

• Product size• Business impact• Customer characteristics• Process definition• Development environment• Technology to be built• Staff size and experience

Page 19: software engineering

Product size risks

• Estimated size of the product in LOC or FP?• Estimated size of product in number of programs, files,

and transactions?• Percentage of deviation in size of product from average

for previous products?• Size of database created or used by the product?• Number of users of the product?• Number of projected changes to the requirements for the

product?• Number of changes before delivery? After delivery?• Amount of reused software?

Page 20: software engineering

Business impact risks

• Effect of this product on company revenue?

• Visibility of this product by senior management?

• Reasonableness of delivery deadline?

• Number of customers who will use this product and the consistency of their needs relative to the product?

• Number of other products or systems with which this product must be interoperable?

• Sophistication of end users?

Page 21: software engineering

Business impact risks

• Amount and quality of product documentation that must be produced and delivered to the customer?

• Governmental regulatory constraints on the construction of the product?

• Costs associated with late delivery?

• Costs associated with a defective product?

Page 22: software engineering

Customer characteristics risks• Have you worked with the customer in the past?• Does the customer have a solid idea of what is required?

Will the customer agree to spend time in FAST meetings to identify project scope?

• Is the customer willing to establish rapid communication links with the developer?

• Is the customer willing to participate in reviews?• Is the customer technically sophisticated in the product

area?• Is the customer willing to let your people do their job that

is, will the customer resist looking over your shoulder during detailed technical work?

• Does the customer understand the SE process?

Page 23: software engineering

Process definition risks

• Does your senior management support a written policy statement that defines a process for software development?

• Are specific documentation formats defined?

• Are formal technical reviews of the SRS, design, test procedures and test cases and code conducted regularly?

• Is SCM used to maintain consistency among system / software requirements, design, code, and test cases?

Page 24: software engineering

Process definition risks

• Is more than 90 % of your code written in a high-order language?

• Are software tools used to support planning and tracking activities?

• Are CASE tools used to support the software analysis and design process, prototyping, test support, documentation?

• Are quality and productivity metrics collected for all software projects?

Page 25: software engineering

Technology risks

• Is the technology to be built new to your organization?• Do the customer’s requirements demand the creation of

new algorithms or input or output technology?• Does the software interface with new or unproven

hardware?• Does the software to be built interface with vendor-

supplied software products that are unproven?• Does the software to be built interface with a database

system whose function and performance have not been proved in this application area?

• Is a specialized user interface demanded by product requirements?

Page 26: software engineering

Technology risks• Do requirements for the product demand the creation of

program components that are unlike any previously developed by your organization? What percentage of components are new?

• Do requirements demand the use of new analysis, design, or testing methods?

• Do requirements demand the use of unconventional software development methods, such as formal methods, AI (artificial intelligence)-based approaches, or artificial neural networks?

• Do requirements put excessive performance constraints on the product?

• Is the customer uncertain that the functionality requested is “doable”?

Page 27: software engineering

Checklist for staffing risk

• Are the best people available? • Are enough (too many) people available? • Do the people have the right combination of

skills? • Have staff members received the necessary

training? • Is the staff committed for the entire project

duration? • Will some staff members only be part time? • Will staff turnover be low enough for continuity?

Page 28: software engineering

Risk Projection (Estimation)

Attempts to rate each risk in two ways:

– Likelihood that the risk is real.

– Consequences of the problems associated with the risk, should it occur.

Page 29: software engineering

Risk projection activities

• Establishing a scale that reflects the perceived likelihood of a risk: Boolean, qualitative, quantitative

• Delineating the consequences of a risk.

• Establishing the impact of the risk on the project and the product.

• Noting the overall accuracy of the risk projection.

Page 30: software engineering

Probability Quantification

impossible toimprobable

probable frequent value

Prob. value (0, 0.4) (0.4, 0.7) (0.7, 1)Performance ------------- -------------Cost ------------- -------------Schedule ------------- -------------support ------------- -------------

Page 31: software engineering

Risk Drivers

Performance Cost Schedule support

Requirements Requirements Resources Design

Constraints Personnel Need dates Responsibilities

Technology Reusable SW Technology Tools, env

Dev. approach Tools, env Requirements Supportability

Page 32: software engineering

Impact Assessment

Performance Cost Schedule support

Catastrophic

Critical

Marginal

negligible

Page 33: software engineering

Risk Assessment

frequent probable improbable impossible

Prob. value (0.7, 1) (0.4, 0.7) (0, 0.4) 0

catastrophic

critical

marginal

negligible

HIGH

MODERATE

LOW

NONE

Page 34: software engineering

Factors affecting Impact

Risks are weighted by perceived impact and then prioritized. Three factors affect impact:

• The nature of the risk indicates the problems that are likely if it occurs.

• The scope of a risk combines its severity with its overall distribution.

• The timing of a risk determines when and for how long the impact will be felt.

The importance of risk impact and probability is linked to their effect on management concerns.

Page 35: software engineering

Risk Assessment

Risks can be represented as a set of triplets of the form: [r,l,x] where

– r is risk

– l is the likelihood (probability) of the risk

– x is the impact of the risk.

Page 36: software engineering

Risk Assessment

During risk assessment the following actions occur:

– An examination of the accuracy of the estimates made during risk projection.

– A prioritization of the risks that have been uncovered.

– A preliminary examination of the ways to control and/or avert likely risks.

Page 37: software engineering

Risk Referent Level

• At a certain level of risk, or a combination of risks, a project will have to be terminated.

• A risk referent level has a single point, called the referent or break point, at which time the decision to proceed or terminate are equally acceptable.

• Cost, schedule, support and performance represent typical risk referent levels.

Page 38: software engineering

Risk Referent Level

Projected cost overrun

Pro

ject

ed s

ched

ule

over

run

Referent point

High risk area

Page 39: software engineering

Risk Assessment Checklist

• Define the risk referent levels for the project. Referents are stated as a probability of failure or the probability of success level for each individual risk or the system as a whole.

• A value should be agreed upon where it is decided that a project should not continue.

Page 40: software engineering

The system risk referent can be:

• an aggregate of individual risks, or one or more prioritized high impact risks

• Attempt to develop a relationship between each [r,l,x] and each of the referent levels.

• Predict the set of referent points that define a region of termination, bounded by a curve or areas of uncertainty.

• Try to predict how compound combinations of risks will affect a referent level.

Page 41: software engineering

Risk Evaluation Outcomes

Comparing the evaluated risk against its risk referent has three possible outcomes:

1.Acceptable : the evaluated risk is less than the referent.

2.Impossible : the evaluated risk is much greater than the referent.

3.Infeasible : the evaluated risk is greater than, but almost equal to, the referent.

Page 42: software engineering

Seven-stage Hierarchy

1. Crisis management

2. Fix on failure

3. Mitigation

4. Prevention

5. Elimination of root causes

6.Anticipation

7. Management of change7. Management of change

Page 43: software engineering

SEI Risk Management Paradigm

Page 44: software engineering

RMMP Outline

I. Introduction

II. Risk analysis

III. Risk management

IV. Appendixes

Page 45: software engineering

RMMP - Introduction

A. Scope and purpose of document

B. Overview

1. Objectives, 2. Risk aversion priorities

C. Organization

1. Management, 2. Responsibilities, 3. Job descriptions

D. Aversion program description1. Schedule, 2. Major milestones and reviews, 3. Budget

Page 46: software engineering

RMMP - Risk analysis

A. Identification1. Survey or risks, a. Sources of risk, 2. Risk taxonomy

B. Risk estimation1. Estimate probability of risk, 2. Estimate consequence of risk, 3. Estimation criteria, 4. Possible sources of estimation error

C. Evaluation1. Evaluation methods to be used, 2. Method assumptions and limitations, 3. Risk referents, 4. Results

Page 47: software engineering

RMMP - Risk management

A. RecommendationsB. Risk aversion optionsC. Risk aversion recommendationsD. Risk monitoring procedures

Page 48: software engineering

IV. Appendixes

A. Risk estimate of the situationB. Risk abatement plan