Spread Knowledge

CS615 - Software Project Management - Lecture Handout 38

User Rating:  / 0

Related Content: CS615 - VU Lectures, Handouts, PPT Slides, Assignments, Quizzes, Papers & Books of Software Project Management


Scheduling Tools


There are various tools that help you create a schedule. One of the simplest project management tools used to represent the timeline of activities is the Gantt chart.

Long before the advent of computers, Henry L. Gantt lent his name to a simple and very useful graphical representation of a project development schedule.

The Gantt chart shows almost all of the information contained in the schedule activity list, but in a much more digestible way. The schedule information is more easily grasped and understood, and the activities can be easily compared. The Gantt chart enables us to see at any given time, which activities should be occurring in the project.

A Gantt chart has horizontal bars plotted on a chart to represent a schedule. In a Gantt chart, you plot time on the horizontal axis and activities on the vertical axis.

You represent an activity by a horizontal bar on the Gantt chart. The position of a horizontal bar shows the start and end time of an activity and the length of the bar show its duration. You can have one look at the Gantt chart and make out the
progress of the project. Figure 1 displays a sample Gantt chart.

Gantt Chart

In Figure 1, activity D starts on day 1 of the project. The planned duration of this activity is 20 days. The planned duration is shown in a lighter shade on the Gantt chart. This is done to differentiate planned duration from the current status of the activity. In the case of activity D, the current duration of the activity is 19 days.
Therefore, activity D is still one day short of completion. This can be discerned from the length of the gray and black bars. Activity C, planned for completion on day 40, is much behind schedule. This can be observed from the smaller length of the black bar in the Gantt chart.

To understand how you can use a Gantt chart to schedule a project, consider an example. Table 1 display a set of activities in a software project and the start and end time for each activity.

Table 1: Project Activities and Time Allocation Details

Tasks Time Allocation
(person days)
Planned Start Planned End
Requirement analysis and project planning 10 01/01/2002 01/14/2002
Setting up the environment 6 01/01/2002 01/08/2002
Software construction 80 01/15/2002 05/15/2002
Unit testing 30 05/16/2002 06/28/2002
User training 5 07/22/2002 07/26/2002
System testing 15 07/01/2002 07/19/2002
User documentation 30 01/15/2002 02/28/2002
Data migration 20 01/15/2002 02/15/2002
Conducting user acceptance test 20 08/01/2002 08/31/2002

Using the data shown in the Table 1, you can create a Gantt chart. The Gantt chart is displayed in Figure 2.

Gantt Chart for Activities

In Figure 2, the Gantt chart displays the week-wise status of a software project. A vertical dotted line is drawn through the chart to represent the current date. This line indicates the status of the project on a specific day. The left side of the line indicates the tasks that are completed. On-going activities run across the line. The future activities lie completely to the right of the line. After drawing the Gantt chart you can extend the bars every week to a length proportional to the work completed during the week. Therefore, the bars describe the status of the-project at any point of time.

This process of creating a Gantt chart as discussed above is manual. Nowadays, automated tools are available for creating Gantt charts. For example, you can use Microsoft® ProjectTM 2000 developed by Microsoft to create a project schedule automatically.

Figure 3 is another example of a Gantt chart. The symbols used in the chart are widely accepted, though not standardized. The inverted triangle, for example, is commonly used to represent a significant event, such as a major milestone.

The Gantt chart in Fig. 3 demonstrates the ease with which important schedule information can be quickly perceived. We can immediately see that, except for the maintenance phase, all phases overlap, and that from November to mid-December 1992 three high level activities overlap.

Major milestones

SRR = Software requirements review
POR = Preliminary design review
COR = Critical design review
TRR = Test readiness review
ATP = Acceptance test procedure

-project development schedule

More detailed charts can also include the names of the engineers assigned to each activity, and the equipment that will be needed for each activity. This information can be added next to the activity time lines in the graph, or as an inserted reference table (similar to the list of major milestones in fig 10.1). Some variations of the Gantt chart do include this type of information on the chart, but this can cause clutter, which is contrary to the main objective of the chart; to enable important schedule information to be grasped quickly.

It is also important to understand what Gantt charts do not provide. In a Gantt chart, it is difficult to provide information on the amount of resources required to complete each activity. A common mistake is to conclude that if five engineers are assigned to integration, and the integration activity starts in mid-September 1992 and ends in mid-January 1993 (four months), then integration requires 20 work months. In fact, integration may start with only one engineer, with one more
joining during the second month, and the remaining three engineers joining during the third month. The integration team may then be reduced to three engineers during the fourth integration month.

