【第9-1章】ガントチャートの理想的な作成方法:ガントチャートとはガントチャートとは上司から「5月に新人がうちの部に来るので1ヵ月の新人教育を実施してほしい。ついては教育スケジュールを立てるように!」と指示されたとします。試しにやるにしても、やるべき作業を洗い出し、その作業量を勘案しながら誰がいつやるか計画を立てなければなりません。そんな時、誰もがわかる共通のツールとして「ガントチャート」が使われます。スケジュール表や線表と呼ばれることもありますが、図1のように日程を横軸に作業や担当を縦軸にし、現時点の進捗状況を視覚的に誰でも一目でわかるような便利な図がガントチャートです。図1:ガントチャートもう100年近く前のことになりますが、アメリカの経営コンサルタントのヘンリー・ガント氏が考えたチャート(棒状の表)ということで「ガントチャート」と呼ばれます。ガント氏には失礼なのですが、初めて名前を聞いた時は難しそうな名前でとっつきにくかったです。名前とは裏腹にプロジェクトの進捗を端的に表していますので、無料で管理を行う上でとても便利なものでした。ガント氏は、個人の能力を最大限に発揮し、いかに生産性をあげるかといったことにも取り組んでいたようです。ガント氏の意向通り、ガントチャートを更新し使うことでスケジュールに遅れがでないように、また生産性をあげられるよう管理していきたいものです。通常、いきなり「ファイルでガントチャート作成して」ということにはなりません。スケジュールを立てるまでには、「納期」「作業タスク」「見積工数」「リソース(要員)」の計画が必要で、それらをもとにガントチャートを作成することになります。開発プロジェクトは複雑でタスクも多いので、身近なことを例にして考えてみることにします。娘の誕生日祝いに犬のぬいぐるみを製作することにしましょう。今回ぬいぐるみを制作する時間の目安(見積工数)は7時間で、1週間後の誕生日(納期)には間に合わせないといけません。毎日忙しい中で作業するので1日1時間、合計7日間で作ることにします。「作業タスク」「見積工数」「リソース(要員)」を図2のように整理し、それをもとにガントチャートを作成していきます。作業タスク全てが期限(納期)までに完了するように、作業スケジュールの計画を立てなければなりません。図2:見積工数や納期をもとにして作業タスクごとのスケジュールを計画し共有ガントチャートはスケジュールの計画だけでなく実績もチャート上に表現できます。図2では長四角の枠が計画(開始予定日から終了予定日の幅)で、その中の横棒グラフが実績です。作業が進捗する都度、チャートの進捗バーを伸ばしたり、「進捗率」を入力したりすることにより実績を報告します。この例では8/4時点で胴体部分の作成が80%完了していることが横棒グラフでわかります。ガートチャートは視覚性に優れているので、直観的に遅れているタスクがあること、全体で1日程度の遅れが生じていること、などが一目でわかります。1日1時間の作業予定ですから、今日1時間多く作業すれば遅れが取り戻せる見込みです。実際には裁縫が苦手な私にとって、7時間という見積が甘かったようです。がんばって1時間の遅れを取り戻したとしても、生産性を加味すると予定通りには進めない恐れがあります。実際のプロジェクトでも、そういった問題が山ほど出てきます。リスクを少なくするために、ガントチャート活用におけるポイントを紹介していきたいと思います。ガントチャート作成のポイントと方法1WBSでタスクを洗い出してからガントチャートを作成する「【第7章】WBSの目的とメリット」で説明した通り「プロジェクトの成功の鍵はWBSにあり」といえます。WBSの階層構造を利用し、プロジェクト全体の細かな作業を漏れがないよう洗い出します。タスクの洗い出しに漏れがあると、プロジェクトの途中でタスクを追加し作業を割り当てる等の調整が必要になります。メンバーの誰かが想定外の作業をすることになるため、プロジェクトを円滑に進められなくなります。ガントチャート作成時には、WBSで作業スコープを徹底的に洗い出し、計画プロセスにおけるタスクの漏れを極力なくすようにします。2WBSの標準を持つべし。実現は可能!プロジェクトが発足するたびに、WBSを一から作成するのは大変です。一般には、これまでの経験から似たようなプロジェクトのWBSをコピーして作成することが多いでしょう。このやり方だとコピー元のWBSの完成度にばらつきが出ますし、属人的なので組織全体の効率化につながりません。そのため、WBSの標準を持つことが大事です。標準は1パターンとは限りませんので、通常はプロジェクトのタイプ(開発スタイル、システム要件が同じようなプロジェクト)別にWBS標準を作っておき、そこから今回のプロジェクトのタイプに当ったものを選択すると効率的です。WBS標準をプロジェクトに適用した後、今回のプロジェクトではスコープ外と思われるタスクは削除します。逆にプロジェクト固有の作業があれば、WBSに漏れなく追加します。“開発環境をクラウド環境に移行する”というタスクがWBS標準になかった場合、プロジェクトのWBSに追加してガントチャートで進捗管理します。図3:WBSでタスクを洗い出し、今、それをガントチャートのタスクに展開[RELATED_POSTS]3作業スコープでWBS展開し、末端タスクは成果物スコープをシンプルにセットWBSを使って洗い出すスコープには「作業スコープ」と「成果物スコープ」があります。この二つの違いは、簡単に説明すると「何をやるか」と「何を作るか」です。作業によってできるものが成果物です。詳細設計工程において、「ログイン画面設計」という作業により作成されるものが「ログイン画面の詳細設計書」です。このように作業に成果物が紐づくのですが、作業によっては成果物を紐つけにくいものがあります。データ移行工程において、「受注データ移行プログラムの作成」という作業は「受注データ移行プログラム」という成果物を紐つけることができます。そのプログラムを使って行う「データ移行処理」という作業には、ピンとくる成果物を定義できません。定義するとすれば、「正しくデータ移行されたデータベース」ということになるのでしょうが、ばかばかしいのでこうした作業には無理に成果物を持たせません。このような性質からWBSの展開は作業スコープで行う方がやりやすいでしょう。一方で進捗管理は作業スコープよりも成果物スコープの方が管理しやすい特性があります。「受注データ移行プログラムの作成」という作業の進捗が50%というと何をもって50%なのかわかりにくいです。対象が「受注データ移行プログラムソフトウェア」という成果物であれば、全体のボリューム(ステップ数やロジック数など)のうちどれくらい終了したかという具体的な数値で管理しやすくなるのです。「WBSでスコープを洗い出してガントチャートに展開する」作業を行う場合、この2つの特性を活かした法則に従って作業すると効率よく計画を立てられます。成果物スコープを持たない作業スコープは末端タスクも作業スコープのままとする。具体例で説明しましょう。コーディング」等の作業タスクについては、それぞれの作業タスクの下に機能別の作業タスクがつきます。機能単位の作業タスクにブレークダウンされます。成果物(設計書)が紐つきます。これが末端タスク(進捗管理の対象のタスク)になるので、ガントチャート上には「ログイン画面作成」という項目ではなく、「ログイン画面」という項目で展開し、進捗管理するのです。このように成果物を作業タスクに関連付けてガントチャートで一括管理することにより対応漏れもなくなります。タスクの進捗は個々の成果物(機能)の進捗の積み上げですので、上位タスクの進捗が正確に把握できるのです。4工数見積をガントチャート先のタスクの計画工数に連携するプロジェクトのスタート時点において、作成した機能一覧表をもとにして、ログイン画面設計は2人日、メニュー画面設計は3人日というように機能別に工数を見積します。この値がガントチャートに展開した場合の計画工数となります。当社ではOBPMを利用し見積した機能(明細)を自動でガントチャートに関連付ける機能があります。機能名だけでなく見積工数も連携され、それに応じた期間もガントチャートに自動反映(3人日なら3日分の線の長さで初期表示)されるので容易にスケジュールが作成しやすいと利用者に好評です。図4:見積工数がガントチャートの計画工数となり線幅を自動設定するエクセルやフリーのアプリでガントチャートを作成することも実現可能だが・・このような手法を見につければ、ガントチャートを作成ツールはなんでもかまわないとも言えます。皆さんの身近にあるエクセルやフリーのアプリを使うこともよいかもしれません。エクセルのフリーテンプレートは結局メンバーの入力状況や、今がわからなかったりするデメリットがあります。フリーのアプリも、チケット発行をして進捗状況がわかるだけで、ガントチャート管理には、程遠いでしょう・・。