0% found this document useful (0 votes)
16 views59 pages

Se Unit 5

The document covers risk and configuration management in software projects, detailing the identification, estimation, and mitigation of risks that may impact project success. It categorizes risks into internal and external types, as well as project, technical, and business risks, and outlines a systematic approach to risk management including identification, analysis, ranking, and contingency planning. Additionally, it emphasizes the importance of proactive risk strategies and the integration of risk management into the software development process.

Uploaded by

ghiblistyle23
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views59 pages

Se Unit 5

The document covers risk and configuration management in software projects, detailing the identification, estimation, and mitigation of risks that may impact project success. It categorizes risks into internal and external types, as well as project, technical, and business risks, and outlines a systematic approach to risk management including identification, analysis, ranking, and contingency planning. Additionally, it emphasizes the importance of proactive risk strategies and the integration of risk management into the software development process.

Uploaded by

ghiblistyle23
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 59

UNIT 5

RISK AND CONFIGRUATION


MANAGEMENT
Risk Management

- Introduction
- Risk identification
- Risk projection (estimation)
-Risk Refinement
- Risk mitigation, monitoring, and
management
Project Risks
What can go wrong?
What is the likelihood?
What will the damage be?
What can we do about it?
What Is Software Risk?
• Risk is an expectation of loss, a potential problem
that may or may not occur in the future.
• It is generally caused due to lack of information,
control or time.
• A possibility of suffering from loss in software
development process is called a software risk.
• Loss can be anything, increase in production cost,
development of poor quality software, not being
able to complete the project on time.
Types of software risks
• Software risk exists because the future is
uncertain and there are many known and
unknown things that cannot be incorporated
in the project plan.
• A software risk can be of two types
– (1) internal risks that are within the control of
the project manager and
– (2) external risks that are beyond the control of
project manager.
Definition of Risk
• A risk is a potential problem – it might happen, and it
might not
• Conceptual definition of risk
– Risk concerns future happenings
– Risk involves change in mind, opinion, actions, places,
etc.
– Risk involves choice and the uncertainty that choice
entails
• Two characteristics of risk
– Uncertainty – the risk may or may not happen; that is,
there are no 100% risks (those, instead, are called
constraints)
– Loss – the risk becomes a reality, and unwanted
consequences or losses occur
Risk Categorization – Approach #1
• Project risks
– They threaten the project plan
– If they become real, it is likely that the project schedule will slip and that
costs will increase
• Technical risks
– They threaten the quality and timeliness of the software to be produced
– If they become real, implementation may become difficult or impossible
• Business risks
– They threaten the viability of the software to be built
– If they become real, they jeopardize the project or the product

(More on next slide)


Risk Categorization – Approach #1
(continued)
• Sub-categories of Business risks
– Market risk – building an excellent product or system
that no one really wants
– Strategic risk – building a product that no longer fits
into the overall business strategy for the company
– Sales risk – 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 a change in
people
– Budget risk – losing budgetary or personnel
commitment
Risk Categorization – Approach #2
• Known risks
– Those risks that can be uncovered after careful evaluation of the project plan,
the business and technical environment in which the project is being
developed, and other reliable information sources (e.g., unrealistic delivery
date)
• Predictable risks
– Those risks that are extrapolated from past project experience (e.g., past
turnover)
• Unpredictable risks
– Those risks that can and do occur, but are extremely difficult to identify in
advance
Risk Management
• Risk management is carried out to:
– Identify the risk
– Reduce the impact of risk
– Reduce the probability or likelihood of risk
– Risk monitoring

Reduce the
Reduce the probability
Identify the Risk
impact of or
risk monitoring
risk likelihood
of risk
Reactive vs. Proactive
Risk Strategies

• Reactive risk strategies


