Risk Management for Software Development Richard Fairley Paul Rook

advertisement
Risk Management for Software
Development
Richard Fairley
Colorado Technical University
Colorado Springs, Colorado, USA
Paul Rook
The Center for Software Reliability
City University, Northampton Square, London, UK
Presented by: Ken Waller
EEL 6883 – Software Engineering
II
Presentation Agenda


Review and Present the Paper
Give my Thoughts on the Paper




Strengths
Weaknesses
Suggestions for Improvements
Question and Answer Session

But feel free to ask questions during the
presentation, as well
Paper Overview







Introduction
Risk Management vs. Project Management
Risk Types
Software Development Processes and their
Relationship to Risk Management
Detailed Discussion of Risk Management
Procedures
Organizational Level Risk Management
Conclusions
Introduction

History





1800’s: Origins stem from the concept of Risk
Exposure (Insurance Industry)
1950’s: Some related topics being taught in
academia (decision theory, probabilistic modeling)
1980’s: Formal Risk Management used in
Petrochemical and Construction Industries
1990’s: Risk Management becomes an element of
Software Engineering
1990’s – Present: Risk Management applied
throughout many diverse industries
Introduction

Definitions:

Risk = Potential Problem


Probability (0.0 – 1.0) (non-inclusive)
Loss (risk impact)



Quantify: Money, human lives, etc.
Qualify: Credibility, trust
Problem = Materialized Risk (reality)

Resources (time, money, personnel) needed to
fix
Introduction

When risk can be quantified:


Risk Exposure = probability * impact
Example:



Probability that SW glitch will cause explosion:
0.3 (30%)
Impact: 5 Human Lives (L)
Exposure: 0.3 * 5L = 1.5L
Introduction

Risks are caused by events:





Single events
Multiple events
Continuous events
Interdependent events
Can be difficult to distinguish cause and
effect
Introduction

Risk Management Overview:




State outcome that you want to avoid
State courses of action that will lead to
avoidance
Find root causes
Start with project targets: cost,
schedule, product (functionality,
performance, quality, etc.)

Risks are associated with targets
Introduction

Risk Management Procedures: Basic Steps
(independent of industry or discipline):

Risk Assessment




Identify Risks
Analyze Risks
Rate/Rank/Prioritize Risks
Risk Control



Abate Risks
Create Risks Mitigation Plans
Apply Plans
Introduction

Risk Management considerations:

Constraints


Estimates




External conditions on project targets
Ranges
Confidence levels
Project Targets (negotiated)
Conditional maximum target
Conditional Maximum Targets
(expanded)


Desire to maximize some project
attribute
Doing so may compromise another
Threshold
(maximum)
Threshold
(maximum)
Threshold
(minimum)
Cost
Schedule Performance
Cost
Schedule Performance
Cost
Schedule Performance
Risk Management vs. Project
Management

Project Management (Classical)



Attempts to manage/control risks in
traditional ways: estimating, planning,
scheduling
“Problem Management”
Reactive: Difficult choices and risk
mitigation plans are made only after
problems arise
Risk Management vs. Project
Management

Risk Management

Attempts to manage/control risks in a more focused manner:

Risk Assessment




Risk Control





Identify what may go wrong
Assign probabilities
Assess negative impact severities
Create plans to reduce probabilities and/or severities
Create plans to resolve risks that surface
Reassess Risks
“True” management of risks
Proactive: Difficult choices and risk mitigation plans are
made before risks surface
Risk Management vs. Project
Management

Risk Management Augments Project
Management




Not the same thing
Not a replacement
Risk Management not a guarantee
Successful projects:


Overcome problems
Do not never encounter problems
Risk Types

Four categories identified:





Contractual/Environmental: Problems with customers or
vendors, hindering organizational policies, etc.
Management/Process: Unclear authorities and
responsibilities, weak or inadequate processes, etc.
Personnel: Lack of skills/training, etc.
Technical: Requirements creep, inadequate testing, etc.
Must be correctly typed so appropriate level can
address them
Risk Types

For Risk Control, two categories

Generic


Common to most/all software projects
Methods to abate/control have been developed, over time



Errors in products handled by V&V, incremental testing
Communication problems handled by documentation, reviews, and
meetings
Project Specific


Associated with a particular project
Covered by the Risk Management Plan, consisting of


Action Plans: Decision to engage in a risk reduction activity
without any further consideration (decision has been made)
Contingency Plans: Initiate risk reduction activity at some future
time, if warranted
Software Development Processes and
their Relationship to Risk
Management


The use of a particular software
development process is an essential risk
reduction technique
To select an appropriate development
process, need to understand:


Available software development
processes
Critical Risk Factors associated with the
project under development
Software Development Process
Models and their Relationship to Risk
Management

Available Software Development Processes:









COTS: Overlooked; requirements match
Waterfall: Single Pass
Risk Reduction/Waterfall: RR, then Waterfall
Capabilities-to-Requirements: Pick COTS, then adjust reqs
Transform: Tool automates generation of code
Evolutionary: Spiral, several passes
Prototyping: Low fidelity system
Incremental: Add capabilities in each build
Design-to-Cost/Schedule: Prune reqs to meet schedule/cost
Software Development Process
Models and their Relationship to Risk
Management

Critical Risk Factors:







