ぱと隊長日誌

ブログ運用もエンジニアとしての生き方も模索中

ProjectLibreで複数リソースをアサインした場合にアサイン単位の計算が不正確になる問題とその回避策

事象

タスクに複数リソースをアサインし、リソースのアサイン単位を変更すると、期間・時間の計算が不正確になる。

環境

以下は事象を確認した環境であり、他の環境(バージョン)でも起こる可能性がある。
Windows 8.1(日本語環境)
Java version 1.8.0_25
ProjectLibre version 1.5.9

問題発生パターン

パターン1

15days,120hoursのタスクを作る。その他、設定はデフォルト。

タスクにAさんとBさんを100%(8時間/日の稼働)でアサインする。
この結果、タスクは7.5days,120hoursとなる。
タスク情報のリソース表ではAさん/Bさん共に60時間のアサインとなっている。
ここまでは期待通り。

f:id:pato_taityo:20141124120613p:plain
アサイン直後

リソース割り当てでBさんのアサイン単位を調整し、50%(4時間/日の稼働)にする。Aさんは100%(8時間/日の稼働)のまま。
AさんとBさんの稼働を合計すると12時間/日となる。そのため、期待する結果は10days,120hoursとなる。だが実際のタスクは15days,120hoursになる。
タスク情報のリソース表でもAさん/Bさん共に60時間のアサインとなっており、アサイン単位の調整が反映されていない。

f:id:pato_taityo:20141124121318p:plain
アサイン変更後

パターン2

15days,120hoursのタスクを作る。固定期間、「残存作業時間を優先」をON。
Aさんを100%(8時間/日の稼働)でアサインする。

f:id:pato_taityo:20141124121443p:plain
▲タスクの種類設定

f:id:pato_taityo:20141124121515p:plain
▲タスクにAさんをアサイ

Bさんを100%(8時間/日の稼働)でアサインしようとすると、Aさんのアサインが50%(4時間/日の稼働)に変更される。Bさんのアサインは100%のまま。
固定期間で「残存作業時間を優先」であれば、Aさん/Bさん共に50%のアサインとなるのが正しく思える。アサイン計算に「残存作業時間を優先」が正しく考慮されていない?

f:id:pato_taityo:20141124121619p:plain
▲タスクにBさんをアサイ

パターン3

15days,120hoursのタスクを作る。固定期間、「残存作業時間を優先」をOFF。
Aさん/Bさん共に100%(8時間/日の稼働)でアサインする。タスクが15days, 240hoursとなる。

f:id:pato_taityo:20141124121831p:plain
▲タスクにアサイ

タスク情報の「リソース」タブの各リソースの「作業時間」を手入力で書き換える。例えば、Bさんを60hoursに変更する。
だが、カーソルを移動させると元の値に戻ってしまう。また、アサイン単位の値が不正になったり(反映されない場合はリソースの割り当てを開きなおす)、ガントチャートの表示がおかしくなる。

f:id:pato_taityo:20141124121931p:plain
▲作業時間の書き換えを試みる

f:id:pato_taityo:20141124121954p:plain
▲作業時間が元の値に戻る。アサイン単位の値が不正になる。

原因

ProjectLibreのアサイン計算に関するバグかもしれない。
ProjectLibreの挙動は Microsoft Project に合わせているようなので、 Microsoft Project での挙動を確認したかったが、手元に無く検証できなかった。

回避策

以下の設定と操作を組み合わせる。

「残存作業時間を優先」をOFFにする(デフォルトはON)。

リソースのアサイン単位変更を数値の変更ではなく、アサインのやり直し(削除と追加)で行う。
以下、「リソースの割り当て」ウィンドウの操作。
アサイン削除は名前の左隣のセルをクリックし、"削除"ボタンをクリックする。
アサイン追加は名前の右隣にあるセル(単位)をクリックし、数値を入力する。"割り当て"ボタンクリックで追加となる(行の背景色が緑になる)。