– "Don't worry, I'll think of something"
– The majority of software teams and managers rely on this
approach
– Nothing is done about risks until something goes wrong
• The team then flies into action in an attempt to correct the problem
rapidly (fire fighting)
– Crisis management is the choice of management techniques
• Proactive risk strategies
– Steps for risk management are followed (see next slide)
– Primary objective is to avoid risk and to have a contingency plan
in place to handle unavoidable risks in a controlled and effective
manner
Steps for Risk Management
1) Identify possible risks; recognize what can go wrong
2) Analyze each risk to estimate the probability that it will occur and
the impact (i.e., damage) that it will do if it does occur
3) Rank the risks by probability and impact
- Impact may be negligible, marginal, critical, and catastrophic
4) Develop a contingency plan to manage those risks having high
probability and high impact
Steps for Risk Management
Identify possible risks; recognize what can go wrong

Analyze each risk to estimate the probability that it


will occur and the impact (i.e., damage) that it will
do if it does occur

Rank the risks by probability and impact


- Impact may be negligible, marginal, critical, and
catastrophic

Develop a contingency plan to manage those risks


having high probability and high impact
Risk Identification
• Risk identification is a systematic attempt to specify threats to the
project plan
• By identifying known and predictable risks, the project manager takes
a first step toward avoiding them when possible and controlling them
when necessary
• Generic risks
– Risks that are a potential threat to every software project
• Product-specific risks
– Risks that can be identified only by those a with a clear understanding of
the technology, the people, and the environment that is specific to the
software that is to be built
– This requires examination of the project plan and the statement of scope
– "What special characteristics of this product may threaten our project
plan?"
Risk Item Checklist

Used as one way to identify risks

Focuses on known and predictable risks in


specific subcategories (see next slide)

Can be organized in several ways


• A list of characteristics relevant to each risk subcategory
• Questionnaire that leads to an estimate on the impact of each
risk
• A list containing a set of risk component and drivers and their
probability of occurrence
Known and Predictable Risk Categories
1-Product size risks associated with overall size of the software to be built

2-Business risks associated with constraints imposed by management or the marketplace


impact

3-Customer risks associated with sophistication of the customer and the developer's ability to
characteristics communicate with the customer in a timely manner

4-Process risks associated with the degree to which the software process has been defined and
definition is followed

5-Development risks associated with availability and quality of the tools to be used to build the
environment project

6-Technology to risks associated with complexity of the system to be built and the "newness" of the
be built technology in the system

7-Staff size and risks associated with overall technical and project experience of the software
experience engineers who will do the work
Recording Risk
Information
Project: Embedded software for XYZ system
Risk type: schedule risk
Priority (1 low ... 5 critical): 4
Risk factor: Project completion will depend on tests which
require
hardware component under development. Hardware component
delivery may be delayed
Probability: 60 %
Impact: Project completion will be delayed for each day that
hardware is unavailable for use in software testing
Monitoring approach:
Scheduled milestone reviews with hardware group
Contingency plan:
Modification of testing strategy to accommodate delay using
software simulation
Estimated resources: 6 additional person months beginning 7-1-
96
Questionnaire on Project Risk
(Questions are ordered by their relative importance to project success)

1) Have top software and customer managers formally committed to


support the project?
2) Are end-users enthusiastically committed to the project and the
system/product to be built?
3) Are requirements fully understood by the software engineering
team and its customers?
4) Have customers been involved fully in the definition of
requirements?
5) Do end-users have realistic expectations?
6) Is the project scope stable?

(More on next slide)


