Unit 3 Managing SoftwareProjects

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 46

UNIT-3

Managing Software Projects

Prepared By
Prof. Mital Sarvaiya
Computer Engineering
BHGCET - Rajkot
Topics:

 Software Metrics(Process, Product and Project metrics)


 Software Project Estimations
 Software Project Planning(MS Project Tool)
 Project Scheduling & Tracking
 Risk Analysis & Management(Risk Identification, Risk
Projection, Risk Refinement, Risk Mitigation)
Process Metrics

• Process Metrics are an invaluable tool for companies to


monitor, evaluate and improve their operational
performance across the enterprise
• They are used for making strategic decisions
• 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
Project Metrics

• Project metrics enable a software project manager to,


– Assess the status of an ongoing project
– Track potential risks
– Uncover problem areas before their status becomes critical
– Adjust work flow or tasks
– Evaluate the project team’s ability to control quality of software work products
• Many of the same metrics are used in both the process and project domain
• Project metrics are used for making tactical (smart) decisions
• They are used to adapt project workflow and technical activities
• Project metrics are used to
• Minimize the development schedule by making the adjustments necessary to
avoid delays and mitigate (to reduce) potential (probable) problems and risks
• Assess (evaluates) product quality on an ongoing basis and guides to modify
the technical approach to improve quality
Product Metrics
• Product metrics help software engineers to gain insight into the design
and construction of the software they build
– By focusing on specific, measurable attributes of software
engineering work products
• Product metrics provide a basis from which analysis, design, coding and
testing can be conducted more objectively and assessed more
quantitatively
– Ex., Code Complexity Metric
Software Project Estimations

• It can be transformed from a black art to a series of systematic steps


that provide estimates with acceptable risk
• To achieve reliable cost and effort estimates, a number of options arise:
• Delay estimation until late in the project (obviously, we can achieve 100
percent accurate estimates after the project is complete!)
• Base estimates on similar projects that have already been completed
• Use relatively simple decomposition techniques to generate project cost
and effort estimates
• Use one or more empirical models for software cost and effort estimation.
Software Project Estimations continue…

• Software project estimation is a form of problem solving and in most


cases, the problem to be solved is too complex to be considered in one
piece
• For this reason, decomposing the problem, re-characterizing it as a set of
smaller problems is required
• Before an estimate can be made, the project planner must understand
the scope of the software to be built and must generate an estimate of its
“size”
Software Project Estimations continue…

1. Software Sizing
2. Problem based Estimation LOC (Lines of Code) based, FP (Function Point)
based
3. Process based Estimation
4. Estimation with Use-cases
Software Project Estimations continue…

1) Software Sizing:
• “Fuzzy logic” sizing
– This approach uses the approximate reasoning techniques that are
the cornerstone of fuzzy logic.
• Function Point sizing
– The planner develops estimates of the information domain
characteristics
• Standard Component sizing
– Estimate the number of occurrences of each standard component
– Use historical project data to determine the delivered LOC size per
standard component.
Software Project Estimations continue…

• Change sizing
– Used when changes are being made to existing software
– Estimate the number and type of modifications that must be
accomplished
– An effort ratio is then used to estimate each type of change and the
size of the change
Software Project Estimations continue…

2) Problem based Estimation LOC (Lines of Code) based, FP (Function


Point) based:
• Start with a bounded statement of scope
• Decompose the software into problem functions that can each be
estimated individually
• Compute an LOC or FP value for each function
• Derive cost or effort estimates by applying the LOC or FP values to your
baseline productivity metrics
– Ex., LOC/person-month or FP/person-month
• Combine function estimates to produce an overall estimate for the entire
project
• In general, the LOC/pm and FP/pm metrics should be computed by
project domain
– Important factors are team size, application area and complexity
Software Project Estimations continue…

3) Process based Estimation:


Process-based estimation is obtained from “process framework”
Software Project Estimations continue…

• This is one of the most commonly used technique


• Identify the set of functions that the software needs to perform as
obtained from the project scope
• Identify the series of framework activities that need to be performed for
each function
• Estimate the effort (in person months) that will be required to
accomplish each software process activity for each function
• Apply average labor rates (i.e., cost/unit effort) to the effort estimated
for each process activity
• Compute the total cost and effort for each function and each framework
activity.
Software Project Estimations continue…

