Software Project Management
Software Project Management
Software Project Management
Management
1
Organization of this
Lecture:
Introduction to Project Planning
Software Cost Estimation
Cost Estimation Models
Software Size Metrics
Empirical Estimation
Heuristic Estimation
COCOMO
Staffing Level Estimation
Effect of Schedule Compression on Cost
Summary
2
Introduction
Many software projects fail:
due to faulty project
management practices:
It is important to learn different
aspects of software project
management.
3
Introduction
Goal of software project
management:
enable a group of engineers to work
efficiently towards successful
completion of a software project.
4
Responsibility of project
managers
Project proposal writing,
Project cost estimation,
Scheduling,
Project staffing,
Project monitoring and control,
Software configuration management,
Risk management,
Managerial report writing and presentations, etc.
5
Introduction
A project manager’s activities
are varied.
can be broadly classified into:
project planning,
project monitoring and control
activities.
6
Project Planning
7
Project Planning Activities
Estimation:
Effort, cost, resource, and project duration
Project scheduling:
Staff organization:
staffing plans
Risk handling:
identification, analysis, and abatement
procedures
Miscellaneous plans:
quality assurance plan, configuration
management plan, etc.
8
Project planning
9
Sliding Window Planning
11
Organization of SPMP Document
Project Estimates (Historical Data,Estimation Techniques,Effort, Cost, and Project Duration Estimates)
Project Resources Plan (People,Hardware and Software,Special Resources)
Schedules (Work Breakdown Structure,Task Network, Gantt Chart Representation,PERT Chart
Representation)
12
Software Cost Estimation
13
Software Cost Estimation
Effort Cost
Estimation Estimation
Size Staffing
Estimation Estimation
Duration
Estimation Scheduling
14
Software Cost Estimation
15
Software Cost Estimation
Techniques
Empirical techniques:
an educated guess based on past experience.
Heuristic techniques:
assume that the characteristics to be
estimated can be expressed in terms of
some mathematical expression.
Analytical techniques:
derive the required results starting from
certain simple assumptions.
16
Software Size Metrics
17
Disadvantages of Using LOC
18
Disadvantages of Using LOC
(cont...)
20
Function Point Metric
Output:
A set of related outputs is counted as one output.
Inquiries:
Each user query type is counted.
Files:
Files are logically related data and thus can be data
structures or physical files.
Interface:
Data transfer to other systems.
21
Function Point Metric (CONT.)
22
Function Point Metric (CONT.)
Proponents claim:
FP is language independent.
Size can be easily derived from problem
description
Opponents claim:
it is subjective --- Different people can come
up with different estimates for the same
problem.
23
Empirical Size Estimation
Techniques
Expert Judgement:
An euphemism for guess made by
an expert.
Suffers from individual bias.
Delphi Estimation:
overcomes some of the problems of
expert judgement.
24
Expert judgement
25
Delphi Estimation:
26
Delphi Estimation:
Experts re-estimate.
Experts never meet each other
to discuss their viewpoints.
27
Heuristic Estimation Techniques
29
COCOMO Product classes
30
Elaboration of Product
classes
Organic:
Relatively small groups
working to develop well-understood applications.
Semidetached:
Project team consists of a mixture of
experienced and inexperienced staff.
Embedded:
The software is strongly coupled to complex
hardware, or real-time systems.
31
COCOMO Model (CONT.)
32
COCOMO Model (CONT.)
33
Basic COCOMO Model (CONT.)
h ed
ac
Effort is Effort
m
id
e t
Se
somewhat be
d ded
super-linear in Em
Or
gan
ic
problem size.
Size
37
Basic COCOMO Model (CONT.)
Development time
sublinear function of
product size. Dev. Time
When product size d ed ched
be d ide ta
increases two times, 18 Months Em Sem
development time does
14 Months
not double. g ani c
Or
Time taken:
almost same for all the 30K 60K
three product categories. Size
38
Basic COCOMO Model (CONT.)
39
Basic COCOMO Model (CONT.)
40
Example
The size of an organic software product has
been estimated to be 32,000 lines of source
code.
Effort = 2.4*(32)1.05 = 91 PM
Nominal development time = 2.5*(91)0.38 = 14
months
41
Intermediate COCOMO
42
Intermediate COCOMO
45
Intermediate COCOMO
(CONT.)
46
Shortcoming of basic and
intermediate COCOMO models
Both models:
consider a software product as a single
homogeneous entity:
However, most large systems are made up of
several smaller sub-systems.
Some sub-systems may be considered as organic
type, some may be considered embedded, etc.
for some the reliability requirements may be high,
and so on.
47
Complete COCOMO
48
Complete COCOMO
Example
A Management Information System (MIS) for an
organization having offices at several places
across the country:
Database part (semi-detached)
Graphical User Interface (GUI) part (organic)
Communication part (embedded)
Costs of the components are estimated
separately:
summed up to give the overall cost of the system.
49
Halstead's Software
Science
An analytical technique to
estimate:
size,
development effort,
development time.
50
Halstead's Software
Science
Halstead used a few primitive program
parameters
number of operators and operands
Derived expressions for:
over all program length,
potential minimum volume
actual volume,
language level,
effort, and
development time.
51
Staffing Level Estimation
52
Rayleigh Curve
54
Putnam’s Work (CONT.) :
55
Putnam’s Work (CONT.) :
56
Rayleigh Curve
57
Rayleigh Curve
59
Effect of Schedule Change
on Cost
Using the Putnam's expression for L,
K=L3/Ck3td4
Or, K=C1/td4
For the same product size, C1=L3/Ck3
is a constant.
Or, K1/K2 = td24/td14
60
Effect of Schedule Change on
Cost (CONT.)
Observe:
a relatively small compression in delivery
schedule
can result in substantial penalty on human
effort.
Also, observe:
benefits can be gained by using fewer
people over a somewhat longer time span.
61
Example
62
Effect of Schedule Change on
Cost (CONT.)
63
Effect of Schedule Change on
Cost (CONT.)
Boehm observed:
“There is a limit beyond which the
schedule of a software project cannot
be reduced by buying any more
personnel or equipment.”
This limit occurs roughly at 75% of the
nominal time estimate.
64
Effect of Schedule Change
on Cost (CONT.)
65
Jensen Model
Jensen model is very similar to
Putnam model.
attempts to soften the effect of
schedule compression on effort
makes it applicable to smaller and
medium sized projects.
66
Jensen Model
Jensen proposed the equation:
L=CtetdK1/2
Where,
Cte is the effective technology constant,
td is the time to develop the software, and
K is the effort needed to develop the
software.
67
Organization Structure
Functional Organization:
Engineers are organized into functional
groups, e.g.
specification, design, coding, testing,
maintenance, etc.
Engineers from functional groups get
assigned to different projects
68
Advantages of Functional
Organization
Specialization
Ease of staffing
Good documentation is produced
different phases are carried out by
different teams of engineers.
Helps identify errors earlier.
69
Project Organization
70
Team Structure
71
Democratic Teams
Suitable for:
small projects requiring less than five or six
engineers
research-oriented projects
A manager provides administrative
leadership:
at different times different members of the
group provide technical leadership.
72
Democratic Teams
73
Democratic Teams
Disadvantage:
team members may waste a
lot time arguing about trivial
points:
absence of any authority in the
team.
74
Chief Programmer Team
75
Chief Programmer Team
76
Chief Programmer Team
77
Mixed Control Team
Organization
Draws upon ideas from both:
democratic organization and
chief-programmer team organization.
Communication is limited
to a small group that is most likely to benefit
from it.
Suitable for large organizations.
78
Team Organization
Democratic Team
Chief Programmer team
79
Mixed team organization
80
Project scheduling
Project-task scheduling is an important project planning activity.
81
1. Identify all the tasks needed to complete the project.
2. Break down large tasks into small activities.
3. Determine the dependency among different activities.
4. Establish the most likely estimates for the time durations necessary to
complete the activities.
5. Allocate resources to activities.
6. Plan the starting and ending dates for various activities.
7. Determine the critical path. A critical path is the chain of activities
82
that
Work breakdown structure
85
86
Critical Path Method (CPM)
87
The earliest finish time (EF) of a task is the sum of the earliest start time
of the task and the duration of the task.
The latest finish (LF) time of a task can be obtained by subtracting
maximum of all paths from this task to finish from MT.
The slack time (ST) is LS – EF and equivalently can be written as LF –
EF. The slack time (or float time) is the total time that a task may be
delayed before it will affect the end time of the project.
The slack time indicates the “flexibility” in starting and completion of
tasks. 88
Gantt chart
Gantt charts are mainly used to allocate resources to activities. The
resources allocated to activities include staff, hardware, and software.
A Gantt chart is a special type of bar chart where each bar represents an
activity. The bars are drawn along a time line. The length of each bar is
proportional to the duration of time planned for the corresponding
activity.
In the Gantt charts each bar consists of a white part and a shaded part.
The shaded part of the bar shows the length of time each task is
estimated to take. The white part shows the slack time,89that is, the latest
90
PERT chart (Project
Evaluation and Review
Technique)
93
Summary
To estimate software cost:
Determine size of the product.
Using size estimate,
determine effort needed.
From the effort estimate,
determine project duration, and cost.
94
Summary (CONT.)
Cost estimation techniques:
Empirical Techniques
Heuristic Techniques
Analytical Techniques
Empirical techniques:
based on systematic guesses by experts.
Expert Judgement
Delphi Estimation
95
Summary (CONT.)
Heuristic techniques:
assume that characteristics of a software
product can be modeled by a mathematical
expression.
COCOMO
Analytical techniques:
derive the estimates starting with some basic
assumptions:
Halstead's Software Science
96
Summary (CONT.)
The staffing level during the life cycle of a
software product development:
follows Rayleigh curve
maximum number of engineers required
during testing.
97
Summary (CONT.)
98
Summary (CONT.)
99