Questionnaire on Project Risk
(continued)
7) Does the software engineering team have the right mix of skills?
8) Are project requirements stable?
9) Does the project team have experience with the technology to be
implemented?
10) Is the number of people on the project team adequate to do the job?
11) Do all customer/user constituencies agree on the importance of the
project and on the requirements for the system/product to be built?
Risk Components and Drivers
• The project manager identifies the risk drivers that affect the following risk
components
– Performance risk - the degree of uncertainty that the product will meet its
requirements and be fit for its intended use
– Cost risk - the degree of uncertainty that the project budget will be maintained
– Support risk - the degree of uncertainty that the resultant software will be easy
to correct, adapt, and enhance
– Schedule risk - the degree of uncertainty that the project schedule will be
maintained and that the product will be delivered on time
• The impact of each risk driver on the risk component is divided into one of
four impact levels
– Negligible, marginal, critical, and catastrophic
• Risk drivers can be assessed as impossible, improbable, probable, and
frequent
Risk Projection (Estimation)
• Risk projection (or estimation) attempts to rate each risk in two ways
– The probability that the risk is real
– The consequence of the problems associated with the risk, should it occur
• The project planner, managers, and technical staff perform four risk
projection steps (see next slide)
• The intent of these steps is to consider risks in a manner that leads to
prioritization
• By prioritizing risks, the software team can allocate limited resources
where they will have the most impact
Risk Projection/Estimation Steps
1) Establish a scale that reflects the perceived
likelihood of a risk (e.g., 1-low, 10-high)
2) Delineate the consequences of the risk
3) Estimate the impact of the risk on the project
and product
4) Note the overall accuracy of the risk projection
so that there will be no misunderstandings
Contents of a Risk Table
• A risk table provides a project manager with a simple technique for
risk projection
• It consists of five columns
– Risk Summary – short description of the risk
– Risk Category – one of seven risk categories (slide 12)
– Probability – estimation of risk occurrence based on group input
– Impact – (1) catastrophic (2) critical (3) marginal (4) negligible
– RMMM – Pointer to a paragraph in the Risk Mitigation, Monitoring, and
Management Plan

Risk Summary Risk Category Probability Impact (1-4) RMMM

(More on next slide)


Developing a Risk Table
• List all risks in the first column (by way of the help of the risk item
checklists)
• Mark the category of each risk
• Estimate the probability of each risk occurring
• Assess the impact of each risk based on an averaging of the four risk
components to determine an overall impact value (See next slide)
• Sort the rows by probability and impact in descending order
• Draw a horizontal cutoff line in the table that indicates the risks that
will be given further attention
Assessing Risk Impact
• Three factors affect the consequences that are likely if a risk
does occur
– Its nature – This indicates the problems that are likely if the risk occurs
– Its scope – This combines the severity of the risk (how serious was it)
with its overall distribution (how much was affected)
– Its timing – This considers when and for how long the impact will be felt
• The overall risk exposure formula is RE = P x C
– P = the probability of occurrence for a risk
– C = the cost to the project should the risk actually occur
• Example
– P = 80% probability that 18 of 60 software components will have to be
developed
– C = Total cost of developing 18 components is $25,000
– RE = .80 x $25,000 = $20,000
Risk Refinement

• Risk Refinement. Process of restating the risks as


a set of more detailed risks that will be easier to
mitigate, monitor, and manage.
• CTC (condition-transition-consequence) format
may be a good representation for the
detailed risks (e.g. given that <condition> then
there is a concern that (possibly) <consequence>).
Risk Mitigation, Monitoring, and
Management
• An effective strategy for dealing with risk must consider three issues
(Note: these are not mutually exclusive)
– Risk mitigation (i.e., avoidance)
– Risk monitoring
– Risk management and contingency planning
• Risk mitigation (avoidance) is the primary strategy and is achieved
through a plan
– Example: Risk of high staff turnover (see next slide)

(More on next slide)


Strategy for Reducing Staff
Turnover
 Meet with current staff to determine causes for turnover (e.g., poor working
conditions, low pay, competitive job market)
 Mitigate those causes that are under our control before the project starts
 Once the project commences, assume turnover will occur and develop
techniques to ensure continuity when people leave
 Organize project teams so that information about each development activity is
widely dispersed
 Define documentation standards and establish mechanisms to ensure that
