図1は、本発明の一実施形態に係る情報処理装置の概要を説明する図である。図1に示す情報処理装置1は、例えば、パーソナルコンピュータやサーバなどである。情報処理装置1がサーバの場合、例えば、入力装置や表示装置などは、サーバに接続された端末装置によって実現される。
情報処理装置1は、ユーザから、プロジェクトの体制、作業計画、および作業実績等の情報の入力を受付ける。情報処理装置1は、ユーザから受付けた情報に基づいて、将来の工数バッファを算出し、表示装置に表示する。
工数バッファとは、以下でも説明するが、主作業以外の補作業に係る工数を示す。主作業とは、例えば、設計等の予測可能な作業等であり、補作業とは、例えば、設計等において発生した問題の対処等、予測不可能な作業等である。従って、工数バッファは、主作業に何かあったときの余裕期間を示しているといえる。
情報処理装置1は、将来の工数バッファ(将来の余裕期間)を表示装置に表示する。これにより、ユーザは、将来の作業に余裕があるかないか判断することが可能となる。すなわち、ユーザは、プロジェクトの遅延が発生する前に、情報処理装置1によって、プロジェクトの遅延発生を予測することが可能となる。
また、情報処理装置1は、複数のプロジェクトのそれぞれにおける将来の工数バッファを算出する。これにより、ユーザは、将来、遅延が発生しそうなプロジェクトに対し、将来、余裕のあるプロジェクトから人員を手配することが可能となる。すなわち、ユーザは、情報処理装置1によって、早期にプロジェクト体制の変更計画を立案することが可能となる。
図2は、情報処理装置1の機能ブロックの一例を示した図である。図2に示すように、情報処理装置1は、入力部11と、算出部12と、出力部13と、PJ(PJ:project)記憶部14と、PJ体制計画記憶部15と、作業計画記憶部16と、作業実績記憶部17と、工数バッファ記憶部18と、を有している。
入力部11は、ユーザから情報の入力を受付ける。例えば、入力部11は、プロジェクトの体制、作業計画、および作業計画に対する作業実績等の情報を受付ける。入力部11は、受付けた情報を所定の記憶部に記憶する。
算出部12は、PJ工数算出部12aと、作業工数算出部12bと、工数バッファ算出部12cと、を有している。
PJ工数算出部12aは、プロジェクトに割り当てられた人数を示す体制計画情報から、プロジェクトを遂行できる最大の工数を、プロジェクトの所定期間ごと(例えば、月単位)において算出する。
例えば、あるプロジェクトに3人が割り当てられたとする。x月の出勤日数は20日、1日の作業時間を8時間とする。この場合、あるプロジェクトのx月の作業を遂行できる最大の工数は、次のようになる。
3(人)×20(日)×8(h)=720(Mh)
すなわち、あるプロジェクトのx月では、最大で「720」までの作業工数を遂行することができる。PJ工数算出部12aは、x月以外の他の月、つまり月単位において(プロジェクトの所定期間ごとにおいて)、プロジェクトの作業を遂行できる最大の工数を算出する。以下では、PJ工数算出部12aが算出する工数を、「最大投入工数」と呼ぶことがある。
作業工数算出部12bは、プロジェクトの作業計画を示す作業計画情報から、作業計画の遂行に要する工数を、プロジェクトの所定期間ごと(例えば、月単位)において算出する。
例えば、プロジェクトの作業計画を示す作業計画情報より、あるプロジェクトのx月では、2つの作業があり、それぞれの作業に要する工数は「300」と「200」であるとする。この場合、あるプロジェクトのx月の作業を遂行するのに要する工数は、次のようになる。
300(Mh)+200(Mh)=500(Mh)
作業工数算出部12bは、x月以外の他の月、つまり、月単位において(プロジェクトの所定期間ごとにおいて)、作業計画の作業を遂行するのに要する工数を算出する。以下では、作業工数算出部12bが算出する工数を、「計画作業工数」と呼ぶことがある。
工数バッファ算出部12cは、PJ工数算出部12aが算出した「最大投入工数」と、作業工数算出部12bが算出した「計画作業工数」と、プロジェクトの「実績作業工数」とに基づいて、将来の工数バッファを算出する。プロジェクトの「実績作業工数」とは、プロジェクトの実際の作業遂行に要した工数をいう。
ここで、作業者が実施する作業を、主作業と補作業との2つに分類する。主作業は、計画時に作業項目を定め、工数を見積もりし、日程が管理される作業である。例えば、主作業には、図面作成作業、帳票発行作業、および設計作業などがある。
一方、補作業は、主作業以外の作業で、作業を実際に開始するまでは、作業項目の詳細や作業量が分からない作業である。例えば、補作業には、設計仕様に対する確認の問い合わせ作業や、人員の手配可否判断のための各種調査作業などがある。
このような主作業以外で発生する補作業の工数を工数バッファと呼ぶ。ここでは、工数バッファを、次の式(1)によって定義する。
工数バッファ=最大投入工数−主作業の工数 …(1)
ここで、プロジェクトの所定期間ごと(例えば、月単位)の主作業の工数は、「計画作業工数」に対応する。この場合、プロジェクトの所定期間ごと(例えば、月単位)の工数バッファは、次の式(2)によって示される。
工数バッファ=最大投入工数−計画作業工数 …(2)
例えば、x月の最大投入工数は「720」であるとする。x月の計画作業工数は「500」であるとする。この場合、x月の工数バッファは、式(2)より、「220」となる。つまり、ユーザは、「220」の工数を、主作業以外の作業、つまり予測できない出来事が発生したときの作業(補作業)に割り当てることができる。
一般的な工程表管理ソフトは、プロジェクトに対する工程表を作成するために、作業工程とその作業工程に対するバッファ(余裕期間)とをユーザから受付ける。これに対し、情報処理装置1は、プロジェクトの体制計画情報から、最大投入工数を算出し、最大投入工数と計画作業工数とから、工数バッファを算出する。すなわち、情報処理装置1は、一般的な工程表管理ソフトとバッファに対する扱いが異なる。
出力部13は、工数バッファ算出部12cによって算出された将来の工数バッファを、表示装置に出力する。
PJ記憶部14は、複数のプロジェクトに関する情報を記憶する。
図3は、PJ記憶部14のデータ構成例を示した図である。図3に示すように、PJ記憶部14は、PJ名称14aと、PJID(ID:identification)14bと、を記憶する。
PJ記憶部14に記憶される情報は、例えば、プロジェクトが開始される前に、ユーザによって入力される。例えば、入力部11は、ユーザからPJ名称14aおよびPJID14bを受付け、PJ記憶部14に記憶する。ユーザは、PJ名称14aに対し、ユニークなPJID14bを付与するようにする。PJID14bは、情報処理装置1によって、自動で付与してもよい。
PJ名称14aは、プロジェクトの名称を示す。PJID14bは、プロジェクトを識別する識別子を示す。
PJ体制計画記憶部15は、プロジェクトの体制計画に関する情報を記憶する。例えば、PJ体制計画記憶部15は、あるプロジェクトのある期間に、人を何人割り当てるかなどのプロジェクト体制に関する情報を記憶する。
図4は、PJ体制計画記憶部15のデータ構成例を示した図である。図4に示すように、PJ体制計画記憶部15は、PJID15aと、担当名称15bと、担当員数15cと、開始月15dと、終了月15eと、を記憶する。
PJ体制計画記憶部15に記憶される情報は、例えば、プロジェクトが開始される前に、ユーザによって入力される。例えば、入力部11は、ユーザからPJID15a、担当名称15b、担当員数15c、開始月15d、および終了月15eを受付け、PJ体制計画記憶部15に記憶する。
PJID15aは、プロジェクトを識別する識別子を示す。
担当名称15bは、PJID15aに示すプロジェクトを担当する担当者または担当会社を示す。例えば、図4の例の場合、PJID「0001」のプロジェクトは、少なくとも「鈴木」および「A社」が担当することが分かる。
担当員数15cは、PJID15aに示すプロジェクトに割り当てられる(参加する)員数を示す。例えば、図4の例の場合、担当会社「A社」からは、3人がPJID「0001」のプロジェクトに参加することが分かる。
開始月15dは、担当名称15bに示す担当者または担当会社が、PJID15aに示すプロジェクトを開始(参加)する予定の月を示す。例えば、図4の例の場合、担当者「鈴木」は、「2010年1月」から、PJID「0001」のプロジェクトに参加する予定であることが分かる。また、担当会社「A社」は、「2010年3月」から、PJID「0001」のプロジェクトに参加する予定であることが分かる。
終了月15eは、担当名称15bに示す担当者または担当会社が、PJID15aに示すプロジェクトを終了する予定の月を示す。例えば、図4の例の場合、担当者「鈴木」は、「2011年10月」に、PJID「0001」のプロジェクトを終了する予定であることが分かる。また、担当会社「A社」は、「2011年3月」に、PJID「0001」のプロジェクトを終了する予定であることが分かる。
作業計画記憶部16は、プロジェクトの作業計画に関する情報を記憶する。例えば、作業計画記憶部16は、あるプロジェクトのある作業をいつ行い、その作業にどのくらいの作業工数を要するかの作業計画に関する情報を記憶する。
図5は、作業計画記憶部16のデータ構成例を示した図である。図5に示すように、作業計画記憶部16は、作業番号16aと、作業名16bと、開始日16cと、終了日16dと、作業工数16eと、PJID16fと、を記憶する。
作業計画記憶部16に記憶される情報は、例えば、プロジェクトが開始される前に、ユーザによって入力される。例えば、入力部11は、ユーザから、作業番号16a、作業名16b、開始日16c、終了日16d、作業工数16e、およびPJID16fを受付け、作業計画記憶部16に記憶する。
作業番号16aは、PJID16fに示すプロジェクトで行われる作業の作業番号を示す。
作業名16bは、PJID16fに示すプロジェクトで行われる作業の作業名を示す。例えば、図5の例の場合、PJID「0001」で行われる作業には、作業名「図番001作図」、「図番002作図」、および「図番003作図」の作業があることが分かる。なお、作業名「図番001作図」、作業名「図番002作図」、および作業名「図番003作図」のそれぞれの作業番号16aは、「A001」、「A002」、および「A003」である。
開始日16cは、作業番号16aに示す作業の作業開始日を示す。例えば、図5の例の場合、作業番号「A001」の作業は、「2010年7月1日」に開始する計画であることが分かる。
終了日16dは、作業番号16aに示す作業の作業終了日を示す。例えば、図5の例の場合、作業番号「A001」の作業は、「2010年7月20日」に終了する計画であることが分かる。
作業工数16eは、作業番号16aに示す作業にかかる工数を示す。例えば、図5の例の場合、作業番号「A001」の作業の、「2010年7月1日」から「2010年7月20日」までの工数は、「22」であることが分かる。
PJID16fは、プロジェクトを識別する識別子を示す。
作業実績記憶部17は、プロジェクトの作業実績に関する情報を記憶する。例えば、作業実績記憶部17は、あるプロジェクトのある作業を、いつどのくらいの作業工数で実施したかの作業実績に関する情報を記憶する。
図6は、作業実績記憶部17のデータ構成例を示した図である。図6に示すように、作業実績記憶部17は、作業番号17aと、作業名17bと、開始日17cと、終了日17dと、作業工数17eと、PJID17fと、を記憶する。
作業実績記憶部17に記憶される情報は、例えば、ユーザがプロジェクトの作業を実施した後、その作業実績に基づいて、ユーザにより入力される。例えば、入力部11は、ユーザから、作業番号17a、作業名17b、開始日17c、終了日17d、作業工数17e、およびPJID17fを受付け、作業実績記憶部17に記憶する。
作業番号17aは、PJID17fに示すプロジェクトで行われた作業の作業番号を示す。
作業名17bは、PJID17fに示すプロジェクトで行われた作業の作業名を示す。例えば、図6の例の場合、PJID「0001」で行われた作業には、作業名「図番001作図」、「図番002作図」、および「図番003作図」の作業があったことが分かる。なお、作業名「図番001作図」、作業名「図番002作図」、および「図番003作図」のそれぞれの作業番号17aは、「A001」、「A002」、および「A003」である。
開始日17cは、作業番号17aに示す作業を開始した作業開始日を示す。例えば、図6の例の場合、作業番号「A001」の作業は、「2010年7月1日」に開始されたことが分かる。なお、図5の例より、作業計画では、作業番号「A001」の作業は、「2010年7月1日」に開始する計画であったので、計画通りに作業が開始されたことが分かる。
終了日17dは、作業番号17aに示す作業を終了した作業終了日を示す。例えば、図6の例の場合、作業番号「A001」の作業は、「2010年7月20日」に終了されたことが分かる。なお、図5の例より、作業計画では、作業番号「A001」の作業は、「2010年7月20日」に終了する計画であったので、計画通りに作業が終了されたことが分かる。
作業工数17eは、作業番号17aに示す作業の、作業遂行に実際に要した工数を示す。例えば、図6の例の場合、作業番号「A001」の作業の、「2010年7月1日」から「2010年7月20日」までの工数は、「24」要したことが分かる。なお、図5の例より、作業計画では、作業番号「A001」の作業工数は「22」であったが、作業を遂行した結果、作業工数が「24」かかっている。従って、作業番号「A001」の作業は、日程(開始日および終了日)においては、計画通り遂行されたが、残業等によって、作業工数が「2」オーバーしたことが分かる。
PJID17fは、プロジェクトを識別する識別子を示す。
工数バッファ記憶部18は、プロジェクトの工数バッファに関する情報を記憶する。例えば、工数バッファ記憶部18は、月単位等、所定の期間ごとにおいて、過去の工数バッファがどれくらいであったかの情報と、将来の工数バッファがどのくらいであるかの情報と、これらの情報を算出するための情報と、を記憶する。
図7は、工数バッファ記憶部18のデータ構成例を示した図である。図7に示すように、工数バッファ記憶部18は、PJID18aと、年月18bと、最大投入工数18cと、計画作業工数18dと、実績作業工数18eと、予測作業工数18fと、初期工数バッファ18gと、工数バッファ18hと、を記憶する。
工数バッファ記憶部18に記憶される各情報は、例えば、入力部11がユーザから、将来の工数バッファの算出指示を受付けた場合、算出部12によって算出される。
PJID18aは、プロジェクトを識別する識別子を示す。年月18bは、初期工数バッファ18gおよび工数バッファ18hが算出される所定の期間を示す。図7の例の場合、初期工数バッファ18gおよび工数バッファ18hは、月単位で算出されている。
なお、工数バッファ記憶部18は、プロジェクトごと(PJIDごと)に各種情報(18a〜18h)を記憶する。例えば、図7では、工数バッファ記憶部18は、PJID「0001」の各種情報を記憶する例を示しているが、PJID「0002」,「0003」・・・についても同様の各種情報を記憶する。また、工数バッファ記憶部18は、例えば、年月18bの古い順に各種情報を記憶する。
最大投入工数18cは、年月18bに示す年月の最大投入工数を示す。例えば、図7の例の場合、PJID「0001」のプロジェクトの「2011年1月」では、最大で作業工数「A」までの作業を遂行できることが分かる。なお、最大投入工数18cは、PJ工数算出部12aによって算出され、工数バッファ記憶部18に記憶される。
計画作業工数18dは、年月18bに示す年月の計画作業工数を示す。例えば、図7の例の場合、PJID「0001」のプロジェクトの、「2011年1月」の計画作業工数18dは「M」であることが分かる。なお、計画作業工数18dは、作業工数算出部12bによって算出され、工数バッファ記憶部18に記憶される。
実績作業工数18eは、年月18bに示す年月の、プロジェクトの実績作業工数を示す。例えば、図7の例の場合、PJID「0001」のプロジェクトの、「2010年11月」の実績作業工数18eは「C」であることが分かる。
なお、図7に示す実績作業工数18eの「−」は、実績作業工数18eが工数バッファ記憶部18に記憶されていないことを示す。実績作業工数18eは、プロジェクトの作業実績を示すので、「−」に対応する年月18bは、まだプロジェクトの作業が実施されていない年月、すなわち、将来の年月であることを示す。これにより、図7に示す計画作業工数18dの「H,M・・・」(2010年12月以降の計画作業工数18d)は、これから実施される作業の計画作業工数を示している。これに対し、図7に示す計画作業工数18dの「・・・B」(2010年11月以前の計画作業工数18d)は、すでに実施された作業の計画作業工数を示している。
予測作業工数18fは、計画作業工数18dを、実績作業工数18eに基づいて補正した計画作業工数を示す。例えば、過去において、実績作業工数が、計画作業工数より多かった場合、その作業は、計画より遅くなったまたは残業が行われた可能性がある。このように、過去において、実績作業工数が、計画作業工数より多かった場合、将来における作業計画は遅れる可能性がある。そこで、工数バッファ算出部12cは、すでに実施された作業の計画作業工数18dおよび実績作業工数18eから、これから実施される作業の計画作業工数18dを補正した予測作業工数18fを算出する。具体的には、工数バッファ算出部12cは、次の式(3)によって、予測作業工数18fを算出する。
予測作業工数=計画×(実績÷計画’)×(100÷作業進捗率) …(3)
ここで、「計画」は、算出しようとする「予測作業工数」に対応する将来の「計画作業工数」を示す。「実績」は、すでに実施された作業の「実績作業工数」を示す。「計画’」は、すでに実施された作業の「計画作業工数」を示す。「作業進捗率」は、計画に対する作業実績の比率を示し、例えば、すでに実施された作業の「計画作業工数」に対する、すでに実施された作業の「実績作業工数」の比率で示される。
例えば、図7に示す予測作業工数18fの「I」は、次のようにして求まる。
I=H×(C÷B)×{100÷(C÷B)}
また、図7に示す予測作業工数18fの「N」は、次のようにして求まる。
N=M×(C÷B)×{100÷(C÷B)}
すなわち、予測作業工数18fの「I,N・・・」は、これから実施される作業の計画作業工数18dの「H,M・・・」を、すでに実施された作業の計画作業工数18dの「B」と、実施作業工数18eの「C」とで補正し、作業進捗率で補正した工数である。例えば、すでに実施された作業の実績作業工数18eの「C」が、すでに実施された作業の計画作業工数18dの「B」より大きければ、これから実施される作業の計画作業工数18dの「H,M・・・」は、その値が大きくなるように補正される。また、これから実施される作業の計画作業工数18dの「H,M・・・」は、作業進捗率が加味される。
なお、上記では、直近の過去の計画作業工数と実績作業工数と(例えば、「B」と「C」)を用いて、予測作業工数を算出したが、さらに過去の計画作業工数と実績作業工数とを用いて、予測作業工数を算出してもよい。例えば、過去の計画作業工数の平均値と、実績作業工数の平均値とを用いて予測作業工数を算出してもよい。
また、図7に示す予測作業工数18fの「−」は、予測作業工数18fが工数バッファ記憶部18に記憶されていないことを示す。予測作業工数18fは、上記したように、過去の計画作業工数18dおよび実績作業工数18eに基づいて、将来の計画作業工数18d(H,M・・・)を補正した工数であるからである。
初期工数バッファ18gは、プロジェクトの計画時における工数バッファを示す。初期工数バッファ18gは、上記した式(2)を用いて求めることができる。例えば、図7の初期工数バッファ18gの「E」,「J」,「O」は、次のようにして求まる。
E=A−B
J=G−H
O=L−M
工数バッファ18hは、工数バッファ18hを算出する時点(例えば、2010年12月のいずれかの日)より過去の月(例えば、2010年11月以前)においては、過去の実績の工数バッファを示す。また、工数バッファ18hは、工数バッファ18hを算出する時点より将来の月(例えば、2010年12月以降)においては、将来を予測した(初期工数バッファ18gを過去の実績に基づいて補正した)工数バッファを示す。例えば、図7の工数バッファ18hの「F」,「K」,「P」は、次のようにして求まる。
F=A−C
K=G−I
P=L−N
なお、上記の初期工数バッファ18gの「E」は、計画時の工数バッファであるので、計画作業工数18dの「B」を用いて算出している。一方、工数バッファ18hの「F」は、過去の実績の工数バッファであるので、実績作業工数18eの「C」を用いて算出している。
また、上記の初期工数バッファ18gの「J」は、計画時の工数バッファであるので、計画作業工数18dの「H」を用いて算出している。一方、工数バッファ18hの「K」は、将来を予測した工数バッファであるので、予測作業工数18fの「I」を用いて算出している。
また、上記の初期工数バッファ18gの「O」は、計画時の工数バッファであるので、計画作業工数18dの「M」を用いて算出している。一方、工数バッファ18hの「P」は、将来を予測した工数バッファであるので、予測作業工数18fの「N」を用いて算出している。
図8は、作業実績の入力画面例を示した図である。図8には、ユーザが作業実績を登録するための画面21が示してある。画面21には、作業計画22と、ユーザが作業実績を入力するための作業実績入力欄23と、ボタン24と、が表示されている。
なお、ユーザは、予めプロジェクトに関する情報を情報処理装置に入力し、そのプロジェクト情報は、PJ記憶部14に記憶されているとする。また、ユーザは、予めプロジェクトの体制計画に関する情報を情報処理装置1に入力し、そのプロジェクト体制計画情報は、PJ体制計画記憶部15に記憶されているとする。また、ユーザは、予め作業計画を情報処理装置1に入力し、その作業計画の情報は、作業計画記憶部16に記憶されているとする。
入力部11は、ユーザから、画面21を表示装置に表示する操作を受けたとする。出力部13は、入力部11の操作の受付けに応じて、作業計画記憶部16を参照し、作業計画22を表示する。
入力部11は、ユーザから、作業実績の入力を受付ける。例えば、ユーザは、作業計画22に表示されているPJID、作業番号、または作業名等に対応した作業の実績を、作業実績入力欄23に入力する。また、例えば、ユーザは、作業番号「A003」の作業を完了した場合、作業番号「A003」に対応する作業実績入力欄23に、その作業の開始日、完了日、および作業工数を入力する。
入力部11は、登録のボタン24が押下されると、作業実績入力欄23に入力された作業実績の情報を、作業実績記憶部17に記憶する。そして、算出部12は、工数バッファ記憶部18の情報を更新する。
図9は、工数バッファの出力画面例を示した図である。図9には、工数バッファをグラフ化した画面31が示してある。画面31は、例えば、図8のボタン24が押下されると表示される。画面31には、各プロジェクトの工数バッファを表示するためのタブ32a〜32cと、グラフ33〜35と、アラーム36と、応援可能プロジェクト37と、が表示されている。
出力部13は、入力部11がユーザから、タブ32a〜32cの何れかの押下を受付けると、押下したタブ32a〜32cに対応したプロジェクトの工数バッファを表示する。例えば、出力部13は、タブ32aが押下されると、プロジェクト「xxプラント」の工数バッファのグラフを画面31に表示し、タブ32bが押下されると、プロジェクト「yyプラント」の工数バッファのグラフを画面31に表示し、タブ32cが押下されると、プロジェクト「zzプラント」の工数バッファのグラフを画面31に表示する。図9では、タブ32aが押下された例(プロジェクト「xxプラント」の工数バッファ)が示してある。なお、出力部13は、PJ記憶部14を参照することにより、タブ32a〜32cに表示するプラント名称を取得することができる。
出力部13は、工数バッファ記憶部18を参照して、工数バッファのグラフを画面31に表示する。例えば、プロジェクト「xxプラント」のタブ32aが押下された場合、出力部13は、PJID「0001」に関する工数バッファの情報を、工数バッファ記憶部18を参照して取得し、画面31に表示する。なお、「xxプラント」のPJIDは、図3のPJ記憶部14より「0001」である。
図9に示すグラフ33〜35の縦軸は工数バッファを示し、横軸は年月を示す。一点鎖線で示すグラフ33は、プロジェクト「xxプラント」の初期工数バッファを示している。すなわち、グラフ33は、プロジェクト「xxプラント」の計画時における工数バッファを示している。出力部13は、例えば、工数バッファ記憶部18の初期工数バッファ18gに基づいて、グラフ33を表示する。なお、工数バッファは、グラフ33に示すように上下することがある。例えば、作業計画の作業工数が多ければ、工数バッファは少なくなり、PJ体制が増員されれば、工数バッファは多くなる。
実線で示すグラフ34は、プロジェクト「xxプラント」の実績工数バッファを示している。点線で示すグラフ35は、プロジェクト「xxプラント」の予測工数バッファを示している。グラフ33,34の実線と点線の境目は、作業実績を登録し、画面31を表示した時点(例えば、図8で説明した画面21で作業実績を登録し、ボタン24を押下して、画面31を表示した時点)の年月を示している。すなわち、実績工数バッファを示すグラフ34は、過去の作業実績に対する工数バッファを示し、予測工数バッファを示すグラフ35は、将来の工数バッファ(過去の作業実績に基づいて補正された工数バッファ)を示している。
出力部13は、例えば、工数バッファ記憶部18の工数バッファ18hの現時点より過去の工数バッファ18hに基づいて、グラフ34を表示する。また、出力部13は、工数バッファ18hの現時点より将来の工数バッファ18hに基づいて、グラフ35を表示する。より具体的には、出力部13は、図7に示す2010年11月以前の工数バッファ「・・・F」に基づいてグラフ34を表示する。また、出力部13は、図7に示す2010年12月以降の工数バッファ「K,P・・・」に基づいてグラフ35を表示する。
アラーム36は、予測工数バッファが所定値より小さくなった年月を示す。図10の例の場合、アラーム36は、予測工数バッファが「0」より小さくなった年月を示している。なお、図10の例の場合、グラフ35に示す予測工数バッファが、「0」より小さくなった年月は、「2010年12月」である。
応援可能プロジェクト37は、応援可能な人員を持っている他のプロジェクトを示す。すなわち、工数バッファに余裕がある他のプロジェクトを示している。
出力部13は、工数バッファ記憶部18を参照し、アラームが発生した時点(例えば、年月)の、予測工数バッファの最も大きい他のプロジェクトを抽出し、画面31に表示する。図10の例の場合、プロジェクト「zzプラント」が抽出された例を示している。なお、出力部13は、予測工数バッファが大きい上位数個の他のプロジェクトを応援可能プロジェクト37に表示してもよい。
図10は、情報処理装置1の工数バッファ算出の動作例を示したフローチャートである。情報処理装置1は、ユーザから工数バッファの算出指示の入力を受付けると、図10のフローチャートの処理を実行する。例えば、情報処理装置1は、図8に示したボタン24がユーザによって押下されると、図10のフローチャートの処理を実行する。
なお、入力部11は、ユーザから複数のプロジェクトに関する情報を受付け、その情報をPJ記憶部14に記憶しているとする。また、入力部11は、ユーザからプロジェクトの体制計画に関する情報を受付け、その情報をPJ体制計画記憶部15に記憶しているとする。また、入力部11は、ユーザからプロジェクトの作業計画に関する情報を受付け、その情報を作業計画記憶部16に記憶しているとする。また、入力部11は、ユーザから現時点(情報処理装置1がユーザから工数バッファの算出指示の入力を受付けた時点)までのプロジェクトの作業実績に関する情報を受付け、その情報を作業実績記憶部17に記憶しているとする。
まず、PJ工数算出部12aは、プロジェクトに割り当てられた人数を示す体制計画情報を記憶したPJ体制計画記憶部15を参照し、プロジェクトの作業を遂行できる最大の工数を示す最大投入工数を、プロジェクトの所定期間ごとにおいて算出する(ステップS1)。
例えば、PJ工数算出部12aは、PJ体制計画記憶部15を参照し、プロジェクトを遂行することができる最大投入工数を、プロジェクトごとに月単位で算出する。より具体的には、PJ工数算出部12aは、PJ体制計画記憶部15を参照し、あるプロジェクトのある月に割り当てられた担当員数15cと、その月の労働時間とを乗算して、その月の最大投入工数を算出する。
例えば、図4の例の場合、PJID「0001」の「2010年1月」の最大投入工数は、「2010年1月」に少なくとも担当名称「鈴木」の1人が割り当てられているので、少なくとも「1人×2010年1月の労働時間」となる。また、PJID「0001」の「2010年2月」の最大投入工数は、「2010年2月」に少なくとも担当名称「鈴木」の1人が割り当てられているので、少なくとも「1人×2010年1月の労働時間」となる。また、PJID「0001」の「2010年3月」の最大投入工数は、「2010年3月」に少なくとも担当名称「鈴木」と「A社」との4人が割り当てられているので、少なくとも「4人×2010年1月の労働時間」となる。PJ工数算出部12aは、PJID「0001」の他の月においても最大投入工数を算出する。また、PJ工数算出部12aは、他のPJIDにおいても、月ごとに最大投入工数を算出する。
PJ工数算出部12aは、算出した最大投入工数を、プロジェクトごとに工数バッファ記憶部18に記憶する。例えば、PJ工数算出部12aは、最大投入工数を算出したプロジェクトのPJIDと、最大投入工数を算出した年月と、算出した最大投入工数と、を工数バッファ記憶部18に記憶する。
次に、作業工数算出部12bは、プロジェクトの作業計画を示す作業計画情報を記憶した作業計画記憶部16を参照し、プロジェクトの所定期間ごとにおける、作業計画の遂行に要する計画作業工数を算出する(ステップS2)。
例えば、作業工数算出部12bは、作業計画記憶部16を参照し、作業計画の遂行に要する計画作業工数を、プロジェクトごとに月単位で算出する。例えば、図5の例において、PJID「0001」の「2010年7月」の計画作業工数は、「2010年7月」に少なくとも作業番号「A001」,「A002」,「A003」の作業が行われるので、少なくとも「22+34+50=106」となる。作業工数算出部12bは、PJID「0001」の他の月においても計画作業工数を算出する。また、作業工数算出部12bは、他のPJIDにおいても、月ごとに計画作業工数を算出する。
作業工数算出部12bは、算出した計画作業工数を、工数バッファ記憶部18に記憶する。例えば、作業工数算出部12bは、算出した計画作業工数の「PJID」と「年月」とに対応する工数バッファ18の計画作業工数18dに、算出した計画作業工数を記憶する。
次に、工数バッファ算出部12cは、工数バッファ記憶部18を参照して、プロジェクトの所定期間ごとにおける初期工数バッファを算出する(ステップS3)。
例えば、工数バッファ算出部12cは、ステップS1にて、工数バッファ記憶部18に記憶した最大投入工数と、ステップS2にて、工数バッファ記憶部18に記憶した計画作業工数とから、プロジェクトごとに月単位で初期工数バッファを算出する。より具体的には、式(2)または図7で説明したように、工数バッファ算出部12cは、工数バッファ記憶部18に記憶された最大投入工数から、工数バッファ記憶部18に記憶された計画作業工数を減算して、初期工数バッファを算出する。
工数バッファ算出部12cは、算出した初期工数バッファを、工数バッファ記憶部18に記憶する。例えば、工数バッファ算出部12cは、算出した初期工数バッファの「PJID」と「年月」とに対応する工数バッファ記憶部18の初期工数バッファ18gに、算出した初期工数バッファを記憶する。
次に、工数バッファ算出部12cは、プロジェクトの作業実績に関する情報を記憶した作業実績記憶部17を参照して、プロジェクトの所定期間ごとにおける、実績作業工数を算出する(ステップS4)。
例えば、工数バッファ算出部12cは、作業実績記憶部17を参照し、プロジェクトごとに月単位で実績作業工数を算出する。例えば、図6の例において、PJID「0001」の「2010年7月」の実績作業工数は、「2010年7月」に少なくとも作業番号「A001」,「A002」,「A003」の作業が行われているので、少なくとも「24+35+45=104」となる。工数バッファ算出部12cは、PJID「0001」の他の月においても実績作業工数を算出する。また、工数バッファ算出部12cは、他のPJIDにおいても、月ごとに実績作業工数を算出する。
工数バッファ算出部12cは、算出した実績作業工数を、工数バッファ記憶部18に記憶する。例えば、工数バッファ算出部12cは、算出した実績作業工数の「PJID」と「年月」とに対応する工数バッファ18の実績作業工数18eに、算出した実績作業工数を記憶する。
次に、工数バッファ算出部12cは、工数バッファ記憶部18を参照して、プロジェクトの所定期間ごとにおける予測作業工数を算出する(ステップS5)。
例えば、工数バッファ算出部12cは、ステップS2にて、工数バッファ記憶部18に記憶した計画作業工数と、ステップS4にて、工数バッファ記憶部18に記憶した実績作業工数と、作業進捗率とから、プロジェクトごとに月単位で予測作業工数を算出する。より具体的には、式(3)または図7で説明したように、工数バッファ算出部12cは、これから実施される作業の計画作業工数を、すでに実施された作業の計画作業工数、実績作業工数、および作業進捗率に基づいて補正し、予測作業工数を算出する。
工数バッファ算出部12cは、算出した予測作業工数を工数バッファ記憶部18に記憶する。例えば、工数バッファ算出部12cは、算出した予測作業工数の「PJID」と「年月」とに対応する工数バッファ記憶部18の予測作業工数18fに、算出した予測作業工数を記憶する。
次に、工数バッファ算出部12cは、工数バッファ記憶部18を参照して、プロジェクトの所定期間ごとにおける、実績工数バッファを算出する(ステップS6)。すなわち、工数バッファ算出部12cは、過去の作業実績に対する工数バッファを算出する(例えば、図7に示す工数バッファ18hの「・・・F」または図9に示すグラフ34)。
例えば、工数バッファ算出部12cは、工数バッファ記憶部18を参照して、最大投入工数から、実績作業工数を減算し、プロジェクトごとに月単位で、過去の作業実績に対する工数バッファを算出する。より具体的には、工数バッファ算出部12cは、図7の工数バッファ記憶部18に示す工数バッファ「・・・F」を算出する。
工数バッファ算出部12cは、算出した実績工数バッファを工数バッファ記憶部18に記憶する。例えば、工数バッファ算出部12cは、算出した実績工数バッファの「PJID」と「年月」とに対応する工数バッファ記憶部18の工数バッファ18hに、算出した実績工数バッファを記憶する。
次に、工数バッファ算出部12cは、工数バッファ記憶部18を参照して、プロジェクトの所定期間ごとにおける、予測工数バッファを算出する(ステップS7)。すなわち、工数バッファ算出部12cは、将来の計画作業工数を補正した工数バッファを算出する(例えば、図7に示す工数バッファ18hの「K,P・・・」または図9に示すグラフ35)。
例えば、工数バッファ算出部12cは、工数バッファ記憶部18を参照して、最大投入工数から、予測作業工数を減算し、プロジェクトごとに月単位で、将来の工数バッファを算出する。より具体的には、工数バッファ算出部12cは、図7の工数バッファ記憶部18に示す工数バッファ「K,P・・・」を算出する。
工数バッファ算出部12cは、算出した予測工数バッファを工数バッファ記憶部18に記憶する。例えば、工数バッファ算出部12cは、算出した予測工数バッファの「PJID」と「年月」とに対応する工数バッファ記憶部18の工数バッファ18hに、算出した予測工数バッファを記憶する。
図11は、情報処理装置のハードウェア構成例を示した図である。情報処理装置1は、例えば、図11に示すような、CPU(Central Processing Unit)等の演算装置41と、RAM(Random Access Memory)などの主記憶装置42と、HDD(Hard Disk Drive)等の補助記憶装置43と、有線又は無線により通信ネットワークと接続するための通信インターフェイス(I/F)44と、マウス、キーボード、タッチセンサーやタッチパネルなどの入力装置45と、液晶ディスプレイなどの表示装置46と、DVD(Digital Versatile Disk)などの持ち運び可能な記憶媒体に対する情報の読み書きを行う読み書き装置47と、を備えるコンピューターで実現することができる。
例えば、入力部11、算出部12、および出力部13の機能は、補助記憶装置43などから主記憶装置42にロードされた所定のプログラムを演算装置41が実行することで実現される。また、入力部11は、例えば、演算装置41が入力装置45を利用することで実現される。また、出力部13は、例えば、演算装置41が表示装置46または読み書き装置47を利用することで実現される。PJ記憶部14、PJ体制計画記憶部15、作業計画記憶部16、作業実績記憶部17、および工数バッファ記憶部18は、例えば、演算装置41が主記憶装置42または補助記憶装置43を利用することで実現される。
なお、上記の所定のプログラムは、例えば、読み書き装置47により読み取られた記憶媒体からインストールされてもよいし、通信I/F44を介してネットワークからインストールされてもよい。
このように、PJ工数算出部12aは、プロジェクトに割り当てられた人数を示す情報を記憶したPJ体制計画記憶部15を参照し、プロジェクトを遂行できる最大の工数を示す最大投入工数を、プロジェクトの所定期間ごとにおいて算出する。作業工数算出部12bは、プロジェクトの作業計画を示す情報を記憶した作業計画記憶部16を参照し、プロジェクトの所定期間ごとにおける、作業計画の遂行に要する計画作業工数を算出する。工数バッファ算出部12cは、最大投入工数、計画作業工数、および作業実績記憶部17に記憶されたプロジェクトの作業遂行に要した実績作業工数に基づいて、将来の工数バッファを算出する。これにより、ユーザは、プロジェクトの遅延が発生する前に、プロジェクトの遅延発生を予測することができる。
また、出力部13は、工数バッファ算出部12cが算出した工数バッファを表示装置46に出力する。これにより、ユーザは、プロジェクトの遅延が発生する前に、プロジェクトの遅延発生を予測することができる。
また、出力部13は、将来の工数バッファが、所定値より小さい場合、他のプロジェクトの将来の工数バッファに基づいて、他のプロジェクトを表示装置46に出力する。例えば、出力部13は、図9の応援可能プロジェクト37に示すように、人員応援が可能なプロジェクトを表示する。これにより、ユーザは、例えば、早期にプロジェクト体制の変更計画を立案することが可能となる。
なお、上記では、月単位で種々の情報を算出および記憶する例を示したが、例えば、週単位で種々の情報を算出および記憶するようにしてもよい。
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
また、上記の各実施形態において、各部の機能構成は、それらの構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。各部の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、1つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
また、上記で説明したフローチャートの処理単位は、情報処理装置1の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。情報処理装置1の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、1つの処理単位がさらに多くの処理を含むように分割することもできる。さらに、上記のフローチャートの処理順序も、図示した例に限られるものではない。
また、本発明は、工数バッファを算出する工数バッファ算出方法、情報処理装置で工数バッファを算出するプログラム、および当該プログラムを記憶した記憶場対として提供することもできる。