•Risk are potential problems that might affect the successful completion of a software project.
•Risk involve uncertainty and potential losses.
•Risk analysis and management are intended[hope] to help a software team understand and manage uncertainty during the development process.
•The important thing is to remember that things can go wrong and to make plans to minimize their impact when they do.
•The work product is called a Risk Mitigation, Monitoring, an Management Plan (RMMM Plan).
•Reactive strategies – very common, also known as fire fighting, project team sets resources aside to delay with problems and does nothing until a risk becomes a problem.
•Proactive strategies – risk management begins long before technical work starts, risks are identified and prioritized by importance, then team builds a plan to avoid risks if they can or minimize them if the risks turn into problems
•Project risks – threaten the project plan
•Technical risks – threaten product quality and the timeliness of the schedule
•Business risks – threaten the viability [possible] of the software to be built (market risks, strategic risks, management risks, budget risks)
•Known risks – predictable from careful evaluation of current project plan and those extrapolated [predict/count] from past project experience
•Unknown risks – some problems simply occur without warning
•Product-specific risks – the project plan and software statement of scope are examined to identify any special characteristics of the product that may threaten the project plan.
•Generic risks [common]– are potential threats to every software product (product size, business impact, customer characteristics, process definition, development environment, technology to be built, staff size and experience)
•Risk components – performance, cost, support, schedule
•Risk impact – negligible, marginal [tiny], critical [emergency], catastrophic [destroy]
•The risk drivers affecting each risk component are classified according to their impact category and the potential consequences of each undetected software fault or unachieved [fail] project outcome are described
Risk Projection (Estimation)
•Establish [make] a scale that reflects the perceived likelihood [possible] of each risk
•Delineate [describe] the consequences of the risk
•Estimate the impact of the risk on the project and product
•Note that overall accuracy of the risk projection to avoid misunderstanding
Risk Table Construction
•List all risks in the first column of the table
•Classify each risk and enter the category label in column two
•Determine a probability for each risk and enter it into column three
•Enter the severity of each risk (negligible, marginal, critical, catastrophic) in column four
•Sort the table by probability and impact value
•Determine the criteria for deciding where the sorted table will be divided into the first priority concerns and the second priority concerns
•First priority concerns must be managed ( a fifth column can be added to contain a pointer into the RMMM)
Assessing Risk Impact
•Factors affecting risk consequences – nature (types of problems arising), scope (combines severity with extent of project affected), timing (when and how long impact is felt)
•If cost are associated with each risk table entry Halstead’s risk exposure metric can be computed (RE = Probability * Cost) and added to the risk table
•Define referent levels for each project risk that can cause project termination (performance degradation, cost overrun, support difficulty, schedule slippage)
•Attempt [tyring] to develop a relationship between each risk triple (risk, probability, impact) and each of the reference 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 combinations of risks will affect a referent level
•Process of restating the risks as a set of more detailed risks that will be easier to mitigate, monitor, and manage.
•CTC (condition-transition-consequences) format may be a good representation for the detailed risks (e.g given that <condition> then there is a concern that (possibly) <consequences>)
Risk Mitigation, Monitoring, and Management
•Risk mitigation (proactive planning for risk avoidance)
•Risk monitoring (assessing whether predicted risks occur or not, ensuring risk aversion steps are being properly applied, collect information for future risk analysis, attempt [try] to determine which risks caused which problems)
•Risk management and contingency [possibly] planning (actions to be taken in the event that mitigation steps have failed and the risk has become a live problem)
Safety and Hazards Risks
•Risk are also associated with software failures that occur in the field after the development project has ended.
•Computers control many mission critical applications in modern times (weapons system, flight control, industrial processes, etc).
•Software safety and hazard analysis are quality assurance activities that are of particular [fact] concern [about] for these types of applications and are discussed later in the text
Risk Information Sheets
•Alternative to RMMM in which each risk is documented individually.
•Often risk information sheets (RIS) are maintained using database system.
•RIS components – risk id, date, probability, impact, description, refinement, mitigation/monitoring, management/contingency[possible]/ trigger[act]. Status, originator, assigned staff member.