Software Project Management
Software Project Management
Management
1
Contents
2
Introduction
Many software projects fail:
due to faulty project
management practices:
It is important to learn different
aspects of software project
management.
3
Cont..
Goal of software project
management:
enable a group of engineers to work
efficiently towards successful
completion of a software project.
4
Cont..
The right mix of planning, monitoring, and
controlling can make the difference in
completing a project …
on time, on budget, and with high quality
results.
These guidelines will help you plan the
work and work the plan.
5
Project Management –
The Problem
6
Project Management -
Definitions
“Project management consists of managing the production
of a product within given time and funding limits. Since
this requires human resources, project management
involves not only technical and organizational skills, but
also the art of managing people.”
7
Project Management –
Overview
What is it?
Planning, monitoring and control of
People
Process
Events
Who does it?
Everyone, to some extent, e.g.:
A software engineer manages his/her daily
activities: planning, monitoring and controlling
technical tasks
A project manager plans, monitors and controls
the activities of a team of software engineers.
A senior manager coordinates the interactions
between business and software professionals
8
Cont…
Why is it important?
As we saw earlier, many projects fail
Software development is a complex task
particularly if it involves many people and survives a long time
“ there are no technical failures; only management failures”
What are the steps?
Understand the four P’s:
People – must be organized to work effectively.
Product – must have effective communication with the customer to specify
scope and requirements.
Process – must be appropriate for people and product .
Project – must estimate effort and time needed, define work products,
establish quality checkpoints, establish methods to monitor and control
work defined by plan.
Main focus on people and project
9
The People
A 1988 IEEE study asked the engineering of major
technology companies what was most important
to the success of a project. Some quotes:
“I guess if you had to pick one thing out that is most
important in our environment, it’s not the tools we use,
it’s the people.”
“The only rule I have in management is to ensure that I
have good people – real good people – and that I
produce good people – and that I provide an
environment in which good people can produce.”
Managers say that people are primary, but
unfortunately they often do not act with this
principle.
10
The People
People working on software projects play various roles,
which can be organized into five basic types:
Senior managers
Define business issues that often have great impact on
project
Project managers
Plan, motivate, organize and control the people who do
technical aspects of work
Practitioners
Deliver necessary technical skills to engineer
Customers & Stakeholders
Specify requirements and scope for software
End-Users
Interact with software product once it is released
To be effective, the Team Leader must organize the
project team so as to maximize each person’s skills and
abilities.
11
The Team Leader
Project management is a people-oriented
activity
model of leadership
Motivation
Ability to encourage technical people to work to the best
of their abilities
Organization
Ability to adapt existing processes, or develop new ones,
to enable the concept to be turned into a product
Ideas/Innovation
Ability to encourage people to create, and to feel
creative, within the bounds of the particular product
12
The Team Leader
Another view of what makes a good team leader:
Problem solving
Decide which technical and organizational issues are most
important
Create a systematic solution to the problem – or motivate
others to do so
Apply lessons from past projects to new ones
Remain flexible enough to change direction if initial proposed
solution doesn’t work
Managerial Identity
Confidence to take charge of project when necessary, but
also to let good technical people use their initiative
Achievement
Reward initiative and achievement
Influence and Team building
Be able to “read” people – understand both verbal and non-
verbal signals from team members, and react to their needs
13
Coordination and
Communication
Software projects fail for many reasons. For modern
software, issues of scale and uncertainty are usually
unavoidable
Scale: many projects are large, leading to complexity,
confusion and major difficulties in coordinating people
Uncertainty: scope and requirements change is common, often
resulting in continuous addition to the team load
14
Coordination and
Communication
To deal with these issues, methods must be established
to promote both formal and informal communication
between team members, and to coordinate their work
Project Coordination Techniques
Formal, impersonal approaches
Software engineering documents, technical memos,
project highlights, schedules and PM tools, change
requests & documentation, error tracking reports,
etc.
Formal, interpersonal procedures
Focus on quality assurance activities applied to the
work products: status review meetings, design and
code inspections.
15
Coordination and
Communication
16
The Project
Ten signs that indicate that a project is in trouble:
Technical people don’t understand customer’s needs
Product scope is poorly defined
Change management is poor
Change in technology chosen for solution
Business needs change or are not well defined
Deadlines are not realistic
Users are opposing to the proposed solution
Sponsorship is lost, or was never actually obtained
Project team lacks people with the right skills
Managers and team members refuse to accept best-practice,
and lessons learned on previous projects
17
The Project
How does a project manager avoid these
problems?
Start on the right foot
Work very hard to understand the problem
Set realistic objectives and expectations for team
Give team members autonomy, authority and
appropriate technology
Maintain momentum
Provide incentives
Ensure that team highlights quality in every task
18
The Project
How does a project management avoid these
problems? cont.
Track progress
Work products are produced and approved by formal technical
review
Project and process metrics can be gathered and compared with
historical data
Make smart decisions
• Avoid tradition interfaces if a standard is available
• Identify and avoid understandable risks
• Allocate more time to think about risky or complex tasks
Conduct a post-mortem analysis
Establish a mechanism for extracting lessons-learned from
completed projects: planned vs. actual schedule, metrics, feedback
from team members and customers
Record findings in written form
19
Meetings
Project Managers are required to run meetings.
Some good practices:
1. Distribute start time, end time and estimated time
for agenda items (before meeting)
2. Prepare items (before meeting)
3. Start on time
4. Have someone record action items
5. Get agreement on agenda and timing
6. Watch timing throughout – end on time
7. Keep discussions on topic
8. Circulate minutes including action items and
discussion summary (after meeting)
20
Formal Technical Reviews
(FTR)
An FTR is a quality assurance activity
performed by software engineers (and
others).
Objectives
Discover errors in function, logic or
implementation for any representation of software
Verify that software being reviewed meets its
requirements
Achieve uniform software development
Make projects more manageable
Train junior software engineers
21
FTRs: Preparation
Preparation for an FTR
Person who developed the work product – the producer
– informs the team leader that it is ready for review
Team leader designates a review leader, who evaluates
the product’s and distributes copies of product material
to two or three other reviewers
Each reviewer spends one or two hours reviewing the
product and making notes on it
At the same time, the review leader also reviews the
product, establishes an agenda for the review meeting
and schedules a meeting time
22
FTRs: Reporting
Review Reporting and Recording
After the review meeting, the recorder produces a review
summary report, answering the questions:
What was reviewed?
Who reviewed it?
What were the findings and conclusions?
Review summary report is typically a single page, possibly
with attachments
A review issues list should also be created and attached to
the summary report. It notes:
Problem areas within the product
An action item checklist which guides the producer as corrections
are made
The review leader should have follow-up the producer to
ensure that the issues have been addressed
23
FTRs: Guidelines
Review the product, not the producer
Set an agenda and maintain it
Identify problem areas but don’t attempt to solve every
problem
Take written notes
Limit the number of participants
Insist on advance preparation
Develop a checklist for each work product
Allocate resources and time
Conduct meaningful training
Review earlier reviews
24
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.
25
Cont…
A project manager’s activities
are varied.
can be broadly classified into:
project planning,
project monitoring and control
activities.
26
Project Planning
27
project monitoring and
control activities
It is undertaken once the development
activities start
The main aim is to ensure that the
development proceeds as per plan
28
Project Planning Activities
Estimation:
Effort, cost, resource, and project duration
Project scheduling:
The schedules for manpower and other resources have
to be developed
Staff organization:
staffing plans
Risk handling:
identification, analysis, and abatement procedures
Miscellaneous plans:
quality assurance plan, configuration management
plan, etc. have to be done
29
Project planning
30
Sliding Window Planning
Involves project planning over several
stages:
Especially for large projects, it becomes very difficult to make accurate
plans.
A part of this difficulty is due to the fact that the project parameters, scope
of project, project staff, etc. may change during the span of the project.
To make accurate plans project managers undertake project planning in
stages
protects managers from making big commitments too early.
More information becomes available as project progresses.
Facilitates accurate planning
31
SPMP Document
32
Organization of SPMP Document
Project Estimates (Historical Data used,Estimation Techniques used,Effort, Cost, and Project Duration
Estimates)
33
Software Cost Estimation
34
Software Cost Estimation
Effort Cost
Estimation Estimation
Size Staffing
Estimation Estimation
Duration
Estimation Scheduling
35
Software Cost Estimation
36
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.
37
Software Size Metrics
38
Disadvantages of Using LOC
Size can vary with coding style.
Focuses on coding activity alone, but a good problem size
measures should consider the total effort needed to specify,
design, test etc.
Correlates poorly with quality and efficiency of code, larger
code does not necessarily imply better quality or higher
efficiency
Some programmers produce lengthy and complicated code
as they do not make effective use of the available
instruction set.
Code reuse, etc.
39
Disadvantages of Using LOC
(cont...)
40
Function Point Metric
41
Function Point Metric
Output:
A set of related outputs is counted as one output.
Inquiries:
Each user query type is counted.
Inquiries are the user commands which require
specific action by the system
Files:
Files are logically related data and thus can be data
structures or physical files.
Interface:
Data transfer to other systems.
42
Function Point Metric (CONT.)
43
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.
44
Empirical Size Estimation
Techniques
Expert Judgement:
an educated guess based on past
experience.
Suffers from individual bias.
Delphi Estimation:
overcomes some of the problems of
expert judgement.
45
Expert judgement
46
Delphi Estimation:
47
Delphi Estimation:
Experts re-estimate.
Experts never meet each other
to discuss their viewpoints.
48
Heuristic Estimation Techniques
Heuristic techniques assume that the relationships among the
different project parameters can be modelled using suitable
mathematical expression.
Once the basic (independent parameters) are known , the
other (dependent) parameters can be easily determined
Single Variable Model:
Parameter to be Estimated=C1(Estimated Characteristic)d1
Multivariable Model:
Assumes that the parameter to be estimated depends on
more than one characteristic.
Parameter to be Estimated=C1(Estimated
Characteristic)d1+ C2(Estimated Characteristic)d2+…
Usually more accurate than single variable models.
49
COCOMO Model
COCOMO (COnstructive COst MOdel) proposed
by Boehm.
Divides software product developments into 3
categories:
Organic
Semidetached
Embedded
In order to classify a product into the identified
categories,
Boehm considered not only the characteristics of the
product
but also those of the development team and
development environment
50
COCOMO Product classes
51
Cont…
Brooks, 1975 states that utility programs are
roughly three times as difficult to write a
application programs,
And system programs are roughly three times as
difficult as utility programs,
Thus according to Brooks, the relative levels of
product development complexity for three
categories (application, utility and system
programs) of product are 1:3:9.
52
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.
53
COCOMO Model (CONT.)
54
COCOMO Model (CONT.)
55
Basic COCOMO Model (CONT.)
56
Development Effort
Estimation
Organic :
Effort = 2.4 (KLOC)1.05 PM
Semi-detached:
Effort = 3.0(KLOC)1.12 PM
Embedded:
Effort = 3.6 (KLOC)1.20PM
57
Development Time
Estimation
Organic:
Tdev = 2.5 (Effort)0.38 Months
Semi-detached:
Tdev = 2.5 (Effort)0.35 Months
Embedded:
Tdev = 2.5 (Effort)0.32 Months
58
Basic COCOMO Model (CONT.)
d
he
Effort is Effort
m
id
et
a c
e
somewhat
S
ded
d
super-linear Em
be
ga
n ic
(slope of curve Or
≥ 1) in problem
size. Size
Development time
sublinear function of
product size. Dev. Time
When product size ed hed
d d ta c
increases two times, be ide
18 Months Em Sem
development time does
not double but rises 14 Months
ic
gan
moderately. Or
Time taken:
30K 60K
almost same for all the Size
three product categories.
60
Basic COCOMO Model (CONT.)
61
Basic COCOMO Model (CONT.)
62
Example
The size of an organic software product has been estimated to
be 32,000 lines of source code. Assume that average salary of
software developers is Rs. 15,000 per month, determine the
effort required to develop the software product, the nominal
development time, and the cost to develop the product.
Effort = 2.4*(32)1.05 = 91 PM
Nominal development time = 2.5*(91)0.38 = 14 months
Cost required to develop the product= 91 × 15,000= Rs.
1,465,000
63
Intermediate COCOMO
64
Intermediate COCOMO
65
Intermediate COCOMO
(CONT.)
67
Intermediate COCOMO
(CONT.)
68
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.
69
Complete COCOMO
70
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.
71
Halstead's Software
Science
An analytical technique to
estimate:
size,
development effort,
development time.
72
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.
73
Staffing Level Estimation
76
Putnam’s Work (CONT.) :
Putnam analyzed a large number of
army projects, and derived the
expression:
L=CkK1/3td4/3
K is the effort expended (in PM) in the
product development and L is the size in
KLOC.
td is the time to develop the software.
Ck is the state of technology constant
reflects factors that affect programmer
productivity.
77
Putnam’s Work (CONT.) :
78
Rayleigh Curve
79
Rayleigh Curve
81
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
82
Effect of Schedule Change on
Cost (CONT.)
Observe:
a relatively small compression in delivery schedule/ schedule of
project
can result in substantial penalty on human effort.
Example: if the estimated develop time is 1 year, then in order to
develop the product in 6 months, the total effort required to
develop the product increases 16 times.
Also, observe:
benefits can be gained by using fewer people over a somewhat
longer time span.
83
Example
84
Effect of Schedule Change on
Cost (CONT.)
85
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.”
86
Effect of Schedule Change
on Cost (CONT.)
87
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.
88
Jensen Model
Jensen proposed the equation:
L=CtetdK1/2
K1/K2 = td22/td12
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.
89
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
90
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.
91
Project Organization
92
Team Structure
Mixed organization
93
Chief Programmer Team
94
Chief Programmer Team
95
Chief Programmer Team
96
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.
97
Democratic Teams
98
Democratic Teams
Disadvantage:
team members may waste a
lot time arguing about trivial
points:
absence of any authority in the
team.
99
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.
100
Team Organization
Democratic Team
Chief Programmer team
101
Mixed team organization
102
Summary
We discussed the broad
responsibilities of the project
manager:
Project planning
Project Monitoring and Control
103
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.
104
Summary (CONT.)
Cost estimation techniques:
Empirical Techniques
Heuristic Techniques
Analytical Techniques
Empirical techniques:
based on systematic guesses by experts.
Expert Judgement
Delphi Estimation
105
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
106
Summary (CONT.)
The staffing level during the life cycle of a
software product development:
follows Rayleigh curve
maximum number of engineers required
during testing.
107
Summary (CONT.)
108
Summary (CONT.)
109