software project scheduling

37
Project Scheduling Unit I

Upload: amit-udhwani

Post on 07-Aug-2015

184 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Software project scheduling

Project Scheduling

Unit I

Page 2: Software project scheduling

What is Scheduling?

Is an important part of project planning activity.It involves deciding which tasks would be taken up when.

Page 3: Software project scheduling

Why Scheduling?

The majority of projects are 'completed' late, if at all. A project schedule is required to ensure that required project commitments are met. A schedule is required to track progress toward achieving these commitments.

Page 4: Software project scheduling

Why Software is Delivered Late?

An unrealistic deadline Changing but unpredicted customer requirementsUnderestimation of efforts neededRisks not considered at the project startUnforeseen technical difficultiesUnforeseen human difficultiesMiscommunication among project staffFailure to recognize that project is falling behind schedule

Page 5: Software project scheduling

Project Scheduling

“One Day at a Time”All technical projects involve hundreds of small tasks.Some tasks do not effect the project completionOther tasks are critical for the project completion.

Page 6: Software project scheduling

Project Scheduling

To schedule the project, a project manager must do the following:

Define all project tasksBuild a network that depicts their interdependence.Identify the critical tasksTrack the progress of these tasksRecognize the delay “one day at a time”

Page 7: Software project scheduling

Different Perspectives to View Scheduling

End date for completion has been finalized

Only Rough time-frame is given

Page 8: Software project scheduling

Basic Principles for S/W Project Scheduling

Compartmentalization – define distinct tasksInterdependency- parallel and sequential tasksTime allocation - assigned person days, start time, ending timeEffort validation - be sure resources are availableDefined responsibilities — people must be assignedDefined Outcomes- each task must have an outputDefined milestones - review for quality

Page 9: Software project scheduling

Relationship betweenPeople & Effort

“If we fall behind schedule we can always add more programmers and catch to late in the project”

Has a disruptive effect on the project

Schedules slip even further

Page 10: Software project scheduling

People & Effort

The relationship between the number of people working in software project and overall productivity is not linear

Fewer people and longer time period is a better option

for software development

Page 11: Software project scheduling

Scheduling

To make a schedule, following tasks must be completed:

Identify all the tasks needed to complete the project

Break down large tasks into small activities.

Determine dependency among different activities.

Establish estimates for time durations to complete the activities.

Allocate resources to activities.

Plan starting and ending dates for activities.

Determine the critical path (chain of activities that determines the duration of the project)

Page 12: Software project scheduling

Scheduling

The first step involves identifying all the tasks necessary to complete the project.

This can be done when the manager has good knowledge about the intricacies of the project and development process.

Page 13: Software project scheduling

Scheduling

In the next step large tasks are broken down into logical set of small activities which would be assigned to different developers.

The work breakdown structure (WBS) helps the managers to do this systematically.

Page 14: Software project scheduling

Scheduling

After the large tasks are broken down into small activities & a WBS is created, the manager has to find the dependency among the activities.

Dependency determines the order in which different activities would be carried out.

For example, if an activity A requires the results of activity B, then A must be scheduled after B.

Page 15: Software project scheduling

Scheduling

Once the activity network representation has been done, resources are allocated to each activity.

Resource allocation is typically done using Gantt Chart.

Page 16: Software project scheduling

Scheduling

After resource allocation, a PERT chart representation is developed.

PERT is suitable for project monitoring and control.

The time frame when each activity has to be performed is also determined.

The end of each activity is called as a milestone.

Page 17: Software project scheduling

Scheduling

If the project manager observes that the milestones are getting delayed, he has to carefully control the activities so that the overall deadline can still be met.

Page 18: Software project scheduling

Work Breakdown Structure

WBS is used to decompose a given task set recursively into small activities.It provides a notation for representing the major tasks needed to be carried out.The root of the tree is labelled by the problem name.Each node of the tree is broken down into smaller activities.Each activity is recursively decomposed into smaller sub activities, until at the leaf level, the activities require approximately 2 weeks to develop.

Page 19: Software project scheduling

MIS Application

Requirement Specification

Design Code TestDocumen

t

Databse Part

GUI Part Databse Part

GUI Part

WBS of an MIS application Problem

Page 20: Software project scheduling

Activity Network

WBS representation of a project is transformed into an activity network.And activity network shows

Different activities making up a project,Their estimated durations, andInterdependencies.

Each activity is represented by a rectangular node and its duration is shown alongside each task.

Page 21: Software project scheduling

Activity Network: Example

Specification15

Design Database

45

Design GUI30

Code Database

105

Code GUI45

Write User Manual

60

Integrate & Test120

Finish

Page 22: Software project scheduling

Some Questions

Draw the network diagram for the following:

Activity Duration(in days)

1-2 2

1-3 5

2-3 1