documents are developed in a timely manner
 Conduct peer reviews of all work (so that more than one person is "up to
speed")
 Assign a backup staff member for every critical technologist
• During risk monitoring, the project manager monitors factors that may
provide an indication of whether a risk is becoming more or less likely
• Risk management and contingency planning assume that mitigation
efforts have failed and that the risk has become a reality
• RMMM steps incur additional project cost
– Large projects may have identified 30 – 40 risks
• Risk is not limited to the software project itself
– Risks can occur after the software has been delivered to the user

(More on next slide)


• Software safety and hazard analysis
– These are software quality assurance activities that focus on the
identification and assessment of potential hazards that may affect software
negatively and cause an entire system to fail
– If hazards can be identified early in the software process, software design
features can be specified that will either eliminate or control potential
hazards
The RMMM Plan
• The RMMM plan may be a part of the software development plan or
may be a separate document
• Once RMMM has been documented and the project has begun, the risk
mitigation, and monitoring steps begin
– Risk mitigation is a problem avoidance activity
– Risk monitoring is a project tracking activity
• Risk monitoring has three objectives
– To assess whether predicted risks do, in fact, occur
– To ensure that risk aversion steps defined for the risk are being properly
applied
– To collect information that can be used for future risk analysis
• The findings from risk monitoring may allow the project manager to
ascertain what risks caused which problems throughout the project
Seven Principles of Risk
Maintain a global
Management
perspective View software risks within the context of a system and the business
problem that is intended to solve

Take a forward-looking
view
Think about risks that may arise in the future; establish contingency plans

Encourage open
communication
Encourage all stakeholders and users to point out risks at any time

Integrate risk
management
Integrate the consideration of risk into the software process
Emphasize a
continuous process of Modify identified risks as more becomes known and add new risks as better
risk management insight is achieved

Develop a shared
product vision A shared vision by all stakeholders facilitates better risk identification and
assessment

Encourage teamwork
when managing risk Pool the skills and experience of all stakeholders when conducting risk
management activities
Summary
• Whenever much is riding on a software project, common sense dictates risk
analysis
– Yet, most project managers do it informally and superficially, if at all
• However, the time spent in risk management results in
– Less upheaval during the project
– A greater ability to track and control a project
– The confidence that comes with planning for problems before they occur
• Risk management can absorb a significant amount of the project planning
effort…but the effort is worth it


Software Configuration
Management
- Introduction
- SCM repository
- The SCM process
Software Configuration
• The Output from the software process makes up the software
configuration
– Computer programs (both source code files and executable files)
– Work products that describe the computer programs (documents targeted at
both technical practitioners and users)
– Data (contained within the programs themselves or in external files)

• The major danger to a software configuration is change


– First Law of System Engineering: "No matter where you are in the system life
cycle, the system will change, and the desire to change it will persist
throughout the life cycle"

35
Origins of Software Change
• Errors detected in the software need to be corrected
• New business or market conditions dictate changes in product
requirements or business rules
• New customer needs demand modifications of data produced by
information systems, functionality delivered by products, or services
delivered by a computer-based system
• Reorganization or business growth/downsizing causes changes in
project priorities or software engineering team structure
• Budgetary or scheduling constraints cause a redefinition of the system
or product

36
Elements of a Configuration
Management System
• Configuration elements
– A set of tools coupled with a file management (e.g., database) system that
enables access to and management of each software configuration item
• Process elements
– A collection of procedures and tasks that define an effective approach to
change management for all participants
• Construction elements
– A set of tools that automate the construction of software by ensuring that
the proper set of valid components (i.e., the correct version) is assembled
• Human elements
– A set of tools and process features used by a software team to implement
effective SCM

37
What is Change Management
• Also called software configuration management (SCM)
• It is an umbrella activity that is applied throughout the software process
• It's goal is to maximize productivity by minimizing mistakes caused by
confusion when coordinating software development
• SCM identifies, organizes, and controls modifications to the software being
built by a software development team
• SCM activities are formulated to identify change, control change, ensure that
change is being properly implemented, and report changes to others who may
have an interest

(More on next slide) 38


What is Change Management
(continued)
• SCM is initiated when the project begins and terminates when the software is
taken out of operation
• View of SCM from various roles
– Project manager -> an auditing mechanism

– SCM manager -> a controlling, tracking, and policy making mechanism

– Software engineer -> a changing, building, and access control mechanism

– Customer -> a quality assurance and product identification mechanism

39
Have you established a baseline yet?

40
Baseline
• An SCM concept that helps practitioners to control change without
seriously impeding justifiable change
• IEEE Definition: A specification or product that has been formally
reviewed and agreed upon, and that thereafter serves as the basis for
further development, and that can be changed only through formal
change control procedures
• It is a milestone in the development of software and is marked by the
delivery of one or more computer software configuration items
(CSCIs) that have been approved as a consequence of a formal
technical review
• A CSCI may be such work products as a document (as listed in MIL-
STD-498), a test suite, or a software component

41
Baselining Process
1) A series of software engineering tasks produces a CSCI
2) The CSCI is reviewed and possibly approved
3) The approved CSCI is given a new version number and placed in a
project database (i.e., software repository)
4) A copy of the CSCI is taken from the project database and
examined/modified by a software engineer
5) The baselining of the modified CSCI goes back to Step #2

