You are on page 1of 40

Chapter 4: Software Project

Planning

Tadele M.
Contents
 Introduction
 Project Planning
 Issues in project planning
 Cost estimation
 Cost estimation Techniques
 Software size estimation techniques
 Schedule and staffing
 Risk Analysis and Management
 Software Quality Assurance Planning
 Project Monitoring Plans
 Configuration Management Plan
2
Introduction
 A project is a temporary endeavor undertaken to create a unique

product or service.

 IT Projects have a terrible track record

 A 1995 Standish Group study (CHAOS) found that only 16.2% of

IT projects were successful and over 31% were canceled before


completion, costing over $81 B in the U.S. alone.

 Running any types of software projects needs planning because bad

planning is one of the reasons for many project failures.


3 “If you fail to plan, you plan to fail.”
Project planning
 Project planning is a discipline for stating how to complete a
project within a certain timeframe, usually with defined stages,
and with designated resources.
 The objective of project planning is to create a plan to meet the
commitments of the project,
 i.e. create a path that, if followed, will lead to a successful
project.
 What has to be planned?
 the work to be done
 the resources that will be required
 the time that will elapse from start to finish.
 The risk to be incurred
4
Project planning…

 The major issues the project plan addresses are:

 Schedule and staffing

 Cost estimation

 Risk Analysis & Management

 Software Quality Assurance Planning

 Project Monitoring Plans

 Configuration Management Plan

5
Schedule and staffing
 Software project scheduling is creating a network of software
engineering tasks enabling you to get the job done on time.
 A project Schedule is at two levels - overall schedule and
detailed schedule
 Overall schedule comprises of major milestones and final date
 Detailed schedule is the assignment of lowest level tasks to resources
 Milestone vs. deliverables
 Milestone is end-point ( e.g. report) of software process activity
 A conceptual change or moment
 Deliverable is a project result that is delivered to the customer usually at
the end of some major project phase such as specification, design, etc.
 represent something tangible – a concrete product or service
 Deliverables are usually milestones but milestones need not be
deliverables.
6
Project Schedule
 Project scheduling involves
 Identifying tasks and
 Determining dependencies among the tasks
 Duration of each task
 Start and finish date for each task

 Project scheduling techniques


 Precedence Networks : Program Evaluation and Review Technique (PERT)
 Gant Chart
7
PERT Chart
 It is based on graph theory (nodes and links)-acyclic directed
graph.
 It shows:
 dependencies among tasks
 critical path ( a path which indicates the minimum time required
to finish the project or the longest path).
 All activities which don’t lay on the critical path can be delayed
for some time (slack time) with out having any effect on overall
project schedule.

8
Scheduling with activity time
Activity Immediate Completion
predecessors Time (week)
A - 5
B - 6
C A 4
D A 3
E A 1
F E 4
G D,F 14
H B,C 12
I G,H 2
Total …… 51

This information indicates that the total time required to complete


activities is 51 weeks. However, we can see from the network that several
of the activities can be conducted simultaneously (A and B, for example).
9
Earliest start & earliest finish time
 We are interested in the longest path through the network,
i.e., the critical path.

 Starting at the network’s origin (node 1) and using a


starting time of 0, we compute an earliest start (ES) and
earliest finish (EF) time for each activity in the network.

 The expression EF = ES + t can be used to find the earliest


finish time for a given activity.
For example, for activity A, ES = 0 and t = 5; thus the
earliest finish time for activity A is
EF = 0 + 5 = 5

10
Arc with ES & EF time
EF = earliest finish time

ES = earliest start time

Activity

1
t = expected activity
time

11
Network with ES & EF time
D[5,8] 5
2 3

7
4
1 6

Earliest start time rule:


The earliest start time for an activity leaving a particular node is equal to
the largest of the earliest finish times for all activities entering the node.
Forward pass calculation
12
Activity, duration, ES, EF, LS, LF

EF = earliest finish time

ES = earliest start time

Activity

2
LF = latest finish time
LS = latest start time

13
Latest start & latest finish time

 To find the critical path we need a backward pass calculation.

 Starting at the completion point (node 7) and using a latest


finish time (LF) of 26 for activity I, we trace back through the
network computing a latest start (LS) and latest finish time
for each activity

 The expression LS = LF – t can be used to calculate latest start

time for each activity. For example, for activity I, LF = 26 and t


= 2, thus the latest start time for activity I is
LS = 26 – 2 = 24

