I was a bit naïve when I accepted the challenge to manage my first software project. I didn’t quite understand the “wink-wink, nod-nod” I got from the software veterans when I began asking for their input to the project task detail and schedule. Now many years and many projects later, I understand their skepticism. They had too often been victims of schedules that were not worth the paper or time used to develop them. They had seen schedule chicken played by professionals and had worked countless hours of overtime trying to meet unrealistic, unattainable deadlines.
However, I continue to believe whole-heartedly in the value of predictive schedules. To me, a predictive schedule is one that accurately reflects what has happened in the past and is a good predictor of the future. It gives a believable prediction of the project end date and an accurate level of effort estimate to completion.
What are the necessary pre-conditions for a useful predictive schedule?
Let me tackle the most challenging requirement first—corporate or organizational culture. If your company has a “shoot the messenger” ethic, then predictive scheduling is doomed! Like a military plan, the initial project schedule rarely survives contact with the enemy. Staff changes, requirements creep, and vendors miss shipment deadlines. Your project schedule must be detailed enough to identify potential problems and dynamic enough that you can reforecast to accommodate the real world. AND, senior managers need to be willing to hear the impact of changes on the project schedule.
For predictive scheduling to be useful, there must be trust on all sides of the equation:
- As project manager, you do the best you can to create an accurate and meaningful schedule of tasks with an estimated level of effort (LOE).
- Developers and team members work hard to meet schedule requirements and accurately record their time to each task as well as update estimate to complete (ETC).
- Management trusts that everyone involved is doing their best and reporting accurately. They provide support when needed.
What content is required for a useful predictive schedule?
Developing a predictive schedule is a top down and a bottom up process. You must start with the top level vision and goals for the project to set expectations and scope. Then each deliverable is broken down into tasks that require no more than one or two week’s time to complete (that task may include the effort of several people or it may require less than the full-time effort of one developer). The point is that you need to be able to assess the project’s status weekly.
Now we come to the one of the most powerful features of predictive scheduling—task dependencies. Your schedule must show these dependencies. What must be completed before “Task X” can begin (predecessors) and what tasks depend on the successful completion of Task X (successors). Getting the task dependencies correct is 50% of the requirement for creating a useful predictive schedule.
The other 50% is estimating the effort really required to complete the task successfully. As project manager, you will want the input of others on the project to define tasks, dependencies, and effort. Then, you have to make a judgment on their input. First, you need to make sure that there is enough detail so that the schedule can document the project status and second, you will likely need to adjust the estimated level of effort (LOE).
Why do I believe that the initial effort submitted by developers will need to be adjusted? Developers and other team members often make errors of omission and commission in defining LOE for a task. (Dan Mitchell offers some insight into what may be left out of developer’s estimates on his Software Developer’s Guidebook blog). Some may be too optimistic—assuming all of their time will be dedicated to writing code when in reality the schedule needs to include time spent in meetings, unit testing, and working with temperamental hardware and software. Or, they may assume that the level of productivity is the same for all developers or IT staff, when the truth is that some developers are significantly more productive than others (usually based on experience or skill).
Finally, either through misplaced self preservation instinct or lack of knowledge, developers may over-estimate LOE believing that if the estimate is cut during its migration through senior management reviews, they will still be able to get the work done because they padded their initial estimate. So you, the PM, must assess the estimates and try to get them to be as accurate as possible! No one said this was easy.
What benefits does a project manager receive from a real predictive schedule?
- Ammunition to define and defend resources needed to be successful
- Knowledge of project status with sufficient time to avert disasters
- The ability to answer status and planning questions from senior management
- A final project that predicts cost and schedule throughout the project’s life
One last thought: predictive scheduling tells a PM what he or she needs to know, not what they may want to hear.
Please comment and share your thoughts on predictive schedules.
(If you want more on why you need predictive schedule check out the earlier post at https://fearnoproject.com/2009/02/13/why-your-project-needs-predictive-schedules/)