Software Project Scheduling Under Uncertainties
Software Project Scheduling Under Uncertainties
Materials published by Intaver Institute Inc. may not be published elsewhere without prior
written consent of Intaver Institute Inc. Requests for permission to reproduce published
materials should state where and how the material will be used.
Managing of risk and uncertainties during the course of a project has become one of
the priorities of the software project manager. Any research and development projects
are affected by a large number of events, which can significantly change the course of
a project. These events may form groups of related events or event chains. The paper
discusses a proposed methodology of modeling the software project scheduling using
event chains, classification of the events and chains, identification of critical chains,
analysis of effect of the chains on project duration, cost, and chance of project
completion. The paper presents a practical approach to modeling and visualizing
event chains. The event chains methodology can contribute to reducing uncertainties
in project scheduling through mitigation of psychological biases and significant
simplification of the process of modeling, tracking, and analysis of project schedules.
Introduction
Project scheduling is an important step in the software development process. Software
project managers often use scheduling to perform preliminary time and resource
estimates, general guidance, and analysis of project alternatives. One of the major
challenges in software project management is that it is difficult to adhere to the
schedules due to the uncertainties related to requirements, schedules, personnel, tools,
architectures, budgets, etc.
Software project managers recognize the importance of managing uncertainties. The
iterative development process, identification and analysis of potential risks and
utilization of other best practices can reduce uncertainties and help deliver the project
according to the original time estimate, scope, and cost [1,7]. However, software
project managers are not always familiar with probabilistic scheduling and tracking
techniques or consider it as unnecessary overhead. Modeling the project schedule with
uncertainties on the planning phase remains important as it allows the manager to
estimate feasibility of the delivery date, analyze the project, and plan risk mitigation.
This paper proposes a methodology for managing uncertainties based on an analysis
of project events or groups of related events (event chains). The methodology can be
easily understood by project managers who are not familiar with advanced statistical
1. The task duration, start and finish time, cost, and other project input parameters can
be influenced by motivational factors such as total project duration to much greater
extend than events and event chains. It happens because events cannot be easily
translated into the duration, finish time, etc. Therefore, event chains methodology
can help to mitigate certain effects of selective perception in project management.
2. The event chains methodology relies on estimation of duration based on focused
work on activity and does not necessarily require low, base, and high estimation or
statistical distribution; therefore, the negative effect of anchoring can be mitigated.
3. The probability of event can be easily calculated based on historical data. It helps to
mitigate the effect of the availability heuristic. The probability equals the number of
times an event actually occurred in previous projects divided by total number of
situations when event could have occurred. In classic Monte Carlo simulations, the
statistical distribution of input parameters can also be obtained from the historical
data; however, the procedure is more complicated and rarely used in practical
software project management.
4. The compound events can be easy broken into smaller events. Information about
these small events can be supported by reliable historical data. This mitigates the
effect of biases in estimation of probability and risk.
Single Events
Single events are the building blocks of the comprehensive probabilistic model of the
software development process.
Each event has a number of properties. The events can affect the whole project, a
group of tasks, a particular task, or the resource. For example, if it is discovered that a
selected software tool does not provide the required functionalities, all tasks that are
using this tool can be delayed.
The following types of events are commonly used in the software development
project:
Start and end tasks or group of tasks,
Duration of a task or duration of each task within the group can be increased or
reduced,
Costs associated with a task or group of tasks can be increased (reduced),
Tasks or each task within a group can be canceled,
Resources can be reassigned or a new resource can be assigned, and
Whole projects can be canceled.
A new task duration or cost can be calculated in different ways. The task can be
restarted from the moment when an event has occurred. Further, the task can be
delayed or duration can be increased/ reduced. For example, duration can be increased
by 20%.
The events can be categorized based on relationship between individual tasks (group
of tasks) they are assigned to and the tasks (group of task) they are affecting. The
event can be assigned to and affect the same task. Alternatively, the event can affect a
different task or a group of tasks from the task it was assigned to. For example, a
purchase of more powerful hardware will reduce development time for a group tasks.
Often a single event can be initiated within a project without any relationship to the
particular task. It can affect a single task, a group of tasks, or a complete project. For
instance, changes in the projects budget can affect all tasks from the moment these
changes have occurred.
Another property of the event is the chance of its occurrence. For example, there is a
2% chance of the event where the whole project will be canceled due to budgetary
constraints. If the cost or duration of the task has been increased or reduced, the event
will include additional set of properties. This information includes time or cost
additions or time and cost savings. This can be calculated in absolute units (days,
dollars, etc.) or as a percentage of the task duration or cost. For example, in event of
inconsistent software development requirements, duration of the construction iteration
can increase by 30%.
One task can have a group of mutually exclusive events. For instance, there is a 20%
chance that duration of a task will be increased by 35%, a 30% chance that duration
will increase by 10%, and a 5% chance that task will have to be canceled.
Alternatively, the task can be simultaneously affected by some combination of these
events. For example, there is a 20% chance that duration and cost can be increased
together.
The next property of the event is chronological. This parameter can be deterministic,
but in most cases it is probabilistic. For example, the event can occur between the
start time and end time of the task minus two days, but will most likely occur two
weeks after the task has started. This information can be represented by the triangular
statistical distribution.
The time when the event occurs is important. If the event results in the cancellation of
the task, to calculate the task duration, it is important to know when it occurred. This
information is also crucial when tracking of project performance in order to filter
events that could have occurred before the actual date. Finally, in certain cases, it is
essential to know when the event has occurred to calculate the new duration and cost.
Event Chains
Event chains are the cornerstones of the proposed methodology. There are two main
groups of event chains: explicit and implicit. In explicit event chains, one event causes
another event. Implicit event chains include conditional events; therefore, in implicit
event chains, one probabilistic event may cause another event. For example, the
original event affects task duration and if there is a change in requirements, task
duration can be increased. However, the task may have a deadline. A conditional
event can be linked to this project parameter. If the deadline is reached, the event will
result in cancellation of the task. In current example, the original event is causing the
chain reaction, which leads to termination of the task.
The proposed methodology enables project managers to model very complex project
scenarios. To illustrate, below provided some of the possible situations that can be
modeled easier by using proposed methodology compared to traditional methods.
probabilistic events are included in this example. The model has been created using a
commercial project planning software that utilizes event chains methodology.
Creating the Baseline Project Schedule
The first step in scheduling processes using event chains is very similar to what
project managers do using traditional methodologies. The project schedule will be
created and presented in the form of a Gantt chart. The project manager should
specify input project parameters, such as duration, start and finish time, cost, etc., that
are associated with a best case scenario or a focused work on activity.
Defining events
Each task can be affected by multiple potential events. The project manager should set
up a list of events for tasks and resources. Fig. 2 shows list of events for the task.
In this example, events significantly increased the duration of all tasks and the whole
project. Results of the simulation are shown on Fig 4. as a table and a frequency chart.
The chance that project duration is below a certain number is a measure of the project
risk.
Fig. 4. Simulation results: frequency chart for duration and results in table format
Results of the sensitivity analysis are presented on Fig. 5. The chart shows how
sensitive the project duration is to the uncertainty related to a number of events. It
demonstrates that duration is most sensitive to the Software Performance Not
Acceptable event. This means that software performance is the projects the most
important risk factor. This example illustrates how the proposed methodology allows
the generation of risk lists for the software projects.
Conclusions
The proposed event chains methodology is applicable to different time-related
business or technological processes. The methodology can be very effective in
software project management, where it can significantly simplify a process with
multiple uncertainties.
References
1. Beck K.: Extreme Programming Explained Embrace Challenge. AddisonWesley, Reading, MA. (2000)
2. Carroll, J.S.: The effect of imagining an event on expectations for the event: An
interpretation in terms of availability heuristic. Journal of Experimental
Psychology, 17, (1978) 88-96
3. Cho J.G., Yum B.J.: An Uncertainty Importance Measure of Activities in PERT
Networks. International Journal of Production Research, 12, (1964) 460-470
4. Futrell R.T., Shafer D.F., Shafer L.I.: Quality Software Project Management,
Prentice Hall PTR, Upper Saddle River, NJ, (2002)
5. Goldratt, E.: Critical Chain. North River Press, Great Barrington, Mass. (1997)
6. Hulett D.T.: Schedule Risk Simplified, PM Network, July, (1996) 23-30
7. Jeffries, R., Anderson A., Hendrickson C.: Extreme Programming Installed.
Addison-Wesley, Reading MA. (2000)
8. Klastorin T.: Project Management. Tools and Trade-Offs. Wiley, (2004)
9. McCray G.E., Purvis R.L., McCray C.G.: Project Management Under
Uncertainties: The Impact of Heuristics and Biases. Project Management Journal.
Vol. 33, No. 1. (2002) 49-57
10. Newbold R.C.: Project Management in the Fast Lane: Applying the Theory of
Constraints. St. Lucie Press, Boca Raton, FL, (1998)
11. Plous S.: The Psychology of Judgment and Decision Making, McGraw-Hill
(1993)
12. Tversky, A., Kahneman, D.: Belief in the law of small numbers. Psychological
Bulletin, 76, (1971) 105-110
13. Tversky, A., Kahneman, D.: Availability: A heuristic for judging frequency and
probability. Cognitive Physiology, 5, (1973) 207-232
14. Tversky, A., Kahneman, D.: Judgment Under Uncertainty: Heuristics and biases.
Science, 185, (1974) 1124-\1130