Figure 3 includes only seven activities. As more detail becomes available, lower level activities can be included on the chart. When the chart has more activities than it can reasonably carry (a subjective decision), additional charts may be added. For example, the design activity can be presented on a separate Gantt chart (see Fig. 4).

Figure 4 presents both high and low level activities. For example, 'Integrate phase 1 model' contains three low level activities: 'Integrate executive', 'Integrate operating system' and 'Integrate user interface'. This provides the continuity link
between the detailed Gantt chart (Fig. 4) and the higher level chart (Fig. 3).

integration schedule

Note that each period of one month in Fig. 3 has been divided into four weeks.
Though not completely accurate, this is a common approximation, used also in estimation and apart from being convenient; it also provides some slack for minor scheduling adjustments.

Similar detailed Gantt charts can be prepared for each of the major project development phases. Non-development activities will also appear on the Gantt chart, such as 'Procurement of development tools', or 'Market research'. This is
particularly useful when certain development activities are dependent on other non-development activities, such as the procurement of development tools (e.g. a compiler) that need to be completed before the implementation activities can begin. In cases where such dependent relationships may have been overlooked, they will often emerge from' a review of the Gantt chart. This type of dependence between activities is best presented in another type of chart, called a Network
precedence chart or a PERT chart.

Network Scheduling Techniques

To plan the activities in a project, you can also use network-scheduling techniques. Network scheduling techniques use network schedules to trace the completion of predetermined activities.

There are two basic network-scheduling techniques:

  • PERT and
  • CPM

You can use either of these techniques to analyze a wide variety of projects. Each technique depicts a project as a sequence of activities. This helps you perform an analysis of individual activities or the complete project.

The network-scheduling techniques also enable you to analyze the dependencies that exist between the activities.

Using PERT and CPM, individually or in combination, helps you complete a project on time. By using these techniques, you can determine the latest time by when an activity should start to be completed on time.

Despite the different approaches followed by PERT and CPM, both techniques have some common components. These include:

  1. Activities
  2. Nodes
  3. Network
  4. Critical path


Activities are the basic building blocks of network schedules. An activity is defined as a task that consumes time, effort, money, or any other resource. It is necessary to specify all the activities of a project by breaking down a project into
several steps.

You need to define the steps in such a way that they are distinct, homogeneous tasks for which you can estimate resource requirements.

Each activity is represented on a network schedule by using an arrow with its head indicating the direction in which the project will progress. Each activity is identified by a description or an alphabet. In addition, the estimated duration of each activity is placed below the activity. Figure 5 shows an activity with expected duration of 15 days.

An Activity

After identifying all the activities in a project, it is necessary to schedule them.
This enables you to arrange the activities in the order of completion. You sequence the activities based on their types.

The different activities that are possible in a project are predecessor, successor, and concurrent activities.

Predecessor activities need to end before the next can begin. After a predecessor activity is completed, the successor activity becomes the predecessor for another activity. However, unlike the predecessor arid successor activities, the concurrent activities can be completed simultaneously with other activities.

Some activities in a project, irrespective of whether they are predecessor, successor, or concurrent, may depict a float period. Float is the amount of time by which an activity may be delayed without affecting the completion date of the entire project. However, the complex dependencies that exist between activities result in sequencing constraints for projects. To a large extent, these constraints limit the flexibility that you may otherwise have in project planning.


A node on a network schedule is that point in time at which an activity either begins or ends. The point where an activity begins is called a tail node and the point where it end is called its head node. On a network schedule, a circle represents a node. A number identifies each node in a network schedule. Figure 6 represents the tail and head nodes for the activity of interviewing clients in a project.

Connecting Two Nodes

Figure 6: An Activity Connecting Two Nodes


A network is the graphic representation of the activities in a project. It depicts all the activities and nodes in the project. On- a network, the arrows terminating at a node need to be completed before the following activity can begin. Figure 7
shows a sample network consisting of five activities in a project.

Network Schedule

Critical Path

The critical path is the longest path through a network. It consists of those activities that cannot be completed concurrent1y. In other words, the critical path represents the maximum duration for a project. You can determine the maximum duration by adding the duration of each activity on the critical path. Typically, a double line in a network schedule represents the critical path for that project. Figure 8.6 shows the critical path for a network.

Critical Path Identified

Figure 8: Network Schedule with Critical Path Identified

All the activities on the critical path are critical for a project. If an activity on the critical path is delayed, the entire project is delayed by the same amount of time.
You need to monitor the activities on the critical path because the project depends on the successful completion of these activities. If required, additional resources can be applied to these activities to shorten the project duration. However, some of these activities may also depict a float period.

Rules for Creating a Network Schedule

