Professional Documents
Culture Documents
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.
Cost estimation
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
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
10
Arc with ES & EF time
EF = earliest finish time
Activity
1
t = expected activity
time
11
Network with ES & EF time
D[5,8] 5
2 3
7
4
1 6
Activity
2
LF = latest finish time
LS = latest start time
13
Latest start & latest finish time
14
Network with LS & LF time
D[5,8] 5
2 3[7,10]
7
4
1 6
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…
Cost estimation
18
Network with LS & LF time
D[5,8] 5
2 3[7,10]
7
4
1 6
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
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
27
Classes of Software
Organic projects - "small" teams with "good" experience
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
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
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
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
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