14
Network with LS & LF time
D[5,8] 5
2 3[7,10]

7
4
1 6

Latest finish time rule:


The latest finish time for an activity entering a particular node is equal to
the smallest of the latest start times for all activities leaving the node.

15
Slack or Free Time or Float
Slack is the length of time an activity can be delayed without affecting the
completion date for the entire project.
For example, slack for C = 3 weeks, i.e Activity C can be delayed up to 3
weeks
3
(start anywhere between weeks 5 and 8).
2
ES LS EF EF
5 8 9 12

LF-EF = 12 –9 =3

LS-ES = 8 – 5 = 3

LF-ES-t = 12-5-4 = 3

16
Activity schedule for our example
Activity Earliest Latest Earliest Latest Slack Critical
start (ES) start (LS) finish (EF) finish (LF) (LS-ES) path

A 0 0 5 5 0 Yes
B 0 6 6 12 6
C 5 8 9 12 3
D 5 7 8 10 2
E 5 5 6 6 0 Yes
F 6 6 10 10 0 Yes
G 10 10 24 24 0 Yes
H 9 12 21 24 3
I 24 24 26 26 0 Yes
17
Project planning…

 The major issues the project plan addresses are:

 Schedule and staffing

 Cost estimation

 Risk Analysis & Management

 Software Quality Assurance Planning

 Project Monitoring Plans

 Configuration Management Plan

18
Network with LS & LF time
D[5,8] 5
2 3[7,10]

7
4
1 6

Latest finish time rule:


The latest finish time for an activity entering a particular node is equal to
the smallest of the latest start times for all activities leaving the node.

19
Gantt Chart
 Graphical display of start/end times
 Shows overlapping activities easily
 CPM or PERT are translated to Gantt sometimes
 Gantt or Bar chart used more frequently than others
 Suitable for projects
with less than 25
activities
 Developed by Henry L.
Gantt

20
Cost Estimation
 Predicting the resources required for a software development
process.
 Highly subjective and depends on experience.
 Some of the questions that would be addressed in cost
estimation are:
 How much effort is required to complete an activity?
 What is the total cost of an activity?
 Software Cost components are
 Hardware and software costs.
 Travel and training costs.
 Effort costs (the dominant factor in most projects)
 Others like building, heating, lighting...
21
Cost estimation Approaches
• There are two approaches for cost estimation
 Analogous or top-down: use the actual cost of a

previous, similar project as the basis for the new estimate


 Bottom-up: estimate individual work items and sum them

to get a total estimate

22
Estimation Techniques
• Cost can be estimated using the following techniques:
• Expert judgement
• Estimation by analogy
• Parkinson's Law
• Pricing to win
• Algorithmic cost modelling

23
Estimation Techniques…
 Expert judgement
 One or more experts in both software development and the
application domain use their experience to predict software costs.
 Process iterates until some consensus is reached.
 Advantages:
 Relatively cheap estimation method.
 Can be accurate if experts have direct experience of similar systems
 Disadvantages:
 Very inaccurate if there are no experts!
 New methods and technologies may make estimating based on
experience inaccurate.

24
Estimation Techniques…
 Estimation by analogy
 The cost of a project is computed by comparing the project to a similar
project in the same application domain
 Advantages: Accurate if project data available
 Disadvantages:
 Impossible if no comparable project has been tackled.
 Needs systematically maintained cost database
........................................................................................
 Parkinson's Law
 The project costs whatever resources are available: work expands to fill
the time available.

25
Estimation Techniques…
• Pricing to win
– The project costs whatever the customer has to spend on it i.e. the
estimated effort depends on the customer’s budget and not on the
software functionality.
• Algorithmic cost modelling
– Some formula based on empirical studies are derived and adjusted
according to the type of project (Organic, semidetached, embedded ).
– This estimation is generally based on the size of the software.
– Size of software is measured by Line of code(LOC), Function
Point(FP), Use case , etc.

26
What is COCOMO?
 The Constructive Cost Model (COCOMO) is an algorithmic

software cost estimation model developed by Barry Boehm


1981.
 Basic COCOMO computes software development effort (and
cost) as a function of program size. Program size is expressed in
estimated thousands of lines of code (KLOC).
 COCOMO applies to three classes of software projects:

27
Classes of Software
 Organic projects - "small" teams with "good" experience

working with "less than rigid" requirements

 Semi-detached projects - "medium" teams with mixed

experience working with a mix of rigid and less than rigid


