Quick Links

Scheduling the Shortest Duration Possible

A user posed an interesting question recently in the Microsoft Project Standard and Professional TechCenter forum on the Internet. He asked how to assign resources to a task to generate the shortest Duration possible for the task using the following requirements:

  • The task requires 100 hours of total work for all assigned resources.
  • One resource is available to work full-time and should be assigned at a Units value of 100 percent.
  • Two other resources are available to work only half-time and should each be assigned at a Units value of 50 percent.

The Solution

The solution to this problem isn’t difficult, but it does require a series of specific steps to force Project to calculate the shortest Duration for the task. Here are the required steps:

  1. Apply the Gantt Chart view.
  1. Reset the Duration of the task to the default value of 1 day, if necessary.
  1. Right-click anywhere in the Gantt Chart pane on the right side of the view and select the Show Split item on the shortcut menu, as shown in this screenshot:

This action applies a combination or “split” view, known as the Task Entry view. The Task Entry view includes the Gantt chart view in the top pane and the Task Form view in the bottom pane.

  1. Select the task in question in the task list on the left side of the Gantt Chart pane.
  1. In the Task Form pane, make sure the Task Type value is set to Fixed Units. If not, select Fixed Units and click the OK button.
  1. In the Task Form pane, make sure the Effort driven checkbox is selected. If not, select it, and then click the OK button. The following figure shows the Task Entry view with the correct settings for the selected the task.

  1. In the Resource Name column of the Task Form pane, select the name of the resource who can work full-time.
  1. For this selected resource, enter 100% in the Units column and 100h in the Work column and click OK. Project should calculate an initial Duration value of 12.5 days for the task, as shown in this figure:

  1. Below the name of the first resource you selected in the Task Form pane, select the names of the two other resources who will be working half-time.
  1. For each of these two resources, enter 50% in the Units column.
  1. Click the OK button ONLY AFTER you have selected the two other resources.

This final step should reduce the Duration to 6.25 days, allocate 50 hours of work to the full-time resource, and allocate 25 hours of work to each of the two half-time resources. The result is the shortest Duration possible for the task, based on the work and resource requirements, as shown here:

You can see from the previous steps that the answer to this question was straightforward, but not exactly simple. The trick was to use the Effort driven capabilities of Project to allocate the 100 hours of planned work in the most efficient manner between the assigned resources, so that the software would calculate the shortest Duration for the task.

A version of this article originally appeared on the Sensei Project Solutions blog.

Have your own tricks? Share them with the MPUG community by writing an article! Contact editor@MPUG.com to learn more.

Image Source

Written by Dale Howard

Dale Howard is the Director of Education for Sensei Project Solutions.  He is in his 15th year of serving as a Microsoft Project MVP (Most Valuable Professional) and is currently one of only 39 Microsoft Project MVPs in the entire world. Dale is the co-author of 21 books on Microsoft Project, Project Server, and Project Online. He works out of his home in Ellisville, Missouri (a west suburb of St. Louis).

Share This Post

Customer Reviews

    Showing 3 reviews
  1. If you see a four task exercise with resource loads, we would verify that MSProject will not calculate the correct critical path once it is leveled.

    What would be the shortest end date, considering 8 hours a day, 7-day week, for the following schedule? And what would be the true critical path? It is necessary to resource level as nobody is aloud to work more than 8 hours a day.

    1) Start – Milestone (ON DAY ONE)
    2) Task A – 40 Hours – Dale – depends on ID 1
    3) Task B – 40 Hours – Peter – depends on ID 2
    4) Task C – 20 hours – Dale – depends on ID 1
    5) Task D – 40 hours – Peter – depends on ID 4
    6) End – Milestone – depends on ID 3 and ID 5





    You have already voted!

  2. Hi Dale, that works indeed, but you can do this in a simpler way that is less fraught with do’s and dont’s:
    1) create the task design
    2) set task Type to Fixed Work
    3) enter 100h in the Work column
    4) assign the resources in any way and in any order by just filling in the Units for each resource.
    MS Project calls fixed-effort tasks Fixed-Work: effort = Work as far as MS Project is concerned. This really is a Fixed Work situation, after all a certain amount of effort needed to be delivered (100h) and then the assignments needed to be maximized.


    You have already voted!

  3. 1. I agree with Eric’s point that this is ultimately a fixed-work task. Both methods work equally well, though I believe Dale’s example (using fixed-units) shows how the program can help you with the math of work allocation (trivial in this example) – provided you do all the steps in exactly the right order.

    2. For Peter’s example, duration of the leveled project is 15 days. Project misidentifies the critical tasks as Start-C-D-End based on total slack. The actual resource constrained critical path is Start-A-B->D-End, where “B->D” is an inferred resource-availability link (waiting for Peter). Clearly Task C could slip 2.5 days before affecting the critical path – i.e. it has 2.5 days of relative float. I use an add-in – BPC Logic Filter – that makes short work of such issues. I’m always looking for people to share it with.



    You have already voted!


Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Thanks for submitting your comment!