0

I have a Project Plan in MS Project, its a construction project which has repetitive tasks and multiple gangs. For example:

  • Building 1

    • Strip
    • Clean
    • Paint
    • Varnish
  • Building 2

    • Strip
    • Clean
    • Paint
    • Varnish
  • Building 3

    • Strip
    • Clean
    • Paint
    • Varnish
  • Building 4
    • Strip
    • Clean
    • Paint
    • Varnish

Now I have 4 Paint Gangs (PG1, PG2, PG3 & PG4) currently I assign them in leapfrog order, so

  • Building 1 = PG1
  • Building 2 = PG2
  • Building 3 = PG3
  • Building 4 = PG4
  • Building 5 = PG1 etc...

The problem is that should I wish to reduce the number of Paint Gangs to see if the project still finishes on time, currently I apply a filter to the task list to display only 'Paint' tasks I then highlight the resource column & predecessors column and delete them. I then select the resource column next to each building's paint task and select the paint gang that's next in the order PG1,PG2,PG3,PG4,PG1,PG2,PG3,PG4 but obviously this takes a lot of time and then linking them back up.

Is there an easier way to do this?

Thanks

7
  • 1
    If you have 4 painting groups then buildings 1 through 4 should be able to be done simultaneously. I'm not sure why you are linking (and then unlinking) the tasks. I'd assign the teams, look for overallocations and work from there. If all buildings are scheduled for the same time, in your scenario above - only painting gang 1 would be overallocated.
    – JulieS
    Commented Oct 14, 2014 at 14:06
  • @JulieS Sorry I didn't explain clearly, buildings 1-4 would be done simultaneously like you suggest, the tasks are linked based on the gangs so all the PG1 tasks are linked etc... so buildings 5 painting wouldn't start until building 1 painting was finished. The problem is assigning the gangs and then linking them for 300 buildings is a long job, I'm thinking maybe I'm going the wrong way about it.
    – h-angell
    Commented Oct 14, 2014 at 14:18
  • The purists (and I am not one) would say that you should only create links between tasks that are driven by the TASK - not by resources. So, within each building there should be links between Strip, Clean, Paint, and Varnish as there are logical relationships between those tasks. Do not link the buildings - assign the resources and then look for overallocations in the resources. If you want to link Building 1 to Building 5, I'd suggest using some of the spare Flag fields to flag tasks that you have linked because of resource overallocations. For example set Flag1 to "yes" for PG1 links.
    – JulieS
    Commented Oct 14, 2014 at 14:27
  • @JulieS , The reason the painting is linked by Task & Resource is that I need to know how many Paint Gangs are required for the job. the only way I know of doing this is the way I explained, by leapfrogging PG1->4, PG1->4 etc... but adding or removing Paint Gangs takes a long time to complete, thats why I get the feeling I am missing something. The only other way I could think of doing it, was to take the number of buildings, divide it by the No of Paint Gangs and then batch allocate them PG1 do Buildings 1-75 inclusive, but the building painting has to be done in order.
    – h-angell
    Commented Oct 14, 2014 at 14:43
  • I'm not sure why adding or removing Gangs is taking so long. If you use resource leveling (as I suggested) you add or remove and re-level. Use priorities to tell Project which buildings are more "important".
    – JulieS
    Commented Oct 15, 2014 at 13:53

2 Answers 2

1

Calculating "Time to Complete" Kanban-Style

I'm not sure if this can be done in MS Project or not, but it seems that what you really are trying to do is determine (in a Kanban-like fashion) how much time you would need to empty a job queue assuming some variable number of teams. You would normally do this by calculating throughput and cycle lead time, and then applying those figures to the size of your input queue.

Consider an example where throughput is the average amount of time it takes for a paint task to move from "started" to "finished," and average_lead_time is the time a paint job spends in the input queue before the job is started. The formula might look like this:

time_to_complete =   
    (paint_jobs_in_queue / (paint_gangs * throughput)) + 
    (average_lead_time * paint_jobs_in_queue)

This formula is based on the idea that painting jobs are all similarly-sized, and that each Paint Gang's throughput is within two standard deviations of the mean. You may need to use a more complex formula if these assumptions don't hold true for your project.

7
  • Your answer makes sense, but is there any way to reflect this in MS Project. I removed 1 painting gang yesterday and it took me around 2 hours to do, the task is task dependant but only dependant on the previous painting job that gang was on.
    – h-angell
    Commented Oct 15, 2014 at 7:24
  • The painting time is the same across all buildings, currently for my Paint Gangs I have 4 'waterfalls' in my wbs, 1 per Paint Gang, I've been banging my head trying to think of a more efficient way to do this but I can't come up with any ideas.
    – h-angell
    Commented Oct 15, 2014 at 7:31
  • Are you sure the formula is correct? If I take throughput as "time per job", then you need to multiply it by the number of jobs to get a total time, not divide the number of jobs by it. Commented Oct 15, 2014 at 12:47
  • @BartvanIngenSchenau Assume 10 jobs, 4 gangs, and each gang can do 1 paint job per day. 2.5 days = 10 jobs / (4 gangs * 1 day per job) seems right to me, plus lead time; however, adding average lead time of 5 days = ((5 * 0) + (5 * 1 day)) * 10 jobs may or my not yield a sensible value for your work process, but would account for setup/teardown processes and moving buildings if such things impact your schedule. You might simply break out the second portion into a completely separate metric if that's more useful. YMMV.
    – Todd A. Jacobs
    Commented Oct 15, 2014 at 14:35
  • @BartvanIngenSchenau But no...I'm not absolutely, positively sure the math is correct. I simply offered it s a starting point. Corrections, suggestions, and worked examples are welcome.
    – Todd A. Jacobs
    Commented Oct 15, 2014 at 15:21
1

You should be able to assign the gangs to a resource type. Then specify the resource type to the tasks for each building. It should then be possible to level your resources. Setting date limits on start and end dates can help order assignment to buildings.

As long as you don't end up with things on a critical path, you can calculate the number of gangs required manually.

  • Sum the number of days effort.
  • Divide by the number of work days until all work needs to be completed.
  • Round up to the next number.

For instance:

  • 231 days effort.
  • 68 days until completion
  • Calculates to 3.4 gangs.
  • Round up yeilds 4 gangs.

Then you can use the project software to allocate the teams to particular buildings. Watch out for unexpected idle time, or resource overloading. Holidays and other events can cause unexpected deviations from planned activity.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.