読者です 読者をやめる 読者になる 読者になる

ぱと隊長日誌

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

ProjectLibreでタスクの開始日を変更できない、もしくは勝手に分割される原因とその回避策

マネジメント

事象

タスクの達成率を入力後は開始日を変更できない。
また、依存関係にある先行タスクの開始日や期間を調整すると、後続タスクが自動で(勝手に?)分割されることがある。

環境

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

タスクの開始日を変更できない

問題発生パターン

任意の設定でタスクを作成する。
この時点では「タスク情報」―「一般」タブ―「開始日」を変更可能。

「タスク情報」―「一般」タブ―「達成率」を1%以上で設定する。
その後、「タスク情報」―「一般」タブ―「開始日」を変更して「閉じる」をクリックすると、開始日が元に戻ってしまう。

原因

タスクの達成率1%以上で開始日を変更できなくなるのは、ProjectLibreの方針による。達成率が1%以上であるという事はタスクが開始されたという事であり、開始日を動かすべきではないとのこと。

以下、ProjectLibreのDiscussionページより引用。

Hi there, one thing to note... setting the percent complete to 0% and then having a task move is not a workaround. If you have a % complete on a task it means it started.... that will trigger an Actual Start. You would not want that then moved, so we and all critical path scheduling engines do not....

Discussion | Projectlibre

回避策

「タスクの更新」で実績開始日を変更する。
「タスクの更新」を開くには、画面上部メニュー内の「タスク」タブ―「更新」をクリックする。

f:id:pato_taityo:20141126071211p:plain
▲実績開始日の変更

依存関係にある先行タスクを調整すると後続タスクを分割されることがある

問題発生パターン

task1,task2,task3を5daysで作成する。
以下の依存関係を設定する。
task1-task2でFS,0days。task2-task3でFS,0days。

各タスクの達成率を40%に設定する。

f:id:pato_taityo:20141124193320p:plain
▲タスクを作成し、依存関係と達成率を設定

task1の期間を15daysに設定する。
すると、各タスクが以下の通りとなる。
task1 : 開始日はそのままで終了日が10日間延びる。
task2 : タスクが2分割される。前半は達成率40%の部分、後半はその残りとなる。
task3 : 変化無し。

f:id:pato_taityo:20141124193434p:plain
▲task1の期間を15daysに設定

原因

task2の挙動は先述したProjectLibreの「開始されたタスクの開始日を動かすべきではない」方針に対応する動きと思われる。
FSの依存関係にある先行タスクが後続タスクよりも遅れた場合、後続タスクも後ろに遅らせる必要がある。しかし、開始日を動かすことは出来ない。そこで、ProjectLibreは後続タスクの完了分と未完了分を分割し、完了分はそのまま、未完了分は先行タスクの後続に配置し直す。
さらに、これに従うのであれば、task2の分割と調整に合わせて、task3も分割と調整が行われるべきである。だが、実際には行われていない。これはProjectLibreのバグかもしれない。

なお、 Microsoft Project でも自動でタスクを分割されるらしい。

1. 期間が分割されちゃって困る
A)
実績が入ったタスクをリスケすると分割されちゃいます。実績をいったん消してからリスケするか、「分割しないモード」にする。

Ms project ことはじめ

回避策

理想形はtask1-task2で見たように、依存する全てのタスクの分割と調整が自動で行われること。ただ、実際にはtask2-task3のように、うまくいかないこともある。
回避策として、依存関係にあるタスクの日程を調整する場合は後続タスクの達成率を一旦0%にクリアする。先行タスクの調整後に後続タスクの達成率を入力し直す。
タスクの日程の調整はリソースの調整をトリガーとして行われる場合もあるのでお忘れなく(忘れると意図しない崩れが…)。