SOFTWARE PROJECT
•1
MANAGEMENT
Lecture : Scheduling
Scheduling
•2
The process of defining project activities,
determining their sequence and estimating their
duration.
Primary objectives of scheduling
Critical path.
Mininum duration that the project will take.
Secondary objectives
Evaluation of schedule alternatives
Effective use of resources
Steps in project scheduling
•3
Split project into tasks (= create a WBS)
Estimate time and resources required to complete
each task.
Organize tasks concurrently to make optimal use of
workforce.
Minimize task dependencies to avoid delays
caused by one task waiting for another to complete.
Dependent on project managers intuition and
experience.
Estimation
•4
“The single most important task of a project: setting
realistic expectations. Unrealistic expectations
based on inaccurate estimates are the single largest
cause of software failure.”Futrell, Shafer, “Quality Software Project
Management”
Activities/task characterized by:
Effort: how much work will the activity need to be
completed
Resources: how many resources will be working on the
activity
Duration: how long will the activity last for
… estimation technique provide (at least) two of the
quantities specified above
Effort & Duration
•5
Effort:
how complex/how much work does the activity
require?. A.K.A. “Work”
Measured in man/month (3 m-m = 1 person working
for 3 months; 3 people working for one 1 month)
Duration
How much time will the activity last for. Measured in
(work-)hours, (work-)days, (work-)months, …
Calendar time != duration: calendar time includes non-
working days, holidays, …
Usually: 5 days == 40 hours (8 hours a day) == 1
calendar week (sat and sun rest time)
Guidelines
•6
Productivity is not proportional to the number of
people working on a task.
Adding people to a late project makes it later
because of communication overheads.
The unexpected always happens. Always allow
contingency in planning.
Organize tasks concurrently (in parallel) to make
optimal use of workforce.
Minimize task dependencies to avoid delays caused
by one task waiting for another to complete.
Dependent on project managers intuition and
Scheduling pseudoCode
•7
(Sommerville)
while project has not been completed or cancelled loop
Draw up project schedule
Initiate activities according to schedule
Wait ( for a while )
Review project progress
Revise estimates of project parameters
Update the project schedule
Re-negotiate project constraints and deliverables
if ( problems arise ) then
Initiate technical review and possible revision
end if
end loop
Terminology
•8
Precedence: A task that must occur before another
is said to have precedence of the other
Concurrence: Concurrent tasks are those that can
occur at the same time (in parallel)
Leads & Lag Time :Delays between activities
Time required before or after a given task
Slack (Float):Slack enables resources to be
temporarily diverted other activities to avoid
delays .compensate for an inaccurate time estimate
– Slack Time TS = TL – TE
TE = earliest time an event can take place
TL = latest date it can occur w/o extending project’s
Milestones
•9
End-point of a software process activity
At each milestone there should be a formal output
Identify critical points in your schedule.
Often used at “review” or “delivery” times.
Or at end or beginning of phases
Ex: Software Requirements Review (SRR),Feasibility report
,Design Report, User Sign-off. Have a duration of zero
Shown as inverted triangle or a diamond
Final Year Project milestones
•10
Lit Analysis Design coding
Survey
M2 M3
M1 M4
Feasibility
study
• Assuming a Report
Testing
waterfall model Submission
is being followed M5
Milestones on Diagram
•11
The
inverted
black
triangle
represent
the
milestone
Milestone- Deliverable Example
•12
Task Description Dependencies
T1 Requirements -
Gathering
T2 Feasibility Study T1
T3 Scheduling T1,T2
T4 Analysis T1 Milestone Deliverable
T5 Costing T3 M1,(T1) SRS
T6 Design T4 M2,(T2) Feasibility Report
T7 Test Case Generation T3 M3,(T4) Analysis
T8 Implementation T6 Document
T9 Testing T7, T8 M4,(T7) Design Document
T10 User Training T9 M5,(T3,T5) Schedule plan
M6,T7 Test plan
M7,T8,T9 Application
M8,T10 Sign-off
Document
Scheduling Problems
•13
Estimating the difficulty of problems and hence the cost of
developing a solution is hard
software or hardware to be used for development may be
delivered late.
Individuals working on a project may fall ill or may leave
The unexpected always happens. Always allow contingency
in planning
Network Diagrams
•14
Developed in the 1950’s
A graphical representation of the tasks necessary to
complete a project
Visualizes the flow of tasks & relationships
Used to calculate the earliest start, earliest finish,
latest start and latest finish.
To find the critical path and the slack time.
Network Diagrams
•15
Two classic formats
AOA: Activity on Arrow
AON: Activity on Node
Each task labeled with
Identifier (usually a letter/code)
Duration (in std. unit like days)
There are other variations of labeling
There is 1 start & 1 end event
Time goes from left to right
Node Formats
•16
Critical Path
•17
“The specific set of sequential tasks upon which the
project completion date depends”
or “the longest full path in terms of time duration”
Accelerating non-critical tasks do not directly
shorten the schedule.
Non-CP tasks can start earlier or later w/o
impacting completion date.
Note: Critical Path may change to another as you
shorten the current
Task Dependency graph
•18
Task Duration Dependencies
A 30
B 60 A
C 45 A
D 60 B
E 60 B
F 15 C
G 30 E
Example Step 1
•19
Forward Pass
•20
To determine early start (ES) and early finish (EF) times for
each task
Work from left to right
Adding times in each path
Rule: when several tasks converge, the ES for the next task is
the largest of preceding EF times
Example Step 2
•21
Backward Pass
•22
To determine the last finish (LF) and last start (LS) times
Start at the end node
Compute the bottom pair of numbers
Subtract duration from connecting node’s earliest start time
When two or more activities are converging to one activity x,
we take the minimum of these latest start times converging
activities as the latest finish for the activity x.
Example Step 3
•23
Example Step 4
•24
Calculating slack time
•25
The slack time is computed by
Slack Time= LFT-EFT
EFT = earliest time an event can take place
LFT = latest date it can occur w/o extending
project’s completion date
Slack & Reserve
•26
Reserve Negative
Negative slack: negative Time Slack
float, is the amount of Forward
Pass
time beyond a project's A B
scheduled completion that Backward
Pass
a task within the project
Project Due
requires. Start
Date Date
How can you address that
situation?
Network Diagrams
•27
Advantages
Show precedence well
Reveal interdependencies not shown in other techniques
Ability to calculate critical path
Ability to perform “what if” exercises
Disadvantages
Default model assumes resources are unlimited
Difficult to follow on large projects
Activity – Draw the network
•28
diagram
Activity Predecessors Duration
a --- 5
b --- 4
c a 3
d a 4
e a 6
f b,c 4
g d 5
h d,e 6
i f 6
j g,h 4
PERT
•29
Program Evaluation and Review Technique
Based on idea that estimates are uncertain
Therefore uses duration ranges
And the probability of falling to a given range
Use the following formula to calculate the expected
durations,
Example
•30
Example
•31
Calculate the EST,LST,EFT & LFT using Task
Dependencies table on slide 28
PERT
•32
Advantages
Accounts for uncertainty
Disadvantages
Time and labor intensive
Lack of functional ownership of estimates
Mostly only used on large, complex project
Pert Exercise
•33
Task Optimistic(o) Most Pessimistic Dependencies
likely (m) (p)
T1 2 4 6 -
T2 2 6 10 T3,T6
T3 4 6 8 T4
T4 6 8 10 -
T5 4 6 8 T2,T7
T6 2 4 6 T4
T7 8 6 10 T1,T3
T8 4 6 8 T4
T9 4 4 10 T2,T8
T10 4 6 8 -
•Draw an activity network using Activity on Node conventions for the
above. Calculate the different values for EST,EFT,LST ,LFT and slack
time
Gantt Chart
•34
Gantt Chart example
•35
Gantt chart
•36
Disadvantages
Does not show interdependencies well
Does not uncertainty of a given activity (as does PERT)
Advantages
Easily understood
Easily created and maintained
Note: Software now shows dependencies among tasks in Gantt
charts
In the “old” days Gantt charts did not show these dependencies, bar
charts typically do not
Task Dependency Table
•37
Task Duration Dependencies
(days)
T1 8
T2 15
T3 15 T1
T4 10
T5 10 T2, T4
T6 5 T1, T2
T7 20 T1
T8 25 T4
T9 15 T3, T6
T10 15 T5, T7
T11 7 T9
T12 10 T11
Gantt chart Example
•38
Gantt Chart Exercise
•39
Draw a Gantt chart for question on slide 30 to
illustrate the project schedule.
Reducing Project Duration
•40
How can you shorten the schedule?
Looks at cost and schedule tradeoffs
Add resources to critical path tasks
Limit or reduce requirements (scope)
Changing the sequence of tasks
Overlapping of phases, activities or tasks that would
otherwise be sequential
Compression
•41
Shorten the overall duration of the project
Crashing
Looksat cost and schedule tradeoffs
Gain greatest compression with least cost
Add resources to critical path tasks
Changing the sequence of tasks
Fast Tracking
Overlapping of phases, activities or tasks that would
otherwise be sequential
Involves some risk
May cause rework
Mythical Man month
•42
Book: “The Mythical Man-Month”
Author: Fred Brooks
“The classic book on the human elements of
software engineering”
First two chapters are full of terrific insight (and
quotes)
“Cost varies as product of men and months,
progress does not.”
“Hence the man-month as a unit for measuring the
size of job is a dangerous and deceptive myth”
Mythical Man month
•43
Why is software project disaster so common?
1. Estimation techniques are poor & assume things will go well (an
‘unvoiced’ assumption)
2. Estimation techniques fallaciously confuse effort with progress, hiding
the assumption that men and months are interchangeable
3. “… software managers often lack the courteous
stubbornness of Antoine's chef.”
4. Schedule progress is poorly monitored
5. When schedule slippage is recognized, the natural response is to add
manpower. Which, is like dousing a fire with gasoline.
Mythical Man month
•44
Optimism
“All programmers are optimists”
1st false assumption: “all will go well” or “each task takes only as long
as it ‘ought’ to take”
The Fix: Consider the larger probabilities
Cost (overhead) of communication (and training)
His formula: n(n-1)/2
How long does a 12 month project take?
1 person: 12 month
2 persons = 7 months (1 man-months extra)
3 persons = 5 months (1 man-months extra)
Fix: don’t assume adding people will solve the problem
•45
Q: “How does a project get to be a year late”?
A: “One day at a time”
Studies
Each task: twice as long as estimated
Only 50% of work week was programming
Fixes
No “fuzzy” milestones (get the “true” status)
Reduce the role of conflict
Identify the “true status”
•46
Sequential nature of the process
“The bearing of a child takes nine months, no matter how many women
are assigned”
What is the most mis-scheduled part of process?
Testing (the most linear process)
Why is this particularly bad?
Occurs late in process and w/o warning
Higher costs: primary and secondary
Fix: Allocate more test time
Understand task dependencies