My aim today is to share some insight on scheduling of long duration projects.
The Purpose of scheduling is to provide a roadmap which represents how and when the project will deliver the project scope, Project Schedule establish the time required for the project. Critical Path Method is commonly used for project scheduling; The Critical Path method is scheduling network analysis technique which determines the minimum project duration. For creating a critical path we have to define, sequence and estimate activities but It’s very difficult to foresee activities for a distant future say six months from now.
Here we need to understand two terms Rolling Wave Planning and Course-Grain Plan
Rolling Wave Planning
Rolling Wave Planning
Rolling Wave Planning acknowledges the fact that we can see more clearly what is in close proximity, but looking further ahead our vision becomes less clear.
Fine-grain / course-grain
“Science requires different levels of abstraction for different phenomena. Scientific theories can be big picture and course-grained like a highway map, or fine-grained like a local street map. Both are equally valid; they just need to agree with each other and conform to reality.”
– The Origin of Wealth by Eric D. Beinhocker
In software projects we do effort estimation using estimation model (UCP, FP, and transaction Point etc) and based on effort estimates we drive team size and project duration. Project duration is divided in various phases depending the software development methodology (iterative, waterfall etc) in use. We should do fine-grain planning to the current visible duration and course-grain planning for rest of the project. The fine-grain schedule will have clear definition of activities, their sequence and resources which in turns gives us critical path of that duration of the project in course-grain schedule we should identify some critical milestones these milestones should not only limited to phase ends but also include external and internal dependencies. All these milestones should be linked with each other and duration between two milestones should be estimated using estimation model. If we do so we can see the critical path of whole project even though we have not fine-grained the complete schedule, this helps in identifying the critical milestones (the one coming on the critical path ) and tracking project progress. If we don’t link the milestones till project end we may plan well the current visible duration but will not be sure of the conformance to course-grain schedule.
The schedule provides reliable prediction of dates and critical path only if the activity relationships or milestone relations are clearly defined and activity duration is know with higher degree of certainty, As we can not predict all activity durations with higher degree of certainty that is why we need to do schedule risk analysis on regular basic, the schedule risk analysis gives answer to questions like following:
• What is the likelihood of finishing the project as per schedule?
• What contingency need to be build to establish a completion date with a probability of success that is acceptable to the stakeholders?
• Which activity (or summary activity) is most likely to delay the project?
• What action can be taken to control risks in the schedule?
I will discuss my view on schedule risk analysis in detail sometime later but I feel we can not do effective schedule risk analysis if we do not maintain course-grain schedule with defined dependencies.