Growth: High growth implies risk if using COTS
Available Technologies:
Ill-Defined Requirements: Feedback essential (use
spiral/incremental)
Understanding of Architecture: Low understanding = high
risk of top down approach
Robustness: Require more rigorous process model
Budget/schedule limitations: May be good to use design-tocost/schedule models
High-risk system nucleus: May indicate spiral/incremental
approach
Detailed Discussion of Risk
Management Procedures

Review of Risk Management Procedures:

Risk Assessment




Risk Identification
Risk Analysis
Risk Prioritization
Risk Control



Risk Abatement Strategies
Risk Mitigation Planning
Risk Mitigation
Detailed Discussion of Risk
Management Procedures


Risk Assessment’s Main Goal: Establishing a set of
Risks that potentially threaten a project
Three explicit steps in Risk Assessment:

Risk Identification


Risk Analysis



Find Risks and bring to the attention of management, senior
level personnel, and the customer
Assign quantitative values to risks (impacts, probabilities)
Also perform cost/benefit analysis
Risk Prioritization


Rank risks, from 1..n
Higher the rank, more resources invested (time, money)
Detailed Discussion of Risk
Management Procedures

More on Risk Identification:



Main tool: Expertise and previous experience
Organizations attempt to develop various forms of checklists
to capture previous experience and knowledge
Other tools:





Scenarios
Decompositions
Prototyping
Modeling and Simulation
Identification process needs to involve all levels of business
and technical staff, along with the customer


More/different experience leads to discovery of more risks
Must integrate (overcome) different viewpoints
Detailed Discussion of Risk
Management Procedures

More on Risk Analysis:


Goal: Develop numerical aspects of risks
Analysis Tools & Techniques:




Historical Data
Cost estimation tools (automated – software; manual –
spreadsheets/forms)
Expertise and Past Experiences
Other available Techniques depend upon type of Risk




Technical Risks: Modeling and Simulation, prototyping
Cost Risks: Algorithmic cost models, Monte Carlo Simulations
Schedule Risks: Algorithmic schedule models, Monte Carlo
Simulations
Operational Risks: Performance and Reliability Modeling
Detailed Discussion of Risk
Management Procedures

More on Risk Prioritization:


Not all Risks get included on the final list of
Risks to manage
Main Factor that contributes to the
importance of a Risk (and ultimately a
formal prioritized list) is Risk Exposure
(probability * impact)
Detailed Discussion of Risk
Management Procedures

Risk Control relies on a “Feedback Loop”







Feedback upon whether risks are being managed or not
If not, redirect, re-plan, and “close loop”
Initial Action Plans are executed to reduce risk
Contingency Plans executed upon trigger to attack risks further
Project Manager = “Controller”
Depends upon completion of the Risk Assessment phase
Three explicit steps:

Risk Abatement Strategies:


Risk Mitigation Planning:


Determine strategies
Produce detailed plans, based upon strategies
Risk Mitigation:

Put plans into action and reduce/eliminate risks
Detailed Discussion of Risk
Management Procedures

More on Risk Abatement Strategies:

Must first know where to start expending
resources



Three Basic Strategies Available:




Relies upon analysis/results of Risk Assessment phase
May also rely upon Simulations, Prototypes, Data/History,
Experts/Experience
Risk Avoidance: May involve deletion of requirements or
functionality
Risk Transfer: May involve reallocating requirement or
functionality
Risk Acceptance: Involves further risk control
Must consider cost-benefit analysis
Detailed Discussion of Risk
Management Procedures

More on Risk Mitigation Planning:

Translate strategies into detailed plans



Must take project schedule and resource
consumption into account


Action Plans
Contingency Plans
Consumption of resources to manage one risk may cause
another risk to occur (must iterate)
Funds/resources can be “set aside” for risks
(reserves)
Detailed Discussion of Risk
Management Procedures

More on Risk Mitigation:

Put mitigation plans into effect


Goal is to reach a resolution of the underlying
problem
Must continually track (monitor and report)
the characteristics of risks

Re-assess risks as plans are implemented and
impacts are made (iterate the loop)
Organizational Level Risk
Management

Companies that deal in advanced technologies now mandate
Risk Management Plans



Includes senior technical and executive management, as well as
the customer
Goal is to understand the impacts risks may have on financial
bottom lines
Characteristics of Organizations that employ Risk Management:

Explicit risk management processes defined and followed



Customization for specific project allowed
Communication
Reporting risks to the highest levels of the organization (executives,
VPs, etc.)

Regular reviews
Conclusions


Risk Management has been around (in
various forms) for a long time, and is used in
a vast array of industries
Experience is perhaps the key tool used
during the Risk Management process (finding,
assessing, etc. risks)



Prototyping, simulations can also be used
Explicit steps are defined and well known
Risks must be expected
My Opinions on the Paper

Strengths:



Use of a wide range of types of Figures to
illustrate various points/ideas
Thorough and understandable discussion
Use of many quick “for example…”
My Opinions on the Paper

Weaknesses:

Formatting Issue: No Numbering System Used

For Example:





Is less clear than:


X. Risk Assessment (Risk Identification, Risk Analysis, …)
Risk Identification
Risk Analysis
…
X. Risk Assessment

X.1 Risk Identification

X.2 Risk Analysis

X.3 …
Some content “out of place”


History Lesson in the “Risk Management Procedures” section
Discussion of Development Process relationship to Risk Management in
the “Types of Risks” section
My Opinions on the Paper

Suggestions for Improvement:

Devise and incorporate a formal numbering
systems


Makes clear to readers the organization of the
paper
Reformat the content

Suggests already laid out in this presentation
Questions…?

Thank You!!
Download