Title: Scheduling%20Work
1Scheduling Work
- I love deadlines.
- I love the sound they make as they fly by.
- -- Douglas Adams
2Why 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 Practitioners Approach
by Pressman
3How to build a schedule
- Determine dependencies of activities found in
WBS. - Use dependencies to build activity network
diagram (eg PERT). - Determine critical path.
- Map network to a timeline (eg Gantt Chart) using
the effort estimates. - Use a software tool to help do this work.
4Why Determine Dependencies?
- Dependencies determine deadlines and when work
can begin. - The WBS shows hierarchy, not dependency.
- Planners must find all dependencies.
- Surprises are very bad!
5Dependency Types
- External Dependency
- Other projects
- Stakeholders
- Sub-Contractors
- Internal Dependency
- Audits (design, testing, documentation, )
- Sign-Offs at end of phase
6Dependency 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 coding is done
7Dependency 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.
8Activity Networks
- CPM Critical Path Method
- activities are graph nodes (circles)
- single estimate for duration of tasks
- PERT Program Evaluation and Review Technique
- activities are graph arcs (lines)
- activity times are ranges and include
probabilities
9http//www.cs.unc.edu/stotts/COMP145/homes/map/im
ages/pert.gif
10http//www.mckinnonsc.vic.edu.au/la/it/ipmnotes/ga
nttpert/pert_chart.gif
11Example Activity Network Activity on Node
1wks
2wks
T5
T2
1wk
3wks
1wk
2wks
1wk
T1
T4
T6
T8
T9
4wks
T3
3wks
T7
- Questions
- Minimum time to complete the project?
- Critical Path?
- For T2, what are the earliest start time, latest
start, earliest finish, latest finish? - es2ndwk ls4thwk ef3rdwk lf5thwk
12Resulting Gantt Chart
1 2 3 4 5 6 7 8 9 10 11 12 13 14
T1
T2
T3
T4
T5
T6
T7
T8
13Managing Uncertainty
- Q How confident can we be in our milestone dates
and the delivery date? - A Using confidence and Statistics
- for each task, determine pessimistic and
optimistic times - if PT-OT is small for all tasks, then great!!!
- compute average PT-OT, and std dev
- if a task's PT-OT is outside the std dev, worry
about that task
14Managing 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
15Common PERT Problems
- Missing dependencies
- Misinterpretation
16Example
- K integration testing
- L Install Software
- M Write Manual
- N Train Users
L
K
M
N
3
4
5
2
1
17Example
- K integration testing
- L Install Software
- M Write Manual
- N Train Users
L
K
M
N
3
4
5
2
1
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
18Example
- K integration testing
- L Install Software
- M Write Manual
- N Train Users
L
3
K
2
1
M
N
4
5
But wait, the system needs to be installed
before we can use it to train people. So
19Example
- K integration testing
- L Install Software
- M Write Manual
- N Train Users
L
3
K
2
1
5
M
N
4
But what is that activity between dates 3 and 4?
So
20Example
- K integration testing
- L Install Software
- M Write Manual
- N Train Users
L
3
K
2
1
5
M
N
4
Dashed line is a dummy activity.
21Example
- 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.
22Resource Leveling
- Activity Shifting
- to avoid using resources during a peak time.
- use slack in start and end dates
- Activity Splitting
- to shorten duration
- break activity into pieces when more resources
are available - Optimize the System, not individual tasks
- Leveling usually yields longer projects
23Example
B 2wk
C 2wks
D 2wks
H 3wks
I 2wks
A 3wks
E 2wks
F 5wks
G 3wks
- What is the completion time?
- Since F is so long, what would be the completion
time if we break it into two parallel parts of
2wks and 3wks?
24Theory of Constraints
- The Goal by Goldratt in 1997
- Traditional approach is to divide and divide into
manageable parts, then optimize these parts. - TOC looks at the whole system.
- Identify In order to manage a constraint, it is
first necessary to identify it. - Exploit Focus on how to get more production
within the existing capacity limitations. - Subordinate Prevent the materials needed next
from waiting in a queue at a non-constraint
resource. - Elevate If, after fully exploiting this process,
it still cannot produce enough products to meet
market demand, find other ways to increase
capacity. - Go back to Step 1.
25Scheduling Tools
- Gantt Chart producers
- MS Project
- Web access
- Supports multiple projects
- Dependencies
- Billing support
- Resources leveling
- Gantt charts, activity network,
26MS Project
27Open WorkBench
28ATC Professional
29And finally