クリティカルチェーンの識別

クリティカルチェーンの定義とリソース競合の解消

プロジェクトのクリティカルチェーンとは、タスクとリソースの両方の依存性も考慮した、最長のタスクのシーケンスのことです。タスクの依存性しか考慮しないクリティカルパスとは異なります。微妙な違いですが、非常に重要な相違点です。

Sciformaでは、クリティカルパスプロジェクトのクリティカルタスクを識別するのと同様に、クリティカルチェーンプロジェクトのクリティカルチェーン上のタスクを識別することができます。しかし、(クリティカルタスクを絶えず計算し直す)クリティカルパスプロジェクトのタスクとは異なり、クリティカルチェーンタスクは要求された時にしか再計算されません。いったんクリティカルチェーンタスクだと識別されると、コマンドを再実行するか、手動でタスクを変更しない限り、クリティカルチェーンタスクのままです。クリティカルチェーンタスクは自動アルゴリズムでは識別できないこともあるので、Sciformaでは手動でクリティカルタスクを指定できるオプションも提供しています。Sciformaでのクリティカルチェーンの計算では、できる限りタスクとリソースの依存性を考慮しますが、たとえそれができない場合でもクリティカルチェーンを選択します。さらに、ギャップあるいは重複がないとクリティカルチェーンが見つからない場合、Sciformaがそれを自動的に挿入します。

いろいろな可能性の中からいずれかを選択するプロセスですので、その選択基準を説明しておくことにします。次の中で、最初に適用できる選択がクリティカルチェーンとして認識されます。

  1. プロジェクト全体にわたり、タスクとリソースの依存関係によって構成されているクリティカルチェーンは、依存関係が一部にしかない、もしくは、まったくないチェーンよりも必ず優先されます。

  2. タスク間のギャップの合計が小さいチェーンが、ギャップが長いチェーンよりも優先されます。(ギャップがないのが理想的なチェーン)

  3. タスク間の重なりの合計が小さいチェーンが、重なりが多いチェーンよりも優先されます。2番目と3番目の組み合わせにより、タスクからタスクへ"単純に引かれている"チェーンの優先順位をつけます。

  4. リソースの依存関係が最小のチェーンが、依存関係の多いチェーンよりも優先されます。

  5. タスク数が最小のチェーンが、タスク数の多いチェーンよりも優先されます。4番目と5番目の組み合わせにより、タスク間の依存関係が複雑なチェーンの優先順位をつけます。

クリティカルチェーンへの明示的なリソースリンクの追加

クリティカルチェーンは、タスク間の明示的なリンクとリソースの依存性による暗示的なリンクの両方で構成されます。

明示的なリンクは、依存性のある2つのタスクを先行タスクと後続タスクとしてリンクさせることで作成されます。このタイプのリンクは、ネットワーク図、ガントチャート、タスク詳細ダイアログボックスの先行タスク/後続タスクセクションで明確に判別できます。

暗示的なリンクとは、同じリソースを使う2つのタスクがある場合で、どちらかのタスクが終わらない限りそのリソースが解放されず、もう1つのタスクを開始できない状況でそのタスク間に設定されるリンクです。このようなリソース依存のタスクがある場合、2つのタスクが同時にスケジュールされると、リソースの過剰割り当てが発生します。

クリティカルチェーン上のタスクの期間が変更されると、クリティカルパスと同様、明示的なタスクのリンクによって後続タスクのスケジュールが変更されます。一方、暗示的なリソースリンクを持つクリティカルチェーン上のタスクのスケジュールが変更されても、クリティカルチェーン上のタスクのスケジュール変更は行われません。暗示的なリソースリンクによるスケジュールの変更を反映させるには、手動でタスクを調整するか、リソースの自動平準化を行ってリソースの負荷を制御する必要があります。

明示的なリンクを追加することは、CCPMで必ず必要なわけではありません。これには2つの利点と1つの欠点があります。

  • クリティカルチェーンが明示的にリンクされ、クリティカルパスと同じように処理されます。クリティカルチェーン上のタスクの変更は、直接後続のクリティカルチェーン上のタスクに反映されます。

  • リソースの平準化を行った場合でも、クリティカルチェーン上のタスクの順番は維持されます。リソースの平準化は、リソースの可用性を考慮し、最短のスケジュールを組むことを目的にタスクのスケジュールを調整します。(平準化の際、タスクの更新によってタスク期間が変更された場合には、暗黙のリソースリンクを持った一部のクリティカルチェーンタスクの順番が変わることがあります。)

  • 唯一の欠点は、明示的なリンクを追加することで、リソース依存の関係がタスク依存に変わることです。プロジェクトの実行中にリソースの状況が変わり、リソース依存が解消された場合でも、不要なタスク依存により後続タスクのスケジュールに影響が出ることが考えられます。リソース依存に従ったリンクを追加する場合は、プロジェクトのトラッキング中にリソースに対する想定に変化がないかを意識し、リンクの有効性に注意を払う必要があります。特定のリンクが不要となった場合は、必ずそのリンクを削除してください。

戦略的なポイントへのバッファの挿入

クリティカルチェーンプロジェクトのスケジューリングのこの段階では、スケジュールには一切の安全余裕がありません。リソースには、成功確率50%の現実的な見積りを安全余裕なしで提出するように依頼しました。さらに、プロジェクトマネージャもスケジュールに余裕期間は追加していません。安全余裕期間をプロジェクトに挿入しない限り、プロジェクトが予定通りに完了する確率は低くなっています。

クリティカルチェーンプロジェクトでの安全余裕期間は、スケジュール内の要所要所にバッファを挿入することで確保します。バッファは利用可能な余裕時間の集合で、先行するすべてのタスクで共有されます。挿入されたバッファが、プロジェクトの終了日に影響を与えることなく、タスクのオーバーランを吸収します。

クリティカルチェーンプロジェクトでは、次のバッファを使用します。

  • プロジェクトバッファ – クリティカルチェーンのオーバーランを保護するバッファです。最後のクリティカルチェーンタスクの後に設けます。

  • 合流バッファ – 合流チェーンのオーバーランを保護するバッファです。クリティカルチェーンと合流チェーンの交点すべてに合流バッファを設けます。