工程管理システム、工程管理方法、プログラム及び工程管理装置
【課題】ソフトウェア開発においてプロジェクトの工程を管理する場合に、工数の見積り精度を高めること。
【解決手段】工程管理システム10は、過去に行われたタスクが含まれる工程管理情報をタスク情報データベース3から読み出して解析することにより、新たに工数の見積りが行われるプロジェクトに含まれるタスクに必要となる工数を予測した予測値を求める解析サーバ1を備える。また、ネットワークを介して接続される管理者端末5によって選択され、新たに工数の見積りが行われるプロジェクトに含まれるタスクについて、解析サーバが解析した工数の予測値を解析情報として管理者端末5と担当者端末6に表示させる情報サーバ2と、を備える。
【解決手段】工程管理システム10は、過去に行われたタスクが含まれる工程管理情報をタスク情報データベース3から読み出して解析することにより、新たに工数の見積りが行われるプロジェクトに含まれるタスクに必要となる工数を予測した予測値を求める解析サーバ1を備える。また、ネットワークを介して接続される管理者端末5によって選択され、新たに工数の見積りが行われるプロジェクトに含まれるタスクについて、解析サーバが解析した工数の予測値を解析情報として管理者端末5と担当者端末6に表示させる情報サーバ2と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、ソフトウェアの開発時に工程を管理するため、作業工数の見積りを支援する工程管理システム、工程管理方法、プログラム及び工程管理装置に関する。
【背景技術】
【0002】
従来、ソフトウェアの開発に際してプロジェクトが立ち上げられると、プロジェクトの全体進捗や人員を管理するプロジェクトリーダーが任命され、プロジェクトリーダーの指示に従って、プログラムのコーディングやテスト等の作業を行う担当者が集められていた。ソフトウェアの開発工程は、大まかに「要求定義」、「外部設計(概要設計)」、「内部設計(詳細設計)」、「開発(プログラミング)」、「テスト」、「運用」に分けられており、工程毎に複数の作業が含まれている。しかし、工程を単位とすると作業の進捗を管理しにくいため、プロジェクトリーダーは、工程毎に「タスク」と呼ばれる単位で作業を細分化し、タスク毎に必要とされる担当者を割り振って進捗を管理していた。ソフトウェアの開発に際して、担当者の作業量は、[作業時間]×[開発人数]で表される工数と呼ばれる単位で見積りが行われる。そして、プロジェクト毎に必要とされる費用[人月]は、担当者のスキルレベルに従って設定される担当者毎の単価を工数に掛け合わせて見積りが行われる。
【0003】
このようにプロジェクトリーダーがプロジェクト全体の工程や工数、費用を十分に見積った後、プロジェクトを開始する。しかし、突発的に発生した異常処理や仕様変更に対応していると、工数や費用が見積りより増えることがある。また、誤って見積もった工数に基づいて進捗を管理すると、プロジェクトが失敗する要因になりかねなかった。工数の見積もりを正確に行うためには、プロジェクトリーダーが作業の全容を把握し、担当者のスキルを正確に捉え、作業遅延等のリスクを考慮することが重要である。そして、プロジェクトリーダーは、プロジェクトを滞りなく進行させ、工程毎の状態から発生しうるリスクを考慮し、適切なタイミングで工程や工数を見直すことが求められている。このため、プロジェクトの工程や、タスクに割り振る担当者の工数や費用の工程管理を円滑に行うことを目的とする工程管理システムが用いられるようになった。
【0004】
プロジェクトリーダーがプロジェクトの工程、タスクの作業量、割り振った担当者の人数等のタスク情報を工程管理システムに入力し、各担当者がタスク毎に作業の進捗を示す進捗情報をシステムに入力する。これにより、プロジェクトリーダーと担当者は、それぞれプロジェクトの進捗情報を共有できる。一般的に使用される工程管理システムは、タスク管理、進捗管理、リソース管理、コスト管理のほか、プロジェクトリーダーがプロジェクトを進行するために必要とする様々な基本機能を備えている。
【0005】
特許文献1には、開発作業中の担当者の作業負荷を的確に把握し、工程再調整を行うための工程進捗管理方法及び工程管理装置が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平11−96222号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、プロジェクトリーダーが工数を見積もる際に、工程やタスク毎に必要とされる作業量と無関係に工数を求めたり、プロジェクトリーダーの個人的な経験に基づいて見積ったりすることがあった。例えば、開発が行われるソフトウェアの機能を実現するためには、様々な種類のプログラム言語が用いられ、担当者毎にソフトウェアのソースコードを自由に記述する場合があり、開発の自由度が高かった。また、プログラムのデバッグやテスト等には様々な手法が存在しており、同じ工程であっても採用される手法によって工数が変わる場合があった。このため、プロジェクトリーダーの経験によって工程を見積もった工数の予測値が実績値と大きく乖離する場合があった。
【0008】
また、過去に行われたプロジェクトと同じ内容のプロジェクトを立ち上げても、過去に任命されたプロジェクトリーダーとは異なるプロジェクトリーダーが見積りを行う場合がある。このとき、現在のプロジェクトリーダーが一部のタスクを考慮せずにしなかったことにより、現在の工数の見積り値と、過去のプロジェクトの工数の実績値とが異なる場合があった。このことは、特許文献1に開示された技術を用いても解決されなかった。上述したように、プロジェクトの工数の見積りが正確に行われなければ、プロジェクトの工程が遅延したり、見積もった工数よりも実績工数が増えたりする。このため、プロジェクトリーダーの資質によらず工数を正確に見積もることが求められていた。
【0009】
また、従来の工程管理システムには、ルーチン化された作業を繰り返す工場等の大量生産ラインをモデルとして、プロジェクトの工程を管理し、タスクの工数を見積もるものがあった。この大量生産ラインのモデルでは、同一又は類似のプロジェクトが繰り返し立ち上げられるため、工程毎に必要とされるタスクは過去のプロジェクトにおけるタスクと同様であり、ある程度規格化されていることが多かった。ここで「プロジェクトが類似」であるか否かは、システムの構成、機能等を考慮した上で判断される。そして、工場等で受け継がれている規格化された工程を利用したり、工程の管理状況を把握することを目的として開かれる工程会議を頻繁に行ったりすることによって、プロジェクトリーダーが必要な工数を見積っていた。しかし、工数の見積りは人手を介するため、不正確な見積りとなる場合があった。
【0010】
本発明はこのような状況に鑑みて成されたものであり、開発に必要とされるプロジェクトの工程を管理する場合に、工数の見積精度を高めることを目的とする。
【課題を解決するための手段】
【0011】
本発明は、プロジェクトの作業を細分化したタスクに関するタスク情報及びタスクの工数に関する工数情報を、プロジェクトの工程を管理するための工程管理情報として、タスクの種類を分類する分類情報に従ってタスク情報データベースに蓄積する。
次に、過去に行われたタスクが含まれる工程管理情報をタスク情報データベースから読み出して解析することにより、新たに工数の見積りが行われるプロジェクトに含まれるタスクに必要となる工数を予測した予測値を求める。
そして、ネットワークを介して接続される通信端末によって選択され、新たに工数の見積りが行われるプロジェクトに含まれるタスクについて、解析サーバが解析した工数の予測値を解析情報として通信端末に表示させるものである。
【発明の効果】
【0012】
本発明によれば、タスク分類に従ってタスク情報データベースより検索した過去のタスクの実績に基づいて、新たなタスクの工程を予測し、プロジェクトの工程を管理する。そして、工数の予測値を解析情報として通信端末に表示することによって、プロジェクトリーダーは、精度の高い工数を見積った工程管理を容易に行うことができる。
【図面の簡単な説明】
【0013】
【図1】本発明の第1の実施の形態における工程管理システムのシステム構成例を示すブロック図である。
【図2】本発明の第1の実施の形態における解析サーバの内部構成例を示すブロック図である。
【図3】本発明の第1の実施の形態における情報サーバの内部構成例を示すブロック図である。
【図4】本発明の第1の実施の形態におけるタスク情報データベースの内部構成例を示す説明図である。
【図5】本発明の第1の実施の形態における分類情報管理テーブルの構成例を示す説明図である。
【図6】本発明の第1の実施の形態における実績情報管理テーブルの構成例を示す説明図である。
【図7】本発明の第1の実施の形態におけるタスク情報管理テーブルの構成例を示す説明図である。
【図8】本発明の第1の実施の形態における実績情報管理テーブルから読み出されるタスクの規模及び工数について予測値と実績値の例を示す説明図である。
【図9】本発明の第1の実施の形態における工程管理表の表示例を示す説明図である。
【図10】本発明の第2の実施の形態における工程管理装置の内部構成例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、本発明の第1の実施の形態(以下、「本例」という。)について、添付図面を参照して説明する。本実施の形態では、プロジェクトリーダーがプロジェクトの工程と工数等を管理し、プロジェクトリーダー及び担当者が進捗情報を共有する工程管理システム10に適用した例について説明する。この工程管理システム10は、コンピュータ装置を含み、プログラムを実行することにより、内部ブロックが連携して行う工程管理方法を実現することができる。
【0015】
図1は、工程管理システム10の内部構成例を示す。
工程管理システム10は、過去のプロジェクトで必要とされたタスクの工数等の実績値をタスクに関するタスク情報として蓄積するタスク情報データベース3から実績値を読み出し、解析サーバ1が実績値を解析し、新しいプロジェクトで必要となるタスクの工数等を見積もるものである。
【0016】
工程管理システム10は、用いるタスク情報と工数情報を含み、プロジェクトの工程を管理するために用いる工程管理情報を解析する解析サーバ1と、工程管理情報を入出力する情報サーバ2と、タスク情報データベース3と、LAN等からなるネットワーク4と、ネットワーク4を介して各サーバ及びタスク情報データベース3に行われる不正な接続を遮断するファイアウォール7を備える。
【0017】
また、工程管理システム10は、ネットワークを介して接続される通信端末として、管理者端末5と担当者端末6を備える。管理者端末5と担当者端末6は、操作情報を入力する操作部(不図示)と、情報サーバ2から受け取る解析情報を表示部に表示する表示部(不図示)を有する。管理者端末5は、管理者権限を持つプロジェクトリーダーによって操作され、担当者端末6は、プロジェクトの担当者によって操作される。
【0018】
管理者端末5と担当者端末6は、ユーザー毎に割り当てられるID、パスワードが入力されると、ネットワーク4及びファイアウォール7を介して各サーバにアクセス可能となる。管理者端末5は、操作部によりタスクの分類情報を登録する機能を有する。管理者端末5と担当者端末6は、情報サーバ2が解析サーバ1によって工数の見積りが行われた予測値を解析情報として画面に表示する。
【0019】
解析サーバ1は、タスク情報データベース3から読み出した工程管理情報を解析する解析処理を行う機能を備えている。そして、解析サーバ1は、過去に行われたタスクが含まれる工程管理情報をタスク情報データベース3から読み出してタスクの工数を算出し、工程管理情報を解析することにより、新たに工数の見積りが行われるプロジェクトに含まれるタスクに必要となる工数を予測した予測値を求める。
【0020】
情報サーバ2は、解析サーバ1及びタスク情報データベース3と通信する機能を備えている。また、情報サーバ2は、プロジェクトに要する工程を示す工程情報と工程毎の工数を入出力するインターフェース(後述する情報サーバポート26)を備えており、ネットワーク4を介してインターフェースに管理者端末5と担当者端末6が接続される。そして、情報サーバ2は、解析サーバ1及びタスク情報データベース3の間で連携して解析情報及び工程管理情報を入出力し、管理者端末5と担当者端末6に工程情報、解析情報を提供する。
【0021】
このとき、情報サーバ2は、ネットワークを介して接続される管理者端末5と担当者端末6によって選択され、新たに工数の見積りが行われるプロジェクトに含まれるタスクについて、解析サーバ1が解析した工数の予測値を解析情報として管理者端末5と担当者端末6に表示させる。また、情報サーバ2は、管理者端末5から受け取ったタスクの分類情報をタスク情報データベース3に登録し、管理者端末5と担当者端末6に対し、解析サーバ1によって工数の見積りが行われた予測値を、タスク毎に予測値及び実績値が一覧表示される工程管理表35(後述する図9参照)として通信端末の表示部に表示させる。
【0022】
タスク情報データベース3は、上述したようにプロジェクトの作業を細分化したタスクに関するタスク情報及びタスクの工数に関する工数情報を、プロジェクトの工程を管理するための工程管理情報として、タスクの種類を分類する分類情報に従って蓄積する。これらの情報は、タスクを管理するために必要となる各種のテーブル(後述する図4参照)によって管理している。
【0023】
管理者端末5は、タスク情報の入力を受け付ける機能と、このタスク情報を不図示の表示部に表示する機能と、情報サーバ2から受け取ったタスクの予測値を工程管理表(後述する図9参照)として表示する機能を備える。担当者端末6は、タスク情報を表示部に表示し、進捗情報の入力を行う機能を備えている。これらの機能は、管理者端末5を操作するプロジェクトリーダーと、担当者端末6を操作する担当者の操作入力によって実行される。プロジェクトリーダー又は担当者が行った操作入力は、情報サーバ2を介して、解析サーバ1及びタスク情報データベース3に送られるため、管理者端末5と担当者端末6は、タスク情報データベース3にアクセスすることができる。
【0024】
図2は、解析サーバ1の構成を示している。
解析サーバ1は、タスク情報データベース3から読み出したタスクの工数の実績値を、タスクの予測値を算出する予測関数を用いた最小2乗法により、タスクの予測値を求めるものである。解析サーバ1は、情報サーバ2に接続して解析情報を入出力する情報サーバ接続モジュール11と、工程管理情報を解析してタスクの予測値を解析情報として算出する解析エンジン12と、タスク情報データベース3に接続して工程管理情報を入出力するデータベース接続モジュール13を備える。
【0025】
解析サーバ1は、次の機能を搭載する。
情報サーバ接続モジュール11は、情報サーバ2が行う解析情報の取得命令を受けると、解析エンジン12が解析した解析情報を情報サーバ2に送信する機能を搭載する。また、データベース接続モジュール13は、解析エンジン12が行う工程管理情報の取得命令に応じて、タスク情報データベース3から工程管理情報を取得する機能と、タスク情報データベース3へ工程管理情報を反映する命令を送信する機能を搭載する。
【0026】
図3は、情報サーバ2の構成を示している。
情報サーバ2は、タスク情報データベース3及び解析サーバ1の間で工程管理情報及び解析情報を連携し、タスクの実績値をタスク情報データベース3に反映する。これにより、解析サーバ1が求める予測値を実績値に近づけるように予測関数に当てはめて求められた予測値の精度を高めるものである。
【0027】
情報サーバ2は、タスク情報データベース3に接続して工程管理情報を入出力するデータベース接続モジュール21と、タスク情報データベース3から読み出した工程管理情報のうち、タスク情報を記憶するデータ構造モジュール22を備える。また、情報サーバ2は、解析サーバ1に接続して解析情報を入出力する解析サーバ接続モジュール23と、各部の制御を行うコントロールモジュール24を備える。また、情報サーバ2は、管理者端末5、担当者端末6が備える不図示の表示部に表示される画面(以下、「ユーザーインタフェース」と呼ぶ。)を出力する画面入出力モジュール25と、管理者端末5、担当者端末6から入力された操作情報を含むデータを受けとり、各端末に表示させるユーザーインタフェースを出力する情報サーバポート26を備える。
【0028】
情報サーバ2は、次の機能を搭載する。
データベース接続モジュール21は、タスク情報データベース3により規定されるテーブル間のデータ構造をデータ構造情報として構築するために、タスク情報データベース3から工程管理情報を取得する機能と、タスク情報データベース3へ工程管理情報を反映する命令を送信する機能を搭載する。データ構造モジュール22は、データベース接続モジュール21を介して、コントロールモジュール24にタスク情報を提供する機能と、タスク情報を一時記憶する機能を搭載する。解析サーバ接続モジュール23は、解析サーバ1とコントロールモジュール24との間に配置され、コントロールモジュール24から受け取った解析サーバ1へ解析を実行する命令を送信する機能と、解析サーバ1がタスクの規模から解析した予測値を解析情報として取得する機能を搭載する。
【0029】
コントロールモジュール24は、ユーザーインタフェースとなるタスク情報入力画面(不図示)や工程管理表(後述する図9参照)を提供するために必要なタスク情報、予測値、工数情報等を加工し、画面入出力モジュール25へ提供する機能を搭載する。また、データ構造モジュール22からデータ構造情報を取得し、解析サーバ接続モジュール23を介して、解析サーバ1から解析情報を取得する機能を搭載する。
【0030】
画面入出力モジュール25は、管理者端末5及び担当者端末6が接続される情報サーバポート26とコントロールモジュール24との間に配置される。そして、管理者端末5及び担当者端末6にユーザーインタフェースを提供し、各種の画面を表示出力したり、各端末から操作部により入力される操作情報を受け付けたりする機能を搭載する。また、コントロールモジュール24を介して、解析サーバ1及びタスク情報データベース3に操作情報を出力することにより、ユーザーインタフェースを構成する情報の入出力を行う機能を搭載する。そして、情報サーバポート26は、管理者端末5と担当者端末6の間で、画面入出力モジュール25から受け取るユーザーインタフェースを構成する情報の送受信を行う。
【0031】
図4は、タスク情報データベース3のテーブル構造を示している。
分類情報管理テーブル31は、複数種類のタスクを分類する分類コードをキーとし、分類コード、分類名称及び補足事項を保持するテーブルである。そして、分類情報管理テーブル31によって定義される分類に基づき、作業が完了したタスクを実績タスクとした実績情報が実績情報管理テーブル32に蓄積される。
【0032】
実績情報管理テーブル32は、実際に作業が完了した実績タスクに関する情報を蓄積するテーブルである。実績情報管理テーブル32は、プロジェクトの規模、工数を保持するほか、実績タスクを一意に識別する実績タスクIDをキーとし、タスクID、分類コード、作業名称を保持する。解析エンジン12は、実績情報管理テーブル32に蓄積した実績タスクに関する情報を解析して工数の予測値を求めており、この解析処理については、後述する図6を参照して説明する。
【0033】
プロジェクト情報テーブル33は、プロジェクトに関するプロジェクト情報を蓄積するテーブルである。プロジェクト情報テーブル33は、プロジェクトを一意に識別するプロジェクトIDをキーとし、プロジェクト名称、開始日、終了日、プロジェクト纏め者、連絡先を保持する。
【0034】
タスク情報テーブル34は、タスク情報を蓄積するテーブルである。タスク情報テーブル34は、タスクを一意に識別するタスクIDをキーとし、タスク名、分類コード、プロジェクトID、規模、工数、開始日、終了日、進度、担当者、先行タスクID、計画開始日、計画終了日、タスク番号、作業人数、予測工数を保持する。
【0035】
図5は、分類情報管理テーブル31の構成例を示している。
タスクは内容に応じて様々に分類される。例えば、分類名称が「データベースのデータの複雑な計算」あるタスクは、分類コード“1−4”、補足事項“KS(キロステップ):プログラムのステップ数”で規定される。
【0036】
図6は、実績情報管理テーブル32の構成例を示している。
実績情報管理テーブル32には、分類コード“1−4”に対する実績タスクIDとタスクIDのレコード毎に、タスクの規模及び工数が示される。
【0037】
図7は、タスク情報テーブル34の構成例を示している。
タスク情報テーブル34に記録されたタスクAについて、分類コード“1−4”とし、規模を60KS(キロステップ)としたときに、解析サーバ1の解析エンジン12は、タスクAの工数を予測した<予測値>を算出する。ここで、分類コード“1−4”に対応する実績情報管理テーブル32には、実績情報が蓄積されている状態とする。このため、解析エンジン12は、タスクAに対して、x:規模、y:工数とし、次式(1)に示すように、工数を予測するための予測関数にx,yを当てはめる。本例の予測関数は、4つのパラメータから構成される3次関数f(x)が用いられる。
【0038】
【数1】
【0039】
そして、解析サーバ1の解析エンジン12は、予測関数を用いた最小2乗法を用いて、Tを最小とするパラメータa,b,c,dを次式(2)より算出し、タスクの工数を予測値として求める。
【0040】
【数2】
【0041】
式(2)より、解析エンジン12は、Tを最小にするa,b,c,dは、それぞれ“0.00012”,“0.001253”,“0.001253”,“9.355879”として求める。このとき、Tの値は、“44.33”となり、予測工数は、44.33(人/月)となる。
【0042】
図8において、実績情報管理テーブル32から読み出されるタスクAの規模及び工数について予測値と実績値の例をグラフに示す。
タスクAの予測値は、タスクの規模が大きくなるにつれて工数が漸増する曲線を示しているが、実績値は予測値の曲線に沿ってプロットされることが示される。このため、タスクAに必要な工数の見積りは概ね正しいことが分かる。
【0043】
図9は、管理者端末5と担当者端末6に表示される工程管理表の表示例を示す。
工程管理システム10は、各タスクの予測値と実績値の工程管理表35をガントチャート形式で管理者端末5と担当者端末6の画面に表示する。プロジェクトリーダーは、管理者端末5に表示された工程管理表35を見ながら、タスクの追加及び削除と、タスク情報の編集を行えるものとする。
【0044】
工程管理表35の最下段に示すように、プロジェクトリーダーがタスクAを新たに追加する場合には、タスクの規模、分類、タスク情報が工程管理システム10に入力され、工程管理表35が管理者端末5又は担当者端末6の画面に表示される。タスク情報テーブル34に含まれる作業人数を用いて、予測工数から日数が算出し、自動入力される。また、タスク2,3と同様に進捗が未完了であるタスクBは、分類コードが一致する別のタスクが完了したため、予測工数が変化する。ここで、予測工数は、タスク情報データベース3に蓄積された同一分類コードの完了タスクの実績値に基づいてリアルタイムに算出される。したがって、未完了であるタスクBの予測工数においても、他の同一分類であるタスクが完了し、実績値がタスク情報データベース3に反映されることで、予測工数が変化することとなる。
【0045】
さらに、タスクAを追加する操作では、プロジェクトリーダーが分類情報管理テーブル31に分類コード、分類名称、補足事項を登録する。この操作が行われると、情報サーバ2のコントロールモジュール24は、タスク情報データベース3にアクセスし、過去に登録されたタスクをタスク情報テーブル34から抽出して、分類情報管理テーブル31からタスクの分類コードを選択する。追加するタスクAに適合する分類が分類情報管理テーブル31に存在しない場合、新たな分類情報を分類情報管理テーブル31に追加する。
【0046】
そして、既に分類コードが設定されているタスクについて、タスクを追加する場合と、タスク情報を編集する場合に、解析エンジン12は、タスクの規模と分類コードから上述した最小2乗法を用いて工数の予測値を算出する。タスクの進捗率(実績値/予測値)が100%となって完了したタスクについて、情報サーバ2は、実績情報管理テーブル32に実績情報を追加する。さらに、コントロールモジュール24は、実績情報を追加したタスクについて、同じ分類コードにおけるタスクの進捗率が100%に満たず、完了していないタスクの予測工数を算出し、工程管理表35に表示する。これにより、タスクの予測値と実績値を容易に把握することができ、予測値の精度を高めることができる。
【0047】
以上説明した第1の実施の形態に係る工程管理システム10によれば、プロジェクトリーダーがタスクを入力する際に、他のプロジェクトで過去に必要であったタスクを管理者端末5に表示する。そして、プロジェクトリーダーがタスクの工数を入力する際には、過去の同じ分類のタスクの実績値から、予測関数に当てはめた予測値を算出して、この予測値を管理者端末5に表示する。さらに、プロジェクトリーダーは、作業が完了したタスクの実績値を、過去の実績値として反映する。このため、プロジェクトの実績値がタスク情報データベース3に蓄積されるにつれて、タスクと工数見積もりの誤りを少なくできる工程管理システム10を提供できる。
【0048】
このため、従来はプロジェクトリーダーの経験に依るところが大きかった曖昧な見積りをモデル化し、数値化して表現することができる。そして、過去に行われたプロジェクトのタスクの実績値に基づいて、統計的にタスクの予測値を求めることにより、ソフトウェア開発における工数の見積り精度を高めることが期待できる。また、従来は、新たな技術を用いるプロジェクトであれば、仕様を策定するために時間を要していた。しかし、このようなプロジェクトであっても、一部には以前に行ったプロジェクトが含まれることが多い。このため、以前に行われたプロジェクトの仕様を組み合わせることにより、新たな技術を用いるプロジェクトの仕様を策定し、工数、費用を見積もることが容易となる。
【0049】
また、規格化されたプロジェクトでは、タスクを把握するためにテンプレートを設けてタスクを管理したり、判明しているタスクに一定の工数を当てはめたりすることで規格化したりする。このようにプロジェクトの工数を見積もるためのタスクが規格化されると、プロジェクト毎に含まれるタスクに過不足がなくなり、必要なタスクを正しく見積もることができるため、プロジェクトの工程管理に有効となる。
【0050】
次に、本発明の第2の実施の形態に係る工程管理装置40について説明する。
上述した実施の形態に係る工程管理システム10は、解析サーバ1,情報サーバ2,タスク情報データベース3を管理者端末5に組み込むことで、管理者端末5をスタンドアロンとした工程管理装置40として用いてもよい。
【0051】
図10は、工程管理装置40の内部構成例を示す。
工程管理装置40は、タスク情報データベース3に接続するデータベース接続モジュール41,タスクの工数を解析する解析部42,タスク情報データベース3に規定されるデータ構造に当てはめたデータをタスク情報データベース3との間で送受信するデータ構造モジュール43、各部の動作を制御する制御部44と、ユーザーインタフェースを作成する画面入出力モジュール45を備える。さらに、工程管理装置40には、ユーザーインタフェースとして工程管理表35等の画面を表示する表示部46と、ユーザーからの操作入力を受け付ける操作部47が接続される。また、操作部47から入力されたログインID、パスワードにより、操作入力するユーザーがプロジェクトリーダー又は担当者のいずれであるかを認証し、データへのアクセスを制限する認証部48を備える。
【0052】
本例のデータベース接続モジュール41,解析部42,データ構造モジュール43、制御部44は、それぞれ上述した第1の実施の形態に係るデータベース接続モジュール13,21、解析エンジン12,データ構造モジュール22、コントロールモジュール24と同様の機能を有する。ただし、データベース接続モジュール41は、解析部42とデータ構造モジュール43の2つの入出力を管理する。
【0053】
また、工程管理装置40は、プロジェクトリーダーと担当者が1台の工程管理装置40を共用する。このため、それぞれ異なるIDとパスワードによってログインや編集権限、参照権限等を管理する認証部29がタスク情報データベース3に接続され、タスク情報データベース3に対するアクセスを管理する。プロジェクトが小規模である場合には、解析サーバ1と情報サーバ2の機能を工程管理装置40に含ませることで、複雑なネットワークを構築することなく、タスク情報データベース3にアクセスし、タスクの工数を見積もることができる。
【0054】
上述した第1及び第2の実施の形態に係る工程管理システム10及び工程管理装置40を使用すると、次の効果がある。
まず、過去に蓄積されたタスク情報、工数情報等を含む工程管理情報から、新たに工数の見積りが行われるプロジェクトに含まれるタスクに同一又は類似である過去に行われたタスクを選択し、過去に行われたタスクの工数を統計処理して得た工数の予測値を解析情報としてユーザーに提供することができる。このため、ソフトウェア開発の工程管理において、タスクの入力と工数の見積りを支援することで、工数見積の誤りを軽減した工程管理が可能となる。
【0055】
なお、管理者端末5、担当者端末6には、デスクトップ型のコンピュータ装置だけでなく、持ち運びが容易なノート型、タブレット型のコンピュータ装置や、スマートフォン等の携帯端末であってもよい。また、表示部46には、液晶表示装置、有機EL(Electro-Luminescence)表示装置等を用いてよく、操作部47には、マウス、キーボード等を用いてもよい。また、表示部46と操作部47は、映像の表示と操作入力を一画面で行うことが可能なタッチパネルディスプレイとして構成してもよく、スタイラスペンを用いて操作入力を可能としてもよい。
【0056】
また、工程管理システム10及び工程管理装置40は、ソフトウェア開発だけでなく、建物等を建設する際における進捗管理に用いてもよい。
【0057】
また、上述した実施の形態例における一連の処理は、ハードウェアにより実行することができるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種の機能を実行するためのプログラムをインストールしたコンピュータにより、実行可能である。例えば汎用のパーソナルコンピュータなどに所望のソフトウェアを構成するプログラムをインストールして実行させればよい。
【0058】
また、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給してもよい。また、そのシステムあるいは装置のコンピュータ(またはCPU等の制御装置)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、機能が実現されることは言うまでもない。
【0059】
この場合のプログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0060】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施の形態の機能が実現される。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部又は全部を行う。その処理によって上述した実施の形態の機能が実現される場合も含まれる。
【0061】
また、本発明は上述した実施の形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
【符号の説明】
【0062】
1…解析サーバ、2…情報サーバ、3…タスク情報データベース、4…ネットワーク、5…管理者端末、6…担当者端末、7…ファイアウォール、10…工程管理システム、11…情報サーバ接続モジュール、12…解析エンジン、13…データベース接続モジュール、21…データベース接続モジュール、22…データ構造モジュール、23…解析サーバ接続モジュール、24…コントロールモジュール、25…画面入出力モジュール、26…情報サーバポート、31…分類情報管理テーブル、32…実績情報管理テーブル、33…プロジェクト情報テーブル、34…タスク情報テーブル
【技術分野】
【0001】
本発明は、例えば、ソフトウェアの開発時に工程を管理するため、作業工数の見積りを支援する工程管理システム、工程管理方法、プログラム及び工程管理装置に関する。
【背景技術】
【0002】
従来、ソフトウェアの開発に際してプロジェクトが立ち上げられると、プロジェクトの全体進捗や人員を管理するプロジェクトリーダーが任命され、プロジェクトリーダーの指示に従って、プログラムのコーディングやテスト等の作業を行う担当者が集められていた。ソフトウェアの開発工程は、大まかに「要求定義」、「外部設計(概要設計)」、「内部設計(詳細設計)」、「開発(プログラミング)」、「テスト」、「運用」に分けられており、工程毎に複数の作業が含まれている。しかし、工程を単位とすると作業の進捗を管理しにくいため、プロジェクトリーダーは、工程毎に「タスク」と呼ばれる単位で作業を細分化し、タスク毎に必要とされる担当者を割り振って進捗を管理していた。ソフトウェアの開発に際して、担当者の作業量は、[作業時間]×[開発人数]で表される工数と呼ばれる単位で見積りが行われる。そして、プロジェクト毎に必要とされる費用[人月]は、担当者のスキルレベルに従って設定される担当者毎の単価を工数に掛け合わせて見積りが行われる。
【0003】
このようにプロジェクトリーダーがプロジェクト全体の工程や工数、費用を十分に見積った後、プロジェクトを開始する。しかし、突発的に発生した異常処理や仕様変更に対応していると、工数や費用が見積りより増えることがある。また、誤って見積もった工数に基づいて進捗を管理すると、プロジェクトが失敗する要因になりかねなかった。工数の見積もりを正確に行うためには、プロジェクトリーダーが作業の全容を把握し、担当者のスキルを正確に捉え、作業遅延等のリスクを考慮することが重要である。そして、プロジェクトリーダーは、プロジェクトを滞りなく進行させ、工程毎の状態から発生しうるリスクを考慮し、適切なタイミングで工程や工数を見直すことが求められている。このため、プロジェクトの工程や、タスクに割り振る担当者の工数や費用の工程管理を円滑に行うことを目的とする工程管理システムが用いられるようになった。
【0004】
プロジェクトリーダーがプロジェクトの工程、タスクの作業量、割り振った担当者の人数等のタスク情報を工程管理システムに入力し、各担当者がタスク毎に作業の進捗を示す進捗情報をシステムに入力する。これにより、プロジェクトリーダーと担当者は、それぞれプロジェクトの進捗情報を共有できる。一般的に使用される工程管理システムは、タスク管理、進捗管理、リソース管理、コスト管理のほか、プロジェクトリーダーがプロジェクトを進行するために必要とする様々な基本機能を備えている。
【0005】
特許文献1には、開発作業中の担当者の作業負荷を的確に把握し、工程再調整を行うための工程進捗管理方法及び工程管理装置が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平11−96222号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、プロジェクトリーダーが工数を見積もる際に、工程やタスク毎に必要とされる作業量と無関係に工数を求めたり、プロジェクトリーダーの個人的な経験に基づいて見積ったりすることがあった。例えば、開発が行われるソフトウェアの機能を実現するためには、様々な種類のプログラム言語が用いられ、担当者毎にソフトウェアのソースコードを自由に記述する場合があり、開発の自由度が高かった。また、プログラムのデバッグやテスト等には様々な手法が存在しており、同じ工程であっても採用される手法によって工数が変わる場合があった。このため、プロジェクトリーダーの経験によって工程を見積もった工数の予測値が実績値と大きく乖離する場合があった。
【0008】
また、過去に行われたプロジェクトと同じ内容のプロジェクトを立ち上げても、過去に任命されたプロジェクトリーダーとは異なるプロジェクトリーダーが見積りを行う場合がある。このとき、現在のプロジェクトリーダーが一部のタスクを考慮せずにしなかったことにより、現在の工数の見積り値と、過去のプロジェクトの工数の実績値とが異なる場合があった。このことは、特許文献1に開示された技術を用いても解決されなかった。上述したように、プロジェクトの工数の見積りが正確に行われなければ、プロジェクトの工程が遅延したり、見積もった工数よりも実績工数が増えたりする。このため、プロジェクトリーダーの資質によらず工数を正確に見積もることが求められていた。
【0009】
また、従来の工程管理システムには、ルーチン化された作業を繰り返す工場等の大量生産ラインをモデルとして、プロジェクトの工程を管理し、タスクの工数を見積もるものがあった。この大量生産ラインのモデルでは、同一又は類似のプロジェクトが繰り返し立ち上げられるため、工程毎に必要とされるタスクは過去のプロジェクトにおけるタスクと同様であり、ある程度規格化されていることが多かった。ここで「プロジェクトが類似」であるか否かは、システムの構成、機能等を考慮した上で判断される。そして、工場等で受け継がれている規格化された工程を利用したり、工程の管理状況を把握することを目的として開かれる工程会議を頻繁に行ったりすることによって、プロジェクトリーダーが必要な工数を見積っていた。しかし、工数の見積りは人手を介するため、不正確な見積りとなる場合があった。
【0010】
本発明はこのような状況に鑑みて成されたものであり、開発に必要とされるプロジェクトの工程を管理する場合に、工数の見積精度を高めることを目的とする。
【課題を解決するための手段】
【0011】
本発明は、プロジェクトの作業を細分化したタスクに関するタスク情報及びタスクの工数に関する工数情報を、プロジェクトの工程を管理するための工程管理情報として、タスクの種類を分類する分類情報に従ってタスク情報データベースに蓄積する。
次に、過去に行われたタスクが含まれる工程管理情報をタスク情報データベースから読み出して解析することにより、新たに工数の見積りが行われるプロジェクトに含まれるタスクに必要となる工数を予測した予測値を求める。
そして、ネットワークを介して接続される通信端末によって選択され、新たに工数の見積りが行われるプロジェクトに含まれるタスクについて、解析サーバが解析した工数の予測値を解析情報として通信端末に表示させるものである。
【発明の効果】
【0012】
本発明によれば、タスク分類に従ってタスク情報データベースより検索した過去のタスクの実績に基づいて、新たなタスクの工程を予測し、プロジェクトの工程を管理する。そして、工数の予測値を解析情報として通信端末に表示することによって、プロジェクトリーダーは、精度の高い工数を見積った工程管理を容易に行うことができる。
【図面の簡単な説明】
【0013】
【図1】本発明の第1の実施の形態における工程管理システムのシステム構成例を示すブロック図である。
【図2】本発明の第1の実施の形態における解析サーバの内部構成例を示すブロック図である。
【図3】本発明の第1の実施の形態における情報サーバの内部構成例を示すブロック図である。
【図4】本発明の第1の実施の形態におけるタスク情報データベースの内部構成例を示す説明図である。
【図5】本発明の第1の実施の形態における分類情報管理テーブルの構成例を示す説明図である。
【図6】本発明の第1の実施の形態における実績情報管理テーブルの構成例を示す説明図である。
【図7】本発明の第1の実施の形態におけるタスク情報管理テーブルの構成例を示す説明図である。
【図8】本発明の第1の実施の形態における実績情報管理テーブルから読み出されるタスクの規模及び工数について予測値と実績値の例を示す説明図である。
【図9】本発明の第1の実施の形態における工程管理表の表示例を示す説明図である。
【図10】本発明の第2の実施の形態における工程管理装置の内部構成例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、本発明の第1の実施の形態(以下、「本例」という。)について、添付図面を参照して説明する。本実施の形態では、プロジェクトリーダーがプロジェクトの工程と工数等を管理し、プロジェクトリーダー及び担当者が進捗情報を共有する工程管理システム10に適用した例について説明する。この工程管理システム10は、コンピュータ装置を含み、プログラムを実行することにより、内部ブロックが連携して行う工程管理方法を実現することができる。
【0015】
図1は、工程管理システム10の内部構成例を示す。
工程管理システム10は、過去のプロジェクトで必要とされたタスクの工数等の実績値をタスクに関するタスク情報として蓄積するタスク情報データベース3から実績値を読み出し、解析サーバ1が実績値を解析し、新しいプロジェクトで必要となるタスクの工数等を見積もるものである。
【0016】
工程管理システム10は、用いるタスク情報と工数情報を含み、プロジェクトの工程を管理するために用いる工程管理情報を解析する解析サーバ1と、工程管理情報を入出力する情報サーバ2と、タスク情報データベース3と、LAN等からなるネットワーク4と、ネットワーク4を介して各サーバ及びタスク情報データベース3に行われる不正な接続を遮断するファイアウォール7を備える。
【0017】
また、工程管理システム10は、ネットワークを介して接続される通信端末として、管理者端末5と担当者端末6を備える。管理者端末5と担当者端末6は、操作情報を入力する操作部(不図示)と、情報サーバ2から受け取る解析情報を表示部に表示する表示部(不図示)を有する。管理者端末5は、管理者権限を持つプロジェクトリーダーによって操作され、担当者端末6は、プロジェクトの担当者によって操作される。
【0018】
管理者端末5と担当者端末6は、ユーザー毎に割り当てられるID、パスワードが入力されると、ネットワーク4及びファイアウォール7を介して各サーバにアクセス可能となる。管理者端末5は、操作部によりタスクの分類情報を登録する機能を有する。管理者端末5と担当者端末6は、情報サーバ2が解析サーバ1によって工数の見積りが行われた予測値を解析情報として画面に表示する。
【0019】
解析サーバ1は、タスク情報データベース3から読み出した工程管理情報を解析する解析処理を行う機能を備えている。そして、解析サーバ1は、過去に行われたタスクが含まれる工程管理情報をタスク情報データベース3から読み出してタスクの工数を算出し、工程管理情報を解析することにより、新たに工数の見積りが行われるプロジェクトに含まれるタスクに必要となる工数を予測した予測値を求める。
【0020】
情報サーバ2は、解析サーバ1及びタスク情報データベース3と通信する機能を備えている。また、情報サーバ2は、プロジェクトに要する工程を示す工程情報と工程毎の工数を入出力するインターフェース(後述する情報サーバポート26)を備えており、ネットワーク4を介してインターフェースに管理者端末5と担当者端末6が接続される。そして、情報サーバ2は、解析サーバ1及びタスク情報データベース3の間で連携して解析情報及び工程管理情報を入出力し、管理者端末5と担当者端末6に工程情報、解析情報を提供する。
【0021】
このとき、情報サーバ2は、ネットワークを介して接続される管理者端末5と担当者端末6によって選択され、新たに工数の見積りが行われるプロジェクトに含まれるタスクについて、解析サーバ1が解析した工数の予測値を解析情報として管理者端末5と担当者端末6に表示させる。また、情報サーバ2は、管理者端末5から受け取ったタスクの分類情報をタスク情報データベース3に登録し、管理者端末5と担当者端末6に対し、解析サーバ1によって工数の見積りが行われた予測値を、タスク毎に予測値及び実績値が一覧表示される工程管理表35(後述する図9参照)として通信端末の表示部に表示させる。
【0022】
タスク情報データベース3は、上述したようにプロジェクトの作業を細分化したタスクに関するタスク情報及びタスクの工数に関する工数情報を、プロジェクトの工程を管理するための工程管理情報として、タスクの種類を分類する分類情報に従って蓄積する。これらの情報は、タスクを管理するために必要となる各種のテーブル(後述する図4参照)によって管理している。
【0023】
管理者端末5は、タスク情報の入力を受け付ける機能と、このタスク情報を不図示の表示部に表示する機能と、情報サーバ2から受け取ったタスクの予測値を工程管理表(後述する図9参照)として表示する機能を備える。担当者端末6は、タスク情報を表示部に表示し、進捗情報の入力を行う機能を備えている。これらの機能は、管理者端末5を操作するプロジェクトリーダーと、担当者端末6を操作する担当者の操作入力によって実行される。プロジェクトリーダー又は担当者が行った操作入力は、情報サーバ2を介して、解析サーバ1及びタスク情報データベース3に送られるため、管理者端末5と担当者端末6は、タスク情報データベース3にアクセスすることができる。
【0024】
図2は、解析サーバ1の構成を示している。
解析サーバ1は、タスク情報データベース3から読み出したタスクの工数の実績値を、タスクの予測値を算出する予測関数を用いた最小2乗法により、タスクの予測値を求めるものである。解析サーバ1は、情報サーバ2に接続して解析情報を入出力する情報サーバ接続モジュール11と、工程管理情報を解析してタスクの予測値を解析情報として算出する解析エンジン12と、タスク情報データベース3に接続して工程管理情報を入出力するデータベース接続モジュール13を備える。
【0025】
解析サーバ1は、次の機能を搭載する。
情報サーバ接続モジュール11は、情報サーバ2が行う解析情報の取得命令を受けると、解析エンジン12が解析した解析情報を情報サーバ2に送信する機能を搭載する。また、データベース接続モジュール13は、解析エンジン12が行う工程管理情報の取得命令に応じて、タスク情報データベース3から工程管理情報を取得する機能と、タスク情報データベース3へ工程管理情報を反映する命令を送信する機能を搭載する。
【0026】
図3は、情報サーバ2の構成を示している。
情報サーバ2は、タスク情報データベース3及び解析サーバ1の間で工程管理情報及び解析情報を連携し、タスクの実績値をタスク情報データベース3に反映する。これにより、解析サーバ1が求める予測値を実績値に近づけるように予測関数に当てはめて求められた予測値の精度を高めるものである。
【0027】
情報サーバ2は、タスク情報データベース3に接続して工程管理情報を入出力するデータベース接続モジュール21と、タスク情報データベース3から読み出した工程管理情報のうち、タスク情報を記憶するデータ構造モジュール22を備える。また、情報サーバ2は、解析サーバ1に接続して解析情報を入出力する解析サーバ接続モジュール23と、各部の制御を行うコントロールモジュール24を備える。また、情報サーバ2は、管理者端末5、担当者端末6が備える不図示の表示部に表示される画面(以下、「ユーザーインタフェース」と呼ぶ。)を出力する画面入出力モジュール25と、管理者端末5、担当者端末6から入力された操作情報を含むデータを受けとり、各端末に表示させるユーザーインタフェースを出力する情報サーバポート26を備える。
【0028】
情報サーバ2は、次の機能を搭載する。
データベース接続モジュール21は、タスク情報データベース3により規定されるテーブル間のデータ構造をデータ構造情報として構築するために、タスク情報データベース3から工程管理情報を取得する機能と、タスク情報データベース3へ工程管理情報を反映する命令を送信する機能を搭載する。データ構造モジュール22は、データベース接続モジュール21を介して、コントロールモジュール24にタスク情報を提供する機能と、タスク情報を一時記憶する機能を搭載する。解析サーバ接続モジュール23は、解析サーバ1とコントロールモジュール24との間に配置され、コントロールモジュール24から受け取った解析サーバ1へ解析を実行する命令を送信する機能と、解析サーバ1がタスクの規模から解析した予測値を解析情報として取得する機能を搭載する。
【0029】
コントロールモジュール24は、ユーザーインタフェースとなるタスク情報入力画面(不図示)や工程管理表(後述する図9参照)を提供するために必要なタスク情報、予測値、工数情報等を加工し、画面入出力モジュール25へ提供する機能を搭載する。また、データ構造モジュール22からデータ構造情報を取得し、解析サーバ接続モジュール23を介して、解析サーバ1から解析情報を取得する機能を搭載する。
【0030】
画面入出力モジュール25は、管理者端末5及び担当者端末6が接続される情報サーバポート26とコントロールモジュール24との間に配置される。そして、管理者端末5及び担当者端末6にユーザーインタフェースを提供し、各種の画面を表示出力したり、各端末から操作部により入力される操作情報を受け付けたりする機能を搭載する。また、コントロールモジュール24を介して、解析サーバ1及びタスク情報データベース3に操作情報を出力することにより、ユーザーインタフェースを構成する情報の入出力を行う機能を搭載する。そして、情報サーバポート26は、管理者端末5と担当者端末6の間で、画面入出力モジュール25から受け取るユーザーインタフェースを構成する情報の送受信を行う。
【0031】
図4は、タスク情報データベース3のテーブル構造を示している。
分類情報管理テーブル31は、複数種類のタスクを分類する分類コードをキーとし、分類コード、分類名称及び補足事項を保持するテーブルである。そして、分類情報管理テーブル31によって定義される分類に基づき、作業が完了したタスクを実績タスクとした実績情報が実績情報管理テーブル32に蓄積される。
【0032】
実績情報管理テーブル32は、実際に作業が完了した実績タスクに関する情報を蓄積するテーブルである。実績情報管理テーブル32は、プロジェクトの規模、工数を保持するほか、実績タスクを一意に識別する実績タスクIDをキーとし、タスクID、分類コード、作業名称を保持する。解析エンジン12は、実績情報管理テーブル32に蓄積した実績タスクに関する情報を解析して工数の予測値を求めており、この解析処理については、後述する図6を参照して説明する。
【0033】
プロジェクト情報テーブル33は、プロジェクトに関するプロジェクト情報を蓄積するテーブルである。プロジェクト情報テーブル33は、プロジェクトを一意に識別するプロジェクトIDをキーとし、プロジェクト名称、開始日、終了日、プロジェクト纏め者、連絡先を保持する。
【0034】
タスク情報テーブル34は、タスク情報を蓄積するテーブルである。タスク情報テーブル34は、タスクを一意に識別するタスクIDをキーとし、タスク名、分類コード、プロジェクトID、規模、工数、開始日、終了日、進度、担当者、先行タスクID、計画開始日、計画終了日、タスク番号、作業人数、予測工数を保持する。
【0035】
図5は、分類情報管理テーブル31の構成例を示している。
タスクは内容に応じて様々に分類される。例えば、分類名称が「データベースのデータの複雑な計算」あるタスクは、分類コード“1−4”、補足事項“KS(キロステップ):プログラムのステップ数”で規定される。
【0036】
図6は、実績情報管理テーブル32の構成例を示している。
実績情報管理テーブル32には、分類コード“1−4”に対する実績タスクIDとタスクIDのレコード毎に、タスクの規模及び工数が示される。
【0037】
図7は、タスク情報テーブル34の構成例を示している。
タスク情報テーブル34に記録されたタスクAについて、分類コード“1−4”とし、規模を60KS(キロステップ)としたときに、解析サーバ1の解析エンジン12は、タスクAの工数を予測した<予測値>を算出する。ここで、分類コード“1−4”に対応する実績情報管理テーブル32には、実績情報が蓄積されている状態とする。このため、解析エンジン12は、タスクAに対して、x:規模、y:工数とし、次式(1)に示すように、工数を予測するための予測関数にx,yを当てはめる。本例の予測関数は、4つのパラメータから構成される3次関数f(x)が用いられる。
【0038】
【数1】
【0039】
そして、解析サーバ1の解析エンジン12は、予測関数を用いた最小2乗法を用いて、Tを最小とするパラメータa,b,c,dを次式(2)より算出し、タスクの工数を予測値として求める。
【0040】
【数2】
【0041】
式(2)より、解析エンジン12は、Tを最小にするa,b,c,dは、それぞれ“0.00012”,“0.001253”,“0.001253”,“9.355879”として求める。このとき、Tの値は、“44.33”となり、予測工数は、44.33(人/月)となる。
【0042】
図8において、実績情報管理テーブル32から読み出されるタスクAの規模及び工数について予測値と実績値の例をグラフに示す。
タスクAの予測値は、タスクの規模が大きくなるにつれて工数が漸増する曲線を示しているが、実績値は予測値の曲線に沿ってプロットされることが示される。このため、タスクAに必要な工数の見積りは概ね正しいことが分かる。
【0043】
図9は、管理者端末5と担当者端末6に表示される工程管理表の表示例を示す。
工程管理システム10は、各タスクの予測値と実績値の工程管理表35をガントチャート形式で管理者端末5と担当者端末6の画面に表示する。プロジェクトリーダーは、管理者端末5に表示された工程管理表35を見ながら、タスクの追加及び削除と、タスク情報の編集を行えるものとする。
【0044】
工程管理表35の最下段に示すように、プロジェクトリーダーがタスクAを新たに追加する場合には、タスクの規模、分類、タスク情報が工程管理システム10に入力され、工程管理表35が管理者端末5又は担当者端末6の画面に表示される。タスク情報テーブル34に含まれる作業人数を用いて、予測工数から日数が算出し、自動入力される。また、タスク2,3と同様に進捗が未完了であるタスクBは、分類コードが一致する別のタスクが完了したため、予測工数が変化する。ここで、予測工数は、タスク情報データベース3に蓄積された同一分類コードの完了タスクの実績値に基づいてリアルタイムに算出される。したがって、未完了であるタスクBの予測工数においても、他の同一分類であるタスクが完了し、実績値がタスク情報データベース3に反映されることで、予測工数が変化することとなる。
【0045】
さらに、タスクAを追加する操作では、プロジェクトリーダーが分類情報管理テーブル31に分類コード、分類名称、補足事項を登録する。この操作が行われると、情報サーバ2のコントロールモジュール24は、タスク情報データベース3にアクセスし、過去に登録されたタスクをタスク情報テーブル34から抽出して、分類情報管理テーブル31からタスクの分類コードを選択する。追加するタスクAに適合する分類が分類情報管理テーブル31に存在しない場合、新たな分類情報を分類情報管理テーブル31に追加する。
【0046】
そして、既に分類コードが設定されているタスクについて、タスクを追加する場合と、タスク情報を編集する場合に、解析エンジン12は、タスクの規模と分類コードから上述した最小2乗法を用いて工数の予測値を算出する。タスクの進捗率(実績値/予測値)が100%となって完了したタスクについて、情報サーバ2は、実績情報管理テーブル32に実績情報を追加する。さらに、コントロールモジュール24は、実績情報を追加したタスクについて、同じ分類コードにおけるタスクの進捗率が100%に満たず、完了していないタスクの予測工数を算出し、工程管理表35に表示する。これにより、タスクの予測値と実績値を容易に把握することができ、予測値の精度を高めることができる。
【0047】
以上説明した第1の実施の形態に係る工程管理システム10によれば、プロジェクトリーダーがタスクを入力する際に、他のプロジェクトで過去に必要であったタスクを管理者端末5に表示する。そして、プロジェクトリーダーがタスクの工数を入力する際には、過去の同じ分類のタスクの実績値から、予測関数に当てはめた予測値を算出して、この予測値を管理者端末5に表示する。さらに、プロジェクトリーダーは、作業が完了したタスクの実績値を、過去の実績値として反映する。このため、プロジェクトの実績値がタスク情報データベース3に蓄積されるにつれて、タスクと工数見積もりの誤りを少なくできる工程管理システム10を提供できる。
【0048】
このため、従来はプロジェクトリーダーの経験に依るところが大きかった曖昧な見積りをモデル化し、数値化して表現することができる。そして、過去に行われたプロジェクトのタスクの実績値に基づいて、統計的にタスクの予測値を求めることにより、ソフトウェア開発における工数の見積り精度を高めることが期待できる。また、従来は、新たな技術を用いるプロジェクトであれば、仕様を策定するために時間を要していた。しかし、このようなプロジェクトであっても、一部には以前に行ったプロジェクトが含まれることが多い。このため、以前に行われたプロジェクトの仕様を組み合わせることにより、新たな技術を用いるプロジェクトの仕様を策定し、工数、費用を見積もることが容易となる。
【0049】
また、規格化されたプロジェクトでは、タスクを把握するためにテンプレートを設けてタスクを管理したり、判明しているタスクに一定の工数を当てはめたりすることで規格化したりする。このようにプロジェクトの工数を見積もるためのタスクが規格化されると、プロジェクト毎に含まれるタスクに過不足がなくなり、必要なタスクを正しく見積もることができるため、プロジェクトの工程管理に有効となる。
【0050】
次に、本発明の第2の実施の形態に係る工程管理装置40について説明する。
上述した実施の形態に係る工程管理システム10は、解析サーバ1,情報サーバ2,タスク情報データベース3を管理者端末5に組み込むことで、管理者端末5をスタンドアロンとした工程管理装置40として用いてもよい。
【0051】
図10は、工程管理装置40の内部構成例を示す。
工程管理装置40は、タスク情報データベース3に接続するデータベース接続モジュール41,タスクの工数を解析する解析部42,タスク情報データベース3に規定されるデータ構造に当てはめたデータをタスク情報データベース3との間で送受信するデータ構造モジュール43、各部の動作を制御する制御部44と、ユーザーインタフェースを作成する画面入出力モジュール45を備える。さらに、工程管理装置40には、ユーザーインタフェースとして工程管理表35等の画面を表示する表示部46と、ユーザーからの操作入力を受け付ける操作部47が接続される。また、操作部47から入力されたログインID、パスワードにより、操作入力するユーザーがプロジェクトリーダー又は担当者のいずれであるかを認証し、データへのアクセスを制限する認証部48を備える。
【0052】
本例のデータベース接続モジュール41,解析部42,データ構造モジュール43、制御部44は、それぞれ上述した第1の実施の形態に係るデータベース接続モジュール13,21、解析エンジン12,データ構造モジュール22、コントロールモジュール24と同様の機能を有する。ただし、データベース接続モジュール41は、解析部42とデータ構造モジュール43の2つの入出力を管理する。
【0053】
また、工程管理装置40は、プロジェクトリーダーと担当者が1台の工程管理装置40を共用する。このため、それぞれ異なるIDとパスワードによってログインや編集権限、参照権限等を管理する認証部29がタスク情報データベース3に接続され、タスク情報データベース3に対するアクセスを管理する。プロジェクトが小規模である場合には、解析サーバ1と情報サーバ2の機能を工程管理装置40に含ませることで、複雑なネットワークを構築することなく、タスク情報データベース3にアクセスし、タスクの工数を見積もることができる。
【0054】
上述した第1及び第2の実施の形態に係る工程管理システム10及び工程管理装置40を使用すると、次の効果がある。
まず、過去に蓄積されたタスク情報、工数情報等を含む工程管理情報から、新たに工数の見積りが行われるプロジェクトに含まれるタスクに同一又は類似である過去に行われたタスクを選択し、過去に行われたタスクの工数を統計処理して得た工数の予測値を解析情報としてユーザーに提供することができる。このため、ソフトウェア開発の工程管理において、タスクの入力と工数の見積りを支援することで、工数見積の誤りを軽減した工程管理が可能となる。
【0055】
なお、管理者端末5、担当者端末6には、デスクトップ型のコンピュータ装置だけでなく、持ち運びが容易なノート型、タブレット型のコンピュータ装置や、スマートフォン等の携帯端末であってもよい。また、表示部46には、液晶表示装置、有機EL(Electro-Luminescence)表示装置等を用いてよく、操作部47には、マウス、キーボード等を用いてもよい。また、表示部46と操作部47は、映像の表示と操作入力を一画面で行うことが可能なタッチパネルディスプレイとして構成してもよく、スタイラスペンを用いて操作入力を可能としてもよい。
【0056】
また、工程管理システム10及び工程管理装置40は、ソフトウェア開発だけでなく、建物等を建設する際における進捗管理に用いてもよい。
【0057】
また、上述した実施の形態例における一連の処理は、ハードウェアにより実行することができるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種の機能を実行するためのプログラムをインストールしたコンピュータにより、実行可能である。例えば汎用のパーソナルコンピュータなどに所望のソフトウェアを構成するプログラムをインストールして実行させればよい。
【0058】
また、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給してもよい。また、そのシステムあるいは装置のコンピュータ(またはCPU等の制御装置)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、機能が実現されることは言うまでもない。
【0059】
この場合のプログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0060】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施の形態の機能が実現される。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部又は全部を行う。その処理によって上述した実施の形態の機能が実現される場合も含まれる。
【0061】
また、本発明は上述した実施の形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
【符号の説明】
【0062】
1…解析サーバ、2…情報サーバ、3…タスク情報データベース、4…ネットワーク、5…管理者端末、6…担当者端末、7…ファイアウォール、10…工程管理システム、11…情報サーバ接続モジュール、12…解析エンジン、13…データベース接続モジュール、21…データベース接続モジュール、22…データ構造モジュール、23…解析サーバ接続モジュール、24…コントロールモジュール、25…画面入出力モジュール、26…情報サーバポート、31…分類情報管理テーブル、32…実績情報管理テーブル、33…プロジェクト情報テーブル、34…タスク情報テーブル
【特許請求の範囲】
【請求項1】
プロジェクトの作業を細分化したタスクに関するタスク情報及び前記タスクの工数に関する工数情報を、前記プロジェクトの工程を管理するための工程管理情報として、前記タスクの種類を分類する分類情報に従って蓄積するタスク情報データベースと、
過去に行われたタスクが含まれる前記工程管理情報を前記タスク情報データベースから読み出して解析することにより、新たに工数の見積りが行われるプロジェクトに含まれるタスクに必要となる工数を予測した予測値を求める解析サーバと、
ネットワークを介して接続される通信端末によって選択され、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクについて、前記解析サーバが解析した前記工数の予測値を解析情報として前記通信端末に表示させる情報サーバと、を備える
工程管理システム。
【請求項2】
前記情報サーバは、前記タスク情報データベース及び前記解析サーバの間で前記工程管理情報及び解析情報を連携し、前記タスクの実績値を前記タスク情報データベースに反映することによって、前記解析サーバが求める前記予測値を前記実績値に近づける
請求項1記載の工程管理システム。
【請求項3】
前記通信端末は、前記タスクの分類情報を登録する操作部と、前記情報サーバから受け取る前記解析情報を表示部に表示する表示部を有し、
前記情報サーバは、前記通信端末から受け取った前記タスクの分類情報を前記タスク情報データベースに登録し、前記通信端末に対し、前記解析サーバによって工数の見積りが行われた予測値を、前記解析情報として表示させる
請求項2記載の工程管理システム。
【請求項4】
前記解析サーバは、前記タスク情報データベースから読み出した前記タスクの工数の実績値を、前記タスクの予測値を算出する予測関数を用いた最小2乗法により、前記タスクの予測値を求める
請求項3記載の工程管理システム。
【請求項5】
前記解析情報は、前記タスク毎に予測値及び実績値が一覧表示される工程管理表として前記通信端末の前記表示部に表示される
請求項4記載の工程管理システム。
【請求項6】
プロジェクトの作業を細分化したタスクに関するタスク情報及び前記タスクの工数に関する工数情報を、前記プロジェクトの工程を管理するための工程管理情報として、前記タスクの種類を分類する分類情報に従ってタスク情報データベースに蓄積するステップと、
過去に行われたタスクが含まれる前記工程管理情報を前記タスク情報データベースから読み出して解析することにより、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクに必要となる工数を予測した予測値を求めるステップと、
ネットワークを介して接続される通信端末によって選択され、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクについて、前記工数の予測値を解析情報として前記通信端末に表示させるステップと、を含む
工程管理方法。
【請求項7】
プロジェクトの作業を細分化したタスクに関するタスク情報及び前記タスクの工数に関する工数情報を、前記プロジェクトの工程を管理するための工程管理情報として、前記タスクの種類を分類する分類情報に従ってタスク情報データベースに蓄積する手順、
過去に行われたタスクが含まれる前記工程管理情報を前記タスク情報データベースから読み出して解析することにより、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクに必要となる工数を予測した予測値を求める手順、
ネットワークを介して接続される通信端末によって選択され、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクについて、前記工数の予測値を解析情報として前記通信端末に表示させる手順と、を
コンピュータに実行させるプログラム。
【請求項8】
プロジェクトの作業を細分化したタスクに関するタスク情報及び前記タスクの工数に関する工数情報を、前記プロジェクトの工程を管理するための工程管理情報として、前記タスクの種類を分類する分類情報に従って蓄積するタスク情報データベースより、過去に行われたタスクが含まれる前記工程管理情報を前記タスク情報データベースから読み出して解析することによって、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクに必要となる工数を予測した予測値を求める解析部と、
操作部を介して選択され、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクについて、前記解析部が解析した前記工数の予測値を解析情報として表示部に表示させる制御部と、を備える
工程管理装置。
【請求項1】
プロジェクトの作業を細分化したタスクに関するタスク情報及び前記タスクの工数に関する工数情報を、前記プロジェクトの工程を管理するための工程管理情報として、前記タスクの種類を分類する分類情報に従って蓄積するタスク情報データベースと、
過去に行われたタスクが含まれる前記工程管理情報を前記タスク情報データベースから読み出して解析することにより、新たに工数の見積りが行われるプロジェクトに含まれるタスクに必要となる工数を予測した予測値を求める解析サーバと、
ネットワークを介して接続される通信端末によって選択され、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクについて、前記解析サーバが解析した前記工数の予測値を解析情報として前記通信端末に表示させる情報サーバと、を備える
工程管理システム。
【請求項2】
前記情報サーバは、前記タスク情報データベース及び前記解析サーバの間で前記工程管理情報及び解析情報を連携し、前記タスクの実績値を前記タスク情報データベースに反映することによって、前記解析サーバが求める前記予測値を前記実績値に近づける
請求項1記載の工程管理システム。
【請求項3】
前記通信端末は、前記タスクの分類情報を登録する操作部と、前記情報サーバから受け取る前記解析情報を表示部に表示する表示部を有し、
前記情報サーバは、前記通信端末から受け取った前記タスクの分類情報を前記タスク情報データベースに登録し、前記通信端末に対し、前記解析サーバによって工数の見積りが行われた予測値を、前記解析情報として表示させる
請求項2記載の工程管理システム。
【請求項4】
前記解析サーバは、前記タスク情報データベースから読み出した前記タスクの工数の実績値を、前記タスクの予測値を算出する予測関数を用いた最小2乗法により、前記タスクの予測値を求める
請求項3記載の工程管理システム。
【請求項5】
前記解析情報は、前記タスク毎に予測値及び実績値が一覧表示される工程管理表として前記通信端末の前記表示部に表示される
請求項4記載の工程管理システム。
【請求項6】
プロジェクトの作業を細分化したタスクに関するタスク情報及び前記タスクの工数に関する工数情報を、前記プロジェクトの工程を管理するための工程管理情報として、前記タスクの種類を分類する分類情報に従ってタスク情報データベースに蓄積するステップと、
過去に行われたタスクが含まれる前記工程管理情報を前記タスク情報データベースから読み出して解析することにより、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクに必要となる工数を予測した予測値を求めるステップと、
ネットワークを介して接続される通信端末によって選択され、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクについて、前記工数の予測値を解析情報として前記通信端末に表示させるステップと、を含む
工程管理方法。
【請求項7】
プロジェクトの作業を細分化したタスクに関するタスク情報及び前記タスクの工数に関する工数情報を、前記プロジェクトの工程を管理するための工程管理情報として、前記タスクの種類を分類する分類情報に従ってタスク情報データベースに蓄積する手順、
過去に行われたタスクが含まれる前記工程管理情報を前記タスク情報データベースから読み出して解析することにより、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクに必要となる工数を予測した予測値を求める手順、
ネットワークを介して接続される通信端末によって選択され、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクについて、前記工数の予測値を解析情報として前記通信端末に表示させる手順と、を
コンピュータに実行させるプログラム。
【請求項8】
プロジェクトの作業を細分化したタスクに関するタスク情報及び前記タスクの工数に関する工数情報を、前記プロジェクトの工程を管理するための工程管理情報として、前記タスクの種類を分類する分類情報に従って蓄積するタスク情報データベースより、過去に行われたタスクが含まれる前記工程管理情報を前記タスク情報データベースから読み出して解析することによって、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクに必要となる工数を予測した予測値を求める解析部と、
操作部を介して選択され、新たに工数の見積りが行われる前記プロジェクトに含まれるタスクについて、前記解析部が解析した前記工数の予測値を解析情報として表示部に表示させる制御部と、を備える
工程管理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2013−30036(P2013−30036A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2011−166253(P2011−166253)
【出願日】平成23年7月29日(2011.7.29)
【出願人】(000005108)株式会社日立製作所 (27,607)
【出願人】(000153443)株式会社日立情報制御ソリューションズ (359)
【Fターム(参考)】
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願日】平成23年7月29日(2011.7.29)
【出願人】(000005108)株式会社日立製作所 (27,607)
【出願人】(000153443)株式会社日立情報制御ソリューションズ (359)
【Fターム(参考)】
[ Back to top ]