42
The SCM Repository
Paper-based vs. Automated
Repositories
• Problems with paper-based repositories (i.e., file cabinet containing folders)
– Finding a configuration item when it was needed was often difficult
– Determining which items were changed, when and by whom was often
challenging
– Constructing a new version of an existing program was time consuming and
error prone
– Describing detailed or complex relationships between configuration items was
virtually impossible
• Today's automated SCM repository
– It is a set of mechanisms and data structures that allow a software team to
manage change in an effective manner
– It acts as the center for both accumulation and storage of software engineering
information
– Software engineers use tools integrated with the repository to interact with it

44
Automated SCM Repository
(Functions and Tools)
Requirements
Versioning
tracing

SCM Repository

Functions
Dependency Data integrity Configuration
tracking Information sharing management
Tool integration
Data integration
Methodology enforcement
Document standardization

Change Audit
management trails

(Explained on next two slides) 45


Functions of an SCM Repository
• Data integrity
– Validates entries, ensures consistency, cascades modifications
• Information sharing
– Shares information among developers and tools, manages and controls
multi-user access
• Tool integration
– Establishes a data model that can be accessed by many software
engineering tools, controls access to the data
• Data integration
– Allows various SCM tasks to be performed on one or more CSCIs
• Methodology enforcement
– Defines an entity-relationship model for the repository that implies a
specific process model for software engineering
• Document standardization
– Defines objects in the repository to guarantee a standard approach for
creation of software engineering documents
46
Toolset Used on a Repository
• Versioning
– Save and retrieve all repository objects based on version number
• Dependency tracking and change management
– Track and respond to the changes in the state and relationship of all
objects in the repository
• Requirements tracing
– (Forward tracing) Track the design and construction components and
deliverables that result from a specific requirements specification
– (Backward tracing) Identify which requirement generated any given work
product
• Configuration management
– Track a series of configurations representing specific project milestones or
production releases
• Audit trails
– Establish information about when, why, and by whom changes are made
in the repository

47
Summary of CM Tools
• http://www.daveeaton.com/scm/CMTools.html

• http://www.laatuk.com/tools/SCM_tools.html

• http://www.snuffybear.com/ucmcentral_new_vendorlinks.htm

• http://www.google.com/Top/Computers/Software/Configuration_Management
/Tools/

• http://stason.org/TULARC/business/config-version-management-tools/69-CM
-Tools-With-World-Wide-Web-Sites.html

• http://www.cmcrossroads.com/cm-resources/tools/commercial-cm-tools

48
The SCM Process
Primary Objectives of the
SCM Process
• Identify all items that collectively define the software configuration
• Manage changes to one or more of these items
• Facilitate construction of different versions of an application
• Ensure the software quality is maintained as the configuration evolves
over time
• Provide information on changes that have occurred

(Compare this process to the five SCM tasks)

50
SCM Questions
• How does a software team identify the discrete elements of a software
configuration?
• How does an organization manage the many existing versions of a program
(and its documentation) in a manner that will enable change to be
accommodated efficiently?
• How does an organization control changes before and after software is
released to a customer?
• Who has responsibility for approving and ranking changes?
• How can we ensure that changes have been made properly?
• What mechanism is used to appraise others of changes that are made?