requirements

 Embedded projects - developed within a set of "tight"

constraints (hardware, software, operational, ...)

28
Basic Equations
 The basic COCOMO equations take the form

E = a(KLOC)b ……………...…………....man-months
TDev = c(E)d ………………………………… months
People required = E / TDev .....................................count
E: Effort applied
TDev: Development time
People required or average staffing
KLOC or KDSI

 The coefficients a, b, c and d are given in the following


table.
Coefficients for the three classes of
software

Software Project a b c d
Organic 2.4 1.05 2.5 0.38
Semi-detached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32
…ctd

Software Project Effort Schedule

Organic E=2.4(KLOC)1.05 Tdev=2.5(E)0.38

Semi-detached E=3.0(KLOC)1.12 Tdev=2.5(E)0.35

Embedded E=3.6(KLOC)1.20 Tdev=2.5(E)0.32


Example
We have determined our project fits the characteristics of Semi
Detached mode. We estimate our project will have 32,000 Delivered
Source Instructions. Using the formulas, we can estimate:
 Effort = a(KLOC)b =3.0*(32) 1.12 = 146 man-months

 Schedule or TDEV = c(E)d =2.5*(146) 0.35 = 14 months

 Average Staffing =E / TDev = 146 MM /14 months


= 10 Men
 Productivity =LOC/E = 32,000 DSI / 146 MM
= 219 DSI/MM
Staffing - Staff allocation chart
 In addition to considering scheduling, as a project manager you
must also consider resource allocation and, in particular the
allocation of staff to a project activities.
4/7 11/7 18/7 25/ 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9

Fred T4
T8 T11
T12
Jane T1
T3
T9
Anne T2
T6 T10

Jim T7

M ary T5
33
Staffing -Team Structure
 Team organization has an effect on product quality and productivity,
so it needs to be planned.
 Main points to consider for organizing development teams
 Type of the project (difficulty of the problem)
 The degree to which the problem can be modularized
 The rigidity of delivery of data
 Team size
 Three ways of organizing a development team are
1. Egoless team structure (Democratic decomposition): Analyst

 Equal responsibility of team members:


Tester
Programmer

 Decision is by consensus
librarian
 Has many communication paths
Designer
 Good for projects which have long duration and for complex projects
34
Team Structure…
2. Chief Programmer (controlled centralized)
 Hierarchical structure for effective management
 Contribution of the members only for the task of the group
 Less (vertical) communication path
 Among programmers there exists horizontal communication
 Suitable for small non-difficult projects and projects with tight schedule
3. Controlled decentralized
 Combines the benefits of DD and CC team structure
 Input from different members
Project Manager
 Relatively small communication path
Team Leader

Programmers

35
36
Risk Analysis and Management
• Risk: any condition or event whose occurrence is not certain but
which can cause the project to fail.
• Any project can fail and reasons may be
– Managerial (e.g. schedule and budget overrun)
– Technical (doesn’t deliver what is expected)
• A project fails due to unforeseen events - risk management aims
to tackle this.
• Risk Analysis and management involves
• Risk Assessment (Risk identification, Risk Analysis, & Risk
Prioritization)
• Risk Control (Risk Resolution/mitigation & Risk Control)

37
Software Quality Assurance Plan
 Software Quality is conformance to

 Explicitly stated functional and performance requirements

 Explicitly stated development standards

 Implicit characteristics of all professional developed software

 Quality can be defined in many ways

 Current industry standard - delivered defect density (e.g. #defects/KLOC)

 Defect - something that causes software to behave in an inconsistent manner

38
Project Monitoring Plans
 Project monitoring includes monitoring progress/status,
Cost/effort, Personnel, resources.
 Monitoring requires measurements (effort, size, schedule, and
defects) and methods for interpreting them.
 Monitoring plan has to plan for all the tasks related to
monitoring.
 Project monitoring also involves project tracking so as to get
visibility in project execution so corrective actions can be taken
when needed to ensure project succeeds.
 The Gantt chart is one of the most popular ways to track your
project's progress

39
Configuration Management Plan
 When you build computer software, change happens.
 And because it happens, you need to control it effectively.
 Software configuration management (SCM) is a set of activities
that are designed to control change by
 identifying the work products that are likely to change,
 establishing relationships among them,
 defining mechanisms for managing different versions of these
work products,
 controlling changes that are imposed, and
 auditing and reporting on the changes that are made.

40

You might also like