以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態における作業工数算出システムの概略構成を示したブロック図である。図1において、作業工数算出システム10は、操作履歴収集装置100と、操作履歴管理装置200と、情報管理データベース(以下、「情報管理DB」という)300と、工数算出装置400と、プロジェクト情報管理装置500とを備えている。図1に示した作業工数算出システム10では、各装置および情報管理DB300が、ネットワークを介して接続されている。また、作業工数算出システム10には、プロジェクトの管理者であるプロジェクトマネージャが使用するWebブラウザ20が、ネットワークを介して接続されている。
操作履歴収集装置100は、作業者であるユーザの操作履歴を収集する装置である。この操作履歴収集装置100は、例えば、作業者が開発作業を行うときに使用するPCなどの作業用端末である。操作履歴収集装置100には、作業者による操作を検知するエージェントソフトウェアが常駐しており、エージェントソフトウェアが検知した作業者の操作履歴の情報(以下、「操作履歴情報」という)を、操作履歴管理装置200に送信する。
なお、操作履歴収集装置100が収集した操作履歴情報を操作履歴管理装置200に送信する契機は、操作履歴収集装置100が常時ネットワークに接続されているか否かによって異なる。例えば、操作履歴収集装置100が常時ネットワークに接続されている場合には、作業者によって操作される毎の任意の契機や、一定間隔(例えば、1分間隔)の契機で、収集した操作履歴情報を操作履歴管理装置200に送信する。また、例えば、操作履歴収集装置100が常時ネットワークに接続されておらず、不定期にネットワークに接続される場合には、操作履歴収集装置100がネットワークに接続されたときを契機として、収集した操作履歴情報を操作履歴管理装置200に送信する。
また、操作履歴収集装置100が、作業者が開発作業に使用する作業用端末である場合、図1には図示していないが、作業工数算出システム10は、複数の操作履歴収集装置100を備えていると考えられる。この場合、複数の操作履歴収集装置100のそれぞれは、検知した操作履歴情報をそれぞれ操作履歴管理装置200に送信する。
操作履歴管理装置200は、操作履歴収集装置100からネットワークを介して送信されてきた操作履歴情報を受信し、受信した操作履歴情報を、情報管理DB300に格納(蓄積)させる装置である。なお、操作履歴管理装置200は、常時ないしは不定期にネットワークに接続され、ネットワークに接続されたときに、受信した操作履歴情報を、ネットワークを介して情報管理DB300に格納させる。
情報管理DB300は、操作履歴管理装置200から送信されてきた操作履歴情報、後述する工数算出装置400によって算出された工数の情報、後述するプロジェクト情報管理装置500から送信されたプロジェクトに関する情報(以下、「プロジェクト情報」という)を格納(蓄積)するデータベースである。
工数算出装置400は、情報管理DB300に格納されている操作履歴情報およびプロジェクト情報を取得し、プロジェクトの工数を算出する装置である。なお、工数算出装置400によるプロジェクトの工数の算出方法に関する詳細な説明は、後述する。
プロジェクト情報管理装置500は、Webブラウザ20からネットワークを介して送信されたプロジェクトに関する情報を、プロジェクト情報として情報管理DB300に格納(蓄積)させる装置である。
次に、本実施形態の作業工数算出システム10の機能ブロックについて説明する。図2は、本実施形態の作業工数算出システム10における機能ブロックの概略構成を示したブロック図である。
操作履歴収集装置100は、操作履歴収集部110と、情報送信部120とを備えている。なお、以下の説明において、操作履歴収集装置100は、作業者が開発作業を行うときに使用するパーソナルコンピュータ(PC)であるものとする。操作履歴収集部110は、常駐しているエージェントソフトウェアによって、作業者がプロジェクトの開発作業を行うときの操作履歴情報を収集する。操作履歴収集部110が収集する操作履歴情報には、作業者を識別する情報、作業者が使用しているアプリケーションの名称、作業者がアクセスしたファイル名、作業者によるキータッチ回数やマウスの操作時間などのファイルに対する操作内容などが含まれている。
ここで、操作履歴収集部110が収集する操作履歴情報について説明する。図3は、本実施形態の作業工数算出システム10に備えた操作履歴収集部110が取得する対象の情報の一例を示した図である。図3では、操作履歴を収集するアプリケーションの一例と、それぞれのアプリケーションから取得する情報(操作)の一例とを示している。図3に示したように、操作履歴収集部110が収集する操作履歴情報は、作業者が使用しているアプリケーション毎に取得対象の情報が異なる。
図3に示した一例では、作業者が使用しているアプリケーションに係わらず、「操作者名(ログイン名)」、「使用マシン名」、「操作日時」、「アプリケーション(AP)起動、終了フラグ」などの共通の情報を取得する場合を示している。
また、作業者が使用しているアプリケーションが「文書作成アプリケーション」である場合には、共通の情報に加えて、操作内容として「ファイル名」、「操作時間(ウインドウアクティブ時間)」、「キータッチ回数」、「操作名(ファイルオープン/クローズ)」や、操作結果として「ファイルサイズ」、「ページ数」などを取得する場合を示している。
また、作業者が使用しているアプリケーションが「ウェブブラウザ」である場合には、共通の情報に加えて、操作内容として「操作対象物名(URL)」、「操作時間(ウインドウアクティブ時間)」、「キータッチ回数」、「操作名(入力時のテキストボックス名)」などを取得する場合を示している。
また、作業者が使用しているアプリケーションが「開発ツールアプリケーション」である場合には、共通の情報に加えて、操作内容として「操作対象物名(パースペクティブ名+ファイル名)」、「操作時間(ウインドウアクティブ時間)」、「キータッチ回数」、「操作名(ファイルオープン/クローズ/試験実効/パースペクティブ切替)」や、操作結果として「文字数」、「ライン数」、「試験実効数,テストエラー数,テスト失敗数」などを取得する場合を示している。
また、作業者が使用しているアプリケーションが「メールアプリケーション」である場合には、共通の情報に加えて、操作内容として「操作対象物名(閲覧/作成)」、「操作時間(ウインドウアクティブ時間)」、「キータッチ回数」などを取得する場合を示している。また、「メールの送信先アドレス」や、「メールの題名のテキスト」などの情報を取得してもよい。
情報送信部120は、作業者が使用しているアプリケーション毎に操作履歴収集部110が収集した、それぞれのアプリケーションに応じた操作履歴情報を、ネットワークを介して操作履歴管理装置200に送信する。情報送信部120は、操作履歴収集装置100が常時ネットワークに接続されている場合には、任意の契機(例えば、毎分)で、操作履歴収集装置100が不定期にネットワークに接続される場合には、操作履歴収集装置100がネットワークに接続されたときを契機として、操作履歴情報を操作履歴管理装置200に送信する。
操作履歴管理装置200は、情報送受信部210と、DBアクセス部220とを備えている。情報送受信部210は、操作履歴収集装置100に備えた情報送信部120から送信された操作履歴情報を受信し、受信した操作履歴情報を、DBアクセス部220に出力する。DBアクセス部220は、情報送受信部210から入力された操作履歴情報を、情報管理DB300に格納(蓄積)させる。なお、DBアクセス部220が操作履歴情報を情報管理DB300に格納する際には、入力された様々な形式の操作履歴情報の形式を揃えるためのフォーマット変換などが行われる。そして、DBアクセス部220は、フォーマット変換した後の操作履歴情報を、情報管理DB300に格納させる。なお、操作履歴管理装置200が情報管理DB300に格納する操作履歴情報に関する詳細な説明は、後述する。
プロジェクト情報管理装置500は、情報送受信部510と、DBアクセス部520とを備えている。情報送受信部510は、プロジェクトマネージャによってWebブラウザ20から入力されたプロジェクトに関する情報を受け付け、受け付けた情報を、プロジェクト情報としてDBアクセス部520に出力する。ここで、プロジェクトマネージャがWebブラウザ20から入力するプロジェクト情報には、プロジェクトの工程としてWBS(Work Breakdown Structure)情報が含まれている。そして、WBS情報には、現在行っているプロジェクトのWBSを実施したときの成果として生成される成果物の情報や、WBSを実施した成果として生成されるものではないが、現在のプロジェクトのWBSを実施する際に参照される、WBSの前工程あるいは予め生成されていた参照物の情報などが、管理の対象物として含まれている。なお、プロジェクト情報管理装置500が情報管理DB300に格納するプロジェクト情報に関する詳細な説明は、後述する。
DBアクセス部520は、情報送受信部510から入力されたプロジェクト情報を、情報管理DB300に格納(蓄積)させる。なお、DBアクセス部520がプロジェクト情報を情報管理DB300に格納する際には、入力されたプロジェクト情報の形式を揃えるためのフォーマット変換などを行い、フォーマット変換した後のプロジェクト情報を、情報管理DB300に格納させてもよい。
情報管理DB300は、操作履歴情報DB310と、プロジェクト情報管理DB320と、工数管理DB330とを備えている。操作履歴情報DB310は、操作履歴管理装置200に備えたDBアクセス部220から入力された、操作履歴情報を格納する。プロジェクト情報管理DB320は、プロジェクト情報管理装置500に備えたDBアクセス部520から入力されたプロジェクト情報を格納する。工数管理DB330は、工数算出装置400が算出した工数の算出結果を格納する。なお、工数管理DB330が格納する工数の算出結果に関する詳細な説明は、後述する。
工数算出装置400は、情報送受信部410と、DBアクセス部420と、工数算出部430とを備えている。情報送受信部410は、Webブラウザ20を介してプロジェクトマネージャから入力された情報に基づいて、工数算出装置400における工数の算出処理を実行するための指示をDBアクセス部420および工数算出部430に出力する。また、情報送受信部410は、工数算出部430による工数の算出結果を、Webブラウザ20に送信し、表示させる。なお、工数算出装置400は、工数の算出処理で得られた算出結果に応じて、様々な工数に関する情報を表示する。この工数の算出結果の表示に関する詳細な説明は、後述する。
DBアクセス部420は、情報送受信部410から入力された工数の算出処理の実行指示に応じて、情報管理DB300に備えた操作履歴情報DB310とプロジェクト情報管理DB320とから、工数を算出するために必要な情報を取得し、情報送受信部410を介して、工数算出部430に出力する。より具体的には、DBアクセス部420は、操作履歴情報DB310から操作履歴情報を取得し、プロジェクト情報管理DB320からプロジェクト情報を取得し、それぞれの情報を工数算出部430に出力する。
また、DBアクセス部420は、情報送受信部410を介して入力された工数算出部430による工数の算出結果を、情報管理DB300に備えた工数管理DB330に格納(蓄積)させる。
また、DBアクセス部420は、工数管理DB330に格納された工数の算出結果を取得し、情報送受信部410を介してWebブラウザ20に出力することによって、工数算出部430による工数の算出結果を、Webブラウザ20に表示させる。
工数算出部430は、情報送受信部410を介して入力された操作履歴情報およびプロジェクト情報に基づいて、プロジェクト情報に対応するプロジェクトの開発作業の工数を算出する。なお、工数算出部430によるプロジェクトの工数の算出方法に関する詳細な説明は、後述する。
次に、本実施形態の作業工数算出システム10における作業工数算出の処理について説明する。作業工数算出システム10では、以下のような処理によって、プロジェクトマネージャに所望の工数の算出結果を提示する。
(処理1):事前に、プロジェクトマネージャがWebブラウザ20からプロジェクトに関する情報を入力することによって、プロジェクト情報管理装置500を介して、プロジェクト情報を情報管理DB300内のプロジェクト情報管理DB320に格納(登録)しておく。
(処理2):操作履歴収集装置100が、作業者によるプロジェクトの開発作業における操作履歴情報を収集し、操作履歴管理装置200を介して、操作履歴情報を情報管理DB300内の操作履歴情報DB310に格納する。
(処理3):Webブラウザ20を介して入力されたプロジェクトマネージャによる工数算出処理の実効要求に応じて、工数算出装置400が工数の算出処理を実行し、工数の算出結果を、情報管理DB300内の工数管理DB330に格納する。
(処理4):工数算出装置400が、情報管理DB300内の工数管理DB330に格納された工数の算出結果を取得し、Webブラウザ20を介して工数の算出結果を、プロジェクトマネージャに提示する。
最初に、プロジェクト情報を情報管理DB300に登録する処理(処理1)について説明する。図4は、本実施形態の作業工数算出システム10におけるプロジェクト情報の登録処理の流れを示したシーケンス図である。
まず、プロジェクト情報管理装置500は、Webブラウザ20にプロジェクト情報の入力画面を表示させる(ステップS101)。そして、プロジェクトマネージャは、表示された入力画面の表示に従って、プロジェクト情報を入力する。その後、Webブラウザ20は、入力されたプロジェクト情報をプロジェクト情報管理装置500に送信する(ステップS102)。
続いて、プロジェクト情報管理装置500は、受信したプロジェクト情報を、情報管理DB300に送信して格納させる(ステップS103)。情報管理DB300は、プロジェクト情報を蓄積する(ステップS104)。そして、プロジェクト情報管理装置500は、プロジェクト情報を正しく格納できたか否かを表す情報をWebブラウザ20に表示させる(ステップS105)。なお、プロジェクト情報を正しく情報管理DB300に格納できなかった場合には、プロジェクト情報管理装置500は、再度ステップS101と同様に、Webブラウザ20にプロジェクト情報の入力画面の表示をさせてもよい。
このようなシーケンスによって、作業工数算出システム10における工数算出処理に必要なプロジェクト情報を、事前に情報管理DB300に登録しておく。図5に、本実施形態の作業工数算出システム10において、プロジェクト情報管理装置500が情報管理DB300に格納するプロジェクト情報のデータ構成の一例を示す。図5(a)には、プロジェクトのプロフィール情報のデータ構成の一例を示し、図5(b)には、プロジェクトを実行する作業者の個人プロフィール情報のデータ構成の一例を示している。
なお、図5に示したプロジェクト情報のデータ構成の一例では、それぞれの情報を複数のレベルに分割して登録する場合の一例を示している。例えば、「プロジェクトプロフィール」には、「プロジェクトコード」、「名称」、「開始日(計画)」、「終了日(計画)」、「グループ」、「WBS」、「管理対象物」などが、下位のレベルとして登録されている。また、例えば、「グループ」には、「グループID」、「グループ名称」、「親グループ」、「活動開始日(計画)」、「活動終了日(計画)」、「メンバ」などが下位のレベルとして登録され、さらに、「メンバ」には、「社員番号」、「ロール」、「リーダフラグ」、「所属開始日」、「所属終了日」などが下位のレベルとして登録されている。
なお、図5(a)に示したプロジェクトのプロフィール情報、および図5(b)に示した個人プロフィール情報の各項目に登録されるデータは、図5内の各項目に対応して示した「説明」の内容を表すデータである。
次に、プロジェクトの開発作業における操作履歴情報を収集して情報管理DB300に格納する処理(処理2)について説明する。図6は、本実施形態の作業工数算出システム10における操作履歴情報の収集処理の流れを示したシーケンス図である。
まず、作業者がプロジェクトの開発作業において、操作履歴収集対象となる操作を行っている(ステップS201)とき、操作履歴収集装置100は、作業者による操作対象物に対する操作を、エージェントソフトウェアによって検知する(ステップS202)。そして、操作履歴収集装置100は、検知した操作対象物に対する操作内容を収集する(ステップS203)。その後、操作履歴収集装置100は、収集した操作内容の情報を、操作履歴情報として操作履歴管理装置200に送信する(ステップS204)。
続いて、操作履歴管理装置200は、受信した操作履歴情報のフォーマット変換を行う(ステップS205)。その後、操作履歴管理装置200は、操作履歴情報の蓄積要求を情報管理DB300に出力し、フォーマット変換した後の操作履歴情報を情報管理DB300に送信して格納させる(ステップS206)。情報管理DB300は、フォーマット変換した後の操作履歴情報を蓄積する(ステップS207)。
この操作履歴情報の収集処理シーケンスは、作業者によって収集対象となっている何らかの操作が行われるたびに実行され、作業工数算出システム10における工数算出処理に必要な操作履歴情報が、情報管理DB300に格納される。図7に、本実施形態の作業工数算出システム10において、操作履歴収集装置100が収集し、操作履歴管理装置200が情報管理DB300に格納する操作履歴情報のデータ構成の一例を示す。図7(a)には、操作履歴情報のデータ構成の一例を示し、図7(b)には、作業者が使用しているアプリケーションの操作に伴うパラメータの一例を示し、図7(c)には、アプリケーションの操作結果の情報の一例を示している。
なお、図7(a)に示した操作履歴情報のデータ構成の一例では、それぞれの情報を複数のレベルに分割して登録する場合の一例を示している。例えば、最上位のレベルの情報として、「ヘッダ情報」、「アプリケーション操作情報」、「操作結果情報」が収集されている。また、例えば、「アプリケーション操作情報」には、「アプリケーション名」、「起動フラグ」、「終了フラグ」、「操作内容」などが下位のレベルの情報として収集され、さらに、「操作内容」には、「操作対象物名」、「操作時間」、「キー回数」、「詳細操作内容」などが下位のレベルの情報として収集されている。さらに、「詳細操作内容」には、「操作名」、「操作パラメータ」などが下位のレベルの情報として収集され、さらに、「操作パラメータ」には、「パラメータ名」、「パラメータ値」などが下位のレベルの情報として収集されている。
また、図7(b)に示したアプリケーションの操作に伴うパラメータの一例では、それぞれの「対象アプリケーション」毎に、アプリケーションの操作名とパラメータ名とが登録されている場合の一例を示している。例えば、「ウェブブラウザ」では、操作名として「閲覧」と「入力」が登録され、「入力」のパラメータ名として「対象オブジェクト名」が登録されている。
また、図7(c)に示したアプリケーションの操作結果の情報の一例では、それぞれの「対象アプリケーション」毎に、アプリケーションの動作の契機名とパラメータ名とが登録されている場合の一例を示している。例えば、「文書作成アプリケーション」では、契機名として「ファイルオープン」、「ファイルクローズ」が登録され、それぞれのパラメータ名として「ファイルサイズ」、「ページ数」が登録されている。
なお、図7(a)に示した操作履歴情報、図7(b)に示したアプリケーションの操作に伴うパラメータ、図7(c)に示したアプリケーションの操作結果の各項目に登録されるデータは、図7内の各項目に対応して示した「説明」の内容を表すデータである。
次に、工数算出装置400による工数の算出処理(処理3)について説明する。図8は、本実施形態の作業工数算出システム10において、工数算出装置400が行う工数の算出処理の流れを示したシーケンス図である。
まず、工数算出装置400は、Webブラウザ20に工数を算出する期間の情報を入力するための入力画面を表示させる(ステップS301)。そして、プロジェクトマネージャは、表示された入力画面の表示に従って、工数の算出期間の情報を入力する。その後、Webブラウザ20は、入力された工数の算出期間の情報を工数算出装置400に送信する(ステップS302)。
続いて、工数算出装置400は、入力された工数の算出期間の情報に基づいて、情報管理DB300から、工数算出処理に必要な操作履歴情報(ステップS303)と、プロジェクト情報(ステップS304)とを取得する。その後、工数算出装置400は、取得した操作履歴情報およびプロジェクト情報に基づいて、プロジェクト情報に対応するプロジェクトにおける、入力された工数の算出期間の開発作業の工数を算出する(ステップS305)。
続いて、工数算出装置400は、工数の算出結果を情報管理DB300に送信して格納させる(ステップS306)。情報管理DB300は、工数の算出結果を蓄積する(ステップS307)。そして、工数算出装置400は、工数を正しく算出できたか否かを表す情報をWebブラウザ20に表示させる(ステップS308)。なお、工数を正しく算出できなかった場合には、工数算出装置400は、再度ステップS301と同様に、Webブラウザ20に工数を算出する期間の入力画面の表示をさせてもよい。
このようなシーケンスによって、作業工数算出システム10における工数算出処理が行われ、算出結果を情報管理DB300に格納しておく。なお、工数算出装置400が工数の算出処理を開始する契機は、図8に示したシーケンスのように、工数の算出期間の情報の入力を契機とすることに限定されるものではない。例えば、他の何らかの操作であってもよく、予め定めた一定間隔毎でもよい。
ここで、図8に示したシーケンス図におけるステップS305の工数算出の処理について説明する。工数算出処理においては、収集された操作履歴が、プロジェクトの作業(WBS)におけるいずれの作業であるかを特定する。そして、操作履歴情報に記録されている操作が、プロジェクトのWBSを特定するためにWBS毎に定義した、WBSの作業を実施した結果である設計書やソースファイルなどの成果物、あるいは作業を実施するために参照される参照物に対する操作である場合には、操作履歴情報に記録されている操作の内容に基づいて、WBSの工数の算出を行う。なお、以下の説明においては、WBSで定義された成果物や参照物などの管理対象の物を、「管理対象物」という。
図9は、本実施形態の作業工数算出システム10における工数算出処理のアルゴリズムの概要を示した図である。また、図10は、本実施形態の作業工数算出システム10において工数算出処理を行う際に用いられる情報の一例を示した図である。
作業工数算出システム10における工数算出処理においては、まず、ステップS3051において、プロジェクト作業の判定を行う。プロジェクト作業の判定では、作業者によるPC(操作履歴収集装置100)の操作が、工数を算出する対象のプロジェクトのWBSに該当するか否かを判定する。より具体的には、操作履歴情報に含まれている操作対象物が、今回工数を算出するプロジェクトの管理対象物に相当するか否かを判定することによって、今回の操作が対象のプロジェクト作業であるかそれ以外の作業(プロジェクト外作業)であるかを判定する。
図9に示したステップS3051においては、プロジェクト作業の判定の際に、予め定めた「管理対象物判定基準」(図10(a)参照)を用いた場合を示している。この管理対象物判定基準は、管理対象物を判定するための情報が記載されており、例えば、管理対象物のファイル名に含まれる特定の文字列が記載された表(データ)である。そして、プロジェクト作業の判定においては、操作対象物のファイル名に、この管理対象物判定基準に記載された特定の文字列が含まれているか否かを判別することによって、操作履歴情報に含まれている操作対象物が対象プロジェクトの管理対象物であるか否かを機械的に判定する。この管理対象物判定基準は、プロジェクト情報と同様に、プロジェクトマネージャが事前に情報管理DB300に登録してもよいし、WBS情報に含まれる管理対象物の情報に基づいて事前に作成してもよい。
ステップS3051において、工数を算出する対象のプロジェクト作業であると判定された操作履歴情報は、続くステップS3052以降において、操作履歴情報に含まれている操作内容が、プロジェクトの中のいずれのWBSの作業であるかを判定する。なお、それぞれのWBSの作業には、固有の特徴(以下、「作業種別」という。例えば、コーディング、試験、レビューなど)があり、その特徴によって成果物や参照物に対する操作種別(編集や閲覧など)が異なる。そこで、操作内容のWBS作業の判定においては、まず、ステップS3052において、操作履歴情報に含まれている操作内容を用いて操作対象物に対する操作種別を判定する。
図9に示したステップS3052においては、操作種別を判定の際に、予め定めた「操作種別判定基準」(図10(b)参照)を用いた場合を示している。この操作種別判定基準は、操作対象物に対する操作種別を判定する際の基準が記載されており、例えば、操作対象物に対する操作であると判定される「操作時間(ウィンドウのアクティブ時間)」や「キータッチ回数」などの値が含まれている。そして、操作種別の判定においては、操作対象物のファイルに対する操作が、操作種別判定基準に含まれる値以上であるか否かを判別することによって、操作種別を機械的に判定する。この操作種別判定基準の値は、予め定めておいてもよいが、例えば、実験などによって決定してもよい。
続いて、ステップS3053において、操作履歴情報に基づいてプロジェクト作業のWBSの特定を行う。図9に示したステップS3053においては、WBSの特定の際に、予め定めたプロジェクト情報に含まれている「WBS情報」(図10(c)参照)を用いた場合を示している。より具体的には、操作履歴情報に含まれている操作対象物と、WBS情報に含まれる管理対象物とを比較し、操作対象物と同じ管理対象物を含むWBSを選択する。
続いて、ステップS3054において、操作対象物に対する操作種別に基づいて、WBS作業の実施の判定を行う。WBS作業の実施判定では、操作履歴情報に含まれる操作内容が、WBS作業を実施するための操作であるか否かを判定する。
図9に示したステップS3054においては、WBS作業の実施判定の際に、予め定めた「WBS作業実施判定基準」(図10(d)参照)を用いた場合を示している。このWBS作業実施判定基準は、管理対象物に対する操作について、操作種別によってWBS作業を実施したか否かを判定する基準が記載されており、例えば、WBSの成果物に対する操作種別(図10(b)に示した操作種別判定基準における操作種別)が記載されている。そして、WBS作業の実施判定においては、WBS作業実施判定基準に合致した操作がなされたか否かを判別することによって、操作履歴情報に含まれている操作がWBS作業を実施したか否かを判定する。ここで、WBS作業を実施したと判定された操作履歴情報に記録されている操作を、WBSの作業として、工数の算出に使用する。また、WBS作業を実施しなかったと判定された操作履歴情報は、WBS以外のプロジェクトに関する作業として、工数の算出には使用しない。
ここで、操作履歴情報に含まれている操作がWBS作業を実施したか否かを判定する場合の例について説明する。図11は、本実施形態の作業工数算出システム10において工数算出処理アルゴリズムを実施した場合の一例を説明する図である。図11に示した一例は、1つの操作対象物への操作(日別操作ID=00001)がどのWBS作業実施に相当するのかを判定する場合の処理の例である。なお、図11には、図11(a)に操作履歴情報、図11(b)に管理対象物判定基準、図11(c)に操作種別判定基準、図11(d)にWBS作業実施判定基準、図11(e)にプロジェクト情報のWBS情報を、それぞれ示している。また、図11には、それぞれの処理において用いられる情報も示している。
まず、処理S1で、プロジェクト作業の判定を行う(図9のステップS3051参照)。処理S1では、管理対象物判定基準から、日別操作ID=00001が「αプロジェクトのABC機能プログラム」であると判定される。
続いて、処理S2で、操作種別の判定を行う(図9のステップS3052参照)。処理S2では、操作種別判定基準から、日別操作ID=00001の操作種別は「デバッグ」であると判定される。
続いて、処理S3で、WBSの特定を行う(図9のステップS3053参照)。処理S3−1では、処理S1の結果から、日別操作ID=00001の管理対象物が「ABC機能プログラム」であると特定される。ここで、「ABC機能プログラム」は、プロジェクト情報のWBS情報に「ABC機能試験の参照物」として登録されている。このことから、処理S3−1では、日別操作ID=00001のWBSは「ABC機能試験」であると特定される。また、WBS「ABC機能試験」の作業種別は「試験」であるため、処理S3−2では、WBS作業実施判定基準から、WBS「ABC機能試験」のWBS作業実施判定基準は参照物「ABC機能プログラム」に対する「参照物=デバッグ」であることがわかる。
続いて、処理S4で、WBS作業の実施判定を行う(図9のステップS3054参照)。処理S2の結果から、日別操作ID=00001では「デバッグ」を行ったと判定されている。すなわち、日別操作ID=00001は、WBS作業実施判定基準の「参照物=デバッグ」を満足する。このことから、処理S4では、日別操作ID=00001では、WBS「ABC機能試験」のWBS作業を実施したと判定される。
次に、操作履歴情報に含まれている操作がWBS作業を実施したか否かを判定する場合の別の例について説明する。図12は、本実施形態の作業工数算出システム10において工数算出処理アルゴリズムを実施した場合の別の一例を説明する図である。図12に示した一例は、2つの操作対象物への操作(日別操作ID=00002および日別操作ID=00003)を判定する場合の処理の例である。なお、図12には、図12(a)に操作履歴情報、図12(b)に管理対象物判定基準、図12(c)に操作種別判定基準、図12(d)にWBS作業実施判定基準、図12(e)にプロジェクト情報のWBS情報を、それぞれ示している。また、図12には、それぞれの処理において用いられる情報も示している。
まず、処理S1で、プロジェクト作業の判定を行う(図9のステップS3051参照)。処理S1−1では、管理対象物判定基準から、日別操作ID=00002が「βプロジェクトのレビュー結果表」であると判定される。また、処理S1−2では、管理対象物判定基準から、日別操作ID=00003が「βプロジェクトのユーザマニュアル」であると判定される。
続いて、処理S2で、操作種別の判定を行う(図9のステップS3052参照)。処理S2−1では、操作種別判定基準から、日別操作ID=00002の操作種別は「編集」であると判定される。また、処理S2−2では、操作種別判定基準から、日別操作ID=00003の操作種別は「閲覧」であると判定される。
続いて、処理S3で、WBSの特定を行う(図9のステップS3053参照)。処理S3−1−1では、処理S1−1の結果から、日別操作ID=00002の管理対象物が「レビュー結果表」であると特定される。ここで、「レビュー結果表」は、プロジェクト情報のWBS情報に「ユーザマニュアルレビューの成果物」として登録されている。このことから、処理S3−1−1では、日別操作ID=00002のWBSは「ユーザマニュアルレビュー」であると特定される。また、ユーザマニュアルレビューの作業種別は「レビュー」であるため、処理S3−1−2では、WBS作業実施判定基準から、WBS「ユーザマニュアルレビュー」のWBS作業実施判定基準の1つ目が成果物「レビュー結果表」に対する編集「成果物=編集」であることがわかる。
また、処理S3−2−1では、処理S1−2の結果から、日別操作ID=00003の管理対象物が「ユーザマニュアル」であると特定される。ここで、「ユーザマニュアル」は、プロジェクト情報のWBS情報に「ユーザマニュアルレビューの参照物」として登録されている。このことから、処理S3−2−1では、日別操作ID=00003のWBSは「ユーザマニュアルレビュー」であると特定される。また、ユーザマニュアルレビューの作業種別は「レビュー」であるため、処理S3−2−2では、WBS作業実施判定基準から、WBS「ユーザマニュアルレビュー」のWBS作業実施判定基準の2つ目が参照物「ユーザマニュアル」に対する「参照物≠編集」であることがわかる。
続いて、処理S4で、WBS作業の実施判定を行う(図9のステップS3054参照)。処理S2−1の結果から、日別操作ID=00002では「編集」を行ったと判定されている。また、処理S2−2の結果から、日別操作ID=00003では「閲覧」を行ったと判定されている。すなわち、日別操作ID=00002は、WBS作業実施判定基準の1つ目の条件「成果物=編集」を満足し、日別操作ID=00003は、WBS作業実施判定基準の2つ目の条件「すべての参照物≠編集」を満足する。このことから、日別操作ID=00002および日別操作ID=00003を合わせると、処理S4では、WBS「ユーザマニュアルレビュー」のWBS作業を実施したと判定される。
次に、WBSの工数の算出処理について説明する。図13は、本実施形態の作業工数算出システム10における工数の算出処理の処理手順を示したフローチャートの一例である。また、図14は、本実施形態の作業工数算出システム10において工数算出処理を行う際に用いられる情報または工数算出処理によって得られる結果の情報の一例を示した図である。
操作履歴情報に基づいて、各工数集計単位(操作単位、日別操作単位、管理対象物別作業単位、WBS別作業単位)について工数を算出し、それぞれの算出結果を、工数管理DB330に格納(蓄積)する。また、同じWBS作業を実施していると判定された操作履歴のデータ同士の合算などが行われる。
まず、ステップS302において、Webブラウザ20から工数の算出期間が入力されると、工数算出装置400は、入力された全ての算出期間内の操作履歴情報に基づいて、ステップS351に示した操作単位算出の処理を行う。なお、ステップS351の操作単位算出の処理ループは、ステップS302において入力された算出期間の操作単位の算出が終了するまで繰り返される。
ここで、操作単位とは、同一の作業者が同一のアプリケーションで、同一のアプリケーション利用種別で、同一の管理対象物に対して「同一の作業」を行ったときの一連、すなわち時間的に隣接する作業のことをいう。なお、「同一の作業」とは、アプリケーションやアプリケーションに対する操作によって定義され、例えば、時刻tでの操作履歴情報と隣接する時刻t+1分での操作履歴情報とで、PC(操作履歴収集装置100)にスクリーンセーバが起動されておらず、かつ同じ管理対象物に対しての操作が行われている(ウィンドウがアクティブになっている)場合をいう(図14(a)参照)。
また、操作単位の算出においては、同一の作業者が、異なるPC(操作履歴収集装置100)の別のアカウントを用いて同じ管理対象物を操作したときも、「同一の作業」であると判定する。例えば、アカウントAとアカウントBとが同一の作業者のアカウントであるか否かの判定は、プロジェクト情報に含まれる個人プロフィール情報内の「アカウント情報」に記載されている情報に基づいて判定する。また、時刻tと時刻t+1との日付が異なる場合には、時刻tと時刻t+1とは連続していないものと判定する。すなわち、操作単位は、同一の日付における作業を1つの単位とし、日付を跨いだ作業は、異なる操作単位として分割する。
ステップS351の操作単位算出の処理では、まず、ステップS3511において、工数算出装置400内のDBアクセス部420が、操作履歴情報DB310から全ての算出期間内の操作履歴情報を取得し、情報送受信部410を介して工数算出部430に出力する。続いて、ステップS3512において、工数算出部430は、入力された全ての操作履歴情報を、図9に示したアルゴリズムによって、工数算出処理に使用する操作履歴情報を判定し、操作単位を算出する。そして、工数算出部430は、操作単位の算出結果(図14(b)参照)を、情報送受信部410およびDBアクセス部420を介して、工数管理DB330に格納(蓄積)する。
ステップS351の操作単位算出の処理ループが終了すると、続いて、工数算出装置400は、算出した操作単位の算出結果に基づいて、ステップS352に示した日別操作単位算出の処理を行う。なお、ステップS352の日別操作単位算出の処理ループは、ステップS302において入力された算出期間の日別操作単位の算出が終了するまで繰り返される。
ここで、日別操作単位とは、各操作単位について、「作業者」、「日」、「操作対象物」、および「アプリケーション利用種別」が同一のものについて集計した結果のことをいう。なお、同一の作業者が同一のアプリケーションで同一の管理対象物を同じ日に操作している場合は、同じ日別操作単位に属するものとする。
ステップS352の日別操作単位算出の処理では、まず、ステップS3521において、工数算出装置400内のDBアクセス部420が、工数管理DB330から、ステップS351で格納した全ての操作単位を取得し、情報送受信部410を介して工数算出部430に出力する。続いて、ステップS3522において、工数算出部430は、入力された全ての操作単位に基づいて、日別操作単位を算出する。そして、工数算出部430は、日別操作単位の算出結果(図14(c)参照)を、情報送受信部410およびDBアクセス部420を介して、工数管理DB330に格納(蓄積)する。
ステップS352の日別操作単位算出の処理ループが終了すると、続いて、工数算出装置400は、算出した日別操作単位の結果に基づいて、ステップS353に示した管理対象物別作業単位算出および操作種別判定の処理を行う。なお、ステップS353の管理対象物別作業単位算出および操作種別判定の処理ループは、ステップS302において入力された算出期間の管理対象物別作業単位算出および操作種別判定が終了するまで繰り返される。
ここで、管理対象物別作業単位とは、各日別操作単位について、「作業者」および「管理対象物」が同一のものについて集計した結果のことをいう。より具体的には、例えば、プロジェクト情報として登録されている管理対象物判定基準に、日別操作単位に含まれる操作対象物がマッチするか否かによって、同じ管理対象物別作業単位に含まれるか否かを判定する。また、管理対象物別作業単位に含まれる「操作時間」や「キータッチ回数」の情報に基づいて、例えば、図10(b)に示した操作種別判定基準に従って判定を行い、各管理対象物別作業単位の操作種別を決定する。
ステップS353の管理対象物別作業単位算出および操作種別判定の処理では、まず、ステップS3531において、工数算出装置400内のDBアクセス部420が、工数管理DB330から、ステップS352で格納した全ての日別操作単位を取得し、情報送受信部410を介して工数算出部430に出力する。続いて、ステップS3532において、工数算出装置400内のDBアクセス部420が、プロジェクト情報管理DB320からプロジェクト情報を取得し、情報送受信部410を介して工数算出部430に出力する。続いて、ステップS3533において、工数算出部430は、入力された全ての日別操作単位およびプロジェクト情報に基づいて、管理対象物別作業単位の算出および操作種別の判定を行う。そして、工数算出部430は、操作種別の判定結果を合わせた管理対象物別作業単位の算出結果(図14(d)参照)を、情報送受信部410およびDBアクセス部420を介して、工数管理DB330に格納(蓄積)する。
ステップS353の管理対象物別作業単位算出および操作種別判定の処理ループが終了すると、続いて、工数算出装置400は、算出した管理対象物別作業単位の結果に基づいて、ステップS354に示したWBS別作業単位算出の処理を行う。なお、ステップS354のWBS別作業単位算出の処理ループは、ステップS302において入力された算出期間のWBS別作業単位算出が終了するまで繰り返される。
ここで、WBS別作業単位とは、各管理対象物別作業単位について、「作業者」および「WBS」が同一のものについて集計した結果のことをいう。なお、WBS別作業単位の算出は、WBS毎に行われるが、算出の対象となるWBSは最下層のWBSである(WBSのツリーにおいて、葉ノードに相当する)場合と、それ以外(WBSのツリーにおいて、内部ノードに相当する)の場合とで異なる。ステップS354のWBS別作業単位算出の処理では、最下層のWBSを算出の対象として、WBS作業実施判定基準を満たしたWBSについて、管理対象物別作業単位を集計する。WBS別作業単位の集計の対象にならなかった管理対象物別作業単位は、WBS作業を実施したと判定されなかったプロジェクト作業として合算する。
また、最下層のWBSでない、すなわち、WBSのツリーにおいて内部ノードに相当するWBSに対するWBS別作業単位の算出は、WBSのツリーにおいて葉ノードに相当するステップS354のWBS別作業単位の算出結果を、後述するステップS355において合算することによって、WBS別作業単位の算出を行う。
ステップS354のWBS別作業単位算出の処理、すなわち、葉ノードのWBS別作業単位算出の処理では、まず、ステップS3541において、工数算出装置400内のDBアクセス部420が、工数管理DB330から、ステップS353で格納した全ての管理対象物別作業単位を取得し、情報送受信部410を介して工数算出部430に出力する。続いて、ステップS3542において、工数算出装置400内のDBアクセス部420が、プロジェクト情報管理DB320からプロジェクト情報を取得し、情報送受信部410を介して工数算出部430に出力する。続いて、ステップS3543において、工数算出部430は、入力された全ての管理対象物別作業単位およびプロジェクト情報に基づいて、葉ノードのWBS別作業単位の算出を行う。そして、工数算出部430は、葉ノードのWBS別作業単位の算出結果(図14(e)参照)を、情報送受信部410およびDBアクセス部420を介して、工数管理DB330に格納(蓄積)する。
ステップS354の葉ノードのWBS別作業単位算出の処理ループが終了すると、続いて、工数算出装置400は、算出した葉ノードのWBS別作業単位の結果に基づいて、ステップS355において、内部ノードのWBS別作業単位の算出(合算)処理を行う。ステップS355の内部ノードのWBS別作業単位の算出(合算)処理によって、葉ノードのWBS別作業単位から、上位のノードのWBS別作業単位を算出する。
ステップS355の内部ノードのWBS別作業単位算出(合算)の処理では、工数算出装置400内のDBアクセス部420が、工数管理DB330から、ステップS354で格納した全ての葉ノードのWBS別作業単位を取得し、情報送受信部410を介して工数算出部430に出力する。そして、工数算出部430は、入力された全ての葉ノードのWBS別作業単位を合算して、内部ノードのWBS別作業単位の算出を行い、内部ノードのWBS別作業単位の算出結果を、情報送受信部410およびDBアクセス部420を介して、工数管理DB330に格納(蓄積)する。なお、内部ノードのWBS別作業単位の合算では、例えば、「プロジェクト情報の親WBSID」が同一のものを合算する。また、内部ノードのWBS別作業単位の算出結果の形式は、図14(e)に示した葉ノードのWBS別作業単位の算出結果の形式と同様であるため、図示を省略する。
このように、本実施形態の作業工数算出システム10における工数の算出処理では、「WBS」、「作業者」、および「日(時間)」がそれぞれ対応付けられた工数の算出結果を得る。これにより、作業工数算出システム10では、「WBS」、「作業者」、および「日(時間)」の関係を示す。
なお、図13に示した工数算出処理の処理手順では、それぞれの算出処理のステップにおいて得られた算出結果を、都度、工数管理DB330に格納(蓄積)する場合について説明したが、例えば、工数算出装置400内に算出結果を保持する記憶領域を備え、算出結果を記憶領域に保持する構成としてもよい。この場合には、記憶領域に保持している前の算出処理のステップの算出結果を、次の算出処理のステップで使用する。
また、図8および図13に示した工数算出処理では、プロジェクトマネージャによる工数算出処理の実効要求に応じて、工数算出装置400が工数の算出処理を実行する場合について説明したが、プロジェクトマネージャによる工数算出処理の実効要求がない場合にも自動で工数の算出処理を実行する構成としてもよい。例えば、夜間などに、情報管理DB300に格納(蓄積)されている1日分の操作履歴情報に基づいて、事前に1日分の工数算出処理を実行し、工数の算出結果を情報管理DB300に格納(蓄積)しておく。
次に、工数の算出結果を表示する処理(処理4)について説明する。図15は、本実施形態の作業工数算出システム10における工数の算出結果の表示処理の流れを示したシーケンス図である。なお、工数の算出結果の表示では、工数算出装置400による工数算出処理で得られた算出結果に応じて、様々な形式で工数に関する情報を表示する。例えば、時系列で作業状況をまとめた形式の情報、作業者別に作業状況をまとめた形式の情報、作業者毎の稼働状況をまとめた形式の情報などを表示する。より具体的には、「WBS」と「日(時間)」とから時系列の作業状況を示し、「WBS」と「作業者」とから作業者別の作業状況を示し、「作業者」と「日(時間)」とから作業者毎の稼働状況を示す。この工数の算出結果の表示種別に関する詳細な説明は、後述する。
まず、工数算出装置400は、Webブラウザ20に工数の算出結果を表示する期間および表示種別の情報を入力するための入力画面を表示させる(ステップS401)。そして、プロジェクトマネージャは、表示された入力画面の表示に従って、工数の算出結果を表示する期間および表示種別の情報を入力する。その後、Webブラウザ20は、入力された工数の算出結果を表示する期間および表示種別の情報を工数算出装置400に送信する(ステップS402)。
続いて、工数算出装置400は、入力された工数の算出結果を表示する期間および表示種別の情報に基づいて、情報管理DB300から、工数の表示処理に必要な工数情報(工数算出処理における算出結果)を取得する(ステップS403)。その後、工数算出装置400は、取得した工数情報に基づいて、Webブラウザ20に表示する表示画面を生成する(ステップS404)。
続いて、工数算出装置400は、生成した表示画面をWebブラウザ20に送信して表示させる(ステップS405)。これにより、プロジェクトマネージャが入力した期間および表示種別の工数算出結果を表示(提示)する。
このようなシーケンスによって、作業工数算出システム10における工数の算出結果の表示処理が行わる。なお、工数算出装置400が、予め定めた表示種別の表示画面を全て生成し、プロジェクトマネージャが入力した表示種別を最初に表示(提示)させた後、プロジェクトマネージャによる何らかの操作(例えば、表示画面の予め定めた領域をクリックするなど)に応じて、生成した表示画面を順次切り替えて表示する構成としてもよい。
ここで、作業工数算出システム10における工数の算出結果の表示種別について、いくつかの例を示す。図16〜図18は、本実施形態の作業工数算出システム10における工数の算出結果の表示種別の一例を模式的に示した図である。図16には、時系列で作業状況をまとめた形式の表示結果の一例を示し、図17には、作業者別に作業状況をまとめた形式の表示結果の一例を示し、図18には、作業者毎の稼働状況をまとめた形式の表示結果の一例を示している。
まず、図16に示した時系列の作業状況の表示結果を用いて、作業工数算出システム10における工数の算出結果の表示に共通する表示項目について説明する。工数算出結果の表示画面は、タグ領域Aと、プロジェクト設定領域Bと、期間設定領域Cと、項目表示領域Dと、作業状況表示領域Eとから構成されている。
タグ領域Aには、工数算出結果を表示する表示種別が並べられており、プロジェクトマネージャがいずれか1つのタグを選択することによって、表示画面が選択されたタグに対応付けられた表示種別の工数算出結果に切り替わる。プロジェクト設定領域Bは、工数算出結果を表示するプロジェクトを選択する領域である。プロジェクト設定領域Bには、例えば、情報管理DB300内のプロジェクト情報管理DB320に格納(蓄積)されているプロジェクト情報のプロジェクト名がプルダウンメニューで表示され、プロジェクトマネージャか表示されたプロジェクト名を選択することによって、工数算出結果を表示するプロジェクトを選択する。期間設定領域Cは、工数算出結果を表示する期間を設定する領域である。工数算出結果を表示する期間は、プルダウンメニューや直接入力によって設定する。項目表示領域Dには、工数算出結果を表示する項目が表示される。作業状況表示領域Eには、項目表示領域Dに表示された項目毎に、工数の算出結果が表示される。
次に、図16に示した時系列の作業状況の表示結果に固有の表示内容について説明する。時系列の作業状況の表示は、工数算出結果の「WBS」と「日(時間)」との関係に基づいた表示である。図16に示した時系列の作業状況の表示では、項目表示領域Dに「WBS」の各項目を表示し、作業状況表示領域EにWBSの各項目における「日(時間)」毎の作業状況を表示している。より具体的には、時系列の作業状況の表示画面において、作業状況として各WBSの作業の計画と実績とを並べて表し(表示e1)、実績のあったWBSの合計の作業時間を数字で表している(表示e2)。また、本日を区別して表している(表示e3)。
このような表示画面を表示することによって、プロジェクトマネージャは、プロジェクトの進行状況を俯瞰することができる。これにより、WBS作業(成果物の作成)の進捗に寄与した時間や、WBS毎の作業状況を把握することができる。また、WBS作業の実際の開始時期と計画との相違から、WBS作業の事前の着手や遅延などの状況を、視覚的に認識することができる。また、計画にない作業(表示e4)の実施を把握することができる。
次に、図17に示した作業者別の作業状況の表示結果に固有の表示内容について説明する。作業者別の作業状況の表示は、工数算出結果の「WBS」と「作業者」との関係に基づいた表示である。図17に示した作業者別の作業状況の表示では、項目表示領域Dに「WBS」の各項目を表示し、作業状況表示領域Eに「作業者」の状況を表示している。より具体的には、作業者別の作業状況の表示画面において、グループ名およびそのグループに属する作業者を階層的に表し(表示e5)、各WBSとWBS作業を実施したグループおよび作業者との対応を表し(表示e6)、WBS作業を行った合計の作業時間を数字で表している(表示e7)。また、各WBSの進捗を区別して表している(表示e8)。
このような表示画面を表示することによって、プロジェクトマネージャは、作業者毎の作業内容を俯瞰することができる。これにより、作業者毎の作業負荷や、プロジェクト全体での作業負荷のバランスを把握することができる。また、プロジェクトの進捗(「計画通り」、「計画遅れ」、「要注意」、「先行着手」、「作業実績なし」など)を、視覚的に認識することができる。なお、図17に示した作業者別の作業状況の表示では、WBSの各項目に「計画通り」、「計画遅れ」、「要注意」、「先行着手」に対応した囲み線が示されていない場合を、「作業実績なし」としている。
なお、「計画通り」とは、プロジェクトマネージャが設定した工数算出結果の表示期間がWBSの計画における実施期間(計画期間)の一部または全部にかかっており、表示されている計画期間内に実際にWBS作業が実施されている場合を示す。また、「計画遅れ」とは、WBSの完了予定日以降にWBS作業が実施されている場合を示し、「要注意」とは、表示されている計画期間内にWBS作業が実施されてない場合を示す。また、「先行着手」とは、WBSの開始予定日以前にWBS作業が実施されている場合を示し、「作業実績なし」とは、上記の条件のいずれも合致しない場合、つまり期間設定領域に設定された期間においてWBS作業を実施したと判定されなかったWBSを示す。
次に、図18に示した作業者毎の稼働状況の表示結果に固有の表示内容について説明する。作業者毎の稼働状況の表示は、工数算出結果の「作業者」と「日(時間)」との関係に基づいた表示である。図18に示した作業者毎の稼働状況の表示では、項目表示領域Dに「作業者」を表示し、作業状況表示領域Eに各作業者の「日(時間)」毎の作業状況を表示している。より具体的には、作業者毎の稼働状況の表示画面において、グループ名およびそのグループに属する作業者を階層的に表し(表示e9)、各作業者の作業の計画と実績とを並べて表し(表示e10)、各グループまたは各担当者がWBS作業を行った合計の作業時間を数字で表している(表示e11)。また、本日を区別して表している(表示e12)。
このような表示画面を表示することによって、プロジェクトマネージャは、作業者毎の稼働状況を俯瞰することができる。これにより、WBS作業(成果物の作成)の進捗に寄与した作業者やWBS作業を行った期間を、視覚的に認識することができる。また、プロジェクト全体やそれぞれのWBS作業に要した実際の作業時間を把握することができる。
上記に述べたとおり、本発明を実施するための形態によれば、作業者が開発作業を行うときに使用する作業用端末の操作履歴情報を自動的に収集する。そして、収集した操作履歴情報に基づいて、作業者が実施した作業の工数を、WBSの単位で機械的に算出する。この工数の算出においては、作業者が実際に開発作業を行うときに操作を行う作業用端末の操作履歴情報を、工数算出の対象にするため、より正確な作業工数の把握を行うことができる。
また、本発明を実施するための形態によれば、工数の算出結果に基づいて、プロジェクトの管理者が、作業者毎の作業内容や作業時間を把握するための情報を提示することができる。また、作業項目毎に、作業に要した実際の作業時間の情報を提示することができる。これにより、プロジェクトの工数管理や進捗管理、またはリスクの早期発見など、プロジェクト管理の支援を行うことができる作業工数算出装置を提供することができる。このことにより、従来のプロジェクトの進捗管理において作業者本人の自己申告に依存していた作業内容の把握を、本発明を実施するための形態では自動的に行うことができ、ソフトウェアの開発におけるリスクを早期に発見することを容易にすることができる。なお、本発明を実施するための形態の適用範囲は、ソフトウェアの開発に限定されるものではなく、一般的な業務にも容易に適用することができる。
なお、本発明を実施するための形態では、操作履歴管理装置200と、情報管理DB300と、工数算出装置400と、プロジェクト情報管理装置500とが、それぞれ別の端末装置で構成された作業工数算出システム10の場合について説明したが、作業工数算出システム10の装置構成は、本発明を実施するための形態に限定されるものではない。例えば、操作履歴管理装置200と、情報管理DB300と、工数算出装置400と、プロジェクト情報管理装置500とを同一の端末装置で構成した場合においても、同一の端末装置内で本発明を実施するための形態と同様の機能を実現する構成であれば、同様の処理を行うことができ、同様の結果を得ることができる。
なお、図1および図2に示した作業工数算出システム10内の各構成要素による処理を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、作業工数算出システム10に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。