Saturday, December 19, 2009

Time Management

There are multiple factors that influence how a project needs to be scheduled.  One of the first criteria is how the project go-live date is determined.  
  1. Do you get a go-live date from the project sponsor and/or other project stakeholders?
  2. Do you determine the go live date yourself?
In case #1 it will be necessary to calculate the time backwards from the go-live date.
In case #2 it is possible to calculate the time forward.

Many project managers will use some project management software (e.g. MS Project) to do the Time scheduling. The Software is helpful but only as good as the data that is used for it. Hence the correct Task creation and the Task duration estimate are key to a successful scheduling exercise.

In order to schedule the tasks first a Work Breakdown Structure with tasks needs to be setup.Then a time estimate for each task needs to be created. The time estimate should be created by people that do the work. This is not the task of the Project Manager! To ensure the best accurate time estimate it is important to get time estimate from multiple experts.
A known issue is that projects are either scheduled
  1. too aggressively or
  2. too cautiously
In case #1 the estimate always assumes the best possible case. This is not realistic. Every project will encounter issues that were not planned for.
In case #2 the estimate always assumes the worst case.  This is not realistic either. You need to plan with the data that you have but expect that changes will occur.
It is the responsibility of the Project Manager to come up with a realistic estimate.

Estimates for Software Projects usually come from
  • Guess from Experts (ideally from several experts independently and on smaller tasks)
  • Historical project information
  • Benchmarks - if available to compare with other companies
The following estimating methods are available
  • Critical Path Method (CPM) - one time estimate per activity
  • Program Evaluation and Review Technique (PERT) - has 3 time estimates per activity (optimistic, pessimistic, most likely)
  • Monte Carlo Simulation. From a practical point of view this is the least common method.

    In many projects there will not be enough time to get experts to estimate all tasks with 3 estimates independently. Hence the most common estimating method is CPM. If this method is used together with historical data the estimates should get more accurate over time.
The scheduling tools are
  • Milestone charts     - show only major events (0d duration)
  • flowcharts                - depict workflow and process flow. Used for quality
  • Bar (Gantt) charts  - good for reporting and control. Not recommended for planning
  • Network diagrams  - shows interdependencies of tasks. Recommended planning tool (see this link for detailed information)
Another important consideration for your scheduling work is the Software Development Methodolgy that is used. For traditional big waterfall projects the scheduling can be fairly challenging vs. the scheduling of smaller junks for agile project management is easier to manage. We will get to that topic in more detail in another post.