scheduling work i love deadlines. i love the sound they make as they fly by. -- douglas adams
TRANSCRIPT
Scheduling WorkScheduling 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/476)
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
http://www.cs.unc.edu/~stotts/COMP145/homes/map/images/pert.gif
CPM ExampleCPM Example
http://www.mckinnonsc.vic.edu.au/la/it/ipmnotes/ganttpert/pert_chart.gif
PERT ExamplePERT Example
Example Activity Network – Activity on Node
T1
T2
T3
T4 T6
T5
T7
T8 T9
1wk
2wks
4wks
3wks
1wks
1wk
3wks
2wks 1wk
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 2 3 4 5 6 7 8 9 10 11 12 13 14
T1
T2
T3
T4
T5
T6
T7
T8
Advanced Scheduling TopicsAdvanced 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:Q: How confident can we be in our milestone dates and the delivery date?
Q:Q: Can we calculate the confidence level?
A:A: Using confidence values and Statistics1. 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
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…
3 4 521K L M N
Pert Problem cont…
K – integration testing L – Install Software M – Write Manual N – Train Users
But wait, the system needs to be installed before we can use it to train people. So…
3
4 5
21K
L
M N
Pert Problem cont…
K – integration testing L – Install Software M – Write Manual N – Train Users
But what is that activity between dates 3 and 4? So…
3
4521
KL
M N
Pert Problem cont…
K – integration testing L – Install Software M – Write Manual N – Train Users
Dashed line is a dummy activity.
3
4521
KL
M N
Pert Problem cont…
Note: dummies not needed with "activity on node" graphs.
K N M
L
K – integration testing L – Install Software M – Write Manual N – Train Users
Resource LevelingResource 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
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?
A3wks
B2wk
E2wks
C2wks
F5wks
G3wks
H3wks
I2wks
D2wks
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…And finally…