以下、本発明の実施形態について、図面を参照して説明する。図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が生成する報告書には、プロジェクトの工数が含まれる。なお、文書生成装置400によるプロジェクトの工数の算出方法に関する詳細な説明は、後述する。
プロジェクト情報管理装置500は、Webブラウザ20からネットワークを介して送信されたプロジェクトに関する情報を、プロジェクト情報として情報管理DB300に格納(蓄積)させる装置である。このプロジェクト情報管理装置500は、例えば、チケット管理システムを用いて実現することができる。
次に、本実施形態の文書生成システム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と、チケット管理部530とを備えている。情報送受信部510は、プロジェクトマネージャによってWebブラウザ20から入力されたプロジェクトに関する情報を受け付け、受け付けた情報に基づいてチケットを生成し、当該チケットを含むプロジェクト情報を、DBアクセス部520に出力する。チケットとは、あるプロジェクトの工程について、実施状態、実施者及び工数を関連付けた情報である。なお、チケットの実施状態の初期値は「未着手」であり、工数の初期値は「0」である。また、予め工程を実施する作業者が決まっている場合には、チケットの実施者に当該工程を実施する作業者の名前を記録しておいても良い。ここで、プロジェクトマネージャがWebブラウザ20から入力するプロジェクト情報には、プロジェクトの工程としてWBS(Work Breakdown Structure)情報が含まれている。そして、WBS情報には、現在行っているプロジェクトのWBSを実施したときの成果として生成される成果物の情報や、WBSを実施した成果をして生成されるものではないが、現在のプロジェクトのWBSを実施する際に参照される、WBSの前工程あるいは予め生成されていた参照物の情報などが、管理の対象物として含まれている。なお、プロジェクト情報管理装置500が情報管理DB300に格納するプロジェクト情報に関する詳細な説明は、後述する。
また、プロジェクト情報管理装置500のチケット管理部530は、作業者が工程の実施を開始すると、実施を開始した工程が示すチケットの実施状態を「着手中」に書き換える。また、プロジェクト情報管理装置500のチケット管理部530は、作業者が工程の実施を完了すると、実施を完了した工程が示すチケットの実施状態を「完了」に書き換える。
DBアクセス部520は、チケット管理部530が生成したチケットを含むプロジェクト情報を、情報管理DB300に格納(蓄積)させる。なお、DBアクセス部520がプロジェクト情報を情報管理DB300に格納する際には、入力されたプロジェクト情報の形式を揃えるためのフォーマット変換などを行い、フォーマット変換した後のプロジェクト情報を、情報管理DB300に格納させてもよい。
情報管理DB300は、操作履歴情報DB310と、プロジェクト情報管理DB320と、工数管理DB330と、書類管理DB340とを備えている。操作履歴情報DB310は、操作履歴管理装置200に備えたDBアクセス部220から入力された、操作履歴情報を格納する。プロジェクト情報管理DB320は、プロジェクト情報管理装置500に備えたDBアクセス部520から入力されたプロジェクト情報を格納する。工数管理DB330は、文書生成装置400が算出した工数の算出結果を格納する。なお、工数管理DB330が格納する工数の算出結果に関する詳細な説明は、後述する。書類管理DB340は、文書生成装置400が生成した依頼書、報告書、修正した報告書、報告書の差分などの文書を格納する。
文書生成装置400は、情報送受信部410と、DBアクセス部420と、工数算出部430と、工数入力部440と、報告書生成部450と、報告書修正部460と、依頼書生成部470と、差分項目表示部480と、差分工程表示部490とを備えている。情報送受信部410は、Webブラウザ20を介してプロジェクトマネージャから入力された情報に基づいて、文書生成装置400における工数の算出処理の実行するための指示をDBアクセス部420および工数算出部430に出力する。また、情報送受信部410は、工数算出部430による工数の算出結果を、Webブラウザ20に送信し、表示させる。
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は、操作履歴情報およびプロジェクト情報に基づいて、プロジェクト情報に対応するプロジェクトの開発作業の工数を算出する。なお、工数算出部430によるプロジェクトの工数の算出方法に関する詳細な説明は、後述する。
工数入力部440は、情報送受信部410を介して作業者からプロジェクトの開発作業の工数の入力を受け付ける。報告書生成部450は、情報送受信部410を介して作業者から報告の対象となるプロジェクトの指定を受けて、当該プロジェクトについての報告書を生成する。報告書修正部460は、情報送受信部410を介した作業者の操作に従って、報告書生成部450が生成した報告書を修正する。依頼書生成部470は、情報送受信部410を介してプロジェクトマネージャから依頼の対象となるプロジェクトの指定を受けて、当該プロジェクトについての依頼書を生成する。差分項目表示部480は、報告書生成部450が生成した報告書と報告書修正部460が修正した報告書との差分を表示する差分項目情報を生成する。差分工程表示部490は、依頼書生成部470が生成した依頼書と報告書修正部460が修正した報告書との差分を表示する差分工程情報を生成する。
次に、本実施形態の文書生成システム10における報告書生成処理について説明する。文書生成システム10では、以下のような処理によって、作業の報告書を生成する。
(処理1):事前に、プロジェクトマネージャがWebブラウザ20からプロジェクトに関する情報を入力することによって、プロジェクト情報管理装置500を介して、プロジェクト情報を情報管理DB300内のプロジェクト情報管理DB320に格納(登録)しておく。
(処理2):プロジェクトマネージャの指示によって、文書生成装置400がプロジェクトの開発作業の指示書を生成して、情報管理DB300内の書類管理DB340に格納する。
(処理3):操作履歴収集装置100が、作業者によるプロジェクトの開発作業における操作履歴情報を収集し、操作履歴管理装置200を介して、操作履歴情報を情報管理DB300内の操作履歴情報DB310に格納する。
(処理4):文書生成装置400が工数の算出処理を実行し、工数の算出結果を、情報管理DB300内の工数管理DB330に格納する。
(処理5):文書生成装置400が、情報管理DB300内の工数管理DB330に格納された工数の算出結果を取得し、当該工数を含む報告書を、情報管理DB300内の書類管理DB340に格納する。
(処理6):文書生成装置400が、情報管理DB300内の書類管理DB340に格納された依頼書及び報告書を取得し、修正前後の報告書の差分、及び依頼書と報告書の差分を、情報管理DB300内の書類管理DB340に格納する。
最初に、プロジェクト情報を情報管理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における依頼書の生成処理の流れを示したシーケンス図である。
まず、文書生成装置400は、Webブラウザ20に依頼書の条件入力画面を表示させる(ステップS106)。そして、プロジェクトマネージャは、表示された条件入力画面の表示に従って、作業を依頼する作業者、及びプロジェクトを構成する複数の項目のうち作業を依頼する項目の条件を入力する。作業を依頼する項目の条件の例としては、作業予定期間、作業者、作業者の属するグループなどが挙げられる。その後、Webブラウザ20は、入力された作業者及び条件を文書生成装置400に送信する(ステップS107)。
続いて、文書生成装置400は、情報管理DB300からプロジェクト情報を全て読み出す(ステップS108)。次に、文書生成装置400は、読み出したプロジェクト情報の中から、ステップS107で受信した条件に合致するプロジェクト情報を抽出する(ステップS109)。そして、文書生成装置400は、ステップS107で受信した作業者に対してステップS109で抽出したプロジェクト情報が示す項目の作業を依頼する依頼書を生成し、当該依頼書を、情報管理DB300に送信して格納させる(ステップS110)。なお、生成した依頼書には、依頼書に固有のIDである依頼番号が付与され、また各項目には当該項目に対応するチケットのチケットIDが付与される。情報管理DB300は、依頼書を蓄積する(ステップS111)。そして、文書生成装置400は、情報管理DB300に格納した依頼書を、Webブラウザ20に表示させる(ステップS112)。
ここで、文書生成装置400が生成する依頼書の例を示す。図7は、本実施形態の文書生成システム10が生成する依頼書の一例を示す図である。
図7に示すように、文書生成装置400が生成する依頼書には、依頼番号、依頼先の作業者、作業期間、及び作業項目が記載される。また、依頼書の各作業項目の末尾には、当該作業項目に対応するチケットのチケットIDが記載される。
次に、プロジェクトの開発作業における操作履歴情報を収集して情報管理DB300に格納する処理(処理3)について説明する。図8は、本実施形態の文書生成システム10における操作履歴情報の収集処理の流れを示したシーケンス図である。
まず、作業者がプロジェクトの開発作業において、操作履歴収集対象となる操作を行っている(ステップS201)とき、操作履歴収集装置100は、作業者による操作対象物に対する操作を、エージェントソフトウェアによって検知する(ステップS202)。そして、操作履歴収集装置100は、検知した操作対象物に対する操作内容を収集する(ステップS203)。その後、操作履歴収集装置100は、収集した操作内容の情報を、操作履歴情報として操作履歴管理装置200に送信する(ステップS204)。
続いて、操作履歴管理装置200は、受信した操作履歴情報のフォーマット変換を行う(ステップS205)。その後、操作履歴管理装置200は、操作履歴情報の蓄積要求を情報管理DB300に出力し、フォーマット変換した後の操作履歴情報を情報管理DB300に送信して格納させる(ステップS206)。情報管理DB300は、フォーマット変換した後の操作履歴情報を蓄積する(ステップS207)。
この操作履歴情報の収集処理シーケンスは、作業者によって収集対象となっている何らかの操作が行われるたびに実行され、文書生成システム10における工数算出処理に必要な操作履歴情報が、情報管理DB300に格納される。図9に、本実施形態の文書生成システム10において、操作履歴収集装置100が収集し、操作履歴管理装置200が情報管理DB300に格納する操作履歴情報のデータ構成の一例を示す。図9(a)には、操作履歴情報のデータ構成の一例を示し、図9(b)には、作業者が使用しているアプリケーションの操作に伴うパラメータの一例を示し、図9(c)には、アプリケーションの操作結果の情報の一例を示している。
なお、図9(a)に示した操作履歴情報のデータ構成の一例では、それぞれの情報を複数のレベルに分割して登録する場合の一例を示している。例えば、最上位のレベルの情報として、「ヘッダ情報」、「アプリケーション操作情報」、「操作結果情報」が収集されている。また、例えば、「アプリケーション操作情報」には、「アプリケーション名」、「起動フラグ」、「終了フラグ」、「操作内容」などが下位のレベルの情報として収集され、さらに、「操作内容」には、「操作対象物名」、「操作時間」、「キー回数」、「詳細操作内容」などが下位のレベルの情報として収集されている。さらに、「詳細操作内容」には、「操作名」、「操作パラメータ」などが下位のレベルの情報として収集され、さらに、「操作パラメータ」には、「パラメータ名」、「パラメータ値」などが下位のレベルの情報として収集されている。
また、図9(b)に示したアプリケーションの操作に伴うパラメータの一例では、それぞれの「対象アプリケーション」毎に、アプリケーションの操作名とパラメータ名とが登録されている場合の一例を示している。例えば、「ウェブブラウザ」では、操作名として「閲覧」と「入力」が登録され、「入力」のパラメータ名として「対象オブジェクト名」が登録されている。
また、図9(c)に示したアプリケーションの操作結果の情報の一例では、それぞれの「対象アプリケーション」毎に、アプリケーションの動作の契機名とパラメータ名とが登録されている場合の一例を示している。例えば、「文書作成アプリケーション」では、契機名として「ファイルオープン」、「ファイルクローズ」が登録され、それぞれのパラメータ名として「ファイルサイズ」、「ページ数」が登録されている。
なお、図9(a)に示した操作履歴情報、図9(b)に示したアプリケーションの操作に伴うパラメータ、図9(c)に示したアプリケーションの操作結果の各項目に登録されるデータは、図9内の各項目に対応して示した「説明」の内容を表すデータである。
次に、文書生成装置400による工数の算出処理(処理4)について説明する。図10は、本実施形態の文書生成システム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が工数の算出処理を開始する契機は、図10に示したシーケンスのように、工数の算出期間の情報の入力を契機とすることに限定されるものではない。例えば、他の何らかの操作であってもよく、予め定めた一定間隔毎でもよい。
ここで、図10に示したシーケンス図におけるステップS305の工数算出の処理について説明する。工数算出処理においては、収集された操作履歴が、プロジェクトの作業(WBS)におけるいずれの作業であるかを特定する。そして、操作履歴情報に記録されている操作が、プロジェクトのWBSを特定するためにWBS毎に定義した、WBSの作業を実施した結果である設計書やソースファイルなどの成果物、あるいは作業を実施するために参照される参照物に対する操作である場合には、操作履歴情報に記録されている操作の内容に基づいて、WBSの工数の算出を行う。なお、以下の説明においては、WBSで定義された成果物や参照物などの管理対象の物を、「管理対象物」という。
図11は、本実施形態の文書生成システム10における工数算出処理のアルゴリズムの概要を示した図である。また、図12は、本実施形態の文書生成システム10において工数算出処理を行う際に用いられる情報の一例を示した図である。
文書生成システム10における工数算出処理においては、まず、ステップS3051において、プロジェクト作業の判定を行う。プロジェクト作業の判定では、作業者によるPC(操作履歴収集装置100)の操作が、工数を算出する対象のプロジェクトのWBSに該当するか否かを判定する。より具体的には、操作履歴情報に含まれている操作対象物が、今回工数を算出するプロジェクトの管理対象物に相当するか否かを判定することによって、今回の操作が対象のプロジェクト作業であるかそれ以外の作業(プロジェクト外作業)であるかを判定する。
図11に示したステップS3051においては、プロジェクト作業の判定の際に、予め定めた「管理対象物判定基準」(図12(a)参照)を用いた場合を示している。この管理対象物判定基準は、管理対象物を判定するための情報が記載されており、例えば、管理対象物のファイル名に含まれる特定の文字列が記載された表(データ)である。そして、プロジェクト作業の判定においては、操作対象物のファイル名に、この管理対象物判定基準に記載された特定の文字列が含まれているか否かを判別することによって、操作履歴情報に含まれている操作対象物が対象プロジェクトの管理対象物であるか否かを機械的に判定する。この管理対象物判定基準は、プロジェクト情報と同様に、プロジェクトマネージャが事前に情報管理DB300に登録してもよいし、WBS情報に含まれる管理対象物の情報に基づいて事前に作成してもよい。
ステップS3051において、工数を算出する対象のプロジェクト作業であると判定された操作履歴情報は、続くステップS3052以降において、操作履歴情報に含まれている操作内容が、プロジェクトの中のいずれのWBSの作業であるかを判定する。なお、それぞれのWBSの作業には、固有の特徴(以下、「作業種別」という。例えば、コーディング、試験、レビューなど)があり、その特徴によって成果物や参照物に対する操作種別(編集や閲覧など)が異なる。そこで、操作内容のWBS作業の判定においては、まず、ステップS3052において、操作履歴情報に含まれている操作内容を用いて操作対象物に対する操作種別を判定する。
図11に示したステップS3052においては、操作種別を判定の際に、予め定めた「操作種別判定基準」(図12(b)参照)を用いた場合を示している。この操作種別判定基準は、操作対象物に対する操作種別を判定する際の基準が記載されており、例えば、操作対象物に対する操作であると判定される「操作時間(ウィンドウのアクティブ時間)」や「キータッチ回数」などの値が含まれている。そして、操作種別の判定においては、操作対象物のファイルに対する操作が、操作種別判定基準に含まれる値以上であるか否かを判別することによって、操作種別を機械的に判定する。この操作種別判定基準の値は、予め定めておいてもよいが、例えば、実験などによって決定してもよい。
続いて、ステップS3053において、操作履歴情報に基づいてプロジェクト作業のWBSの特定を行う。図11に示したステップS3053においては、WBSの特定の際に、予め定めたプロジェクト情報に含まれている「WBS情報」(図12(c)参照)を用いた場合を示している。より具体的には、操作履歴情報に含まれている操作対象物と、WBS情報に含まれる管理対象物とを比較し、操作対象物と同じ管理対象物を含むWBSを選択する。
続いて、ステップS3054において、操作対象物に対する操作種別に基づいて、WBS作業の実施の判定を行う。WBS作業の実施判定では、操作履歴情報に含まれる操作内容が、WBS作業を実施するための操作であるか否かを判定する。
図11に示したステップS3054においては、WBS作業の実施判定の際に、予め定めた「WBS作業実施判定基準」(図12(d)参照)を用いた場合を示している。このWBS作業実施判定基準は、管理対象物に対する操作について、操作種別によってWBS作業を実施したか否かを判定する基準が記載されており、例えば、WBSの成果物に対する操作種別(図12(b)に示した操作種別判定基準における操作種別)が記載されている。そして、WBS作業の実施判定においては、WBS作業実施判定基準に合致した操作がなされたか否かを判別することによって、操作履歴情報に含まれている操作がWBS作業を実施したか否かを判定する。ここで、WBS作業を実施したと判定された操作履歴情報に記録されている操作を、WBSの作業として、工数の算出に使用する。また、WBS作業を実施しなかったと判定された操作履歴情報は、WBS以外のプロジェクトに関する作業として、工数の算出には使用しない。
ここで、操作履歴情報に含まれている操作がWBS作業を実施したか否かを判定する場合の例について説明する。図13は、本実施形態の文書生成システム10において工数算出処理アルゴリズムを実施した場合の一例を説明する図である。図13に示した一例は、1つの操作対象物への操作(日別操作ID=00001)がどのWBS作業実施に相当するのかを判定する場合の処理の例である。なお、図13には、図13(a)に操作履歴情報、図13(b)に管理対象物判定基準、図13(c)に操作種別判定基準、図13(d)にWBS作業実施判定基準、図13(e)にプロジェクト情報のWBS情報を、それぞれ示している。また、図13には、それぞれの処理において用いられる情報も示している。
まず、処理S1で、プロジェクト作業の判定を行う(図11のステップS3051参照)。処理S1では、管理対象物判定基準から、日別操作ID=00001が「αプロジェクトのABC機能プログラム」であると判定される。
続いて、処理S2で、操作種別の判定を行う(図11のステップS3052参照)。処理S2では、操作種別判定基準から、日別操作ID=00001の操作種別は「デバッグ」であると判定される。
続いて、処理S3で、WBSの特定を行う(図11のステップ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作業の実施判定を行う(図11のステップS3054参照)。処理S2の結果から、日別操作ID=00001では「デバッグ」を行ったと判定されている。すなわち、日別操作ID=00001は、WBS作業実施判定基準の「参照物=デバッグ」を満足する。このことから、処理S4では、日別操作ID=00001では、WBS「ABC機能試験」のWBS作業を実施したと判定される。
次に、操作履歴情報に含まれている操作がWBS作業を実施したか否かを判定する場合の別の例について説明する。図14は、本実施形態の文書生成システム10において工数算出処理アルゴリズムを実施した場合の別の一例を説明する図である。図14に示した一例は、2つの操作対象物への操作(日別操作ID=00002および日別操作ID=00003)を判定する場合の処理の例である。なお、図14には、図14(a)に操作履歴情報、図14(b)に管理対象物判定基準、図14(c)に操作種別判定基準、図14(d)にWBS作業実施判定基準、図14(e)にプロジェクト情報のWBS情報を、それぞれ示している。また、図14には、それぞれの処理において用いられる情報も示している。
まず、処理S1で、プロジェクト作業の判定を行う(図11のステップS3051参照)。処理S1−1では、管理対象物判定基準から、日別操作ID=00002が「βプロジェクトのレビュー結果表」であると判定される。また、処理S1−2では、管理対象物判定基準から、日別操作ID=00003が「βプロジェクトのユーザマニュアル」であると判定される。
続いて、処理S2で、操作種別の判定を行う(図11のステップS3052参照)。処理S2−1では、操作種別判定基準から、日別操作ID=00002の操作種別は「編集」であると判定される。また、処理S2−2では、操作種別判定基準から、日別操作ID=00003の操作種別は「閲覧」であると判定される。
続いて、処理S3で、WBSの特定を行う(図11のステップ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作業の実施判定を行う(図11のステップ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の工数の算出処理について説明する。図15は、本実施形態の文書生成システム10における工数の算出処理の処理手順を示したフローチャートの一例である。また、図16は、本実施形態の文書生成システム10において工数算出処理を行う際に用いられる情報または工数算出処理によって得られる結果の情報の一例を示した図である。
操作履歴情報に基づいて、各工数集計単位(操作単位、日別操作単位、管理対象物別作業単位、WBS別作業単位)について工数を算出し、それぞれの算出結果を、工数管理DB330に格納(蓄積)する。また、同じWBS作業を実施していると判定された操作履歴のデータ同士の合算などが行われる。
まず、ステップS302において、Webブラウザ20から工数の算出期間が入力されると、文書生成装置400は、入力された全ての算出期間内の操作履歴情報に基づいて、ステップS351に示した操作単位算出の処理を行う。なお、ステップS351の操作単位算出の処理ループは、ステップS302において入力された算出期間の操作単位の算出が終了するまで繰り返される。
ここで、操作単位とは、同一の作業者が同一のアプリケーションで、同一のアプリケーション利用種別で、同一の管理対象物に対して「同一の作業」を行ったときの一連、すなわち時間的に隣接する作業のことをいう。なお、「同一の作業」とは、アプリケーションやアプリケーションに対する操作によって定義され、例えば、時刻tでの操作履歴情報と隣接する時刻t+1分での操作履歴情報とで、PC(操作履歴収集装置100)にスクリーンセーバが起動されておらず、かつ同じ管理対象物に対しての操作が行われている(ウィンドウがアクティブになっている)場合をいう(図16(a)参照)。
また、操作単位の算出においては、同一の作業者が、異なるPC(操作履歴収集装置100)の別のアカウントを用いて同じ管理対象物を操作したときも、「同一の作業」であると判定する。例えば、アカウントAとアカウントBとが同一の作業者のアカウントであるか否かの判定は、プロジェクト情報に含まれる個人プロフィール情報内の「アカウント情報」に記載されている情報に基づいて判定する。また、時刻tと時刻t+1分との日付が異なる場合には、時刻tと時刻t+1分とは連続していないものと判定する。すなわち、操作単位は、同一の日付における作業を1つの単位とし、日付を跨いだ作業は、異なる操作単位として分割する。
ステップS351の操作単位算出の処理では、まず、ステップS3511において、文書生成装置400内のDBアクセス部420が、操作履歴情報DB310から全ての算出期間内の操作履歴情報を取得し、情報送受信部410を介して工数算出部430に出力する。続いて、ステップS3512において、工数算出部430は、入力された全ての操作履歴情報を、図11に示したアルゴリズムによって、工数算出処理に使用する操作履歴情報を判定し、操作単位を算出する。そして、工数算出部430は、操作単位の算出結果(図16(b)参照)を、情報送受信部410およびDBアクセス部420を介して、工数管理DB330に格納(蓄積)する。
ステップS351の操作単位算出の処理ループが終了すると、続いて、文書生成装置400は、算出した操作単位の算出結果に基づいて、ステップS352に示した日別操作単位算出の処理を行う。なお、ステップS352の日別操作単位算出の処理ループは、ステップS302において入力された算出期間の日別操作単位の算出が終了するまで繰り返される。
ここで、日別操作単位とは、各操作単位について、「作業者」、「日」、「操作対象物」、および「アプリケーション利用種別」が同一のものについて集計した結果のことをいう。なお、同一の作業者が同一のアプリケーションで同一の管理対象物を同じ日に操作している場合は、同じ日別操作単位に属するものとする。
ステップS352の日別操作単位算出の処理では、まず、ステップS3521において、文書生成装置400内のDBアクセス部420が、工数管理DB330から、ステップS351で格納した全ての操作単位を取得し、情報送受信部410を介して工数算出部430に出力する。続いて、ステップS3522において、工数算出部430は、入力された全ての操作単位に基づいて、日別操作単位を算出する。そして、工数算出部430は、日別操作単位の算出結果(図16(c)参照)を、情報送受信部410およびDBアクセス部420を介して、工数管理DB330に格納(蓄積)する。
ステップS352の日別操作単位算出の処理ループが終了すると、続いて、文書生成装置400は、算出した日別操作単位の結果に基づいて、ステップS353に示した管理対象物別作業単位算出および操作種別判定の処理を行う。なお、ステップS353の管理対象物別作業単位算出および操作種別判定の処理ループは、ステップS302において入力された算出期間の管理対象物別作業単位算出および操作種別判定が終了するまで繰り返される。
ここで、管理対象物別作業単位とは、各日別操作単位について、「作業者」および「管理対象物」が同一のものについて集計した結果のことをいう。より具体的には、例えば、プロジェクト情報として登録されている管理対象物判定基準に、日別操作単位に含まれる操作対象物がマッチするか否かによって、同じ管理対象物別作業単位に含まれるか否かを判定する。また、管理対象物別作業単位に含まれる「操作時間」や「キータッチ回数」の情報に基づいて、例えば、図12(b)に示した操作種別判定基準に従って判定を行い、各管理対象物別作業単位の操作種別を決定する。
ステップS353の管理対象物別作業単位算出および操作種別判定の処理では、まず、ステップS3531において、文書生成装置400内のDBアクセス部420が、工数管理DB330から、ステップS352で格納した全ての日別操作単位を取得し、情報送受信部410を介して工数算出部430に出力する。続いて、ステップS3532において、文書生成装置400内のDBアクセス部420が、プロジェクト情報管理DB320からプロジェクト情報を取得し、情報送受信部410を介して工数算出部430に出力する。続いて、ステップS3533において、工数算出部430は、入力された全ての日別操作単位およびプロジェクト情報に基づいて、管理対象物別作業単位の算出および操作種別の判定を行う。そして、工数算出部430は、操作種別の判定結果を合わせた管理対象物別作業単位の算出結果(図16(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別作業単位の算出結果(図16(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別作業単位の算出結果の形式は、図16(e)に示した葉ノードのWBS別作業単位の算出結果の形式と同様であるため、図示を省略する。
このように、本実施形態の文書生成システム10における工数の算出処理では、「WBS」、「作業者」、および「日(時間)」がそれぞれ対応付けられた工数の算出結果を得る。これにより、文書生成システム10では、「WBS」、「作業者」、および「日(時間)」の関係を示す。
なお、図11及び図15に示した工数算出処理では、操作種別及び作業種別を判別した上で工数を算出する場合について説明したが、これに限られず操作種別及び作業種別の判別を省略して工数の算出を行っても良い。この場合、例えば、以下に示す方法で操作対象物とWBSとを関連付けることができる。
操作種別及び作業種別の判別を省略して工数の算出を行う場合、プロジェクト情報管理DB320は、操作対象物とWBS名とを関連付けたWBS割当テーブルを記憶する。WBS割当テーブルには、操作対象物として操作対象物のファイル名もしくは操作対象物を示すファイルの拡張子、操作対象物を格納するフォルダ名、または操作対象物を示すURLが格納される。
そして、文書生成装置400は、WBS割当テーブルが記憶するファイル名の操作対象物が操作された場合、その操作時間を当該ファイル名に関連付けられたWBSの工数として算出する。また、文書生成装置400は、WBS割当テーブルが記憶する拡張子を有する操作対象物が操作された場合、その操作時間を当該拡張子に関連付けられたWBSの工数として算出する。また、文書生成装置400は、WBS割当テーブルが記憶するフォルダ名のフォルダに格納された操作対象物が操作された場合、その操作時間を当該フォルダ名に関連付けられたWBSの工数として算出する。また、文書生成装置400は、WBS割当テーブルが記憶するURLが閲覧された場合、その閲覧時間を当該URLに関連付けられたWBSの工数として算出する。
図17は、操作対象物とWBSとを関連付けるための画面の一例を示す図である。
ここで、WBS割当テーブルへの情報の記録方法について説明する。
プロジェクト情報管理装置500は、図17に示すWBS割当画面を生成し、操作履歴収集装置100またはWebブラウザ20による操作を受け付け、操作対象物とWBSとを関連付けてWBS割当テーブルに記録する。WBS割当画面は、図17に示すように、未割当ファイル一覧、WBS一覧、及びWBS割当一覧の3つの情報を表示する画面である。
未割当ファイル一覧は、作業者が操作を行った操作対象物のうち、WBSに割り当てられていないもののファイル名、及び当該操作対象物を格納するフォルダのフォルダ名を、当該操作対象物の操作に用いられたアプリケーションごとに示した一覧である。なお、未割当ファイル一覧においては、操作対象物のファイル名に関連付けて当該操作対象物の操作時間が表示され、フォルダ名に関連付けて、当該フォルダ名のフォルダに格納された全ての操作対象物の総操作時間が表示される。
WBS一覧は、プロジェクト情報管理DB320が記憶するWBSの一覧である。
WBS割当一覧は、上記テーブルにおいて既にWBSに関連付けられている操作対象物の一覧である。
ここで、図17に示すWBS割当画面の操作により操作対象物とWBSとを関連付ける方法を説明する。
WBS割当画面においては、未割当ファイル一覧に含まれるファイル名、フォルダ名及びアプリケーション名が、ドラッグ・アンド・ドロップ可能に表示される。これにより、作業者が操作履歴収集装置100を操作して、またはプロジェクトマネージャがWebブラウザ20を操作して、ファイル名、フォルダ名及びアプリケーション名をドラッグすることができる。ここで、ファイル名またはフォルダ名が、WBS一覧に含まれる何れかのWBSの上でドロップされると、プロジェクト情報管理装置500は、ドラッグ・アンド・ドロップされたファイル名またはフォルダ名と、当該ファイル名またはフォルダ名をドロップされたWBSとを関連付けて、WBS割当テーブルに記録する。
また、アプリケーション名が、WBS一覧に含まれる何れかのWBSの上でドロップされると、プロジェクト情報管理装置500は、ドラッグ・アンド・ドロップされたアプリケーション名が示すアプリケーションに関連付けられた拡張子(アプリケーションがWebブラウザである場合は、URL)を全て、そのWBSに関連付けてWBS割当テーブルに記録する。すなわち、これによりアプリケーションで操作したファイルを一括してWBSに割り当てることができる。
そして、プロジェクト情報管理装置500は、ファイル名または拡張子をWBSに関連付けられた場合、当該ファイル名または当該拡張子を含むファイル名を、未割当ファイル一覧から削除する。このとき、当該ファイル名が示す操作対象物を格納するフォルダが、他に未割当の操作対象物を格納していない場合、当該フォルダも未割当ファイル一覧から削除する。また、プロジェクト情報管理装置500は、フォルダ名をWBSに関連付けた場合、当該フォルダ名及び当該フォルダ名が示すフォルダに格納されている操作対象物のファイル名及びフォルダのフォルダ名を、未割当ファイル一覧から削除する。
上記処理を、未割当ファイル一覧が空になるまで繰り返すことで、操作された全ての操作対象物をWBS割当テーブルに記録することができる。
なお、図15に示した工数算出処理の処理手順では、それぞれの算出処理のステップにおいて得られた算出結果を、都度、工数管理DB330に格納(蓄積)する場合について説明したが、例えば、文書生成装置400内に算出結果を保持する記憶領域を備え、算出結果を記憶領域に保持する構成としてもよい。この場合には、記憶領域に保持している前の算出処理のステップの算出結果を、次の算出処理のステップで使用する。
また、図10および図15に示した工数算出処理では、プロジェクトマネージャによる工数算出処理の実行要求に応じて、文書生成装置400が工数の算出処理を実行する場合について説明したが、プロジェクトマネージャによる工数算出処理の実行要求がない場合にも自動で工数の算出処理を実行する構成としてもよい。例えば、夜間などに、情報管理DB300に格納(蓄積)されている1日分の操作履歴情報に基づいて、事前に1日分の工数算出処理を実行し、工数の算出結果を情報管理DB300に格納(蓄積)しておく。
次に、工数を含む報告書を生成して書類管理DB340に格納する処理(処理5)について説明する。図18は、本実施形態の文書生成システム10における報告書の生成処理の流れを示したシーケンス図である。
まず、文書生成装置400は、操作履歴収集装置100に報告の対象となるプロジェクトの項目(報告対象項目)を特定するための情報の入力画面を表示させる(ステップS401)。そして、作業者は、表示された入力画面の表示に従って、報告対象項目を特定するための情報を入力する。報告対象項目を特定するための情報の例としては、依頼書に記載された依頼番号や、対象となる期間や、項目そのものなどが挙げられる。その後、操作履歴収集装置100は、入力された情報を文書生成装置400に送信する(ステップS402)。
続いて、文書生成装置400は、入力された報告対象項目を特定するための情報に基づいて報告対象項目を特定し、情報管理DB300から、当該報告対象項目の工数情報(工数算出処理における算出結果)を取得する(ステップS403)。なお、報告対象項目を特定するための情報が依頼番号である場合、文書生成装置400は、情報管理DB300において当該依頼番号に関連付けられた依頼書から期間を抽出し、入力した作業者を作業実施者とし、かつ当該期間内に開始日及び終了日が含まれるWBSが示す項目を報告対象項目と特定する。また、報告対象項目を特定するための情報が期間である場合、文書生成装置400は、入力した作業者を作業実施者とし、かつ当該期間内に開始日及び終了日が含まれるWBSが示す項目を報告対象項目と特定する。また、本実施形態では、作業者に報告対象項目を特定するための情報を入力させる場合について説明したが、例えば当該情報の入力を省略し、当該作業者について最後に生成した依頼書が示す期間内に開始日及び終了日が含まれるWBSが示す項目を報告対象項目と特定しても良い。
続いて、文書生成装置400は、操作履歴収集装置100に、特定した報告対象項目それぞれについての工数の入力画面を表示させる(ステップS404)。そして、作業者は、表示された入力画面の表示に従って、報告対象項目それぞれについての工数を入力する。その後、操作履歴収集装置100は、入力された工数の情報を文書生成装置400に送信する(ステップS405)。
その後、文書生成装置400は、情報管理DB300から取得した工数情報及び作業者が入力した工数情報に基づいて、報告書を生成する(ステップS406)。
ここで、文書生成装置400が生成する報告書の例を示す。図19は、本実施形態の文書生成システム10が生成する報告書の一例を示す図である。
図19に示すように、文書生成装置400が生成する報告書には、作業者、対象年月、並びに、対象年月の日ごとに、作業開始時刻、作業終了時刻、休憩時間、稼働時間、作業内容、自動計測工数(文書生成装置400が計算した工数)及び申告工数(作業者が入力した工数)が記載される。また、報告書の各作業内容の末尾には、当該作業した項目に対応するチケットのチケットIDが記載される。なお、休憩時間は、作業開始時刻から作業終了時刻までの間におけるスクリーンセーバの延べ実行時間によって算出される時間である。また、稼働時間は、作業開始時刻から作業終了時刻までの時間から休憩時間を差し引いた時間である。
このように、報告書に作業者が申告した工数と自動計測した工数とを表示することで、作業者が工数を偽って報告したか否かを、プロジェクトマネージャが把握しやすくすることができる。なお、自動計測した工数はあくまで作業者が操作履歴収集装置100を用いて作業した工数を示すものであって、会議など操作履歴収集装置100を用いない作業の工数は含まれない。したがって、作業者が工数を偽らずに報告をした場合であっても、作業者が申告した工数と自動計測した工数とは一致するとは限らない。
次に、文書生成装置400は、当該報告書を、情報管理DB300に送信して格納させる(ステップS407)。情報管理DB300は、報告書を蓄積する(ステップS408)。そして、文書生成装置400は、情報管理DB300に格納した報告書を、操作履歴収集装置100に表示させる(ステップS409)。
次に、作業者は、操作履歴収集装置100に表示された報告書の修正事項を入力する。修正事項の例としては、報告対象項目を削除する修正や、報告対象項目にコメントなどの付記事項を追加する修正などが挙げられる。その後、操作履歴収集装置100は、入力された修正事項を文書生成装置400に送信する(ステップS410)。
その後、文書生成装置400は、作業者が入力した修正事項に基づいて、報告書を修正する(ステップS411)。次に、文書生成装置400は、修正した報告書を、情報管理DB300に送信して格納させる(ステップS412)。情報管理DB300は、報告書を蓄積する(ステップS413)。なお、このとき情報管理DB300は、修正前の報告書に修正後の報告書を上書きせず、別の文書として記録する。そして、文書生成装置400は、情報管理DB300に格納した修正後の報告書を、操作履歴収集装置100に表示させる(ステップS414)。
次に、修正前後の報告書の差分、及び依頼書と報告書の差分を表示する処理(処理6)について説明する。図20は、本実施形態の文書生成システム10における報告書の差分表示処理の流れを示したシーケンス図である。
まず、文書生成装置400は、Webブラウザ20に比較を行う報告書を特定するための情報の入力画面を表示させる(ステップS501)。そして、プロジェクトマネージャは、表示された入力画面の表示に従って、報告書を特定するための情報を入力する。報告書を特定するための情報の例としては、報告書に記載された契約番号や、対象となる期間や、対応する依頼書の依頼番号などが挙げられる。その後、Webブラウザは、入力された情報を文書生成装置400に送信する(ステップS502)。
続いて、文書生成装置400は、入力された報告書を特定するための情報に基づいて対象となる報告書を特定し、情報管理DB300から、修正前の報告書、修正後の報告書及び当該報告書に係る依頼書を取得する(ステップS503)。
続いて、文書生成装置400は、取得した依頼書に記載されたチケットIDと修正後の報告書に記載されたチケットIDとの差分をとり、依頼書で依頼した内容に対して追加された工程及び削除された工程を特定する。そして、文書生成装置400は、追加された工程及び削除された工程を強調した依頼書及び報告書を並べた表示情報を生成する(ステップS504)。
ここで、文書生成装置400が生成する差分工程の表示情報の例を示す。図21は、本実施形態の文書生成システム10が生成する差分工程の表示情報の一例を示す図である。
図21に示すように、差分工程の表示情報において追加または削除された工程を強調する方法の一例としては、報告書及び依頼書に記載された工程のうち、追加された工程及び削除された工程に所定の色の枠を描画する方法が挙げられる。例えば、報告書に記載された工程のうち追加された工程に緑色の枠を描画し、依頼書に記載された工程のうち削除された工程に赤色の枠を描画することができる。このとき、図21に示すように、依頼書と報告書とで共通の工程に、水色の枠など、追加または削除された工程の枠と異なる色の枠を描画しても良い。
これにより、プロジェクトマネージャは、依頼したのに実行されなかった工程や、作業者によりチケットが追加された工程を把握することができる。なお、本実施形態では、依頼書と修正後の報告書との比較を行う場合について説明したが、これに限られず例えば依頼書と修正前の報告書との比較を行っても良い。また、依頼書生成時に、文書生成装置400が依頼書生成時のチケットIDを情報管理DB300に記録しておき、当該情報と報告書の生成に用いたチケットIDとの比較を行うことで、差分工程の表示情報を生成しても良い。
次に、文書生成装置400は、生成した差分工程の表示情報を、情報管理DB300に送信して格納させる(ステップS505)。情報管理DB300は、差分工程の表示情報を蓄積する(ステップS506)。
続いて、文書生成装置400は、修正前の報告書の記載項目と修正後の報告書の記載項目との差分をとり、自動生成された報告書に対して追加された項目及び削除された項目を特定する。そして、文書生成装置400は、修正後の報告書の記載項目のうち追加された項目及び削除された項目を強調した表示情報を生成する(ステップS507)。
ここで、文書生成装置400が生成する差分項目の表示情報の例を示す。図22は、本実施形態の文書生成システム10が生成する差分項目の表示情報の一例を示す図である。
図22に示すように、差分項目の表示情報において追加された項目を強調する方法の一例としては、補正後の報告書のうち追加された項目に下線を引く方法が挙げられる。この方法以外にも、削除された項目の文字色を変える方法や枠を描画する方法などを用いても良い。また、図22に示すように、差分項目の表示情報において削除された項目を強調する方法の一例としては、補正後の報告書のうち削除された項目を取り消し線とともに表示する方法が挙げられる。この方法以外にも、削除された項目を背景色と同系統の文字色を用いて表示する方法などを用いても良い。
これにより、プロジェクトマネージャは、作業者によって報告書に追記されたコメントなどの付記事項を容易に確認することができる。
次に、文書生成装置400は、生成した差分項目の表示情報を、情報管理DB300に送信して格納させる(ステップS508)。情報管理DB300は、差分項目の表示情報を蓄積する(ステップS509)。そして、文書生成装置400は、情報管理DB300に格納した差分工程及び差分項目の表示情報を、Webブラウザ20に表示させる(ステップS510)。
上記に述べたとおり、本発明を実施するための形態によれば、作業者が開発作業を行うときに使用する作業用端末の操作履歴情報を自動的に収集する。そして、収集した操作履歴情報に基づいて、作業者が実施した作業の工数を、WBSの単位で機械的に算出し、報告書に記載する。
この工数の算出においては、作業者が実際に開発作業を行うときに操作を行う作業用端末の操作履歴情報を、工数算出の対象にするため、より正確な作業工数の把握を行うことができる。
また、本発明を実施するための形態によれば、自動算出された作業工数を含む報告書を参照することで、プロジェクトの管理者が、作業者毎の正確な作業内容や作業時間を把握することができる。また、プロジェクトの管理者は、作業項目毎に、作業に要した実際の作業時間の情報を参照することができる。これにより、プロジェクトの工数管理や進捗管理、またはリスクの早期発見など、プロジェクト管理の支援を行うことができる。このことにより、従来のプロジェクトの進捗管理において作業者本人の自己申告に依存していた作業内容の把握を、本発明を実施するための形態では自動的に行うことができ、ソフトウェアの開発におけるリスクを早期に発見することを容易にすることができる。なお、本発明を実施するための形態の適用範囲は、ソフトウェアの開発に限定されるものではなく、一般的な業務にも容易に適用することができる。
なお、本発明を実施するための形態では、操作履歴管理装置200と、情報管理DB300と、文書生成装置400と、プロジェクト情報管理装置500とが、それぞれ別の端末装置で構成された文書生成システム10の場合について説明したが、文書生成システム10の装置構成は、本発明を実施するための形態に限定されるものではない。例えば、操作履歴管理装置200と、情報管理DB300と、文書生成装置400と、プロジェクト情報管理装置500とを同一の端末装置で構成した場合においても、同一の端末装置内で本発明を実施するための形態と同様の機能を実現する構成であれば、同様の処理を行うことができ、同様の結果を得ることができる。
なお、本発明を実施するための形態では、作業者が工数を偽ったか否かの判定の参考として自動計測した工数を表示する場合について説明したが、これに限られず、作業者による作業時間の申告の補助として当該自動計測した工数を用いても良い。この場合、ステップS404の工数の入力画面に、ステップS403で取得した工数を表示することで、作業者は、自動計測した工数を参考にして実際の工数の入力をすることができる。
また、本発明を実施するための形態では、作業者に工数を入力させる場合について説明したが、これに限られず、当該入力を省略して自動計測した工数のみを報告書に表示させても良い。
なお、図1および図2に示した文書生成システム10内の各構成要素による処理を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、文書生成システム10に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。