Float and Slack:トータルフロートとフリーフロートをわかりやすく解説

Turn this article into takeaways for your work.
Each assistant summarizes the article only for you and suggests best practices for your work.
プロジェクト管理においてFloatとは、タスクが締め切りを後退させることなく遅延できる時間の量です。最初の混乱で崩れるスケジュールと、曲がっても耐えるスケジュールを分けるものです。誤って扱うと、すべての小さな遅れに反応することになります。正しく扱えば、どのタスクが保護を必要とし、どのタスクに余裕があるかが正確にわかります。
プロジェクト管理におけるFloatとは?
Float(Slackとも呼ばれ、この2つの用語はまったく同じ意味です)は、タスクで利用可能なスケジュールバッファです。より正確には、あるアクティビティが締め切りを遅らせることなく吸収できる最大の遅延時間です。プロジェクトの締め切りか後続タスクの開始日か、どちらか早い方です。
Floatはクリティカルパス法(CPM)をネットワーク図で実行した後に計算されます。CPMのフォワードパスとバックワードパスにより、すべてのアクティビティに対して4つの時刻値(最早開始日ES、最早終了日EF、最遅開始日LS、最遅終了日LF)が生成され、それらがすべてのFloat計算の素材となります。
Floatがゼロのタスクはクリティカルパス上にあります。そのうちの1つでも遅延すると、プロジェクトの終了日が動きます。
主要データ
- PMIの Pulse of the Profession によると、プロジェクトのオンタイム完了率はわずか47%であり、スケジュールバッファ管理の不備が主な原因として挙げられています。(PMI、Pulse of the Profession 2023年)
- International Journal of Project Management の研究によると、Floatを積極的に監視したチームは、Milestone 日付のみを追跡したチームよりも予備日数の使用が20〜30%少なかったとされています。
- McKinsey は、大規模インフラプロジェクトが平均20%スケジュールを超過して実行されることを報告しており、主な理由としてプロジェクトマネージャーが柔軟性のあるタスクとないタスクを区別できないことを挙げています。
トータルフロートとフリーフロート
これらはすべてのアクティビティに対して計算する2つのFloat値です。それぞれ異なる質問に答えており、混同すると誤った決定につながります。
| トータルフロート | フリーフロート | |
|---|---|---|
| 測定対象 | プロジェクト終了日を後退させることなくタスクを遅延できる時間 | 後続タスクを遅延させることなくタスクを遅延できる時間 |
| 誰の締め切り? | プロジェクトの | 直近の次のタスクの |
| 計算式 | LS - ES または LF - EF | ES(次のアクティビティ)- EF(現在のアクティビティ)- ラグ |
| スコープ | プロジェクト全体への影響 | 2つのタスク間のローカルな影響 |
| 共有可能? | はい:同じパス上のすべてのタスクと共有される | いいえ:個別のタスクにのみ属する |
| 使用目的 | 監視が必要なタスクの優先順位付け | 次のチームに伝えずにタスクを遅延できるかどうかの判断 |
トータルフロートの計算式:
トータルフロート = LS - ES
= LF - EF
どちらも同じ結果が出ます。手元にある値のペアを使ってください。
フリーフロートの計算式:
フリーフロート = 次のアクティビティのES - 現在のアクティビティのEF - ラグ
2つのタスク間にラグがない場合、その項を省きます。
どちらがより重要ですか? トータルフロートはヘッドラインの数値であり、プロジェクトリスクを示します。フリーフロートは運用上の数値であり、次のチームと調整する必要なしにローカルでどれだけの余裕があるかを示します。
Float、Slack、クリティカルパス
Floatとクリティカルパスはコインの両面です。クリティカルパス法が両方を生成します。クリティカルパスはトータルフロートがゼロのアクティビティのシーケンスであり、Floatは他のすべてのアクティビティが定義上持つものです。
これからいくつかのことが導かれます:
- クリティカルパスアクティビティはトータルフロートがゼロです。そこでの遅延はプロジェクトへの遅延です。
- クリティカルパスに近いタスクは非常に小さなトータルフロート(しばしば1〜2日)を持ちます。今日クリティカルパス上にありませんが、1回の超過でそこに加わる可能性があります。
- クリティカルパスはシフトする可能性があります。 タスクがそのFloatを消費すると、クリティカルパスに加わります。だからFloatは一度計算するだけの数値ではなく、実行全体を通じて監視するものです。
ネットワーク図を使って作業する場合、トータルフロートはアクティビティノードのES/EFボックスとLS/LFボックスの間のギャップとして表示されます。Gantt チャートでは、タスクの最早終了日を過ぎたシャドウバーとして表示されることが多いです。
Floatの計算方法
Float計算はCPMから直接導かれます。まずネットワーク図と所要期間の見積もりが必要です。そして:
ステップ1:フォワードパス(ESとEFを計算する)
ネットワークを左から右に作業します。最初のアクティビティはES = 0から始まります(または規約によって1日目)。
各アクティビティについて:
- ES = すべての先行アクティビティのEFの最大値
- EF = ES + 所要期間
すべてのアクティビティを処理するまで続けます。最後のアクティビティのEFがプロジェクト期間です。
ステップ2:バックワードパス(LSとLFを計算する)
右から左に作業します。最後のアクティビティのLFをEFと等しく設定することから始めます(できるだけ早く終了したいと仮定して)。
各アクティビティについて:
- LF = すべての後続アクティビティのLSの最小値
- LS = LF - 所要期間
ステップ3:トータルフロートを計算する
すべてのアクティビティについて:
トータルフロート = LS - ES(または LF - EF、結果は同じ)
トータルフロート = 0のアクティビティがクリティカルパスを形成します。
ステップ4:フリーフロートを計算する
各アクティビティについて、その直接の後続アクティビティを確認します:
フリーフロート = ES(後続アクティビティ)- EF(現在のアクティビティ)- ラグ
アクティビティに複数の後続アクティビティがある場合、最小の結果を使用します。フリーフロートは負になりません。計算式が負の数値を出す場合、ネットワークロジックを確認してください。
実例
6つのアクティビティのプロジェクトを考えます。所要期間は日単位です。
| アクティビティ | 所要期間 | 先行アクティビティ |
|---|---|---|
| A | 3 | なし |
| B | 5 | A |
| C | 2 | A |
| D | 4 | B |
| E | 6 | C |
| F | 3 | D、E |
フォワードパス:
| アクティビティ | ES | EF |
|---|---|---|
| A | 0 | 3 |
| B | 3 | 8 |
| C | 3 | 5 |
| D | 8 | 12 |
| E | 5 | 11 |
| F | 12 | 15 |
プロジェクト期間 = 15日。FのEF = 15なので、FのLF = 15。
バックワードパス:
| アクティビティ | LF | LS |
|---|---|---|
| F | 15 | 12 |
| D | 12 | 8 |
| E | 12 | 6 |
| B | 8 | 3 |
| C | 6 | 4 |
| A | 3 | 0 |
Float値:
| アクティビティ | トータルフロート(LS - ES) | フリーフロート | クリティカルパス上? |
|---|---|---|---|
| A | 0 - 0 = 0 | 0 | はい |
| B | 3 - 3 = 0 | 0 | はい |
| C | 4 - 3 = 1 | ES(E) - EF(C) = 5 - 5 = 0 | いいえ |
| D | 8 - 8 = 0 | 0 | はい |
| E | 6 - 5 = 1 | ES(F) - EF(E) = 12 - 11 = 1 | いいえ |
| F | 12 - 12 = 0 | 0 | はい |
クリティカルパスはA - B - D - F(すべてトータルフロートがゼロ)を通ります。アクティビティCとEはそれぞれ1日のトータルフロートを持ちますが、フリーフロートがあるのはEだけです(Fに触れることなく1日遅らせることができます)。CはEがCに依存しているためフリーフロートがゼロです。
その他のFloat種別
トータルフロートとフリーフロートが最も一般的ですが、プロジェクト管理の文献では他の2種類も挙げられています。
| Float種別 | 定義 | 重要な場面 |
|---|---|---|
| トータルフロート | プロジェクト終了日を後退させることなく許容できる遅延 | プロジェクト全体のリスク優先順位付け |
| フリーフロート | 後続アクティビティの最早開始日を後退させることなく許容できる遅延 | 2つのタスク間のローカルなスケジュール決定 |
| 独立フロート | すべての先行アクティビティが可能な限り遅く終了し、すべての後続アクティビティが可能な限り早く開始しても許容できる遅延 | ほとんど使われない。保守的なセーフティチェック |
| プロジェクトフロート | 計算された終了日より遅い目標終了日に対して許容できる遅延 | 契約上の締め切り、顧客へのコミットメント |
独立フロートは最も制限的なものです。何がどう動いてもバッファが存在します。プロジェクトフロートは最も許容的なものです。ネットワークが示すものと契約が要求するものとのギャップです。
ほとんどのプロジェクトでは、トータルフロートとフリーフロートの2つだけが必要です。
Floatが重要な理由
Floatは単なるスケジュールの珍品ではありません。実際の管理上の決定を左右します。
リソース平準化。 リソースの競合がある場合、Floatのあるタスクを遅らせることで解決します。5日間のトータルフロートを持つタスクは、締め切りに触れることなく2日間のリソース不足を吸収できます。Floatがゼロのタスクはできません。
リスクのトリアージ。 すべての遅延が同じではありません。Floatはどの遅延が重要かを教えてくれます。10日間のトータルフロートを持つタスクの2日間の遅延はノイズです。2日間のFloatを持つクリティカルパスに近いタスクの2日間の遅延はプロジェクトの脅威です。
スコープ変更の影響分析。 クライアントが変更を要求したとき、それがクリティカルパスに当たるのか、Float豊富なゾーンに落ちるのかを知る必要があります。その答えはあなたの交渉上の立場を完全に変えます。
チームコミュニケーション。 Floatはペースに関する会話に事実に基づく根拠を与えます。チームに「遅れている」と伝える代わりに、残りのバッファがどれだけあって、それがなくなるとどうなるかを正確に示せます。それははるかに生産的な会話であり、直感ではなくトリプル制約(時間、コスト、スコープ)に基づいています。
スケジュール圧縮。 プロジェクトが遅れていてスケジュールをクラッシングする必要がある場合、クリティカルパスタスクに集中します。Floatは余裕があるため圧縮をスキップできるタスクを教えてくれます。
よくある間違いはFloatを空き時間として扱うことです。そうではありません。Floatは保険です。それを消費した瞬間、タスクはクリティカルパスに加わり、バッファを失います。Floatを早期に使い切るチームは、紙の上では良好に見えたプロジェクトの最終週にしばしば慌てることになります。
Floatの可視性も、Gantt チャートやPERTチャートのようなツールが重要な理由です。これらのツールはFloatをタスクのリストでは決してできない方法で可視化します。
よくある質問
FloatとSlackは同じですか?
はい。FloatとSlackは同じ概念を指します。この2つの用語は異なる伝統に由来します。Floatはクリティカルパス法(CPM)で使用される用語であり、Slackは Program Evaluation and Review Technique(PERT)に登場しました。今日、この用語は実務上互換的に使われており、ほとんどのプロジェクト管理ツールでは同義語として扱われています。
Floatはマイナスになりますか?
はい。マイナスのFloatは、プロジェクトがすでに目標日に対して遅延していることを意味します。プロジェクトの締め切りが計算された終了日より早い場合、または実際の進捗がベースラインスケジュールから遅れた場合に発生します。タスクのマイナスのFloatは、締め切りに間に合わせるために現在の最遅終了日より早く終了する必要があることを意味します。これは上流の作業を圧縮することでのみ可能です。マイナスのFloatは即座の対応を求める赤信号です。
実務におけるフリーフロートとトータルフロートの違いは?
この区別は順序付けられた引き継ぎで最も明確に現れます。チームが成果物を完成させ別のチームに引き渡すとします。そのタスクに2日間のフリーフロートがある場合、チームは受け取るチームの開始日に影響を与えることなく2日余分に取れます。調整したり誰かに警告したりする必要はありません。タスクに2日間のトータルフロートがあるがフリーフロートがゼロの場合、プロジェクトの終了日はまだリスクにさらされていないにもかかわらず、遅延はすぐに次のチームの開始を後退させます。フリーフロートはローカルな調整を管理し、トータルフロートはプロジェクトレベルのリスクを管理します。
プロジェクト実行中にFloatは変化しますか?
はい、そしてチームが予想するよりも速く縮まることがよくあります。Floatは現在の見積もりと実績に基づいた計算値です。タスクが長引いたり、スコープ変更が承認されたり、依存関係がシフトしたりすると、下流アクティビティのFloatが変化します。だからFloatは(または動的にスケジューリングツールによって更新されて)定期的なリズムで再計算されるべきです。複雑なプロジェクトでは少なくとも週次で。
タスク間にラグやリードがある場合、Floatはどうなりますか?
ラグは1つのタスクの終了と次のタスクの開始の間に時間を追加します。先行タスクのフリーフロートを減少させます。リード(マイナスのラグ)は後続タスクを先行タスクが完全に完了する前に開始できるようにします。フリーフロートを増加させる可能性があります。どちらもフリーフロートの計算式を変えます:フリーフロート = ES(後続アクティビティ)+ リード - EF(現在のアクティビティ)- ラグ。スケジューリングソフトウェアは関係タイプとラグ/リード値を入力すれば自動的に処理します。
関連記事
- クリティカルパス法(CPM):クリティカルパスの見つけ方
- ネットワーク図:プロジェクトアクティビティのマッピング方法
- PERTチャートとは?
- Gantt チャートとは?
- プロジェクト管理のトリプル制約
Floatはプロジェクトスケジュールの最も有用な数値のひとつですが、積極的に追跡した場合に限ります。開始時に計算し、毎週見直し、Floatがほぼゼロに近づいたらそれが示す早期警告サインとして扱います。バッファがどこにあるかを示すスケジュールは、実際に管理できるスケジュールです。

Senior Operations & Growth Strategist