Task Info: wrong duration calculation

  • 1
  • Problem
  • Updated 1 month ago
  • (Edited)
Greetings!

  MindManager 20.1.231 (64-bit) 24.01.2020

  I just noticed that Task Info of some topics does not show the correct duration in workdays:



  Another example:




  How do we fix this or force MM to recalculate all the dates for all the topics in a map?

Thank you.


Photo of Andrey Kazak

Andrey Kazak

  • 253 Posts
  • 21 Reply Likes

Posted 1 month ago

  • 1
Photo of Nick Duffill

Nick Duffill, Champion

  • 605 Posts
  • 248 Reply Likes
The duration value for rolled-up task info (marked with the padlock) is the number of workdays between the earliest start date and the latest end date across the descendants. It is not the sum of their task durations. Where there is only one descendant, the rollup duration will match the task duration.
Photo of Andrey Kazak

Andrey Kazak

  • 247 Posts
  • 21 Reply Likes
Got it.

However, on the 2nd figure, the total number of workdays in Task Info should be equal to the sum (6+10+2=18), but not to 20.
Seems to be like a software bug.

By the way, is there a workaround to calculate the total duration of all the descendants?

Photo of Nick Duffill

Nick Duffill, Champion

  • 605 Posts
  • 248 Reply Likes
If this refers to topic "ABC", then this is a task rollup topic so the duration is not the sum of the descendants. It is either 20 or 21 working days, depending on how you count it. Friday to Friday would normally be 5 working days but MindManager counts a task starting and ending on the same day as 1 working day, not zero. It gets messy.

A quick way to add up the "durations" is to assign a resource to each task. MindManager then calculates the effort for the task, and the total effort is calculated in the rollup. If you have a single resource at 100% loading for a task, then the effort is the same as the duration. The total effort is independent of when the tasks occur in the calendar.
Photo of Andrey Kazak

Andrey Kazak

  • 247 Posts
  • 21 Reply Likes
OK, I see the issue now: task a ends on 23.10.2020, but task b starts on 26.10.2020 with 2 days lag. This is a hidden issue with Finish-to-Start relationships, where one thinks that if he/she reduces the duration of the ancestor, then the descendant's start date will update automatically. For some unknown reason, MM doesn't do this leaving the manual labor for the user. Reference: https://community.mindjet.com/mindjet/topics/can-i-create-a-default-task-relationship-dependency-viz...
Do you know a macro that goes for all the topics linked in Finish-to-Start and updates them all?

Anyway, if all the descendants are serially connected in Finish-to-Start mode, then the total duration should match the sum. Right?
Photo of Nick Duffill

Nick Duffill, Champion

  • 605 Posts
  • 248 Reply Likes
It has always been the case that if a predecessor moves to a later date then it pushes successors to a later date, but if it moves to an earlier date then a "slack time" opens up between them. The Gantt chart feature provides a tool for removing slack.

Yes, if the descendants of a task rollup are connected with F2S dependencies, and there is no slack time between them, then the duration of the rollup should match the sum of the durations, +/- 1 day per the previous comment. However I am standing by to have this disproved :)
Photo of Andrey Kazak

Andrey Kazak

  • 247 Posts
  • 21 Reply Likes
What is the name of the Gantt chart tool for removing slack time?
Photo of Andrey Kazak

Andrey Kazak

  • 247 Posts
  • 21 Reply Likes
I found Remove Slack button in Gannt Pro of MindManager Enterprise.
Do you know if I can call this function from a macro?
Photo of Nick Duffill

Nick Duffill, Champion

  • 605 Posts
  • 248 Reply Likes
The commands in the user interface are not exposed in the API so it would not be easy to find them and call them. Even if you did, this command only pops up the Gantt dialogue anyway.
You could remove all the slack in a map with a macro by finding all the task topics, sorting them into date order then setting the task start date to today in ascending date order. MindManager will automatically reschedule the task to the earliest possible date that meets constraints. However this would also affect tasks that have no dependencies, so some extra coding would be needed.
Photo of Andrey Kazak

Andrey Kazak

  • 247 Posts
  • 21 Reply Likes
I already found this trick: setting year to 2000 forces MindManager to find the earliest possible date that meets constraints.

Actually I want to touch only the topics having inbound F2S=- relationships.
I looked at the https://www.mindmanager.com/en/pages/developers/api/20/MindManager~Relationship.html but could not find relationship type property (for example, F2S).
Therefore perhaps this would be non-trivial to implement...
(Edited)
Photo of Nick Duffill

Nick Duffill, Champion

  • 605 Posts
  • 248 Reply Likes
For historical reasons the coding of dependency types is complicated. It is a custom attribute of the relationship rather than a direct property. If you email me at nick at harportconsulting dot com I can send you the technical details but it is not very simple.