51
SCM Tasks

Status reporting

Configuration auditing

Version control

Change control

Identification

CSCI CSCI
CSCI CSCI

(More on next slide) 52


SCM Tasks (continued)
• Concentric layers (from inner to outer)
– Identification
– Change control
– Version control
– Configuration auditing
– Status reporting
• CSCIs flow outward through these layers during their life cycle
• CSCIs ultimately become part of the configuration of one or more versions
of a software application or system

53
Identification Task
• Identification separately names each CSCI and then organizes it in the
SCM repository using an object-oriented approach
• Objects start out as basic objects and are then grouped into aggregate
objects
• Each object has a set of distinct features that identify it
– A name that is unambiguous to all other objects
– A description that contains the CSCI type, a project identifier, and change
and/or version information
– List of resources needed by the object
– The object realization (i.e., the document, the file, the model, etc.)

54
Change Control Task
• Change control is a procedural activity that ensures quality and consistency as
changes are made to a configuration object
• A change request is submitted to a configuration control authority, which is
usually a change control board (CCB)
– The request is evaluated for technical merit, potential side effects, overall impact on
other configuration objects and system functions, and projected cost in terms of
money, time, and resources
• An engineering change order (ECO) is issued for each approved change
request
– Describes the change to be made, the constraints to follow, and the criteria for
review and audit
• The baselined CSCI is obtained from the SCM repository
– Access control governs which software engineers have the authority to access and
modify a particular configuration object
– Synchronization control helps to ensure that parallel changes performed by two
different people don't overwrite one another

55
Version Control Task
• Version control is a set of procedures and tools for managing the creation and use
of multiple occurrences of objects in the SCM repository
• Required version control capabilities
– An SCM repository that stores all relevant configuration objects
– A version management capability that stores all versions of a configuration object (or
enables any version to be constructed using differences from past versions)
– A make facility that enables the software engineer to collect all relevant configuration
objects and construct a specific version of the software
– Issues tracking (bug tracking) capability that enables the team to record and track the
status of all outstanding issues associated with each configuration object
• The SCM repository maintains a change set
– Serves as a collection of all changes made to a baseline configuration
– Used to create a specific version of the software
– Captures all changes to all files in the configuration along with the reason for changes
and details of who made the changes and when

56
Configuration Auditing Task
• Configuration auditing is an SQA activity that helps to ensure that quality is
maintained as changes are made
• It complements the formal technical review and is conducted by the SQA group
• It addresses the following questions
– Has the change specified in the ECO been made? Have any additional modifications
been incorporated?
– Has a formal technical review been conducted to assess technical correctness?
– Has the software process been followed, and have software engineering standards been
properly applied?
– Has the change been "highlighted" and "documented" in the CSCI? Have the change
data and change author been specified? Do the attributes of the configuration object
reflect the change?
– Have SCM procedures for noting the change, recording it, and reporting it been
followed?
– Have all related CSCIs been properly updated?
• A configuration audit ensures that
– The correct CSCIs (by version) have been incorporated into a specific build
– That all documentation is up-to-date and consistent with the version that has been built

57
Status Reporting Task
• Configuration status reporting (CSR) is also called status accounting
• Provides information about each change to those personnel in an organization
with a need to know
• Answers what happened, who did it, when did it happen, and what else will be
affected?
• Sources of entries for configuration status reporting
– Each time a CSCI is assigned new or updated information
– Each time a change is approved by the CCB and an ECO is issued
– Each time a configuration audit is conducted
• The configuration status report
– Placed in an on-line database or on a website for software developers and
maintainers to read
– Given to management and practitioners to keep them appraised of important
changes to the project CSCIs

58
Summary
• Introduction
• SCM Repository
• SCM Process
– Identification
– Change control
– Version control
– Configuration auditing
– Status reporting

59

You might also like