• Compare the resulting values to those obtained by way of the LOC and
FP estimates
• If both sets of estimates agree, then your numbers are highly reliable
• Otherwise, conduct further investigation and analysis concerning the
function and activity breakdown
Software Project Estimations continue…

4) Estimation with Use-cases:


Developing an estimation approach with use cases is problematic for the
following reasons:
• Use cases are described using many different formats and styles—there
is no standard form.
• Use cases represent an external view (the user’s view) of the software
and can therefore be written at many different levels of abstraction
• Use cases do not address the complexity of the functions and features
that are described
• Use cases can describe complex behavior (Ex., interactions) that involve
many functions and features
• Although a number of investigators have considered use cases as an
estimation input.
Software Project Estimations continue…

• Before use cases can be used for estimation,


– the level within the structural hierarchy is established,
– the average length (in pages) of each use case is determined,
– the type of software (e.g., real-time, business, engineering/scientific,
WebApp, embedded) is defined, and
– a rough architecture for the system is considered
• Once these characteristics are established,
– empirical data may be used to establish the estimated number of LOC
or FP per use case (for each level of the hierarchy).
• Historical data are then used to compute the effort required to develop the
system.
Software Project Planning(MS Project Tool)

Software Project Planning:


Project Management is the application of knowledge, skills, tools, and
techniques to project activities to meet the project requirements. 
Project Management Process consists of the following 4 stages: 
• Feasibility study
• Project Planning
• Project Execution
• Project Termination
Software Project Planning(MS Project Tool) continue…

Feasibility Study: 
Feasibility study explores system requirements to determine project feasibility.
There are several fields of a feasibility study including economic feasibility,
operational feasibility, technical feasibility. The goal is to determine whether
the system can be implemented or not. The process of feasibility study takes
as input the required details as specified by the user and other domain-specific
details. The output of this process simply tells whether the project should be
undertaken or not and if yes, what would the constraints be. Additionally, all
the risks and their potential effects on the projects are also evaluated before a
decision to start the project is taken. 
Software Project Planning(MS Project Tool) continue…

Project Planning: 
A detailed plan stating a stepwise strategy to achieve the listed objectives is an
integral part of any project. Planning consists of the following activities: 
• Set objectives or goals
• Develop strategies
• Develop project policies
• Determine courses of action
• Making planning decisions
• Set procedures and rules for the project
• Develop a software project plan
Software Project Planning(MS Project Tool) continue…

• Prepare budget
• Conduct risk management
• Document software project plans
• This step also involves the construction of a work breakdown structure(WBS). It
also includes size, effort, schedule, and cost estimation using various techniques. 

Project Execution: 
A project is executed by choosing an appropriate software development lifecycle
model(SDLC). It includes a number of steps including requirements analysis,
design, coding, testing and implementation, testing, delivery, and maintenance.
There are a number of factors that need to be considered while doing so including
the size of the system, the nature of the project, time and budget constraints, domain
requirements, etc. An inappropriate SDLC can lead to the failure of the project. 
Software Project Planning(MS Project Tool) continue…

Project Termination: 
There can be several reasons for the termination of a project. Though
expecting a project to terminate after successful completion is conventional,
but at times, a project may also terminate without completion. Projects have to
be closed down when the requirements are not fulfilled according to given
time and cost constraints. Some of the reasons for failure include: 
• Fast-changing technology
• Project running out of time
• Organizational politics
• Too much change in customer requirements
• Project exceeding budget or funds
• Once the project is terminated, a post-performance analysis is done. Also, a
final report is published describing the experiences, lessons learned,
recommendations for handling future projects.
Software Project Planning(MS Project Tool) continue…

Project Management Software's(MS Project TOOL)


With the introduction of computer technology, there have been a number of
software tools specifically developed for project management purpose. MS
Project is one such tool that has won the hearts of project managers all over the
world.

MS Project can be used as a standalone tool for tracking project progress or it


can be used for tracking complex projects distributed in many geographical
areas and managed by a number of project managers.

There are many other software packages for project management in addition to
MS Project. Most of these new additions are online portals for project
management activities where the project members have access to project details
and progress from anywhere.
Project Scheduling & Tracking

It is an action that distributes estimated effort across the planned project


