I am involved in software development and I have a total of 35 features that need to be implemented in our software. Each feature has been estimated for the time it will take, and there are 5 developers available to work on them, with each developer taking on one feature. The tasks are independent of each other, so they can be completed in any order.

The main question I need to answer and that the customer is interested in is: When will all of the features be completed? To answer this question, I created a virtual "developer" resource (or "the team") with a maximum unit of 500%. I then created individual tasks, set the estimated duration for each, and assigned all of them to the developer resource. However, when I tried to plan the project, I discovered that all of the tasks were planned to start on the same date and were 7 times overallocated.

To determine an estimated finish date, I tried to resolve the overallocation using resource leveling, but the results were not ideal. Each feature actually consists of three tasks (implementation, documentation, and testing), and using resource leveling made the tasks behave in unexpected ways.

Next, I attempted to introduce artificial end-to-start relationships so that the tasks would appear in a specific order. This gave me a reasonable end date after planning, but when I updated the project with the current completion rates, the relationships caused issues with my project. For example, if tasks A, B, and C are linked in that order, and B is completed while A and C are half done and linked to the end of B, moving all unfinished work to the status date causes the remaining work of A and C to start at the status date and screws up the finish date I want to report to the customer.

This scenario is not unusual, but it seems to be difficult to find a simple solution in Project. And I haven't even considered what would happen if two developers were to be removed from the team in the middle of the project.

Is there any guidance on how to handle this situation? So far, I have not been able to find a satisfactory solution.

Greetings from Germany, Thorsten Koch

2 Answers 2


You have to start from scratch with a clean MS Project file.

  1. Define your 5 developers as "Developer 1", "Developer 2", etc...
  2. Define your tasks
  3. If there are dependencies like Finish To Start, Finish To Finish, etc, define them
  4. Enter the estimations as "Work", not "Duration"
  5. Distribute the tasks between the developers evenly by "Work" load
  6. Only provide the start date of the project; do not provide the start and the end date of the tasks
  7. Then make the last mile; level resources

This will show you who will do what and when you will get every task completed.


I would NOT create individual resources as that defeats the goal of having a generic resource team.

Each feature has 3 tasks that will be performed in a logical sequence, develop (implement), document, and test. Assuming the implementation is the starting element for each feature, create a plan with just that one task for all 35 features. Assign the team resource at 100% to all 35 implementation tasks (assuming only one member of the team is needed for each). The plan will show overallocation so apply leveling. If you do need/want to start some features before others, use the Priority field to establish a leveling order. Leveling will re-distribute the workload and establish a start for each feature. Now, add the documentation and testing tasks to each of the implementation tasks using a finish-to-start dependency. That will insure that once a feature is started, it will be continued without interruption.

Hope this helps.

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.