Creating the Perfect Plan


Okay, so there is no such thing as the perfect schedule, but there are good and bad practices for creating a schedule using Microsoft Project. Some other tools don’t allow some of these bad practices, but Project just goes ahead and lets you do it – this allows lots of flexibility but if you’re not exactly sure what you are doing then it can lead to some “interesting” results. So here’s my list of best practices for using Project, and this might get you a little closer to the perfect schedule. There are a couple of tools which will help with some integrity checking of project plans, either for Project Server or for the client, post a comment or email me if you want further details and prices.

Learn the formula that Project uses to schedule

Project uses the following formula for calculating the schedule; Work = duration * units. Learn it, understand it, do the algebra and enjoy it! Without this understanding you will always be frustrated with Project.

Set the Project Start or Finish date

Instead of placing a constraint date on the 1st task in a project to define when the project starts, set the Project Start date or Finish Date as required.


Figure 1 – Set the Start or Finish date of the project

All tasks should be linked

Following on not linking summary tasks, every task such have both a successor and predecessor, except of course the last task and first task. Thinking about these relationships help you identify the relationships between the tasks.

Minimise the use of constraint dates

Using constraint dates stops Project from dynamically scheduling the project schedule. Instead, learn to use the different task types and scheduling options, including FS, SS, FF and SF types, plus lags times (in terms of days, % of the task durations and –ve / +ve lags). Sometimes it really is necessary to use constraint dates, (e.g. Must Start On), but learn how and when to use them, and read and understand the scheduling messages that Project gives you.

Note that if you manually type in a Start date, or drag a task on the Gantt Chart, then a constraint type of Start No Earlier Than is applied to the task.


Figure 2 – Define the Task Dependency and lag

Instead use deadline dates

Deadlines are very useful, but not often used – so instead of setting a constraint, set a deadline instead, and project will warn you if you’re going to miss the deadline.


Figure 3 – Set the deadline and project will tell you if it won’t meet it!

Learn about task types

There are three task types, fixed effort (the default), fixed work and fixed duration. If you don’t understand what they mean, then I suspect you don’t understand the scheduling formula of Work = duration * units either.

Milestones tasks should not have resources assigned to them

Again, I see this with customers and it really is bad form. Milestones should identify a point in a project (often a deliverable, e.g. “code complete”), and hence don’t need resources assigned to them.

Don’t assign resources to summary tasks

In fact, don’t assign anything (costs, resources, % complete etc) to summary tasks. Summary tasks are just that, summaries of the tasks below, so if you manually change any of the values then the values of the summary tasks won’t make sense, so don’t change them!

Don’t link summary tasks

How many times do I see customer’s doing this? It won’t cause corruption if you do, it’s just that really you should only link actual tasks, rather than summary tasks. So instead of linking summary tasks (which are often phases in a project) consider creating a milestone exit task and a start task for each phase.

Project Auditing tools

There are various commercial auditing tools available. The following screen shots give you an idea of their potential.


Figure 4 – Server based auditing tool