duration, by allocating the effort to specific software engineering tasks
Scheduling Principles
• Compartmentalization
• Interdependency
• Time Allocation
• Define Responsibilities
• Define Outcomes
• Define Milestones
• Effort Validation
Project Scheduling & Tracking continue…

• Compartmentalization
– The product and process must be decomposed into a manageable
number of activities and tasks
• Interdependency
– Tasks that can be completed in parallel must be separated from those
that must completed serially
• Time Allocation
– Every task has start and completion dates that take the task
interdependencies into account
Project Scheduling & Tracking continue…

• Effort Validation
– Project manager must ensure that on any given day there are enough
staff members assigned to complete the tasks within the time
estimated in the project plan
• Define Responsibilities
– Every scheduled task needs to be assigned to a specific team member
• Define Outcomes
– Every task in the schedule needs to have a defined outcome (usually
a work product or deliverable)
• Defined Milestones
– A milestone is accomplished when one or more work products from
an engg task have passed quality review
Project Scheduling & Tracking continue…

Effort Distribution
• General guideline: 40-20-40 rule
– 40% or more of all effort allocated to analysis and design tasks
– 20% of effort allocated to programming
– 40% of effort allocated to testing
• Characteristics of each project dictate the distribution of effort
Project Scheduling & Tracking continue…

• Although most software organizations encounter the following projects


types:
– Concept Development
• initiated to explore new business concept or new application of
technology
– New Application Development
• new product requested by customer
– Application Enhancement
• major modifications to function, performance or interfaces
(observable to user)
– Application Maintenance
• correcting, adapting or extending existing software (not
immediately obvious to user).
– Reengineering
• rebuilding all (or part) of a existing (legacy) system
Project Scheduling & Tracking continue…

• Two project scheduling methods that can be applied to software


development.
– Program Evaluation and Review Technique (PERT)
– Critical Path Method (CPM)
• Both techniques are driven by information already developed in earlier
project planning activities:
– estimates of effort
– a decomposition of the product function
– the selection of the appropriate process model and task set
– decomposition of the tasks that are selected
Project Scheduling & Tracking continue…

• Both PERT and CPM provide quantitative tools that allow you to:
– Determine the critical path—the chain of tasks that determines the
duration of the project
– Establish “most likely” time estimates for individual tasks by
applying statistical models
– Calculate “boundary times” that define a “time window” for a
particular task
Project Scheduling & Tracking continue…

• The project schedule provides a road map for a software project manager.
• It defines the tasks and milestones.
• Several ways to track a project schedule:
– Conducting periodic project status meeting
– Evaluating the review results in the software process
– Determine if formal project milestones have been accomplished
– Compare actual start date to planned start date for each task
– Informal meeting with practitioners
– Using earned value analysis to assess progress quantitatively
• Project manager takes the control of the schedule in the aspects of
– Project Staffing, Project Problems, Project Resources, Reviews, Project
Budget
Project Scheduling & Tracking continue…

• A Gantt chart, commonly used in project management, is one of the


most popular and useful ways of showing activities (tasks or events)
displayed against time.
• On the left of the chart is a list of the activities and along the top is a
suitable time scale.
• Each activity is represented by a bar; the position and length of the bar
reflects the start date, duration and end date of the activity. This allows
you to see at a glance:
– What the various activities are
– When each activity begins and ends
– How long each activity is scheduled to last
– Where activities overlap with other activities, and by how much
– The start and end date of the whole project
Risk Analysis & Management(Risk Identification, Risk
Projection, Risk Refinement, Risk Mitigation)

A risk is a potential (probable) problem – which might happen and might


not here the 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
1) Uncertainty
The risk may or may not happen, so there are no 100% risks (some of
those may called constraints)
2) Loss
If the risk becomes a reality and unwanted consequences or losses
occur
Risk Analysis & Management(Risk Identification, Risk Projection, Risk
Refinement, Risk Mitigation) continue…

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 feasibility of the software to be built
– If they become real, they threaten the project or the product
Risk Analysis & Management(Risk Identification, Risk Projection, Risk
Refinement, Risk Mitigation) continue…

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 Analysis & Management(Risk Identification, Risk Projection, Risk
Refinement, Risk Mitigation) continue…

Risk Categorization: Approach-2


