Whether one is a project manager for an Open Source Business Intelligence Project or any project for that matter, managing and monitoring project schedules are very important. One must continuously monitor schedule to actual work performed to ensure that the project stays on target. Delays in the project schedule affect all the aspects of the project.
In our project engagements one (with respect to Time Management) of the project performance reports we do is Float Analysis.
The concept of float is integral to Critical Path. Float or sometimes referred to as “Slack” can be thought of as the maximum time an activity can slip without delaying the end date of project. As a quick way of looking at a float for a network diagram, if an activity is on the critical path, it has a zero float. (I have read some technical cases where this is not always true but it is still a quick way to look at it ) Simply, the activity with zero float has no time buffer or allowance for work slippage, i.e., if the activity is not finished on time, it will cause the project to fall behind schedule.
If we look at the example of the previous blog post, Critical Path in Schedule Management, the sample durations are:
Click to view original size
If you look at this simple example, all the activities are in the critical path since the critical paths are:
Start-A-B-E-F-C-End and Start-D-B-E-F-C-End.
Remember though that when managing the schedule and critical activities of your project, the other aspects of the project - Scope, Cost, Quality, Resource Management, Communication, Risk, and Procurement Management should not be neglected or have less emphasis.
There are two terms related to Critical Path that one may encounter. These are the terms Forward Pass and Backward Pass. These terms are related to ways of determining the early or late start [forward pass] or early or late finish [backward pass] for an activity.
Forward pass is a technique to move forward through a diagram to calculate activity duration. Backward pass is its opposite.
Early Start (ES) and Early Finish (EF) use the forward pass technique.
To determine the Early Start of an activity, factor in all its dependencies and see its earliest start date.
Consider the following simple diagram (durations are in weeks):
Click to view original size
The Early Start (ES) for Activity B is 4. Why? B comes after A. A starts on week 1 and finishes on week 3. So the earliest that B can start is week 4. For simplicity, I think of it as: The duration of preceding activity + 1
The Early Finish (EF) is the earliest calculated time an activity can end. To calculate Early Finish, (ES for the activity + Activity Duration) - 1. From the diagram above, we can compute the EF of activity B as [(4 + 3) - 1] = 6. Hence, the EF for Activity B is 6.
Late Start (LS) and Late Finish(LF) use the backward pass technique. You can think of backward pass as calculating backward to see how much an activity may slide without affecting the finish date.
Late Start (LS) is the latest time an activity may begin without delaying the project duration. The simplest way one can compute the LS is adding the float to the activity Early Start. Using the simple diagram above, we know that Activity B is on the critical path, hence has a float of zero. Also, Activity B's ES = 4. Hence, LS = (0 + 4) or 4. Note that if an activity has a float of zero, ES and LS will be the same.
Late Finish (LF) latest time an activity may be completedwithout delaying the project duration. One can compute LF by LF =(Activity's LS + Activity Duration) - 1. So the LF of Activity B = (4 + 3) - 1 = 6. Note that since activity B has a zero float, EF = LF.
For memory trigger, if the float of the activity is zero, the two starts (ES and LS) and the two finish (EF and LF) are the same. Hence, If float of activity is zero, ES = LS and EF = LF.
Project Management Network Diagrams are helpful in determining where most of the schedule project risks will occur. A critical path is made up of activities that cannot be delayed without delaying the end date of the project.
How does one compute the critical path? The simple example below illustrates the process. If one has a network diagram such as:
Click to view original size
Find all the possible activities and the corresponding duration:
Then, the fun part ... Trace all the possible paths then sum up all the duration.
Click to view original size
From the simple example above, our critical paths are:
Start-A-B-E-F-C-End and Start-D-B-E-F-C-End.
Computing the critical path is a good way to manage project schedules and associated risks. If you are not using it, try it and it may make a big difference for you.
In my years of project management, I have noted key factors that led to successful projects:
It is important to realize that things that happen during a project life cycle don't happen in a vacuum. Changes that occur affect the whole project. Hence, when a scope is changed, time and cost are also affected. I have seen projects that have failed because budget was cut and the schedule and scope were not revisited. In this case, risk increased and customer satisfaction was affected.
Getting input from the users increases the quality of a data model. Joint Application Development (JAD) sessions facilitate and accelerate the modeling process. During the JAD sessions, subject matter experts validate the model with respect to supported and identified functions and processes.
CRUD (Create Read Update Delete) Matrix is one technique to map the data model to the process model. The CRUD matrix helps identify:
Think of CRUD in terms of how the data and process interact with each other. Using the simple example from the First 3 Rules of Data Normalization for Newbies, below is a simple example of a CRUD matrix:
In this example, the process “Establish New Employee”, the entities (can be thought of as tables) of the model that are required to support the process are Employee, Employee Dependents, Warehouse (which warehouse will the new employee be assigned to).
Let us assume further that this model is only for employees and their training needs. Having an entity Product is a redundant entity. Of course, one can leave that entity in the model. However, it shows that for the scope of this particular model, it is not needed.