6.SPM Cse320
6.SPM Cse320
6.SPM Cse320
Project planning
• Once a project is found to be feasible,
software project managers undertake project
planning.
• Project planning is undertaken and completed
even before any development activity starts.
Essential activities in Project Planning:
1) Estimating the following attributes of the project:
• Project size: What will be problem complexity in terms of
the effort and time required to develop the product?
• Cost: How much is it going to cost to develop the project?
• Duration: How long is it going to take to complete
development?
• Effort: How much effort would be required?
The effectiveness of the subsequent planning activities is
based on the accuracy of these estimations.
2) Scheduling manpower and other resources
3) Staff organization and staffing plans
4) Risk identification, analysis, and abatement
planning
5) Miscellaneous plans such as quality assurance
plan, configuration management plan, etc.
Precedence ordering among project
planning activities
Problem in Project Planning
• Commitment to unrealistic time and resource
estimates result in schedule slippage.
• Schedule delays can cause customer dissatisfaction
and adversely affect team morale.
• However, project planning is a very challenging
activity. Especially for large projects, it is very much
difficult to make accurate plans.
• A part of this difficulty is due to the fact that the
proper parameters, scope of the project, project staff,
etc. may change during the span of the project.
Solution: Sliding Window Planning
• Planning a project over a number of stages protects
managers from making big commitments too early.
• This technique of staggered planning is known as
Sliding Window Planning.
• Starting with an initial plan, the project is planned
more accurately in successive development stages.
• After the completion of every phase, the project
managers can plan each subsequent phase more
accurately and with increasing levels of confidence.
Responsibilities of a software project
manager
• Overall responsibility of steering a project to success.
• The job responsibility of a project manager ranges from invisible
activities like building up team morale to highly visible customer
presentations.
• Activities can be broadly classified into project planning, and
project monitoring and control activities.
• It includes:
project proposal writing, project cost estimation, scheduling,
project staffing, software process tailoring, project monitoring
and control, software configuration management, risk
management, interfacing with clients, managerial report writing
and presentations, etc.
Skills necessary for software project
management
Theoretical knowledge of different project
management techniques like cost estimation,
risk management, configuration management
Good qualitative judgment and decision taking
capabilities.
Good communication skills and the ability get
work done.
Software Project Management Plan (SPMP)
1. Introduction
(a) Objectives
(b) Major Functions
(c) Performance Issues
(d) Management and Technical Constraints
2. Project Estimates
(a) Historical Data Used
(b) Estimation Techniques Used
(c) Effort, Resource, Cost, and Project Duration Estimates
3. Schedule
(a) Work Breakdown Structure
(b) Task Network Representation
(c) Gantt Chart Representation
(d) PERT Chart Representation
Software Project Management Plan (SPMP)
4. Project Resources
(a) People
(b) Hardware and Software
(c) Special Resources
5. Staff Organization
(a) Team Structure
(b) Management Reporting
6. Risk Management Plan
(a) Risk Analysis
(b) Risk Identification
(c) Risk Estimation
(d) Risk Abatement Procedures
7. Project Tracking and Control Plan
8. Miscellaneous Plans
(a) Process Tailoring
(b) Quality Assurance Plan
Project Estimation techniques
• Empirical estimation techniques
• Heuristic techniques
• Analytical estimation techniques
Empirical Estimation Techniques
• Based on making an educated guess of the project
parameters.
• Prior experience with development of similar
products is helpful.
• Although empirical estimation techniques are based
on common sense, different activities involved in
estimation have been formalized over the years.
Two popular empirical estimation techniques are: 1)
Expert judgment technique
2) Delphi cost estimation
Expert Judgment Technique
• An expert makes an educated guess of the problem size
after analyzing the problem thoroughly.
• Estimates the cost of the different components (i.e.
modules or subsystems) of the system and then combines
them to arrive at the overall estimate.
• However, this technique is subject to human errors and
individual bias.
• For example, he may be conversant with the database and
user interface parts but may not be very knowledgeable
about the computer communication part.
• A more refined form of expert judgment is the estimation
made by group of experts.
Delphi cost estimation
• It overcomes some of the shortcomings of the
expert judgment approach.
• Delphi estimation is carried out by a team
comprising of a group of experts and a
coordinator.
• No discussion among the estimators is allowed
during the entire estimation process.
Delphi cost estimation
• The coordinator provides each estimator with a copy
of the SRS document and a form for recording his cost
estimate.
• Estimators complete their individual estimates
anonymously and submit to the coordinator.
• The coordinator prepares and distributes the
summary of the responses of all the estimators, and
includes any unusual rationale noted by any of the
estimators.
• Based on this summary, the estimators re-estimate.
• This process is iterated for several rounds.
Heuristic Techniques
• It assumes that the relationships among the
different project parameters can be modelled using
suitable mathematical expressions.
• Once the basic (independent) parameters are
known, the other (dependent) parameters can be
easily determined by substituting the value of the
basic parameters in the mathematical expression.
• Two classes:
1) single variable model and
2) multi variable model
Single variable estimation models
• It provides a means to estimate the desired
characteristics of a problem, using some previously
estimated basic (independent) characteristic of the
software product such as its size.
Estimated Parameter =
• e is the characteristic of the software which has
already been estimated (independent variable)
• c1 and d1 are constants determined using data
collected from past projects (historical data).
Multivariable cost estimation model