bgreenawald / projmanr

Project Management Tools in R
12 stars 11 forks source link

Potential error in critical path calculation #9

Closed bgreenawald closed 5 years ago

bgreenawald commented 5 years ago

The attached project, according to a user, is supposed to have a critical path of 40 but returns a different answer.

Proj.pdf

dunhampa commented 5 years ago

Ben,

I confirmed the same finding.

With projmanr with taskdata as:

id name duration pred 1 1 Start 0
2 2 A 8 1 3 3 B 14 1 4 4 C 15 1 5 5 D 17 2,3 6 6 E 10 2 7 7 F 7 2,3 8 8 G 18 4 9 9 H 5 3,6 10 10 I 2 7 11 11 J 17 9,10 12 12 K 14 9,10 13 13 L 0 5,8,11,12

I returned 63 as duration.

In MS Project 2013 duration was 40.

63 appears to be a total of all critical path items. If so, the logic does not appear to be correct. For example tasks 2 and 3 (above) have a large overlap. Therefore, for tasks 2 and 3, both task's total duration cannot be summed as part of critical path duration.

Let me know if I can assist.

dunhampa commented 5 years ago

Another update from previous comment is that if subtract the end date from start date, the duration appears to be correct. =40 days

out$results$end_date[13]-out$results$start_date[1] Time difference of 40 days

$results id name start_date end_date duration is_critical pred_id 1 1 Start 2019-02-10 2019-02-10 0 FALSE
2 2 A 2019-02-10 2019-02-18 8 TRUE 1
3 3 B 2019-02-10 2019-02-24 14 TRUE 1
4 4 C 2019-02-10 2019-02-25 15 FALSE 1
5 5 D 2019-02-24 2019-03-13 17 FALSE 2 3
6 6 E 2019-02-18 2019-02-28 10 TRUE 2
7 7 F 2019-02-24 2019-03-03 7 TRUE 2 3
8 8 G 2019-02-25 2019-03-15 18 FALSE 4
9 9 H 2019-02-28 2019-03-05 5 TRUE 3 6
10 10 I 2019-03-03 2019-03-05 2 TRUE 7
11 11 J 2019-03-05 2019-03-22 17 TRUE 9 10
12 12 K 2019-03-05 2019-03-19 14 FALSE 9 10
13 13 L 2019-03-22 2019-03-22 0 TRUE 5 8 11 12

But duration is incorrect =$total_duration [1] 63

bgreenawald commented 5 years ago

I think what we initially did was calculate what tasks exist on any critical path and summed their durations. This means that if there is more than one critical path, the duration will be inflated. As you pointed out, taking the difference in the end and start dates seem to be the way to get the correct duration. I will start making this change now.

grushkay commented 5 years ago

Let me know if you need any discussion with me.

Hope all is well.

Yael Grushka-Cockayne Visiting Associate Professor of Business Administration Harvard Business School Follow me on Twitter: @grushkayhttps://twitter.com/grushkay On Feb 10, 2019, at 15:42, Benjamin Greenawald notifications@github.com<mailto:notifications@github.com> wrote:

I think what we initially did was calculate what tasks exist on any critical path and summed their durations. This means that if there is more than one critical path, the duration will be inflated. As you pointed out, taking the difference in the end and start dates seem to be the way to get the correct duration. I will start making this change now.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/bgreenawald/projmanr/issues/9#issuecomment-462170244, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ANNmKTW-nmmZdmzfGjkzVwgvg3yh1opHks5vMIQtgaJpZM4aUYSb.

bgreenawald commented 5 years ago

Good to hear from you Yael, I hope things are well!

I have gone ahead patched this issue and it is tested and appears stable of as this commit

It is currently only available on the development branch and will likely remain that way until we are able to fix the installation issue we are having.