Software Project Management
Software Project Management
Management
1
Introduction
Many software projects fail:
due to faulty project
management practices:
It is important to learn different
aspects of software project
management.
2
Introduction
Goal of software project
management:
enable a group of engineers to work
efficiently towards successful
completion of a software project.
3
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.
4
Question
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
Question
13
Software Cost Estimation
14
Software Cost Estimation
Effort Cost
Estimation Estimation
Size Staffing
Estimation Estimation
Duration
Estimation Scheduling
15
Software Size Metrics
16
Disadvantages of Using LOC
17
Disadvantages of Using LOC
(cont...)
20
Question
21
Function point (FP) metric
computation
22
Step 1: UFP computation
23
Step 2: Refine parameters
The complexity of each parameter is graded into three
broad categories—simple, average, or complex.
24
Step 3: Refine UFP based on complexity of the
overall project
25
list of these Parameters
26
Question
27
Example
Determine the function point measure of the size of the following supermarket
software. A supermarket needs to develop the following software to
encourage regular customers. For this, the customer needs to supply his/her
residence address, telephone number, and the driving license number. Each
customer who registers for this scheme is assigned a unique customer number
(CN) by the computer. Based on the generated CN, a clerk manually prepares
a customer identity card after getting the market manager’s signature on it. A
customer can present his customer identity card to the check out staff when
he makes any purchase. In this case, the value of his purchase is credited
against his CN. At the end of each year, the supermarket intends to award
surprise gifts to 10 customers who make the highest total purchase over the
year. Also, it intends to award a 22 caret gold coin to every customer whose
purchase exceeded Rs. 10,000. The entries against the CN are reset on the
last day of every year after the prize winners’ lists are generated. Assume that
various project characteristics determining the complexity of software
development to be average.
28
Software Project Planning
Example: 4.1
Consider a project with the following functional units:
Number of user inputs = 50
Number of user outputs = 40
Number of user enquiries = 35
Number of user files = 06
Number of external interfaces = 04
Assume all complexity adjustment factors and weighting factors are
average. Compute the function points for the project.
29
Function Point Metric (CONT.)
30
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.
31
Project Estimation
Technique
32
Project Estimation Technique
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.
33
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.
34
Expert judgement
35
Delphi Estimation:
36
Delphi Estimation:
Experts re-estimate.
Experts never meet each other
to discuss their viewpoints.
37
Heuristic Estimation Techniques
39
COCOMO Product classes
40
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.
41
COCOMO Model (CONT.)
42
COCOMO Model (CONT.)
43
Basic COCOMO Model (CONT.)
h ed
t ac
Effort is Effort m ide
Se
somewhat d ded
m be ic
super-linear in E
Or ga
n
problem size.
Size
47
Basic COCOMO Model (CONT.)
Development time
sublinear function of
product size. Dev. Time
When product size de
d
ta c he d
b ed mide
increases two times, 18 Months Em Se
development time does
14 Months
not double. n ic
rga
O
Time taken:
almost same for all the 30K 60K
three product categories. Size
48
Basic COCOMO Model (CONT.)
49
Basic COCOMO Model (CONT.)
50
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
51
Intermediate COCOMO
52
Intermediate COCOMO
55
Intermediate COCOMO
(CONT.)
56
Intermediate COCOMO (CONT.)
57
Intermediate COCOMO (CONT.)
60
61
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.
62
Complete COCOMO
63
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.
64
Question
The size of software product has been estimated
to be 82,000 lines of source code and effort
adjustment factor is 2.41
Calculate Efforts?
65
Staffing Level Estimation
66
Rayleigh Curve
Effort
parameters:
td the time at
which the curve
reaches its
maximum td
K the total area Time
under the curve.
L=f(K, td)
67
Norden represented the Rayleigh curve by the following
equation:
68
Putnam’s Work:
69
Putnam’s Work (CONT.) :
70
Putnam’s Work (CONT.) :
71
Rayleigh Curve
72
Rayleigh Curve
74
Effect of Schedule Change
on Cost
Using the Putnam's expression for L,
K=L3/(Ck3 * td4)
Or, K=C/td4
For the same product size, C=L3/Ck3 is
a constant.
Or, K1/K2 = td24/td14
75
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.
76
Example
77
Example
78
Effect of Schedule Change on
Cost (CONT.)
79
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.
80
Effect of Schedule Change
on Cost (CONT.)
81
Example
82
Project scheduling
It involves deciding which tasks would be taken up
when. Activities undertaken:
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 that determines the duration of the project.
Work breakdown structure
Work Breakdown Structure (WBS) is used to
decompose a given task set recursively into small
activities.
The root of the tree is labelled by the problem
name.
Each node of the tree is broken down into smaller
activities that are made the children of the node.
Each activity is recursively decomposed into
smaller sub-activities until at the leaf level, the
activities requires approximately two weeks to
develop.
Work breakdown structure of
MIS problem
Activity networks and critical
path method
WBS representation of a project is
transformed into an activity network by
representing activities identified in WBS
along with their interdependencies.
An activity network shows the different
activities making up a project, their
estimated durations, and
interdependencies.
Activity network representation
of the MIS problem
87
Activity network
representation of the MIS
problem
Example
89
Critical Path Method (CPM)
The minimum time (MT) to complete the project is the
maximum of all paths from start to finish.
The earliest start (ES) time of a task is the maximum of all
paths from the start to the task.
The latest start time is the difference between MT and the
maximum of all paths from this task to the finish.
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.
Slack Time
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.
A critical task is one with a zero slack time.
A path from the start node to the finish node
containing only critical tasks is called a
critical path.
Parameters for different tasks
of MIS Problem
Question
93
CPM graph Example
Activity Predecessor Duration (in months)
A - 5
B A 4
C A 5
D B 6
E C 3
F D,E 4
94
CPM graph
B D
A F Finish
Start
C E
95
Critical Path Calculation
MT
ES
(D)
EF ES : Earliest start time
MT(D): Maximum Time/Duration
Activity
EF : Earliest Finish Time
LS: Latest Start Time
LS SL LF
SL: Slack Time
LF: Latest Finish Time
Activity : Critical activity of the
project.
Formulae:
EF = ES + D
SL = LF – EF
LS = LF – MT (D)
ES = Predecessor’s EF
96
LF = successor’s LS
0 5 5
A 5 4 9
5 5 10
B
C
9 6 15
10 3 13
D 15 4 19
E
F
97
SL = LF – EF
LS = LF – D
Start calculation from the finish (last) activity =
F
15 4 19 10 3 13 9 6 15
F E D
15 0 19 12 2 15 9 0 15
0 5 5
5 5 10 5 4 9
A
C B
0 0 5
7 2 12 5 0 9
98
Critical Paths
From the given example, we have 2 paths:
B D
A F Finish
Start
C E
A->B->D->F
A->C->E->F
99
Critical Paths contd
0 5 5 5 4 9 9 6 15 15 4 19
A B D F
0 0 5 5 0 9 9 0 15 15 0 19
100
CPM Table:
Activity ES MT (D) EF LS SL LF
A 0 5 5 0 0 5
B 5 4 9 5 0 9
C 5 5 10 7 2 12
D 9 6 15 9 0 15
E 10 3 13 12 2 15
F 15 4 19 15 0 19
101
Gantt chart
Used to allocate resources to activities
(resource planning).
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.
Gantt chart for MIS
problem
PERT chart