Software Project Management under Uncertainties
Event Chain Methodology
One event can lead to other events or create event chains. For example, an event of architectural change in the software can require refactoring of the software component. As a result, the resource will be pulled from another task, which will change a state: a task will be delayed. Therefore, one event (architectural change) may cause a chain reaction and eventually lead to major change in schedule for the whole project. Event chains can be presented by an event chains diagram, as shown on Fig 1.

Fig. 1. Example of event chains diagram
Fundamentally, calculations in event chains methodology are a variation of Monte Carlo simulations. During the simulation process, project input variables (cost, duration, start and finish time, chance of completion) for each task will be calculated based on event properties. The result of calculation is a statistical distribution for the duration, start and finish time, success rate, and cost of the whole project or any separate task. The results can be represented in the form of frequency or cumulative probability plots. Statistical parameters for each output variable, including mean, variance, standard deviation, maximum and minimum values can also be calculated. They will be used to assess probability of completion of the project within a certain time and budget, as well as the probability of implementing a particular task (for example, features in a software development project).
All scheduling methods require making an initial estimate for the input project variables (task duration, start and finish time, etc.). Goldratt
[5] recommends using median for the task duration; Monte Carlo simulations
[6] allow the project manager to define a statistical distribution. Because event chains methodology is based on Monte Carlo simulations, a project manager is able to specify statistical distributions for the input project variables. However, it is not recommended because if event chains are defined, it can cause a double count of the same uncertainties. Instead, input parameters associated with focused work on activity or “best case scenario” should be defined. In addition, the project manager should define events and event chains that can affect the project schedule. For example, the manager can estimate that developing a particular feature will take from 5 to 8 days. Then the question that should be asked is, “What affects this duration?” It can be a number of potential events: requirement changes, unfamiliarity with development tools, unclear definitions of software architecture, hardware failure, etc. Lists of these events should be assigned to the task. If everything goes well and no issues occur (focused work on activity), the duration of the task will be 5 days.
The probability of a task lying on the critical path (criticality index) used in classic Monte Carlo simulation
[8] also can be calculated as a part of the methodology. However, sometimes it is very important to find out which events or event chains affect output project variables the most. It can be accomplished using sensitivity analysis. These single events or event chains are called critical events or event chains. Results of sensitivity analysis can be presented in the form of sensitivity charts. To generate the sensitivity chart, correlation coefficients between output project parameters and events or event chains must be calculated.
One of the most important components of the event chains methodology is monitoring actual project performance and comparing it with original estimates. The simulation process must be repeated every time new results pertaining to the project or performance of each particular task have become available. Because events are time-based, a new calculation will not include events that could have occurred prior to the actual time. As a result, a new updated project forecast would be available based on real project data.
|