Chapter 03 Managing Software Project
Chapter 03 Managing Software Project
Risk Analysis & Management (Risk Identification, Risk Projection, Risk refinement, Risk Mitigation)
Unit 3
The Four P’s
Unit 3
People includes:
The stakeholders
Team Leaders
Software Team
Agile Teams
Coordination and communication Issues
Product includes:
Software Scope
Problem Decomposition
Process includes:
Melding the product and the process
Process Decomposition
Project includes:
Start on the right foot
Maintain momentum
Track progress
Make smart decisions
Conduct a postmortem analysis
Unit 3
Stakeholders
Senior managers who define the business issues that often have
significant influence on the project.
Project (technical) managers who must plan, motivate, organize,
and control the practitioners who do software work.
Practitioners who deliver the technical skills that are necessary to
engineer a product or application.
Customers who specify the requirements for the software to be
engineered and other stakeholders who have a peripheral interest
in the outcome.
End-users who interact with the software once it is released for
production use.
Unit 3
Software Teams
How to lead?
How to organize?
How to collaborate?
Unit 3
Team Leader
The MOI Model
Motivation. The ability to encourage (by “push or
pull”) technical people to produce to their best ability.
Organization. The ability to mold existing processes
(or invent new ones) that will enable the initial concept
to be translated into a final product.
Ideas or innovation. The ability to encourage people
to create and feel creative even when they must work
within bounds established for a particular software
product or application.
Unit 3
Software
Teams
the difficulty of the problem to be solved
the size of the resultant program(s) in lines of code or function
points
the time that the team will stay together (team lifetime)
the degree to which the problem can be modularized
the required quality and reliability of the system to be built
the rigidity of the delivery date
the degree of sociability (communication) required for the project
Unit 3
Agile Teams
Team members must have trust in one another.
The distribution of skills must be appropriate to the
problem.
Mavericks may have to be excluded from the team, if team
cohesiveness is to be maintained.
Team is “self-organizing”
An adaptive team structure
Uses elements of Constantine’s random, open, and
synchronous paradigms
Significant autonomy
Unit 3
Team Coordination & Communication
Formal, impersonal approaches include software engineering documents
and work products (including source code), technical memos, project
milestones, schedules, and project control tools (Chapter 23), change
requests and related documentation, error tracking reports, and repository
data (see Chapter 26).
Formal, interpersonal procedures focus on quality assurance activities
(Chapter 25) applied to software engineering work products. These include
status review meetings and design and code inspections.
Informal, interpersonal procedures include group meetings for information
dissemination and problem solving and “collocation of requirements and
development staff.”
Electronic communication encompasses electronic mail, electronic bulletin
boards, and by extension, video-based conferencing systems.
Interpersonal networking includes informal discussions with team members
and those outside the project who may have experience or insight that can
Unit 3
The Product Scope
Scope
Context. How does the software to be built fit into a larger
system, product, or business context and what constraints
are imposed as a result of the context?
Information objectives. What customer-visible data
objects (Chapter 8) are produced as output from the
software? What data objects are required for input?
Function and performance. What function does the
software perform to transform input data into output? Are
any special performance characteristics to be addressed?
Software project scope must be unambiguous and understandable
at the management and technical levels.
Problem Decomposition
Sometimes called partitioning or problem
elaboration
Once scope is defined …
It is decomposed into constituent functions
It is decomposed into user-visible data objects
or
It is decomposed into a set of problem classes
Decomposition process continues until all
Unit 3
Product Metrices
Focus on the quality of deliverables
Product metrics are combined across several projects to
produce process metrics
Metrics for the product:
– Measures of the Analysis Model
– Complexity of the Design Model
– Internal algorithmic complexity
– Architectural complexity
– Data flow complexity
– Code metrics
Unit 3
McCall’s Triangle of Quality
Maintainability Portability
Flexibility Reusability
Testability Interoperability
PRODUCT OPERATION
Correctness Usability Efficiency
Reliability Integrity
Unit 3
The Process
Once a process framework has been established
Consider project characteristics
Determine the degree of rigor required
Define a task set for each software engineering activity
Task set =
Software engineering tasks
Work products
Quality assurance points
Milestones
Unit 3
Process Metrics
Process metrics are collected across all projects and over long periods of
time. Their intent is to provide a set of process indicators that lead to long-
term software process improvement.
Focus on quality achieved as a consequence of a repeatable or managed
process.
Strategic and Long Term.
Statistical Software Process Improvement (SSPI).
Error Categorization and Analysis:
– All errors and defects are categorized by origin
– The cost to correct each error and defect is recorded
– The number of errors and defects in each category is computed
– Data is analyzed to find categories that result in the highest cost to the
organization Unit 3
The Project
Projects get into trouble when …
Software people don’t understand their customer’s needs.
The product scope is poorly defined.
Changes are managed poorly.
The chosen technology changes.
Business needs change [or are ill-defined].
Deadlines are unrealistic.
Users are resistant.
Sponsorship is lost [or was never properly obtained].
The project team lacks people with appropriate skills.
Managers [and practitioners] avoid best practices and lessons
learned. Unit 3
Common-Sense Approach to
Projects
Start on the right foot. This is accomplished by working hard (very hard) to
understand the problem that is to be solved and then setting realistic
objectives and expectations.
Maintain momentum. The project manager must provide incentives to keep
turnover of personnel to an absolute minimum, the team should emphasize
quality in every task it performs, and senior management should do
everything possible to stay out of the team’s way.
Track progress. For a software project, progress is tracked as work
products (e.g., models, source code, sets of test cases) are produced and
approved (using formal technical reviews) as part of a quality assurance
activity.
Make smart decisions. In essence, the decisions of the project manager
and the software team should be to “keep it simple.”
Conduct a postmortem analysis. Establish a consistent mechanism for
extracting lessons learned for each Unit 3
project.
Project Metrices
Project metrics enable a software project manager to assess the status of
an ongoing project, track potential risks, uncover problem areas before
they go “critical,” adjust work flow or tasks, and evaluate the project
team’s ability to control quality of software work products.
Project metrics on most software projects occurs during estimation.
Metrics collected from past projects are used as a basis from which effort
and time estimates are made for current software work. Production rates
represented in terms of models created, review hours, function points, and
delivered source lines are measured.
These metrics are used to minimize the development schedule by making
the adjustments necessary to avoid delays and mitigate potential problems
and risks.
Project metrics are used to assess product quality on an ongoing basis and,
when necessary, modify the technical
Unit 3approach to improve quality.
Software Project Estimations
Software Project Management begins with a set of activities
that are collectively called project planning.
The overall goal of project planning is to establish a
pragmatic strategy for controlling, tracking, and monitoring
a complex technical project.
Why?
So the end result gets done on time, with quality!
Unit 3
Project Planning Task Set-I
Establish project scope
Determine feasibility
Analyze risks
Risk analysis is considered in detail in Chapter
25.
Define required resources
Determine require human resources
Define reusable software resources
Identify environmental
Unit 3 resources
Project Planning Task Set-II
Estimate cost and effort
Decompose the problem
Develop two or more estimates using size, function points,
process tasks or use-cases
Reconcile the estimates
Develop a project schedule
Scheduling is considered in detail in Chapter 27.
Establish a meaningful task set
Define a task network
Use scheduling tools to develop a timeline chart
Define schedule tracking mechanisms
Unit 3
Estimation
Estimation of resources, cost, and schedule for a software
engineering effort requires
experience
access to good historical information (metrics)
the courage to commit to quantitative predictions when
qualitative information is all that exists
Estimation carries inherent risk and this risk leads to
uncertainty
Unit 3
Project Estimation
Project scope must be understood
Elaboration (decomposition) is necessary
Historical metrics are very helpful
At least two different techniques should be used
Uncertainty is inherent in the process
Unit 3
Estimation Accuracy
Predicated on …
the degree to which the planner has properly estimated the
size of the product to be built
the ability to translate the size estimate into human effort,
calendar time, and dollars (a function of the availability of
reliable software metrics from past projects)
the degree to which the project plan reflects the abilities of the
software team
the stability of product requirements and the environment that
supports the software engineering effort.
Unit 3
Functional Decomposition
Statement functional
of decomposition
Scope
Perform a
Grammatical “parse”
Unit 3
Conventional Methods:
LOC/FP Approach
compute LOC/FP using estimates of information domain
values
use historical data to build estimates for the project.
A three-point or expected value can then be computed. The
expected value for the estimation variable (size) S can be
computed as a weighted average of the optimistic (Sopt),
most likely (Sm), and pessimistic (Spess) estimates.
S = Sopt+4Sm+Spess
6
Unit 3
Example: LOC
Approach
Unit 3
Example: FP
Approach
Unit 3
Process-Based Estimation
framework activities
Unit 3
Process-Based Estimation Example
Function
project characteristics
calibration factors
LOC/FP data
Unit 3
Use-Case–Oriented Metrics
Like FP, the use case is defined early in the software process,
allowing it to be used for estimation before significant modeling
and construction activities are initiated.
Use cases describe (indirectly, at least) user-visible functions and
features that are basic requirements for a system. The use case is
independent of programming language.
Because use cases can be created at vastly different levels of
abstraction, there is no standard “size” for a use case.
Without a standard measure of what a use case is, its application
as a normalization measure (e.g., effort expended per use case) is
suspect.
Unit 3
Empirical Estimation Models
General form:
exponent
effort = tuning coefficient * size
usually derived
as person-months empirically
of effort required derived
Unit 3
COCOMO (constructive cost
model)-II
COCOMO II is actually a hierarchy of estimation models that address the
following areas:
Application composition model. Used during the early stages of
software engineering, when prototyping of user interfaces,
consideration of software and system interaction, assessment of
performance, and evaluation of technology maturity are
paramount.
Early design stage model. Used once requirements have been
stabilized and basic software architecture has been established.
Post-architecture-stage model. Used during the construction of the
software.
Unit 3
The Software Equation
where
E = effort in person-months or person-years
t = project duration in months or years
B = “special skills factor”
P = “productivity parameter”
Unit 3
The basic COCOMO model gives an approximate estimate of the project
parameters. The basic COCOMO estimation model is given by following
expressions:
Effort = a1 x (KLOC)a2 PM (person Month)
Time of Development = b1 x (Effort) b2 Months
Where, a1,a2,b1,b2 are constants for each category of software
products
Estimation of Effort
Organic: Effort = 2.4 (KLOC) 1.05 PM
Semi-detached: Effort = 3.0 (KLOC) 1.12 PM
Embedded: Effort = 3.6 (KLOC) 1.20 PM
Estimation Time of Development
Organic: Time of Development = 2.5 (Effort) 0.38 Months
Semi-detached: Time of Development = 2.5 (Effort) 0.35 Months
Embedded: Time of Development = 2.5 (Effort) 0.32 Months
Unit 3
Organic, Semidetached and Embedded
software projects
Unit 3
Project scheduling &
Tracking
The scheduling principles:
Unit 3
Effort and Delivery Time
Effort
Cost
Ea = m (td4 / ta4)
Eo
td to development time
Tmin = 0.75T d
Unit 3
Effort Allocation
Unit 3
Defining Task
Sets
determine type of project
assess the degree of rigor required
identify adaptation criteria
select appropriate software engineering tasks
Unit 3
Task Set
Refinement
1.1 Concept scoping determines the overall
scope of the project.
Task definition: Task 1.1 Concept Scoping
1.1.1 Identify need, benefits and potential customers;
1.1.2 Define desired output/control and input events that drive the application;
Begin Task 1.1.2
1.1.2.1 FTR: Review written description of need
FTR indicates that a formal technical review (Chapter 26) is to be conducted.
1.1.2.2 Derive a list of customer visible outputs/inputs
1.1.2.3 FTR: Review outputs/inputs with customer and revise as required;
endtask Task 1.1.2
1.1.3 Define the functionality/behavior for each major function;
Begin Task 1.1.3
1.1.3.1 FTR: Review output and input data objects derived in task 1.1.2;
1.1.3.2 Derive a model of functions/behaviors;
1.1.3.3 FTR: Review functions/behaviors with customer and revise as
required;
endtask Task 1.1.3
is refined to 1.1.4 Isolate those elements of the technology to be implemented in software;
1.1.5 Research availability of existing software;
1.1.6 Define technical feasibility;
1.1.7 Make quick estimate of size;
1.1.8 Create a Scope Definition;
endTask definition: Task 1.1
Unit 3
Define a Task
Network
I.5a
I.3a
Concept
Tech. Risk
Implement.
Assessment
I.3c I.5c
Tech. Risk Concept
Assessment Implement.
Unit 3
Timeline Charts
Task 1
Task 2
Task 3
Tas
k4 5
Task
Task 6
Task 7
Task 8
Task 9
Task 10
Task
11 12
Task
Unit 3
Use Automated Tools to
Derive a Timeline Chart
Work tasks week 1 week 2 week 3 week 4 week 5
Unit 3
Schedule Tracking
conduct periodic project status meetings in which each team
member reports progress and problems.
evaluate the results of all reviews conducted throughout the
software engineering process.
determine whether formal project milestones (the diamonds) have
been accomplished by the scheduled date.
compare actual start-date to planned start-date for each project
task listed in the resource table.
meet informally with practitioners to obtain their subjective
assessment of progress to date and problems on the horizon.
use earned value analysis to assess progress quantitatively.
Unit 3
Earned Value Analysis (EVA)
Earned value
is a measure of progress
enables us to assess the “percent of completeness” of a
project using quantitative analysis rather than rely on a
gut feeling
“provides accurate and reliable readings of performance
from as early as 15 percent into the project.” [Fle98]
Unit 3
Progress on an OO Project-I
Technical milestone: OO analysis completed
All classes and the class hierarchy have been defined and reviewed.
Class attributes and operations associated with a class have been defined
and reviewed.
Class relationships have been established and reviewed.
A behavioral model has been created and reviewed.
Reusable classes have been noted.
“the distinction between the BCWS and the BCWP is that the
former represents the budget of the activities that were planned to
be completed and the latter represents the budget of the activities
that actually were completed.” [Wil99]
Given values for BCWS, BAC, and BCWP, important progress
indicators can be computed:
Schedule performance index, SPI = BCWP/BCWS
Schedule variance, SV = BCWP – BCWS
Computing Earned Value-III
Percent scheduled for completion = BCWS/BAC
provides an indication of the percentage of work that should have been
completed by time t.
Unit 3
Categories of Risk
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 feasibility of the software to be built. If they
become real, they threaten the project or the product
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
Unit 3information sources (e.g., unrealistic
Contd…
Predictable risks
– Those risks that are deduced 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
Unit 3
Sub-Categories of risk
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
Unit 3
Risk Identification
One method for identifying risks is to create a risk item
checklist.
The checklist can be used for risk identification and focuses
on some subset of known and predictable risks in the
following generic subcategories:
Product size—risks associated with the overall size of the
software to be built or modified.
Business impact—risks associated with constraints
imposed by management or the marketplace.
Stakeholder characteristics—risks associated with the
sophistication of the stakeholders and the developer’s
Contd…
Process definition—risks associated with the degree to
which the software process has been defined and is followed
by the development organization.
Development environment—risks associated with the
availability and quality of the tools to be used to build the
product.
Technology to be built—risks associated with the complexity
of the system to be built and the “newness” of the
technology that is packaged by the system.
Staff size and experience—risks associated with the overall
technical and project experience of the software engineers
Unit 3
Assessing Project Risk
Have top software and customer managers formally
committed to support the project?
Are end-users enthusiastically committed to the project and
the system/product to be built?
Are requirements fully understood by the software
engineering team and their customers?
Have customers been involved fully in the definition of
requirements?
Do end-users have realistic expectations?
Unit 3
Contd..
Is project scope stable?
Does the software engineering team have the right mix of
skills?
Are project requirements stable?
Does the project team have experience with the technology
to be implemented?
Is the number of people on the project team adequate to do
the job?
Do all customer/user constituencies agree on the
importance of the project and on the requirements for the
system/product to be built?Unit 3
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.
Unit 3
Risk Projection
Steps of Risk Projection/risk estimation are as follows:
1. Establish a scale that reflects the perceived likelihood of a
risk (e.g., 1-low, 10-high)
2. Explain 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
Unit 3
Building a Risk Table
Risk
Mitigation
Monitoring
&
Management
Unit 3
Building the Risk Table
Unit 3
Risk Exposure Example
Risk identification. Only 70 percent of the software components
scheduled for reuse will, in fact, be integrated into the application.
The remaining functionality will have to be custom developed.
Risk probability. 80% (likely).
Risk impact. 60 reusable software components were planned. If
only 70 percent can be used, 18 components would have to be
developed from scratch (in addition to other custom software that
has been scheduled for development). Since the average
component is 100 LOC and local data indicate that the software
engineering cost for each LOC is $14.00, the overall cost (impact)
to develop the components would be 18 x 100 x 14 = $25,200.
Risk exposure. RE = 0.80 x 25,200 ~ $20,200.
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 to
determine which risks caused which problems)
Risk management and contingency planning (actions to be
taken in the event that mitigation steps have failed and the
risk has become a live problem)
The goal of the risk mitigation, monitoring and
management plan is to identify as many potential risks as
possible. Unit 3
Contd…
When all risks have been identified, they will then be
evaluated to determine their probability of occurrence.
Plans will then be made to avoid each risk, to track each
risk to determine if it is more or less likely to occur, and to
plan for those risks should they occur.
It is the organization’s responsibility to perform risk
mitigation, monitoring, and management in order to
produce a quality product.
The quicker the risks can be identified and avoided, the
smaller the chances of having to face that particular risk’s
consequence.
Unit 3
Risk Mitigation
To mitigate this risk, you would develop a strategy for
reducing turnover.
Among the possible steps to be taken are:
i. Meet with current staff to determine causes for
turnover (e.g., poor working conditions, low pay, and
competitive job market).
ii. Mitigate those causes that are under your control
before the project starts.
iii. Once the project commences, assume turnover will
occur and develop techniques to ensure continuity when
people leave. Unit 3
Contd…
iv. Organize project teams so that information
about each development activity is widely
dispersed.
v. Define work product standards and establish
mechanisms to be sure that all models and
documents are developed in a timely manner.
vi. Conduct peer reviews of all work (so that more
than one person is “up to speed”).
vii. Assign a backup staff member for every critical
Unit 3
Risk Monitoring
The project manager monitors factors that may provide an
indication of whether the risk is becoming more or less likely.
In the case of high staff turnover, the general attitude of team
members based on project pressures, the degree to which the
team has jelled, inter-personal relationships among team
members, potential problems with compensation and benefits,
and the availability of jobs within the company and outside it are
all monitored.
In addition to monitoring these factors, a project manager should
monitor the effectiveness of risk mitigation steps.
The project manager should monitor work products carefully to
ensure that each can stand on its own and that each imparts
information that would be necessary if a newcomer were forced to
Risk Management
Risk management and contingency planning assumes that
mitigation efforts have failed and that the risk has become
a reality.
If the mitigation strategy has been followed, backup is
available, information is documented, and knowledge has
been dispersed across the team.
In addition, you can temporarily refocus resources (and
readjust the project schedule) to those functions that are
fully staffed, enabling newcomers who must be added to
the team to “get up to speed.” Those individuals who are
leaving are asked to stopUnitall
3 work and spend their last
Risk Due to Product Size
Unit 3
Risk Due to Business Impact
Attributes that affect risk:
• affect 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
• interoperability constraints
• sophistication of end users?
• amount and quality of product documentation that
must be produced and delivered to the customer?
• governmental constraints
• costs associated with late delivery?
• costs associated with a defective product?
Unit 3
Risks Due to the Customer
Unit 3
Risks Due to Process
Maturity
Questions that must be answered:
• Have you established a common process framework?
• Is it followed by project teams?
• Do you have management support for
software engineering
• Do you have a proactive approach to SQA?
• Do you conduct formal technical reviews?
• Are CASE tools used for analysis, design and
testing?
• Are the tools integrated with one another?
• Have document formats been established?
Unit 3
Technology Risks
Questions that must be answered:
• Is the technology new to your organization?
• Are new algorithms, I/O technology required?
• Is new or unproven hardware involved?
• Does the application interface with new software?
• Is a specialized user interface required?
• Is the application radically different?
• Are you using new software engineering methods?
• Are you using unconventional software development
methods, such as formal methods, AI-based approaches,
artificial neural networks?
• Are there significant performance constraints?
• Is there doubt the functionality requested is "do-able?"
Unit 3
RMMM Plan
A risk management strategy can be included in the
software project plan, or the risk management steps can be
organized into a separate risk mitigation, monitoring and
management plan (RMMM Plan)
This plan documents all work performed as part of risk
analysis and is used by the project manager as a part of
overall project plan.
Some software teams do not develop a formal RMMM
document , rather the risk is documented individually using
a risk information sheet (RIS).
Unit 3
Contd…
RIS includes:
1. Risk ID
2. Date
3. Probability
4. Impact
5. Description
6. Refinement
7. Mitigation / Monitoring
8. Management / contigency plan / trigger
9. Current status
Unit 3
RIS Sample
Unit 3