There are a few basic rules that are followed while constructing a network schedule.

  1. Each activity has a preceding node and a succeeding node.
  2. Each node has a distinct number. As a convention, the number that is assigned to the head of the arrow is greater than the number that is assigned to the tail.
  3. The network schedule has no loops. For example, in Figure 9, activity 1 is the predecessor of both activity 2 and activity 3. This places activities l, 2, and 3 in a loop

A loop is not permitted

Each activity has a unique preceding and succeeding event associated with it.
For example, in Figure 10, activities A and B have common preceding and succeeding events associated with them. This is not allowed in a network schedule.

Succeeding Events

Figure 10: Activities with Common Preceding and Succeeding Events

At times, you need to introduce a dummy activity in a network schedule. This is an imaginary activity that enables the network schedule to display parallel activities. For example, in Figure 11, consider A and B as two parallel activities that can be executed simultaneously. Both A and B must end so that activity C can begin. A dummy activity is introduced as a dashed arrow to mark the start of activity C. The dummy activity is introduced to show the dependency between activities in the network schedule and does not have a description or duration.

Dummy Activity

Using PERT to Schedule a Project

PERT was developed in 1957 to cater to the needs of the Polaris Fleet Ballistic Missile project of the US government. PERT uses a probabilistic approach to time estimates. You normally apply it to projects that are characterized by uncertainty.

For example, in a complex software project where you require research to identify activities. PERT allows you to account for the uncertainties that are common to most software projects. PERT uses the network schedule to represent a project schedule while taking the uncertainties into account.

Time Estimates in PERT

PERT is a probabilistic technique that uses three time estimates: It assumes that activity times are represented by a probability distribution. To finish an activity, it bases the probability distribution of activity time on three time estimates:

  • Optimistic time
  • Pessimistic time
  • Most likely time

The optimistic time is the shortest time period within which an activity can end if everything goes well.

The pessimistic time is the time that an activity takes to complete if everything that can go wrong goes wrong. This is the longest time that an activity can take to complete.

The most likely time is the estimate of the normal time that an activity takes to complete.

From these three estimates, you derive the expected time to complete an activity. The expected time is also referred to as the average time for the activity.

To calculate the expected time for each activity, you use the following equation:

expected time for each activity

According to this equation, you calculate the expected time for an activity as a weighted mean of the optimistic, most likely, and pessimistic times. The weights attached to these times are 1, 4, and 1, respectively.
Consider the example of the activities in a software project as given in Table 1. The time estimates provided in Table 1 are the estimated times for each activity. Table 2 provides the break-up of the estimated times into the optimistic, pessimistic, and most likely times for each activity.

Table 2: Optimistic, Most Likely Time, and Pessimistic Estimates for Activities

Tasks Optimistic Time
(person days)
Most Likely
Time Estimates
(person days)
Time Estimates
(person days)
Requirement analysis and project planning 7 10 13
Setting up the environment 3 6 9
Software construction 48 83 100
Unit testing 20 28 33
User training 4 5 6
System testing 10 15 20
User documentation 23 28 45
Data migration 18 18 30
Conducting user acceptance test 14 21 22

Using the formula for calculating estimated time for an activity, the estimated time for requirements analysis and project planning is:

project planning

Similarly, you can calculate the estimated times for all the activities in Table 2 using the above formula.

Figure 12 shows the PERT network schedule created using the time estimates.

PERT Network Schedule

PERT packages and enhancements

Some enhanced versions of the PERT chart support additional planning activities, such as personnel assignment, resource allocation and cost analysis.
The chart can then draw attention to situations where personnel are assigned more responsibilities than they can handle, or where allocation of resources conflicts.

An interesting adaptation of PERT, called flow graph representation, which was developed by Riggs and Jones (1990), uses precedence networks to perform project life cycle cost analysis. The flow graph technique analyzes project costs based on relationships between quantities, unit cost, time variables, staffing costs and learning etc., all of which are represented on the PERT- like chart.

The flow graph representation technique places a significant amount of information on the network graph. This information, just like the basic PERT information, must be kept constantly updated. A small change to a large PERT chart can require the complete redrawing of the chart and the recalculation of the critical path. The resulting tedium does not promote much enthusiasm for keeping the chart updated. For this reason, many computerized PERT utilities have been developed.

PERT software packages have been available for many years, but it is only during the past few years that good professional PERT packages have become available on PCs and other small computers. These packages take much of the tedium out of the preparation of PERT charts, and also come with additional features such as various planning analyzers for activity assignment, what if scenarios and resource allocation.

Computer utilities have been developed to perform flow graph representation analysis which produces scheduled costs for major project activities2. These utilities have proven invaluable for project managers and release managers from laborious desk work, providing them with more time to actively manage the project.