270 likes | 385 Views
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?. Coordinate What to do and When? Monitor Are we on time? Are problems starting to occur? . Reminder : Why is software late?.
E N D
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? • Coordinate • What to do and When? • 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) • Determine dependencies of activities. • Major Activities are listed in the WBS. • Leverage past projects to determine dependencies. • Surprises are very bad. • Use dependencies to build activity network diagram (e.g. PERT chart). • Determine critical path. • 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 StartFinish • 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 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? es=2ndwk ls=4thwk ef=3rdwk lf=5thwk
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 • 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
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 M N 1 2 3 4 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 3 K 1 2 M N 4 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 3 K 1 2 5 M N 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 3 K 1 2 5 M N 4 Dashed line is a dummy activity.
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 • 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? B 2wk C 2wks D 2wks H 3wks I 2wks A 3wks E 2wks F 5wks G 3wks
Scheduling Tools • Gantt Chart producers • MS Project • Web access • Supports multiple projects • Dependencies • Billing support • Resources leveling • Gantt charts, activity network, …