Task Dependencies

advertisement
Scheduling Work
I love deadlines.
I love the sound they make as they fly by.
-- Douglas Adams
What is the purpose of a
project schedule?
1. Coordinate

What to do and When?
2. Monitor


Are we on time?
Are problems starting to occur?
Reminder: Why is software late?

Under-Estimate of effort.

Unrealistic deadlines imposed by outsiders.

Changing requirements.

Risks that were not considered.

Technical problems that could not be foreseen.

Failure to recognized that the project is falling
behind schedule and lack of action to correct
the problem.
Software Engineering : A Practitioner’s Approach by Pressman
How to build a schedule
(which you already learned in CSCI 475 or MGMT)
1. Determine dependencies of activities.



Major Activities are listed in the WBS.
Leverage past projects to determine dependencies.
Surprises are very bad.
2. Use dependencies to build activity network
diagram (e.g. PERT chart).
3. Determine critical path.
4. Map network to a timeline (e.g. Gantt chart)
using the effort estimates.

Use a software tool to help do this work.
Dependency Types
 External Dependency



Other projects
Stakeholders
Sub-Contractors
 Internal Dependency


Audits (design, testing, documentation, …)
Sign-Offs at end of phase
Dependency Types
Start
Finish
 FS - T2 cannot start until T1 is finished.
 coding must wait on design to be finished
 SS - T1 and T2 must start at same time.
 documentation and coding start together
 FF - T1 and T2 finish at same time.
 configuration management ends when testing
is done
Dependency Types
 Lag – T2 cannot start until a given amount of
time after T1 is done.

Start on-site training one week after final demo
to customer management group.
 Soft – T2 should start after T1, but it is not
completely essential that T1 be finished.

Populate the new database after the database
has been built. If the new database is not
completely finished we can still populate the
few finished tables.
Activity Networks
 CPM – Critical Path Method


activities are graph nodes (circles or squares)
single estimate for duration of tasks
 PERT – Program Evaluation and Review
Technique


activities are graph arcs (lines)
activity times are ranges and include probabilities
CPM Example
http://www.cs.unc.edu/~stotts/COMP145/homes/map/images/pert.gif
PERT Example
http://www.mckinnonsc.vic.edu.au/la/it/ipmnotes/ganttpert/pert_chart.gif
Example Activity Network – Activity on Node
1wks
2wks
1wk
T2
T1
4wks
T3
T5
3wks
1wk
2wks
T4
T6
T8
1wk
T9
3wks
T7
Questions:
1. Minimum time to complete the project?
2. Critical Path?
3. For T2, what are the earliest start time, latest start, earliest finish, latest finish?
es=2ndwk ls=4thwk ef=3rdwk lf=5thwk
Resulting Gantt Chart
1
T1
T2
T3
T4
T5
T6
T7
T8
T9
2
3
4
5
6
7
8
9
10
11
12 13 14
Advanced Scheduling Topics
 Using Milestones
 Managing Uncertainty in the Timeline
 PERT confusion
 Resource Leveling
 Using Scheduling Tools
Milestones
 Why must you schedule milestones, such as
reviews, throughout the project?
Managing Uncertainty
 Q: How confident can we be in our
milestone dates and the delivery date?
 Q: Can we calculate the confidence level?
 A: Using confidence values and Statistics
1. for each task, determine pessimistic and optimistic times
2. if PT-OT is small for all tasks, then great!!!
3. compute average PT-OT, and std dev
4. if a task's PT-OT is outside the std dev,
worry about that task
Managing Uncertainty
 Q: Where do we schedule uncertainty
time?
 A1: spread it out by bumping each milestone.

used by Critical Path
 A2: lump it together as one activity at end.

used by Critical Chain
Common PERT Problem
 K – integration testing
 L – Install Software
 M – Write Manual
 N – Train Users
L
K
1
2
3
M
4
N
5
But wait, we can shorten the project if we
write the manual right after testing is
finished. (L and M can be done in parallel.)
So…
Pert Problem cont…
 K – integration testing
 L – Install Software
 M – Write Manual
 N – Train Users
L
1
K
2
3
M
4
N
5
But wait, the system needs to be installed
before we can use it to train people. So…
Pert Problem cont…
 K – integration testing
 L – Install Software
 M – Write Manual
 N – Train Users
L
1
K
2
3
M
N
5
4
But what is that activity between dates 3 and 4?
So…
Pert Problem cont…
 K – integration testing
 L – Install Software
 M – Write Manual
 N – Train Users
L
1
K
2
3
M
N
4
Dashed line is a dummy activity.
5
Pert Problem cont…
 K – integration testing
 L – Install Software
 M – Write Manual
 N – Train Users
L
K
N
M
Note: dummies not needed with "activity on
node" graphs.
Resource Leveling
 Leveling usually yields longer projects
 Activity Shifting
 to avoid using resources during a peak time.
 use slack in start and end dates
 Activity Splitting
 to shorten duration
 break long activity into pieces when more
resources are available
 Optimize the System, not individual tasks
Leveling Example
B
C
D
2wk
2wks
2wks
A
3wks
E
F
2wks
5wks
H
I
3wks
2wks
G
3wks
 What is the completion time?
 Since F is so long, what would be the completion
time if we break F into two parallel parts of 2wks and
3wks?
Scheduling Tools
 Gantt Chart producers
 MS Project






Web access
Supports multiple projects
Dependencies
Billing support
Resources leveling
Gantt charts, activity network, …
MS Project
Open WorkBench
And finally…
Download