2-4 9

3-4 5

4-5 3

Page 23: Software project scheduling

Some Questions

Draw the network diagram for the project whose activities & duration are given:

Activity Duration(in days)

Immediate predecessor

A 2 -

B 5 A

C 1 A

D 7 B

E 6 C

F 1 D, E

Page 24: Software project scheduling

Critical Path Method (CPM)

Critical path is the sequence of Critical Activities in a network.A network diagram may have more than one critical paths.It is the largest path in a network.Critical path gives the minimum time required to complete a project.The activities in the critical path are called critical activities.The nodes in the critical path are called critical nodes or events.If the critical activities are delayed, then the project is also delayed.

Page 25: Software project scheduling

Critical Path Method (CPM)

From the network diagram, following analysis can be made:

Minimum Time (MT): to complete the project is maximum of all paths from start to finish.

Earliest Start Time (ES): is the maximum of all paths from start to this task.

Latest Start Time (LS): is the difference between MT and maximum of all paths from this task to finish.

Earliest Finish Time (EF): of a task is the sum of the ES of the task and its duration.

Latest Finish Time (LF): of a task can be obtained by subtracting maximum of all paths from this task to finish from the MT.

Slag Time (ST): is LS-ES and LF-EF

Page 26: Software project scheduling

Critical Path Method: Example

Specification15

Design Database

45

Design GUI30

Code Database

105

Code GUI45

Write User Manual

60

Integrate & Test120

Finish

Page 27: Software project scheduling

Critical Path Method: Example

From the above diagram:MT= 285 days

Critical task is the one with slack time = 0

Critical path is indicated with double lines.

Activity ES EF LS LF ST

Specification 0 15 0 15 0

Design Database 15 60 15 60 0

Design GUI 15 45 90 120 75

Code Database 60 165 60 165 0

Code GUI 45 90 120 165 75

Integrate 165 285 165 285 0

Write User Manual 15 75 225 285 210

Page 28: Software project scheduling

Critical Path Method: Example

Specification15

Design Database

45

Design GUI30

Code Database

105

Code GUI45

Write User Manual

60

Integrate & Test120

Finish

Page 29: Software project scheduling

PERT

Project Evaluation & Review Technique.Is a technique for estimating and planning a project.Similar to CPM,

a PERT chart consists of a network of boxes/circles and arrows.The boxes/circles represent activities & arrows represent task dependencies.

One of its most powerful concepts is that project management is the management of probabilities.It represents the statistical variations in the project estimates assuming a normal distribution.

Page 30: Software project scheduling

PERT

Thus, in a PERT chart, instead of making a single estimate for each task, three estimates are made:

Optimistic,Most Likely, andPessimistic.

All of these estimates are written in the boxes/circles of the PERT chart.These three estimates are combined to calculate an expected duration.

Page 31: Software project scheduling

PERT

Expected Duration (E)=O + 4*M + P6

Consider a simple project of three tasks:

If the first task begins on day Zero, what day can we expect the third task to complete?

Task 1

3,5,9

Task 2

4,5,12

Task 3

7,9,15

End

Page 32: Software project scheduling

PERT

So expected duration of the project = 5.33+6+9.67 = 21 days

Task E

Task 1 (3+5*4+9)/6 = 5.33

Task 2 (4+5*4+12)/6 = 6

Task 3 (7+9*4+15)/6 = 9.67

Page 33: Software project scheduling

Gantt Charts

Gantt charts have been named after their developer Henry Gantt.They are mainly used to allocate resources to activities.The resources include:

Staff,Hardware, andSoftware.

They are useful for resource planning.

Page 34: Software project scheduling

Gantt Charts

A Gantt chart is a special type of bar chart where each bar represents an activity.The bars are drawn along a timeline.The length of each bar is proportional to the duration of time planned for that activity.Each bar consists of a shaded part and a white part.The shaded part shows the length of the time each task is estimated to take.The white part shows the slack time.

Page 35: Software project scheduling

Example

Specification15

Design Database

45

Design GUI30

Code Database

105

Code GUI45

Write User Manual

60

Integrate & Test120

Finish

Page 36: Software project scheduling

Jan 1 Jan 15 Mar 15 Apr 1 July 15 Nov 15

Specification

Design Database

Design GUI

Code Database

Code GUI

Integrate & Test

Write User Manual

Page 37: Software project scheduling

Monitoring & ControlOnce a project starts, the project manager has to monitor the project continuously to ensure that it is progressing as per the plan.

The project manager designates certain key events such as completion of some important activity as milestones.

For example, a milestone can be the completion & review of SRS document.

If any delay in reaching a milestone is predicted, then corrective actions might be taken.

This may mean reworking all the schedules & producing a fresh schedule.

PERT and CPM both help in determining a critical path, through which critical activities can be identified and monitored.