I have a project that has many tasks, some of them needs others as requirements, others don't. All tasks have a duration that will not change. We have 5 "workers" that can work at only one task at a time.

Is it possible to find the best possible way to assign tasks to reduce total time?

I've tried OmniPlan but I'm not really a project manager and don't know how the software works.

I've managed to assign some tasks to a worker and "level" them to see one before the other. But I have to manually assign a task to a worker and I have a lot of tasks.

Is there any software that can calculate that?


Task 1 - 1d
Task 2 - 3d
Task 3 - 3d
Task 4 - 7d
Task 5 - 9d
Task 6 - 2d
Task 7 - 5d
Task 8 - 3d

Possible Distribution:

Worker 1: Task 5
Worker 2: Task 4, 6
Worker 3: Task 2, 3
Worker 4: Task 1, 7
Worker 5: Task 8
  • 1
    If you are willing to read through one really dense page you may want to take a look at the Wikipedia article Program Evaluation and Review Technique. PERT diagrams (aka Network Diagrams) help with laying out shortest critical paths.
    – Polymath
    Commented Mar 17, 2016 at 18:31
  • "best" implies that you are optimizing against some criteria. I don't know what "best" means for you. Shortest total duration? check the wikipage on critical path and crashing. Least risk? check critical chain method. Highest efficiency? Lowest cost? Optimum use of key resources? "best" is like "prettiest" - there are some conventions, but ultimately it is an opinion.
    – MCW
    Commented Apr 7, 2016 at 12:02

2 Answers 2


The very direct answer to your question is I don't know if anything does it without diving into the larger project management applications (and you mentioned that you didn't really want to dive into that).

Now, past that, you could code up a script that does it in maybe an hour or do it by hand in this method:

1) Make 5 rows (one for each worker). 2) Start with the largest task and work down the list of workers until they all have a starting task. 3) Go to the worker who will have time available earliest and give him the next task on the list (again the list is ordered from longest to shortest) 4) Repeat 3 until you run out of tasks.

You can work dependencies in when you order your list.

Without dependencies, the tasks go like this (in this order):

W1: Task 5 (9 days total time) W2: Task 4 (7 days total time) W3: Task 7, Task 1 (6 days total time) W4: Task 2, Task 8 (6 days total time) W5: Task 3, Task 6 (5 days total time)

Total time to completion is 9 days only because task 5 takes 9 days.

The Warning:

Now, why isn't there a bunch of software out there that does this? Because except in rare cases, it's a terrible way to organize work. It is incredibly rare that tasks don't carry different value, that all tasks can be worked by only one person, and that who works it has no impact on time or quality. This works well for a textbook exercise, but very few real-life applications will work best this way


A project management tool is only as good as the process they are implementing. Before trying a tools-based approach, you should think about the manual process you'd like to implement.

In your case, using pure math to arrive at task durations are very difficult because that approach can't take into account all of the possible variables: worker knowledge, task understanding, motivation, de-railers, etc. Basically, you are trying to toss a tool at a process problem, and that will never work.

Most modern PM's in the software development community guide their developers to arrive at task durations. The idea here is that only the person doing the work really understands how long it will take them to do the work. And then even that estimate will change as they start the work and learn more about the task.

It sounds like you might have a new team, or perhaps you are new to them. I would suggest you start off with SCRUM, and use that approach to help you get used to your team.

  • I understand that. The thing is, for this project alone there are no variables. There is nothing that could change the schedule. If a task is required to have X hours, it will have no matter what. This project does not have a human worker. It uses machine workers. The only thing I want is to find the best way to split the tasks so the whole thing finishes as early as possible Commented Apr 9, 2016 at 1:45

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.