18
Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

Embed Size (px)

Citation preview

Page 1: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

Lecture 3Scheduling

CSCI – 3350 Software Engineering II

Fall 2014

Bill Pine

Page 2: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 2

Motivation for Scheduling

• A schedule is The tool for – Determining if the project is on time– Reallocating if the project is not on time– Ensuring resources are available when needed– Ensuring personnel can be efficiently utilized

Page 3: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 3

Developing a Schedule

• The starting point for the project schedule– The work breakdown structure (WBS)

• If WBS is properly executed– Detailed enough to provide reasonably accurate

estimates of task effort– Contains all deliverables, and all tasks

necessary to produce the deliverables

• We’ll begin by examining a Gantt chart

Page 4: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 4

Creating a Gantt Chart

• Revisit the WBS– Review the effort (man-months)

• Steps to a Gantt chart1. Assign personnel to each task

2. Assign a start time to each task and event time to each milestone

3. Draw a time scale appropriate to the project

4. Add each task and milestone

Page 5: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 5

Assigning Personnel

• Convert the task effort to task duration– In the simplest cases– Divide the effort by the number of people

assigned

• If an individual is split between multiple tasks– Do an allocation of that individual’s time across

all tasks

Page 6: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 6

Assign a Start Time

• Four possibilities– Assign a fixed date / time– Set start time to match the finish time for another

task– Set start time to match the finish time for another

task plus a fixed delay– Set the start time to produce a finish time to match

the finish time for another task

Page 7: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 7

Draw a Time Scale

• Linear scale– Display project from beginning to end– With convenient subdivisions

Page 8: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 8

Add Each Task and Milestone

• Add tasks and milestones in order– For tasks

• Draw a rectangle whose left edge aligns with the start time

• Length corresponds to the duration of the task

– For milestones• Draw a diamond at the event time

Page 9: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 9

Schedule Example

• Deliverables– Design Document due 2 weeks after all designs are complete– User Manual due at the end of integration

• Milestones– Design review 1 week prior to Design Document delivered– System delivery 1 week after end of system testing

Task Start Duration (weeks) Assess Beginning of project 2 Design A End of Assess 1 Implement A End of Design A 3 Design B End of Assess 2 Implement B End of Design B 4 Modify C for reuse End of Assess 5 Integrate A, B, C Completion of A, B, C 2 System test End of Integrate A, B, C 2

Page 10: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 10

Schedule Summary

• To be useful, a schedule must be maintained• Review the schedule weekly

– Modifying the durations to correspond to over-runs and under-runs

– Compare the new schedule to the original schedule (baseline) to determine the effects of changes

• Exceedingly laborious to manually prepare and maintain a Gantt chart

• Use software tool to draw and maintain Gantt charts– Microsoft Project

Page 11: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 11

Critical Path Analysis

• A method of analyzing a complex schedule• CPA provides the project manager with

– The minimum time required to complete the project

– A means of prioritizing activities • To achieve the scheduled completion date

– A rationale for reallocating resources • To adjust for slippages in the schedule

Page 12: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 12

Critical Path Analysis (continued)

• The underlying principle of CPA:– Some activities in the project depend upon

other activities• The dependant activities must be completed in

sequence

– Other activities may not depend upon the previous activities• Have flexibility in scheduling these activities

Page 13: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 13

Critical Path How-To

• Handout on Critical Path Analysis method

Page 14: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 14

Demonstration of CPA

• Perform a CPA on the following project • Assume a 5 January start date

Task Duration(weeks) Depends Upon 1 1 Nothing 2 1 1 3 2 1 4 3 1 5 3 3 6 1 5 7 2 6 8 2 2 9 4 4 10 3 9 11 1 7, 8, 10

Page 15: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 15

Using the Network Diagram

• Activities along the critical path are the ones that must be most closely monitored – Any slippage in any of these tasks extends the finish

date

• If you want to compress the project– Blindly throw a lot of resources at all tasks– Apply resources just to tasks along the critical path– Nota Bene

• Applying enough resources may define a “new” critical path

Page 16: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 16

PERT

• Program Evaluation and Review Technique is a variation of Critical Path analysis

• PERT takes a more conservative approach to estimating task durations

• For each task, provide an estimate of – The shortest likely time to complete a task - slt– The most likely time to complete a task - mlt– The longest likely time to complete a task – llt

Page 17: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 17

PERT (continued)

• Calculate a task duration time as

• The purpose of the 1, 4, 1 weighting is to give less importance to overly optimistic or pessimistic estimates

6

*4 lltmltsltDurationTask

Page 18: Lecture 3 Scheduling CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350 Lecture 3 - 18

Critical Path Analysis - Summary

• CPA is an effective and powerful means of assessing– What activities must be carried out– Where parallel activity can be performed– The shortest possible time to complete the project– Resources needed to carry out the project– Sequences and timing among the tasks– Task priorities– The most efficient way to allocate resources to

compress the schedule