The ability to choose different scheduling modes was one of the recent features to be added to Project. This means that at the project level you can choose:
- Fixed Duration (out-of-the-box default)
- Fixed Effort (work)
- Fixed Units
You can also choose at the organization level if you want to have a different default, and if you want to allow anything other than the default to be used. Once you change the setting then all future projects will have that default (or a set mode if you allow it). There is no change to existing projects.
As you can see, I have left my default as fixed duration, but changed the other option to allow Project Level Schedule Mode Overrides.
Once the schedule Mode Override is allowed, you can then choose the schedule mode when creating a new project. Here I have changed the project to use Fixed units. Once set it cannot be changed:
The behavior is the same as in previous versions of Project and obeys the expected 'Effort = Duration x Units' formulae, so the article at Change the task type for more accurate scheduling - Project (microsoft.com) is still very much applicable. (Note: This article uses the term 'Work' to refer to 'Effort'. One difference to earlier versions currently, is that the mode is set for the complete project and cannot be set on a task-by-task basis. I'll give examples of each, and also explain what is happening behind the scenes (and show how to 'see' behind the scenes), as there are some scenarios where it might not initially be obvious what is going on.
I've created 3 projects, one of each mode, and so far they have no tasks. I have actually opened the tasks pane for each plan - and this action has set the Finish Date and Earliest Start Date values - which when the plan is initially created are not populated in this view.
Lets start with the default, a fixed duration plan. I'm going to add a task of 5 days:
If this is 5 day task maybe the first question is why does it start 'today' (I'm writing this on 8/16) but not finish until next Monday? Shouldn't it finish on Friday? One clue to what's going on here can be found on the Summary tab, where we also see the time as well as the date:
Next I make an assignment and add myself to that task and as expected I see 40h effort (work) as I work the default 8h day. If my calendar was different from the project calendar I might see the start times change.
If I add another resource then my duration is fixed at 5 days, and my work increases to 80h. 80h = 5 days * 2 units (8h/day). All looks good!
Now the same steps for fixed effort:
Looks the same. But lets re-run that, but I'll make the assignment and save, and then set the duration to 5 days:
What was the difference? It is a fixed effort task, and the effort gets fixed when there is effort added, so in the 2nd task the effort was 'fixed' at 8h then the duration increased to 5 days, whereas the first one I have 5 days already, so it adds 5 full days of effort before 'fixing' the effort. One thing I found useful in looking behind the scenes is to use Power BI and look at the project, task and assignment data - which gives a sort of 'task usage' or 'resource usage' view, but without the timephased part. This shows that my assignment dates match the tasks so my work is spread over the 5 days:
Adding a second resource to the fixed effort task results in the fixed amount of work being shared between Lidia and me - but what's with the odd durations?
The 2.5 days makes sense - lets see how project shared the work for that 0.83 day assignment:
The first assignment is shared quite neatly, but the 2nd is split in a 5 to 1 ratio, due to the way the duration and assignments were set for each one. For those who think the sky is falling right now - here are the exact same steps executed in the Project desktop client to show that this is working EXACTLY as Microsoft Project always has! The scheduling engine behind the new Project is the same as it has always been.
On to the last mode, fixed units. Same steps. Cut to the chase, as the work is not fixed in this case the order of adding the assignment and extending the duration makes no difference - both tasks show the same 40h work:
If we add another resource we again see the exact same behavior as in the desktop client of Project, and the effort increases to 80 hours as we now have 2 units (people) for 5 * 8 h.
In the desktop client there is an addition option to allow 'effort driven' Fixed Unit tasks - and in that case the worked would have stayed at 40h. That option is not available here.
Increasing the duration at this point will also increase the work, as our units are fixed (at 2). As a double check I also show the Power BI view of things at this stage:
These examples have been quite straightforward with only the fixed effort needing a little more explanation, but it can get more complicated in an active project with assignments added while tasks are actively being worked and effort already recorded, so that it is less obvious what is going on. I think that is when Power BI might help with the ability to see the tasks and assignment data so you will be able to confirm why dates are as they are. One common example might be a task not showing complete when all the work is apparently done - but it could be that the duration is not complete yet - and the assignments may all finish before the end date of the tasks. As an example, if some effort is completed and then duration extended and another assignment made - you can get something like this - which from the tasks view in Project it will not be obvious that the 2nd assignment does not start until the 2nd day - but Power BI shows us the details:
One final point to mention before I explain the duration calculation that gave us the 0.83d earlier - is that it is possible to set the schedule mode options for the default environment of Project for the web, as well as named environments, but as your users will likely be living in the 'project.microsoft.com' experience and not the Dynamics one, they will not be seeing the 'Summary' tab and therefore not aware of the schedule more that has been set. This could get confusing for users - so just be aware that it could happen.
So how did that 0.83d duration for the Fixed Effort task calculation work? Initially I was assigned and that triggered 8h effort for my default day. The duration was increased, but with effort fixed the work was spread out to 1.6 hours each day for 5 days, or 0.2 hours (12 minutes) of effort for each hour. When Lidia was also assigned she could do 8h per day, or 1h of effort for each hour. For the first hour of the day we therefore have 1h work from Lidia and 12 minutes from me - so 1.2h. After 6 hours we have completed 7.2h of the 8h effort required, so at the same rate in the next hour it only takes 40 minutes to complete the remaining 0.8h (48 minutes) with me contributing 8 minutes to Lidia's 40. 6h 40m = 6.67h. 6.67/8 = 0.83 (to 2 decimal places).
As a final validation I also used the 'export user data from Project for the web' PowerShell sample (Export user data from Project for the Web - Project for the web | Microsoft Docs) on a fresh example of the Fixed Effort project - and in this specific repro the start times was 4pm, so I actually see 1h of time available on the first day - but I can see the task usage view exactly the same as if I'd created the plan in Project:
I hope you have found this post useful, and certainly in my many years of supporting Project when a customer comes in with a "Project is calculating this incorrectly' case the answer is usually that there is a good (logical?) explanation and Project is working as designed!
Posted at https://sl.advdat.com/3iYeQqD