• Known risks
– Those risks that can be uncovered after careful evaluation of
o the project plan, the business and technical environment in which
the project is being developed, and other reliable information
sources (Ex. unrealistic delivery date)
• Predictable risks
– Those risks that are deduced (draw conclusion) from past project
experience (Ex. past turnover)
• Unpredictable risks
– Those risks that can and do occur, but are extremely difficult to
identify in advance
Risk Analysis & Management(Risk Identification, Risk Projection, Risk
Refinement, Risk Mitigation) continue…

Risk Strategies (Reactive vs. Proactive)


1) Reactive risk strategies
• "Don't worry, I will 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
2) Proactive risk strategies
• Steps for risk management are followed
• Primary objective is to avoid risk and to have an emergency plan in place
to handle unavoidable risks in a controlled and effective manner
Risk Analysis & Management(Risk Identification, Risk Projection, Risk
Refinement, Risk Mitigation) continue…

Steps for Risk Management


1. Identify possible risks and 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
Risk Analysis & Management(Risk Identification, Risk Projection, Risk
Refinement, Risk Mitigation) continue…

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
– 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 clear understanding of the
technology, the people and the environment, that is specific to the
software that is to be built
Risk Analysis & Management(Risk Identification, Risk Projection, Risk
Refinement, Risk Mitigation) continue…

Known and Predictable Risk Categories


• One method for identifying risks is to create a risk item checklist
• The checklist can be used for risk identification which focuses on some
subset of known and predictable risks in the following generic
subcategories:
– Product Size: risks associated with overall size of the software to be
built
– Business Impact: risks associated with constraints imposed by
management or the marketplace
– Customer Characteristics: risks associated with sophistication of the
customer and the developer's ability to communicate with the customer
in a timely manner
Risk Analysis & Management(Risk Identification, Risk Projection, Risk
Refinement, Risk Mitigation) continue…

– Process Definition: risks associated with the degree to which the


software process has been defined and is followed
– Development Environment: risks associated with availability and
quality of the tools to be used to build the project
– Technology to be Built: risks associated with complexity of the
system to be built and the “newness” of the technology in the system
– Staff Size and Experience: risks associated with overall technical and
project experience of the software engineers who will do the work
Risk Analysis & Management(Risk Identification, Risk Projection, Risk
Refinement, Risk Mitigation) continue…

Risk Estimation (Projection)


• Risk projection (or estimation) attempts to rate each risk in two ways
– The probability that the risk is real
– The consequence (effect) of the problems associated with the risk
• Risk Projection/Estimation Steps
– Establish a scale that reflects the perceived likelihood (probability)
of a risk. Ex., 1-low, 10-high
– Explain the consequences of the risk
– Estimate the impact of the risk on the project and product.
– Note the overall accuracy of the risk projection so that there will be
no misunderstandings
Risk Analysis & Management(Risk Identification, Risk Projection, Risk
Refinement, Risk Mitigation) continue…

RMMM
• Risk Mitigation, Monitoring, and Management (RMMM)
• An effective strategy for dealing with risk must consider three issues
– Risk mitigation (i.e., avoidance)
– Risk monitoring
– Risk management and contingency planning
RMMM
• Risk Mitigation is a problem avoidance activity
• Risk Monitoring is a project tracking activity
• Risk Management includes contingency plans that risk will occur
Risk Analysis & Management(Risk Identification, Risk Projection, Risk
Refinement, Risk Mitigation) continue…

Risk Mitigation
• Risk mitigation (avoidance) is the primary strategy and is achieved
through a plan
• For Ex., Risk of high staff turnover
• To mitigate this risk, you would develop a strategy for reducing turnover.
• The possible steps to be taken are:
– Meet with current staff to determine causes for turnover (e.g., poor
working conditions, low pay, and competitive job market)
– Mitigate those causes that are under your control before the project
starts
– Once the project commences, assume turnover will occur and
develop techniques to ensure continuity when people leave
Risk Analysis & Management(Risk Identification, Risk Projection, Risk
Refinement, Risk Mitigation) continue…

– Organize project teams so that information about each development


activity is widely dispersed
– Define work product standards and establish mechanisms to be sure
that all models and 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
Cocomo Model

• https://www.youtube.com/watch?v=r2qkxbCSsvE
Thank You(^_^)

You might also like