生産性評価装置、生産性評価方法およびプログラム
【課題】生産性評価装置が、複数のインプットあるいは複数のアウトプットに基づいて各プロジェクトの生産性を統一的に評価する。
【解決手段】生産性評価装置1のプロジェクト情報記憶部121が、プロジェクトのデータを記憶し、効率値テーブル生成部13が、プロジェクト情報記憶部121が記憶する複数のインプットあるいは複数のアウトプットを含むデータに基づいて、データ包絡分析法を用いて、各プロジェクトの効率値を算出する。これにより、各プロジェクトについて、プロジェクトの生産効率を示す統一的な指標である効率値を示すことができる。
【解決手段】生産性評価装置1のプロジェクト情報記憶部121が、プロジェクトのデータを記憶し、効率値テーブル生成部13が、プロジェクト情報記憶部121が記憶する複数のインプットあるいは複数のアウトプットを含むデータに基づいて、データ包絡分析法を用いて、各プロジェクトの効率値を算出する。これにより、各プロジェクトについて、プロジェクトの生産効率を示す統一的な指標である効率値を示すことができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生産性評価装置、生産性評価方法およびプログラムに関する。
【背景技術】
【0002】
プロジェクトの工数の見積りは、プロジェクトの損益に直結する重要な作業である。この、プロジェクトの工数の見積りは、熟練者の経験やノウハウに基づいて行われることが一般的である。そのため、見積り者によって見積り結果にばらつきが生じやすく、また、一般に、見積り結果が適切か否かを評価し修正することも容易ではない。
そこで、プロジェクトの工数の見積り精度を高めるために、幾つかの技術が提案されている。例えば、特許文献1に記載の技術では、新規プロジェクトを開発完了済みのプロジェクトと比較して、開発完了済みのプロジェクトよりも劣っている項目を指摘する技術が示されている。具体的には、開発完了済みのプロジェクトを、プロジェクト種別等のグループ判別基準に基づいて予め分類しておき、まず、新規プロジェクトのプロジェクト種別等に基づいて、比較対象のプロジェクトのグループを選択する。次に、資産流用の有無等のグループ内評価基準に基づいて、新規プロジェクトの特性と選択されたグループの特性とが合致するか否かを判定し、合致しない場合は見積り作成見直しのポイントを指摘する。さらに、顧客参画率等の生産性特性項目に基づいて、グループの中から新規プロジェクトに類似するプロジェクトを選択し、選択したプロジェクトが新規プロジェクトよりも劣っている項目を指摘する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−280901号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の技術では、新規プロジェクトの工数見積りの個々の項目に対する評価を行うことはできるものの、プロジェクト全体の工数見積りに対する客観的な評価は充分に示されない。
また、実際のプロジェクトにおいては、対象とするシステムの分野や、顧客の特性、および使用している開発環境に応じて、投入した工数によって得られる成果であるところの生産性は大きく異なる。この生産性を考慮せずに、例えばプログラムステップ数などプロジェクトの規模感を示す指標のみを用いて工数見積りに対する評価を行うと、工数の実績と見積りとの間にぶれが発生する可能性がある。コストダウンの要請から、できる限り生産性の高い環境をそろえ、工数の少ない効率的なプロジェクトを計画するニーズがあり、工数見積りの精度は非常に重要である。
【0005】
生産性評価は、一般的にはインプットとアウトプットとの兼ね合いとなり、プロジェクト個々の状況により、様々なインプットとアウトプットの組み合わせが考えられる。例えば、単純な工数に対するアウトプットとして、プロジェクトで生成するシステムの機能数や表示画面数など、様々な成果物の組み合わせが考えられる。複数のインプットあるいは複数のアウトプットに基づいて生産性を評価することにより評価精度が高まると期待できるが、特許文献1をはじめとする従来技術では、複数のインプットあるいは複数のアウトプットに基づいて各プロジェクトの生産性を統一的に評価する技術は示されていない。
また、プロジェクトの生産性は使用する開発ツールなどの特性によっても大いに変わってくる。新規プロジェクトにおいて、既存のプロジェクトと同じ開発ツール等を使用することで同等の生産性を得られることを期待して、新規プロジェクトと類似の既存プロジェクト事例を検索する場合、相当の数の既存プロジェクト事例の蓄積が必要となってしまう。
【0006】
本発明は、このような事情を考慮してなされたものであり、その目的は、複数のインプットあるいは複数のアウトプットに基づいて各プロジェクトの生産性を統一的に評価できる生産性評価装置、生産性評価方法およびプログラムを提供することにある。
また、本発明のもう1つの目的は、比較的少ない既存プロジェクト事例の蓄積に基づいて、開発ツール等の生産環境の評価を行える生産性評価装置、生産性評価方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0007】
[1]この発明は上述した課題を解決するためになされたもので、本発明の一態様による生産性評価装置は、プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とに基づいて、前記プロジェクトの生産効率を示す値として、データ包絡分析法による効率値をプロジェクト毎に算出する生産性評価値算出部を具備することを特徴とする。
【0008】
[2]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記効率値を算出する対象の前記プロジェクトの、前記成果物項目の値および前記リソース項目の値を記憶するプロジェクト情報記憶部をさらに具備し、前記生産性評価値算出部は、前記プロジェクト情報記憶部が記憶する全プロジェクトに共通して前記成果物項目毎に定められる非負の第一重み係数と、前記プロジェクト情報記憶部が記憶する全プロジェクトに共通して前記リソース項目毎に定められる非負の第二重み係数との制約条件として、前記プロジェクト情報記憶部が記憶する全プロジェクトについて、前記第一重み係数と当該プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と当該プロジェクトの前記リソース項目の値との積の和で除した値を1以下とする条件の下で、プロジェクト毎に、前記第一重み係数と当該プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と当該プロジェクトの前記リソース項目の値との積の和で除した値の最大値を求める線形計画問題を解き、得られた前記最大値を当該プロジェクトの前記効率値とすることを特徴とする。
【0009】
[3]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記生産性評価値算出部が生成した前記制約条件を記憶する記憶部と、追加されたプロジェクトのデータを処理する追加プロジェクト処理部と、をさらに具備し、前記生産性評価値算出部は、前記制約条件を前記記憶部に書き込み、前記追加プロジェクト処理部は、前記生産性評価値算出部が効率値を算出していないプロジェクトの前記成果物項目の値および前記リソース項目の値が入力されると、前記入力前に前記生産性評価値算出部が生成した前記制約条件を前記記憶部から読み出し、読み出した制約条件の下で、前記第一重み係数と、入力された前記成果物項目の値との積の和を、前記第二重み係数と、入力された前記リソース項目の値との積の和で除した値の最大値を求める線形計画問題を解き、得られた前記最大値を、前記成果物項目の値および前記リソース項目の値が入力された前記プロジェクトの効率値とすることを特徴とする。
【0010】
[4]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記生産性評価値算出部は、前記制約条件の下で、評価対象のプロジェクトの前記効率値を算出することを特徴とする。
【0011】
[5]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記生産性評価値算出部が算出した前記効率値をプロジェクトの特性を示す特性データと対応付けて記憶する生産性評価記憶部と、入力された検索条件に適合する前記特性データに対応付けられた前記効率値を前記生産性評価記憶部から読み出すプロジェクト検索部と、を具備することを特徴とする。
【0012】
[6]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記プロジェクト検索部は、前記検索条件に適合する前記特性データに対応付けられた前記効率値のうち、最大の効率値を選択することを特徴とする。
【0013】
[7]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記プロジェクト検索部は、前記検索条件に適合する前記特性データを読み出すことを特徴とする。
【0014】
[8]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記生産性評価値算出部は、前記プロジェクト情報記憶部が記憶する全プロジェクトのうち、前記効率値が最大のプロジェクトを除外したプロジェクトについて、前記第一重み係数と当該プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と当該プロジェクトの前記リソース項目の値との積の和で除した値を1以下とする条件の下で、前記効率値が最大の前記プロジェクトについて、前記第一重み係数と、前記効率値が最大の前記プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と、前記効率値が最大の前記プロジェクトの前記リソース項目の値との積の和で除した値の最大値を求める線形計画問題を解き、得られた前記最大値が所定の閾値よりも大きいか否かを判定することを特徴とする。
【0015】
[9]また、本発明の一態様による生産性評価方法は、プロジェクトの生産効率を示す効率値を算出するプロジェクト生産性評価装置に用いられるプロジェクト生産性評価方法であって、生産性評価値算出部が、プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とに基づいて、前記プロジェクトの生産効率を示す値として、データ包絡分析法による効率値をプロジェクト毎に算出する生産性評価値算出ステップを実行することを特徴とする。
【0016】
[10]また、本発明の一態様によるプログラムは、プロジェクト生産性評価装置としてのコンピュータに、プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とに基づいて、前記プロジェクトの生産効率を示す値として、データ包絡分析法による効率値をプロジェクト毎に算出する生産性評価値算出ステップを実行させるためのプログラムである。
【発明の効果】
【0017】
この発明によれば、複数のインプットあるいは複数のアウトプットに基づいて各プロジェクトの生産性を統一的に評価できる。
また、この発明によれば、比較的少ない既存プロジェクト事例の蓄積に基づいて、開発ツール等の生産環境の評価を行える。
プロジェクト全体の生産効率を客観的に評価できる。
【図面の簡単な説明】
【0018】
【図1】本発明の一実施形態における生産性評価システムの概略構成を示す構成図である。
【図2】同実施形態において、プロジェクト情報記憶部121が記憶するプロファイルテーブルの例を示す図である。
【図3】同実施形態において、プロジェクト情報記憶部121が記憶する入出力テーブルの例を示す図である。
【図4】同実施形態において、生産性評価記憶部122が記憶する効率値テーブルの例を示す図である。
【図5】同実施形態において、検索結果記憶部123が記憶する検索結果テーブルの例を示す図である。
【図6】同実施形態において、評価者用端末装置2からプロジェクトのデータが送信された際の、生産性評価装置1の処理手順を示すフローチャートである。
【図7】同実施形態において、効率値算出部131が効率値テーブルを生成する処理手順を示すフローチャートである。
【図8】同実施形態において、はずれ値除去部132がはずれ値を除去する処理手順を示すフローチャートである。
【図9】同実施形態において、生産性評価装置1が、新たに追加されたプロジェクトの処理を行う手順を示すフローチャートである。
【図10】同実施形態において、生産性評価装置1が、検索条件に合致するプロジェクトを検索する処理手順を示すフローチャートである。
【図11】同実施形態における、1入力2出力の場合のプロジェクトの効率値の例を示す図である。
【図12】同実施形態において、プロジェクト検索部15が選択するプロジェクトの例を示す図である。
【発明を実施するための形態】
【0019】
以下、図面を参照して、本発明の一実施形態について説明する。
図1は、本発明の一実施形態における生産性評価システムの概略構成を示す構成図である。
同図において、生産性評価システム500は、生産性評価装置1と、評価者用端末装置2と、検索者用端末装置3とを具備する。生産性評価装置1は、送受信部11と、記憶部12と、効率値テーブル生成部(生産性評価値算出部)13と、追加プロジェクト処理部14と、プロジェクト検索部15とを具備する。記憶部12は、プロジェクト情報記憶部121と、生産性評価記憶部122と、検索結果記憶部123とを具備する。効率値テーブル生成部13は、効率値算出部131と、はずれ値除去部132とを具備する。
【0020】
生産性評価装置1は、プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とが評価者用端末装置2にて入力されると、入力された値に基づくデータ包絡分析法(Data Envelopment Analysis ; DEA)による効率値をプロジェクト毎に算出する。
ここで、プロジェクトで生成された成果物としては、例えば、プロジェクトで生産されるシステムが挙げられ、成果物の規模を示す成果物項目の値としては、例えば、当該システムが有する機能数や、画面数や、帳票数などを用いることができる。
【0021】
また、プロジェクトに投入されたリソースとしては、例えば、プロジェクトに投入された人員や時間、あるいはプロジェクトに要した費用(金銭)など、人的資源または物的資源または時間的資源または金銭的資源をはじめとするプロジェクトに要した何らかの資源が挙げられ、リソースの規模を示すリソース項目の値としては、例えば、プロジェクトに要した工数、あるいはプロジェクトに要した総費用額など、プロジェクトに要した何らかの資源を定量的に示す値を用いることができる。
また、生産性評価装置1が算出する効率値は、後述するように、重み付けされた成果物項目の値を、重み付けされたリソース項目の値で除して得られる値、すなわち、プロジェクトの出力をプロジェクトへの入力で除した値であり、プロジェクトの生産効率を示す値として用いることができる。
【0022】
また、生産性評価装置1は、検索者用端末装置3にてプロジェクトの検索条件が入力されると、効率値を算出したプロジェクトの中から、入力された検索条件に合致するプロジェクトを生産性評価装置1にて選択し、選択したプロジェクトを検索者用端末装置3に表示する。
評価者用端末装置2は、成果物項目の値やリソース項目の値を含むプロジェクトの特性を示すデータの入力を受け付け、受け付けたデータを生産性評価装置1に送信する。検索者用端末装置3は、プロジェクトの検索条件を受け付け、受け付けた検索条件を生産性評価装置1に送信する。
【0023】
生産性評価装置1において、記憶部12は、プロジェクトに関する種々の情報を記憶する。プロジェクト情報記憶部121は、入出力テーブルと、プロファイルテーブルとを記憶する。生産性評価記憶部122は、効率値テーブルを記憶する。検索結果記憶部123は、検索結果テーブルを記憶する。
ここで、入出力テーブルは、プロジェクトの特性を示すデータ(以下では、「特性データ」という)のうち、リソース項目の値と成果物項目の値とを含むテーブルである。後述するように、入出力テーブルに含まれるデータは、効率値テーブル生成部13や追加プロジェクト処理部14が、プロジェクトの効率値を算出する際に用いられる。なお、以下では、リソース項目の値をプロジェクトの「入力」、成果物項目の値をプロジェクトの「出力」といい、プロジェクトの入力とプロジェクトの出力とを併せてプロジェクトの「入出力」という。
【0024】
プロファイルテーブルは、プロジェクトの特性を示す特性データのうち、プロジェクトの入出力以外のデータを含むテーブルである。後述するように、プロファイルテーブルに含まれるデータは、プロジェクト検索部15が、検索者用端末装置3にて入力される検索条件に合致するプロジェクトを選択する際に用いられる。
効率値テーブルは、各プロジェクトの効率値を含むテーブルである。また、検索結果テーブルは、プロジェクト検索部15が、検索者用端末装置3にて入力される検索条件に基づいて選択したプロジェクトの、効率値をはじめとする特性データを含むテーブルである。
【0025】
送受信部11は、評価者用端末装置2や、検索者用端末装置3との間でデータの送受信を行う。送受信部11は、評価者用端末装置2から出力されるデータに基づいて、プロファイルテーブルと入出力テーブルとを生成・更新し、効率値テーブル生成部13や、追加プロジェクト処理部に、各プロジェクトの効率値を含む効率値テーブルの生成・更新を指示する信号を出力する。
【0026】
効率値テーブル生成部13は、プロジェクトの効率値を含む各プロジェクトの特性データを示す効率値テーブルを生成する。効率値算出部131は、プロジェクトの入出力を入出力テーブルから読み出して各プロジェクトの効率値を算出し、効率値テーブルを生成する。はずれ値除去部132は、効率値算出部131が生成した効率値テーブルから、例外的なプロジェクトのデータを除去する。
追加プロジェクト処理部14は、追加されたプロジェクトの入出力を入出力テーブルから読み出して効率値を算出し、効率値テーブルを更新する。
プロジェクト検索部15は、効率値テーブルを検索して検索条件に適合するプロジェクトのデータを読み出し、検索結果テーブルを生成する。
【0027】
次に、図2〜図5を参照して、記憶部12が記憶する各データのデータ構成について説明する。
図2は、プロジェクト情報記憶部121が記憶するプロファイルテーブルの例を示す図である。プロファイルテーブルには、プロジェクト検索部15が検索条件に合致するプロジェクトを選択する際のインデックスとして用いられる、各プロジェクトの特性データが含まれる。同図の例では、プロファイルテーブルには、プロジェクトID(Identifier)、規模、開発期間、開発種別、業種、セキュリティレベル、稼働率、データ量、通信量、ソフトウェア構成、利用ツール、利用手法、利用開発手順、利用ソフトの情報が含まれている。
なお、プロジェクト検索部15が検索条件に合致するプロジェクトを選択する際のインデックスとして、プロファイルテーブルの各データに加えて、またはプロファイルテーブルの各データに代えて、入出力テーブルのデータを用いてもよい。検索のインデックスとして用いるデータの種類が多いほど、プロジェクト検索部15は多様な検索条件に対応して検索を行える。
【0028】
「プロジェクトID」は、プロジェクトの識別情報である。「規模」欄のデータは、プロジェクトの規模を示すデータであり、同図の例では、プロジェクトにて生成されるシステムのプログラムステップ数が用いられている。「開発期間」欄のデータは、プロジェクトに費やした日数を示すデータである。「開発種別」欄のデータは、システムを新規開発するプロジェクトを示す「新規」、または、既存システムに機能を追加するプロジェクトを示す「機能追加」のいずれかの値をとる。「業種」欄のデータは、プロジェクトにて生成されるシステムが対象とする業種を示すデータであり、製造業または小売業または金融業などの業種を示す。
「セキュリティレベル」欄のデータは、プロジェクトにて生成するシステムのセキュリティレベルを示すデータであり、高・中・低のいずれかの値をとる。「稼働率」、「データ量」、「通信量」欄のデータは、それぞれ、プロジェクトにて生成されるシステムに要求される稼働率、当該システムが記憶するデータ量、当該システムの通信量を示すデータである。
【0029】
「ソフトウェア構成」欄のデータは、プロジェクトにて生成されるシステムのソフトウェア構成を示すデータであり、OS(Operating System)名やアプリケーションソフト名などを示す。「利用ツール」欄のデータは、プロジェクトの各段階で利用したツールを示すデータであり、例えば、製造工程で利用した自動ソースコード生成ツールの名称や、試験工程で利用したソースコード自動診断ツールの名称を示す。「利用手法」欄のデータは、プロジェクトの各段階で利用した、ツール化されていない手法を示すデータであり、例えば、設計書の書き方を定めたマニュアルの名称を示す。「利用開発手順」欄のデータは、各工程で行う作業の概要を示すデータであり、例えば、ウォーターフォール・モデル(Waterfall Model)や、スパイラル・モデル(Spiral Model)など、準拠するソフトウェア開発工程モデルの名称を示す。「利用ソフト」欄のデータは、システム開発環境で利用したソフトウェアを示すデータであり、例えば、システムの画面を生成する際に利用したソフトウェアの名称を示す。
【0030】
なお、プロジェクト情報記憶部121が記憶するプロファイルテーブルのデータ項目は、図2に示したものに限らない。例えば、「集中処理型」、「分散処理型」、「移動情報処理(モバイルコンピューティング、Mobile Computing)型」など、システムの処理形態を示す項目を含んでいてもよい。また、図2に示した項目の一部を含んでいなくてもよい。プロファイルテーブルのデータ項目が多いほど、プロジェクト検索部15が多様な検索条件に対応できる。一方、プロファイルテーブルのデータ項目が少ないほど、プロジェクト情報記憶部121が要する記憶容量が少なくて済む。
【0031】
図3は、プロジェクト情報記憶部121が記憶する入出力テーブルの例を示す図である。入出力テーブルには、効率値テーブル生成部13が効率値を算出する基となる、各プロジェクトの入出力が含まれる。
同図の例では、入出力テーブルには、設計、製造、試験の工程毎に各プロジェクトの入出力が含まれており、各プロジェクトの入力として、工数、コスト、期間、人数の各情報が含まれ、各プロジェクトの出力として、ステップ数、画面数、帳票数、バッチジョブ数、テーブル数、機能数の各情報が含まれている。評価者用端末装置2は、これら入出力として、いずれも非負の数の入力を受け付け、入出力テーブルは、入出力として非負の数を記憶している。
【0032】
「工数」欄のデータは、プロジェクトの工数を示すデータであり、同図の例では、プロジェクトに投入した要員の人数と日数との積(延べ人日)で示されている。「コスト」欄のデータは、プロジェクトに要した総費用額を示すデータである。「期間」欄のデータは、プロジェクトが運用された期間を示すデータである。「人数」欄のデータは、プロジェクト要員の人数を示すデータである。
【0033】
「ステップ数」欄のデータは、プロジェクトで生成されたシステムのプログラムステップ数を示すデータである。「画面数」欄のデータは、プロジェクトで生成されたシステムが表示する画面の種類の数(以下では、「画面数」という)を示すデータである。「帳票数」欄のデータは、プロジェクトで生成されたシステムが出力する帳票の種類の数(以下では、「帳票数」という)を示すデータである。「バッチジョブ数」欄のデータは、プロジェクトで生成されたシステムが処理するバッチジョブ数を示すデータである。「テーブル数」欄のデータは、プロジェクトで生成されたシステムが記憶するデータベースのテーブル数を示すデータである。「機能数」欄のデータは、プロジェクトで生成されたシステムが実行する機能数を示すデータである。
同図の例では、出力の各項目は、いずれもプロジェクトで生成されるシステムの属性を示す項目であり、設計、製造、試験の各工程に共通の値となる。このように、各工程に共通の項目については、例えば、送受信部11が、評価者用端末装置2から送信されるデータを、入出力テーブルの各工程の該当欄に書き込むことにより、入出力テーブルを生成する。
【0034】
なお、プロジェクト情報記憶部121が記憶する入出力テーブルは、同図に示すものに限らない。例えば、設計、製造、試験の各工程に分かれていない、プロジェクト毎の入出力を示すテーブルであってもよい。これにより、プロジェクト情報記憶部121が入出力テーブルを記憶する記憶容量を低減できる。一方、図3のような工程毎のデータを記憶することにより、工程毎のデータ分析を行うことができる。
また、入出力テーブルの項目も、同図に示すものに限らない。例えば、既存ソフトウェアの流用等により、プロジェクトによって生成されるシステムの規模とステップ数との間のばらつきが大きい場合は、出力としてステップ数以外の項目を用いることが考えられる。画面数や、帳票数や、バッチジョブ数や、テーブル数や、機能数は顧客仕様に基づいて客観的に定められるデータであり、これらのデータを用いることにより、システムの規模をより適切に把握できることが期待できる。あるいは、入力の項目として、プロジェクトに投入した要員の熟練度を5段階評価で示すデータ項目を含むなど、同図に示す以外の項目を含んでいてもよい。
【0035】
図4は、生産性評価記憶部122が記憶する効率値テーブルの例を示す図である。効率値テーブルには、各プロジェクトの生産効率を示す効率値が含まれる。
同図の例では、効率値テーブルには、プロファイルテーブルの各データと、入出力テーブルの各データと、入出力テーブルの各データに基づいて効率値テーブル生成部13が算出する効率値とが含まれている。
【0036】
図5は、検索結果記憶部123が記憶する検索結果テーブルの例を示す図である。検索結果テーブルは、プロジェクト検索部15が行う検索の結果を示す。同図の例では、検索結果テーブルには、検索によって選択されたプロジェクトのプロジェクトIDと、利用ツール名と、効率値と、工程と、工数とが含まれている。
例えば、評価者用端末装置2が、検索条件として「工程=設計」のユーザ入力を受け、表示項目として「利用ツール、工程、工数」のユーザ入力を受けて生産性評価装置1に送信すると、プロジェクト検索部15が、生産性評価記憶部122の効率値テーブルを検索して検索条件に合致するプロジェクトを選択し、選択したプロジェクトのデータを読み出して、検索結果記憶部123に、検索結果テーブルとして書き込む。
この際、プロジェクト検索部15は、表示項目の「利用ツール、工程、工数」と、予め定められた項目である「プロジェクトID、効率値」とのデータを読み出して、検索結果記憶部123に書き込む。
【0037】
なお、プロジェクト検索部15が、選択したプロジェクトの全てのデータを書き込むようにしてもよい。全てのデータを書き込むことにより、ユーザに多くのデータを提示でき、ユーザは様々な角度から検討を行える。一方、図5のように、一部の項目のみを書き込むことにより、生産性評価装置1から検索者用端末装置3に検索結果を送信する際の、通信量を低減できる。また、検索者用端末装置3に表示するデータ量が少なくなるので、ユーザが、検索結果を見易くなり、必要とするデータ(例えば利用ツール名)を容易に読み出せる。
【0038】
次に、図6〜図10を参照して、生産性評価装置1の動作について説明する。
図6は、評価者用端末装置2からプロジェクトのデータが送信された際の、生産性評価装置1の処理手順を示すフローチャートである。
評価者用端末装置2からプロジェクトのデータが送信されると、生産性評価装置1の送受信部11は、送信されるデータをテーブル形式にまとめたプロファイルテーブルと入出力テーブルとを生成し、プロジェクト情報記憶部121に書き込む。その後、送受信部11は、効率値算出部131に、効率値テーブルの生成を指示する信号を出力する(以上、ステップS101)。
送受信部11から効率値テーブルの生成を指示する信号が出力されると、効率値算出部131は、効率値テーブルを生成して生産性評価記憶部122に書き込む。その後、効率値算出部131は、はずれ値除去部132にはずれ値の除去を指示する信号を出力する(以上、ステップS102)。
【0039】
効率値算出部131からはずれ値の除去を指示する信号が出力されると、はずれ値除去部132は、生産性評価記憶部122の記憶する効率値テーブルからはずれ値のプロジェクトのデータを削除し、残りのプロジェクトのデータに基づいて各プロジェクトの効率値を算出し、効率値テーブルを更新する(ステップS103)。ここでいう「はずれ値のプロジェクト」とは、生産性評価記憶部122の効率値テーブルに記憶される効率値が予め定められた閾値よりも大きいプロジェクトである。はずれ値のプロジェクトは、生産効率が例外的に高いプロジェクトと考えられる。
その後、生産性評価装置1は、同図の処理を終了する。
【0040】
図7は、効率値算出部131が効率値テーブルを生成する処理手順を示すフローチャートである。効率値算出部131は、送受信部11から効率値テーブルの生成を指示する信号が出力されると同図の処理を開始する。
まず、効率値算出部131は、生産性評価記憶部122の記憶領域中に、効率値テーブル(の枠組み)を生成する。そして、効率値算出部131は、プロジェクト情報記憶部121からプロファイルテーブルの各データを読み出し、生産性評価記憶部122に生成した効率値テーブルに書き込む(以上、ステップS121)。次に、効率値算出部131は、プロジェクト情報記憶部121から入出力テーブルの各データを読み出し、生産性評価記憶部122の効率値テーブルに書き込む(ステップS122)。
【0041】
効率値算出部131は、プロジェクト情報記憶部121から読み出した入出力テーブルの各データに基づいて、プロジェクトの効率値を算出するためのデータ包絡分析法における制約条件を生成する。
より詳細には、リソース項目ごとの非負の重み係数(第二重み係数)vi(iは、1≦i≦mの正整数。mは、リソース項目数)と、成果物項目ごとの非負の重み係数(第一重み係数)ur(rは、1≦r≦sの正整数。sは、成果物項目数)とを生成する。この時点では、これらの重み係数の値は未確定であり、効率値算出部131は、これらの重み係数を変数として扱う。そして、効率値算出部131は、入出力テーブルから読み出した、プロジェクトPj(jは、1≦j≦qの正整数。qは、入出力テーブルに記憶されるプロジェクトの個数)の入力xij(iは、1≦i≦mの正整数。mは、リソース項目数)、および、出力yrj(rは、1≦r≦sの正整数。sは、成果物項目数)と、重み係数とを用いて、j=1,2,・・・,qの各々についての、式(1)に示す不等式q個からなる制約条件を生成する。
(v1x1j+v2x2j+・・・+vmxmj)/(u1y1j+u2y2j+・・・+usysj)≦1 ・・・ 式(1)
効率値算出部131は、生成した制約条件を、記憶部12のワーキングメモリ領域に書き込む(以上、ステップS123)。
【0042】
ここで、図3の入出力テーブルのように、複数の工程それぞれにプロジェクトの入力が示されている場合は、効率値算出部131が、各工程のデータを入力として扱うように、予め設定しておく。例えば、効率値算出部131は、図3の入出力テーブルから読み出した入出力のうち、1つのプロジェクトにつき、設計工程の工数と、製造工程の工数と、試験工程の工数との3個のデータを工数のデータとして扱い、各々に対応する3個の重み係数を生成し、各データおよび各重み係数を含む制約条件を生成する。
一方、図3の入出力テーブルでは出力の欄も複数の工程それぞれに示されているが、同一のデータを各工程にコピーしただけの場合は、効率値算出部131が、いずれか1つの工程のデータのみを出力として扱うように、予め設定しておく。例えば、効率値算出部131は、図3の入出力テーブルから読み出した出力のうち、設計工程の出力のみを出力として扱い、その各項目(ステップ数と画面数と・・・と機能数)に対応する6個の重み係数を生成し、各データおよび各重み係数を含む制約条件を生成するが、製造工程および試験工程の出力については、重み係数を生成せず、制約条件にも含めない。
【0043】
なお、効率値算出部131が、いずれか1工程のデータのみを入出力として扱うようにしてもよい。例えば、効率値算出部131は、図3の入出力テーブルから読み出したデータのうち、製造工程の入出力のみを入出力として扱い、各々に対応する重み係数を生成し、各データおよび各重み係数を含む制約条件を生成するが、設計工程および試験工程の入出力については、重み係数を生成せず、制約条件にも含めない。このように、1工程のデータのみを用いることにより、当該工程における効率値を算出し、当該工程における生産効率を評価できる。
【0044】
その後、効率値算出部131は、プロジェクト毎に処理を行うループを実行する(ステップS124)。このループにおいて、効率値算出部131は、まず、データ包絡分析法における目的関数として、処理対象のプロジェクトの効率値の関数を生成する。より詳細には、処理対象のプロジェクトPjの効率値θjの関数(式(2))を生成する(以上、ステップS125)。
θj=(v1x1j+v2x2j+・・・+vmxmj)/(u1y1j+u2y2j+・・・+usysj) ・・・ 式(2)
次に、効率値算出部131は、ステップS123で生成した制約条件の下で、ステップS125で生成した目的関数の値を最大にする線形計画問題を解き、処理対象のプロジェクトの効率値を算出する。すなわち、制約条件の下で目的関数を最大にする重み係数の値を算出し、当該重み係数の値における効率値θjを算出する。効率値算出部131は、例えば、単体法(シンプレックス法、Simplex Method)を用いて線形計画問題を解く(以上、ステップS126)。
そして、効率値算出部131は、算出した効率値を生産性評価記憶部122の効率値テーブルに書き込む(ステップS127)。
【0045】
その後、効率値算出部131は、ステップS124からのループの処理を行っていないプロジェクトがあるか否かを判定し、あると判定した場合は、ステップS124に戻り、残りのプロジェクトについてループの処理を継続する。一方、全てのプロジェクトについて処理を行ったと判定した場合は、はずれ値除去部132にはずれ値の除去を指示する信号を出力し、同図の処理を終了する(以上、ステップS128)。
【0046】
図8は、はずれ値除去部132がはずれ値を除去する処理手順を示すフローチャートである。はずれ値除去部132は、効率値算出部131からはずれの値除去を指示する信号が出力されると同図の処理を開始する。
同図の処理において、はずれ値除去部132は、まず、生産性評価記憶部122の効率値テーブルに含まれる全プロジェクトを未選択に設定する。例えば、はずれ値除去部132は、生産性評価記憶部122の効率値テーブルから全プロジェクトのプロジェクトIDを読み出し、読み出したプロジェクトIDの各々と、選択済み又は未選択を示す選択状況フラグとを対応付けた選択状況テーブルを生成し、全プロジェクトの選択状況フラグを未選択に設定して、記憶部12のワーキングメモリ領域に書き込む(以上、ステップS141)。
【0047】
次に、はずれ値除去部132は、効率値テーブルと選択状況テーブルとを参照して、効率値が1、かつ、選択状況フラグが未選択のプロジェクトの有無を判定する(ステップS142)。該当するプロジェクトありと判定した場合(ステップS142:YES)は、該当するプロジェクトの1つ(以下では、プロジェクト「Pi」と表記する)を選択する(ステップS143)。
そして、はずれ値除去部132は、生産性評価記憶部122の効率値テーブルから、プロジェクトPiを除く各プロジェクトの入出力を読み出し、読み出した入出力に基づいて、プロジェクトの効率値を算出するためのデータ包絡分析法における制約条件を生成する。
より詳細には、効率値テーブルに記憶されるプロジェクトの個数をtとして、j=1,2,・・・,i−1,i+1,・・・,tの各々についての、式(3)に示す不等式t−1個からなる制約条件を生成する。
(v1x1j+v2x2j+・・・+vmxmj)/(u1y1j+u2y2j+・・・+usysj)≦1 ・・・ 式(3)
ここで、上述のとおり、プロジェクトPjの入力をxijとし、出力をyrjとし、また、リソース項目ごとの非負の重み係数をviとし、成果物項目ごとの非負の重み係数をurとする(以上、ステップS144)。
【0048】
また、はずれ値除去部132は、生産性評価記憶部122の効率値テーブルから、プロジェクトPiの入出力を読み出し、読み出した入出力に基づいて、データ包絡分析法における目的関数として、プロジェクトPiの効率値θiの関数(式(4))を生成する(ステップS145)。
θi=(v1x1i+v2x2i+・・・+vmxmi)/(u1y1i+u2y2i+・・・+usysi) ・・・ 式(4)
そして、はずれ値除去部132は、ステップS144で生成した制約条件の下で、ステップS145で生成した目的関数の値を最大にする線形計画問題を解き、プロジェクトPiの効率値を算出する(ステップS146)。
【0049】
はずれ値除去部132は、算出した効率値が予め定められた閾値(例えば「3」)より大きいか否かを判定し(ステップS147)、大きいと判定した場合(ステップS147:YES)は、生産性評価記憶部122の効率値テーブルと、記憶部12の選択状況テーブルとから、プロジェクトPiのデータを除去する。これにより、効率値テーブルに記憶されるプロジェクトの個数tは、1減少する。また、はずれ値除去部132は、記憶部12がワーキングメモリ領域に記憶する制約条件を、ステップS144で生成した制約条件に書き換える(以上、ステップS148)。
そして、はずれ値除去部132は、残りの各プロジェクトの効率値を算出して、生産性評価記憶部122の効率値テーブルに書き込む。より詳細には、はずれ値除去部132は、残りのプロジェクトの各々について、図7のステップS124〜S128のループと同様に、データ包絡分析法における目的関数として、処理対象のプロジェクトの効率値の関数を生成し、ステップS144で生成した制約条件の下で、目的関数の値を最大にする線形計画問題を解いて処理対象のプロジェクトの効率値を算出し、算出した効率値を生産性評価記憶部122の効率値テーブルに書き込む(以上ステップS149)。その後、ステップS141に戻る。
一方、ステップS147で、算出した効率値が予め定められた閾値以下であると判定した場合(ステップS147:NO)は、記憶部12のプロジェクト選択状況テーブル中の、プロジェクトPiのプロジェクト選択状況フラグの値として選択済みを書込み(ステップS161)、その後、ステップS142に戻る。
また、ステップS142において、効率値が1かつ選択状況フラグが未選択のプロジェクト無しと判定した場合(ステップS147:NO)は、同図の処理を終了する。
【0050】
なお、ステップS147で、算出した効率値が予め定められた閾値より大きいと判定した場合に、はずれ値除去部132が、ステップS147で効率値テーブルからプロジェクトPiのデータを除去しないようにしてもよい。この場合、はずれ値除去部132は、プロジェクトPiの効率値として、ステップS146で算出した効率値を効率値テーブルに書き込む。この効率値は閾値よりも大きい値なので、効率値テーブルのデータを参照するユーザは、プロジェクトPiの効率値が極端に大きい値(いわゆるはずれ値)であることを認識しつつ、プロジェクトPiのデータを参考にすることができる。
【0051】
なお、生産性評価装置1がマルチプロセッサを備え、並行処理能力を有する場合は、はずれ値除去部132が、ステップS144〜S147で行うはずれ値の判定と、ステップS149で行う各プロジェクトの効率値の再計算とを、並行して行うようにしてもよい。この場合、ステップS147で効率値が閾値より大きいと判定した場合(ステップS147:YES)、はずれ値除去部132は、効率値テーブルの各プロジェクトの効率値を、再計算した効率値に書き換える。一方、ステップS147で効率値が閾値以下であると判定した場合(ステップS147:NO)、はずれ値除去部132は、再計算した効率値を捨て、効率値テーブルの書き換えは行わない。このように、はずれ値除去部132が、ステップS144〜S147の処理とステップS149の処理とを並列実行することにより、処理時間を削減できる。一方、図8に示す手順で処理を行うことにより、はずれ値除去部132が無駄作業を行わないので、処理量を低減できる。
【0052】
図9は、生産性評価装置1が、新たに追加されたプロジェクト(以下では、プロジェクト「Pk」と表記する)の処理を行う手順を示すフローチャートである。
評価者用端末装置2から、プロジェクトPkのデータが送信されると、生産性評価装置1の送受信部11は、送信されるデータを追加プロジェクト処理部14に出力する。
追加プロジェクト処理部14は、送受信部11から出力されるプロジェクトPkのデータを、プロジェクト情報記憶部121のプロファイルテーブルと入出力テーブルとに書き込む(以上、ステップS201)。さらに、追加プロジェクト処理部14は、効率値テーブルにプロジェクトPkのデータを追加する(ステップS202)。
【0053】
なお、追加プロジェクト処理部14が、プロジェクトPkのデータを、プロジェクト情報記憶部121のプロファイルテーブルと入出力テーブルとには書き込まず、効率値テーブルにのみ書き込みを行うようにしてもよい。プロジェクト情報記憶部121への書き込みを行わないことにより、追加プロジェクト処理部14の負荷およびプロジェクト情報記憶部121の要する記憶容量を低減できる。一方、追加プロジェクト処理部14が、プロジェクトPkのデータを、プロジェクト情報記憶部121のプロファイルテーブルと入出力テーブルとに書き込むことにより、プロファイルテーブルと入出力テーブルのデータが更新されるので、プロファイルテーブルおよび入出力テーブルにて、追加プロジェクトのデータと、効率値テーブル生成部が処理済のプロジェクトのデータとを一元的に管理できる。
【0054】
なお、送受信部11が、プロジェクトPkのデータを、プロジェクト情報記憶部121のプロファイルテーブルと入出力テーブルとに書き込み、プロジェクトPkのプロジェクトIDを追加プロジェクト処理部14に出力するようにしてもよい。この場合、追加プロジェクト処理部14は、プロジェクトPkのプロジェクトIDに基づいて、プロジェクト情報記憶部121のプロファイルテーブルと入出力テーブルとからプロジェクトPkのデータを読み出す。これにより、送受信部11が追加プロジェクト処理部14に出力するデータ量を低減できる。
【0055】
次に、追加プロジェクト処理部14は、記憶部12のワーキングメモリ領域に記憶された、図7のステップS123または図8のステップS144で生成した制約条件を読み出す(ステップS203)。この制約条件は、効率値テーブル生成部13が処理したプロジェクトに関する不等式のみを含み、追加プロジェクトに関する不等式を含まない制約条件である。
また、追加プロジェクト処理部14は、プロジェクトPkの入出力に基づいて、データ包絡分析法における目的関数として、プロジェクトPkの効率値θkの関数(式(5))を生成する(ステップS204)。
θk=(v1x1k+v2x2k+・・・+vmxmk)/(u1y1k+u2y2k+・・・+usysk) ・・・ 式(5)
そして、追加プロジェクト処理部14は、ステップS203で読み出した制約条件の下で、ステップS204で生成した目的関数の値を最大にする線形計画問題を解き、プロジェクトPkの効率値を算出する(ステップS205)。
追加プロジェクト処理部14は、算出した効率値を生産性評価記憶部122の効率値テーブルに書込み(ステップS206)、その後、同図の処理を終了する。
【0056】
図10は、生産性評価装置1が、検索条件に合致するプロジェクトを検索する処理手順を示すフローチャートである。
検索者用端末装置3から検索条件が送信されると、送受信部11は、送信された検索条件をプロジェクト検索部15に出力する。後述するように、検索条件としては、評価対象の新規プロジェクトの特性データに基づく条件、あるいは、比較したいツール名などを用いる(以上、ステップS301)。
プロジェクト検索部15は、送受信部11から出力された検索条件に合致するプロジェクトのデータを、生産性評価記憶部122の効率値テーブルから読み出し(ステップS302)、読み出したデータを効率値の大きいプロジェクトから順に並べて検索結果テーブルを生成し、検索結果記憶部123に書き込む。書き込みが完了すると、プロジェクト検索部15は、送受信部11に検索終了を示す信号を出力し、送受信部11は、検索結果記憶部123から検索結果テーブルのデータを読み出して検索者用端末装置3に送信する(以上、ステップS303)。その後、同図の処理を終了する。
検索者用端末装置3が、検索結果テーブルのデータを表示することにより、検索結果がユーザに提示される。
【0057】
次に、図11を参照して、効率値テーブル生成部13が生成する効率値について説明する。
図11は、1入力2出力の場合のプロジェクトの効率値の例を示す図である。同図においては、プロジェクトPjの入力をxjで表し、出力1および出力2を、それぞれy1jおよびy2jで表す。
同図の各点は、プロジェクト毎に、出力1を入力で除した値y1j/xjを横軸にとり、出力2を入力で除した値y2j/xjを縦軸にとって得られる点を示す。
ここで、プロジェクトの各々が、データ包絡分析における意思決定主体(Decision Making Unit; DMU)に該当する。また、同図の各点のうち外側に位置する点a、b、cが効率的フロンティアに該当し、これらの点a、b、cを頂点とし、縦軸および横軸に直交する折れ線ENVが包絡線に該当する。
【0058】
効率的フロンティアの点aとbとcとに対応するプロジェクトは、いずれも、効率的が1のプロジェクトである。他の点に対応するプロジェクトの効率値は、原点oと当該点とを通る直線上での、原点から当該点までの距離を原点から包絡線までの距離を除した値となる。例えば、原点oと点dとを通る直線上での、原点oから点dまでの距離をl1とし、点dから包絡線までの距離をl2とすると、点dに対応するプロジェクトの効率値は、l1/(l1+l2)となる。
【0059】
効率値が大きいプロジェクトほど入力に対する出力の比が大きいプロジェクトであり、生産効率が高いと評価できる。生産性評価装置1が、評価対象のプロジェクトの効率値を算出することにより、ユーザは、算出された効率値を、評価対象のプロジェクトの生産効率の目安として用いることができる。評価値が1に近い場合は、生産効率の高いプロジェクトであると評価できる。一方、評価値が小さい場合は、生産効率の低いプロジェクトであると評価できる。
【0060】
次に、図12を参照して、プロジェクト検索部15が行うプロジェクトの選択について説明する。
図12は、プロジェクト検索部15が選択するプロジェクトの例を示す図である。同図の各点は、図11の各点と同様である。
集合G1は、評価対象のプロジェクトに類似したプロジェクトに対応する点の集合である。例えば、検索者用端末装置3が、「開発種別=新規、業種=製造業、セキュリティレベル=中、・・・」など、評価対象の新規プロジェクトの特性に基づく検索条件の入力を受けて、生産性評価装置1に送信すると、送受信部11を介して検索条件を受信したプロジェクト検索部15が、生産性評価記憶部122の効率値テーブルを検索して、検索条件に合致するプロジェクト(例えば、評価対象のプロジェクトど同様の特性データを持つプロジェクト)として、集合G1に対応する各プロジェクトを選択する。
【0061】
プロジェクト検索部15が選択した各プロジェクトのデータを、効率値を含めて検索者用端末装置3に表示することにより、ユーザは、選択された各プロジェクトの生産効率が高いか否かを知ることができる。これにより、例えば、効率値の大きいプロジェクトで利用されているツールを評価対象の新規プロジェクトでも利用するなど、ユーザが、効率値の大きいプロジェクトを手本として新規プロジェクトの見直しを行い、新規プロジェクトの生産効率を高めることが期待できる。また、効率値の小さいプロジェクトについては、ユーザが、効率値の小さい原因を分析し、分析結果を新規プロジェクトに反映させることが考えられる。
【0062】
なお、プロジェクト検索部15が、検索条件に合致するプロジェクトのうち、効率値の最も大きいプロジェクト(図12の例では、点aに対応するプロジェクト)のみを選択するようにしてもよい。この場合、プロジェクト検索部15は、効率値テーブルの各プロジェクトを、効率値の大きい順に検索し、検索条件に合致するプロジェクトを1個検出した時点で検索終了できるので、検索の負荷を軽減でき、また、生産性評価装置1から検索者用端末装置3へ検索結果を送信する際の通信量を低減できる。
あるいは、プロジェクト検索部15が、効率値が所定の値(例えば、「0.7」)以上のプロジェクトのみを選択するようにしてもよい。この場合も、効率値の最も大きいプロジェクトのみを選択する場合と同様に、検索の負荷を低減し、また、通信量を低減できる。
【0063】
また、集合G2は、ツールAを利用したプロジェクトに対応する点の集合であり、集合G3は、ツールBを利用したプロジェクトに対応する点の集合である。
例えば、検索者用端末装置3が、「利用ツール=ツールA」との検索条件の入力を受けて、生産性評価装置1に送信すると、送受信部11を介して検索条件を受信したプロジェクト検索部15が、生産性評価記憶部122の効率値テーブルを検索して、検索条件に合致するプロジェクトとして、集合G2に対応する各プロジェクトを選択する。同様に、検索者用端末装置3が、「利用ツール=ツールB」との検索条件の入力を受けると、プロジェクト検索部15が、集合G3に対応する各プロジェクトを選択する。
【0064】
プロジェクト検索部15が選択した各プロジェクトのデータを、効率値を含めて検索者用端末装置3が表示することにより、ユーザは、ツールAを用いた場合の一般的な生産効率と、ツールBを用いた場合の一般的な生産効率とを比較できる。そして、ユーザは、比較結果に基づいて、ツールAを利用すべきかツールBを利用すべきかを検討できる。同図の例では、ツールAを利用したプロジェクトのほうが、ツールBを利用したプロジェクトよりも効率値が大きい。このことから、新規プロジェクトにおいても、ツールAを利用することにより生産効率が高まることが期待できる。
【0065】
なお、プロジェクト検索部15が、図11で説明した検索と、図12で説明した検索とを組み合わせた検索を行うようにしてもよい。
例えば、検索者用端末装置3が、「開発種別=新規、業種=製造業、セキュリティレベル=中、・・・」など、評価対象のプロジェクトに基づく検索条件と、「利用ツール=ツールA」や「利用ツール=ツールB」など、特定の特性を持つプロジェクトを比較する検索条件とを受け付ける。プロジェクト検索部15は、生産性評価記憶部122を検索して、「開発種別=新規、業種=製造業、セキュリティレベル=中、・・・」に合致し、かつツールAを利用するプロジェクトを選択する。図12の例の場合、プロジェクト検索部15は、集合G1と集合G2との両方に含まれる、点aと点bとに対応するプロジェクトを選択する。
また、プロジェクト検索部15は、「開発種別=新規、業種=製造業、セキュリティレベル=中、・・・」に合致し、かつツールBを利用するプロジェクトを選択する。図12の例の場合、プロジェクト検索部15は、集合G1と集合G3との両方に含まれる、点fと点gと点hとに対応するプロジェクトを選択する。
【0066】
選択した各プロジェクトのデータを、効率値を含めて検索者用端末装置3に表示することにより、ユーザは、評価対象のプロジェクトにツールAを用いた場合の生産効率と、評価対象のプロジェクトにツールBを用いた場合の生産効率とを比較でき、比較結果に基づいて、ツールAを利用すべきかツールBを利用すべきかを検討できる。同図の例では、ツールAを利用したプロジェクトのほうが、ツールBを利用したプロジェクトよりも効率値が大きい。このことから、新規プロジェクトにおいても、ツールAを利用することにより生産効率が高まることが期待できる。
【0067】
以上のように、生産性評価装置1は、プロジェクト情報記憶部121が記憶するプロジェクトのインプットやアウトプットを含むデータ、特に複数のインプットまたは複数のアウトプットを含むデータを用いて、各プロジェクトの効率値を算出するので、この効率値を、プロジェクト全体の見積りに対する客観的な評価として示すことができる。特に、プロジェクトにて生成するシステムの画面数や、帳票数や、バッチジョブ数や、テーブル数や、機能数など、プログラムステップ数と比べて顧客仕様とのばらつきが小さく、かつ、システム仕様から容易に計測できる複数の項目値を用いることにより、評価のブレを抑制しつつ、項目ごとではなく、プロジェクト全体に対する単一の指標である効率値に基づいてプロジェクトの生産効率の評価を示すことができる。
このように、単一の指標である効率値に基づいてプロジェクトの生産効率の評価できるので、あるツールを用いることによる生産効率向上の検討など、システム開発環境や部品等が生産効率に及ぼす影響を検討できる。この際、評価に用いるプロジェクトは必ずしも互いに類似する必要はない。これにより、評価に用いるプロジェクト数が比較的少ない場合にも、開発環境や部品についての評価・検討を行える。
【0068】
また、新規プロジェクトの計画段階において、生産性評価装置1が、新規プロジェクトに類似する過去のプロジェクトのデータを、効率値を含めて出力することにより、ユーザは、プロジェクトの特性が新規プロジェクトに類似し、かつ、効率値の大きい過去のプロジェクトを手本とすることができ、手本とすべきプロジェクトの全体像が得られる。また、この過去のプロジェクトのデータを参照することにより、ユーザは、新規プロジェクトの特性に応じた適切なツールや手法、要員数などを知ることができる。これにより、新規プロジェクトのコストや期間が低減されることが期待できる。
【0069】
また、はずれ値除去部132が、例外的に大きい効率値を示すプロジェクトを検出し、当該プロジェクトのデータを効率値テーブルから削除するので、例外的なプロジェクトを含まないプロジェクトを対象として、より適切に効率値を算出できる。
これにより、例えば、各プロジェクトの効率値が小さい値(例えば0.3以下)に集中し、生産性評価装置1の検索結果として得られるプロジェクトが全て生産効率の低いプロジェクトであるかのような誤解や混乱をユーザに与えることを防止できる。
【0070】
また、追加プロジェクト処理部14は、新たなプロジェクトが追加された際に、効率値テーブル生成部13が生成した制約条件を用いて、追加されたプロジェクトの効率値を算出するので、効率値を算出済みのプロジェクトについて、効率値を更新する必要が無く、計算負荷を低減できる。
【0071】
なお、生産性評価装置1が、評価対象のプロジェクトの効率値を算出するようにしてもよい。評価対象のプロジェクトが新規プロジェクトの場合でも、顧客仕様に基づいて、画面数や、帳票数や、バッチジョブ数や、テーブル数や、機能数などの出力仕様を決定し、顧客仕様や出力仕様に基づいて、工数や費用など、プロジェクトに投入するリソースの見積りを行った後は、効率値を算出し得る。
この場合、検索者用端末装置3が入出力のユーザ入力を受けて生産性評価装置1に送信すると、生産性評価装置1は、図9で説明した、新たに追加されたプロジェクトを処理する場合と同様に、効率値を算出する。より詳細には、効率値算出部131が、まず、記憶部12のワーキングメモリ領域に記憶された制約条件を読み出す。この制約条件は、効率値テーブル生成部13が処理したプロジェクトに関する不等式のみを含み、評価対象のプロジェクトに関する不等式を含まない制約条件である。
効率値算出部131は、検索者用端末装置3から送信される入出力に基づいて、評価対象のプロジェクトの効率値の関数を生成する。そして、効率値算出部131は、読み出した制約条件の下で、生成した目的関数の値を最大にする線形計画問題を解き、評価対象のプロジェクトの効率値を算出する。
【0072】
効率値算出部131が算出した効率値を、検索者用端末装置3が表示することにより、ユーザは、表示される効率値を評価対象のプロジェクトの生産効率の目安として用いることができる。評価値が1に近い場合は、生産効率の高いプロジェクトであると評価でき、当該計画にてプロジェクトを推進する。
一方、評価値が小さい場合は、生産効率の低いプロジェクトであると評価でき、プロジェクトに利用するツールの見直しなど、プロジェクトおよび工程見積りを見直して生産効率を改善する余地があると考えられる。
【0073】
なお、生産性評価装置1の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0074】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【0075】
1 生産性評価装置
2 評価者用端末装置
3 検索者用端末装置
11 送受信部
12 記憶部
13 効率値テーブル生成部
14 追加プロジェクト処理部
15 プロジェクト検索部
121 プロジェクト情報記憶部
122 生産性評価記憶部
123 検索結果記憶部
131 効率値算出部
132 はずれ値除去部
500 生産性評価システム
【技術分野】
【0001】
本発明は、生産性評価装置、生産性評価方法およびプログラムに関する。
【背景技術】
【0002】
プロジェクトの工数の見積りは、プロジェクトの損益に直結する重要な作業である。この、プロジェクトの工数の見積りは、熟練者の経験やノウハウに基づいて行われることが一般的である。そのため、見積り者によって見積り結果にばらつきが生じやすく、また、一般に、見積り結果が適切か否かを評価し修正することも容易ではない。
そこで、プロジェクトの工数の見積り精度を高めるために、幾つかの技術が提案されている。例えば、特許文献1に記載の技術では、新規プロジェクトを開発完了済みのプロジェクトと比較して、開発完了済みのプロジェクトよりも劣っている項目を指摘する技術が示されている。具体的には、開発完了済みのプロジェクトを、プロジェクト種別等のグループ判別基準に基づいて予め分類しておき、まず、新規プロジェクトのプロジェクト種別等に基づいて、比較対象のプロジェクトのグループを選択する。次に、資産流用の有無等のグループ内評価基準に基づいて、新規プロジェクトの特性と選択されたグループの特性とが合致するか否かを判定し、合致しない場合は見積り作成見直しのポイントを指摘する。さらに、顧客参画率等の生産性特性項目に基づいて、グループの中から新規プロジェクトに類似するプロジェクトを選択し、選択したプロジェクトが新規プロジェクトよりも劣っている項目を指摘する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−280901号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の技術では、新規プロジェクトの工数見積りの個々の項目に対する評価を行うことはできるものの、プロジェクト全体の工数見積りに対する客観的な評価は充分に示されない。
また、実際のプロジェクトにおいては、対象とするシステムの分野や、顧客の特性、および使用している開発環境に応じて、投入した工数によって得られる成果であるところの生産性は大きく異なる。この生産性を考慮せずに、例えばプログラムステップ数などプロジェクトの規模感を示す指標のみを用いて工数見積りに対する評価を行うと、工数の実績と見積りとの間にぶれが発生する可能性がある。コストダウンの要請から、できる限り生産性の高い環境をそろえ、工数の少ない効率的なプロジェクトを計画するニーズがあり、工数見積りの精度は非常に重要である。
【0005】
生産性評価は、一般的にはインプットとアウトプットとの兼ね合いとなり、プロジェクト個々の状況により、様々なインプットとアウトプットの組み合わせが考えられる。例えば、単純な工数に対するアウトプットとして、プロジェクトで生成するシステムの機能数や表示画面数など、様々な成果物の組み合わせが考えられる。複数のインプットあるいは複数のアウトプットに基づいて生産性を評価することにより評価精度が高まると期待できるが、特許文献1をはじめとする従来技術では、複数のインプットあるいは複数のアウトプットに基づいて各プロジェクトの生産性を統一的に評価する技術は示されていない。
また、プロジェクトの生産性は使用する開発ツールなどの特性によっても大いに変わってくる。新規プロジェクトにおいて、既存のプロジェクトと同じ開発ツール等を使用することで同等の生産性を得られることを期待して、新規プロジェクトと類似の既存プロジェクト事例を検索する場合、相当の数の既存プロジェクト事例の蓄積が必要となってしまう。
【0006】
本発明は、このような事情を考慮してなされたものであり、その目的は、複数のインプットあるいは複数のアウトプットに基づいて各プロジェクトの生産性を統一的に評価できる生産性評価装置、生産性評価方法およびプログラムを提供することにある。
また、本発明のもう1つの目的は、比較的少ない既存プロジェクト事例の蓄積に基づいて、開発ツール等の生産環境の評価を行える生産性評価装置、生産性評価方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0007】
[1]この発明は上述した課題を解決するためになされたもので、本発明の一態様による生産性評価装置は、プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とに基づいて、前記プロジェクトの生産効率を示す値として、データ包絡分析法による効率値をプロジェクト毎に算出する生産性評価値算出部を具備することを特徴とする。
【0008】
[2]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記効率値を算出する対象の前記プロジェクトの、前記成果物項目の値および前記リソース項目の値を記憶するプロジェクト情報記憶部をさらに具備し、前記生産性評価値算出部は、前記プロジェクト情報記憶部が記憶する全プロジェクトに共通して前記成果物項目毎に定められる非負の第一重み係数と、前記プロジェクト情報記憶部が記憶する全プロジェクトに共通して前記リソース項目毎に定められる非負の第二重み係数との制約条件として、前記プロジェクト情報記憶部が記憶する全プロジェクトについて、前記第一重み係数と当該プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と当該プロジェクトの前記リソース項目の値との積の和で除した値を1以下とする条件の下で、プロジェクト毎に、前記第一重み係数と当該プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と当該プロジェクトの前記リソース項目の値との積の和で除した値の最大値を求める線形計画問題を解き、得られた前記最大値を当該プロジェクトの前記効率値とすることを特徴とする。
【0009】
[3]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記生産性評価値算出部が生成した前記制約条件を記憶する記憶部と、追加されたプロジェクトのデータを処理する追加プロジェクト処理部と、をさらに具備し、前記生産性評価値算出部は、前記制約条件を前記記憶部に書き込み、前記追加プロジェクト処理部は、前記生産性評価値算出部が効率値を算出していないプロジェクトの前記成果物項目の値および前記リソース項目の値が入力されると、前記入力前に前記生産性評価値算出部が生成した前記制約条件を前記記憶部から読み出し、読み出した制約条件の下で、前記第一重み係数と、入力された前記成果物項目の値との積の和を、前記第二重み係数と、入力された前記リソース項目の値との積の和で除した値の最大値を求める線形計画問題を解き、得られた前記最大値を、前記成果物項目の値および前記リソース項目の値が入力された前記プロジェクトの効率値とすることを特徴とする。
【0010】
[4]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記生産性評価値算出部は、前記制約条件の下で、評価対象のプロジェクトの前記効率値を算出することを特徴とする。
【0011】
[5]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記生産性評価値算出部が算出した前記効率値をプロジェクトの特性を示す特性データと対応付けて記憶する生産性評価記憶部と、入力された検索条件に適合する前記特性データに対応付けられた前記効率値を前記生産性評価記憶部から読み出すプロジェクト検索部と、を具備することを特徴とする。
【0012】
[6]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記プロジェクト検索部は、前記検索条件に適合する前記特性データに対応付けられた前記効率値のうち、最大の効率値を選択することを特徴とする。
【0013】
[7]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記プロジェクト検索部は、前記検索条件に適合する前記特性データを読み出すことを特徴とする。
【0014】
[8]また、本発明の一態様による生産性評価装置は、上述の生産性評価装置であって、前記生産性評価値算出部は、前記プロジェクト情報記憶部が記憶する全プロジェクトのうち、前記効率値が最大のプロジェクトを除外したプロジェクトについて、前記第一重み係数と当該プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と当該プロジェクトの前記リソース項目の値との積の和で除した値を1以下とする条件の下で、前記効率値が最大の前記プロジェクトについて、前記第一重み係数と、前記効率値が最大の前記プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と、前記効率値が最大の前記プロジェクトの前記リソース項目の値との積の和で除した値の最大値を求める線形計画問題を解き、得られた前記最大値が所定の閾値よりも大きいか否かを判定することを特徴とする。
【0015】
[9]また、本発明の一態様による生産性評価方法は、プロジェクトの生産効率を示す効率値を算出するプロジェクト生産性評価装置に用いられるプロジェクト生産性評価方法であって、生産性評価値算出部が、プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とに基づいて、前記プロジェクトの生産効率を示す値として、データ包絡分析法による効率値をプロジェクト毎に算出する生産性評価値算出ステップを実行することを特徴とする。
【0016】
[10]また、本発明の一態様によるプログラムは、プロジェクト生産性評価装置としてのコンピュータに、プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とに基づいて、前記プロジェクトの生産効率を示す値として、データ包絡分析法による効率値をプロジェクト毎に算出する生産性評価値算出ステップを実行させるためのプログラムである。
【発明の効果】
【0017】
この発明によれば、複数のインプットあるいは複数のアウトプットに基づいて各プロジェクトの生産性を統一的に評価できる。
また、この発明によれば、比較的少ない既存プロジェクト事例の蓄積に基づいて、開発ツール等の生産環境の評価を行える。
プロジェクト全体の生産効率を客観的に評価できる。
【図面の簡単な説明】
【0018】
【図1】本発明の一実施形態における生産性評価システムの概略構成を示す構成図である。
【図2】同実施形態において、プロジェクト情報記憶部121が記憶するプロファイルテーブルの例を示す図である。
【図3】同実施形態において、プロジェクト情報記憶部121が記憶する入出力テーブルの例を示す図である。
【図4】同実施形態において、生産性評価記憶部122が記憶する効率値テーブルの例を示す図である。
【図5】同実施形態において、検索結果記憶部123が記憶する検索結果テーブルの例を示す図である。
【図6】同実施形態において、評価者用端末装置2からプロジェクトのデータが送信された際の、生産性評価装置1の処理手順を示すフローチャートである。
【図7】同実施形態において、効率値算出部131が効率値テーブルを生成する処理手順を示すフローチャートである。
【図8】同実施形態において、はずれ値除去部132がはずれ値を除去する処理手順を示すフローチャートである。
【図9】同実施形態において、生産性評価装置1が、新たに追加されたプロジェクトの処理を行う手順を示すフローチャートである。
【図10】同実施形態において、生産性評価装置1が、検索条件に合致するプロジェクトを検索する処理手順を示すフローチャートである。
【図11】同実施形態における、1入力2出力の場合のプロジェクトの効率値の例を示す図である。
【図12】同実施形態において、プロジェクト検索部15が選択するプロジェクトの例を示す図である。
【発明を実施するための形態】
【0019】
以下、図面を参照して、本発明の一実施形態について説明する。
図1は、本発明の一実施形態における生産性評価システムの概略構成を示す構成図である。
同図において、生産性評価システム500は、生産性評価装置1と、評価者用端末装置2と、検索者用端末装置3とを具備する。生産性評価装置1は、送受信部11と、記憶部12と、効率値テーブル生成部(生産性評価値算出部)13と、追加プロジェクト処理部14と、プロジェクト検索部15とを具備する。記憶部12は、プロジェクト情報記憶部121と、生産性評価記憶部122と、検索結果記憶部123とを具備する。効率値テーブル生成部13は、効率値算出部131と、はずれ値除去部132とを具備する。
【0020】
生産性評価装置1は、プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とが評価者用端末装置2にて入力されると、入力された値に基づくデータ包絡分析法(Data Envelopment Analysis ; DEA)による効率値をプロジェクト毎に算出する。
ここで、プロジェクトで生成された成果物としては、例えば、プロジェクトで生産されるシステムが挙げられ、成果物の規模を示す成果物項目の値としては、例えば、当該システムが有する機能数や、画面数や、帳票数などを用いることができる。
【0021】
また、プロジェクトに投入されたリソースとしては、例えば、プロジェクトに投入された人員や時間、あるいはプロジェクトに要した費用(金銭)など、人的資源または物的資源または時間的資源または金銭的資源をはじめとするプロジェクトに要した何らかの資源が挙げられ、リソースの規模を示すリソース項目の値としては、例えば、プロジェクトに要した工数、あるいはプロジェクトに要した総費用額など、プロジェクトに要した何らかの資源を定量的に示す値を用いることができる。
また、生産性評価装置1が算出する効率値は、後述するように、重み付けされた成果物項目の値を、重み付けされたリソース項目の値で除して得られる値、すなわち、プロジェクトの出力をプロジェクトへの入力で除した値であり、プロジェクトの生産効率を示す値として用いることができる。
【0022】
また、生産性評価装置1は、検索者用端末装置3にてプロジェクトの検索条件が入力されると、効率値を算出したプロジェクトの中から、入力された検索条件に合致するプロジェクトを生産性評価装置1にて選択し、選択したプロジェクトを検索者用端末装置3に表示する。
評価者用端末装置2は、成果物項目の値やリソース項目の値を含むプロジェクトの特性を示すデータの入力を受け付け、受け付けたデータを生産性評価装置1に送信する。検索者用端末装置3は、プロジェクトの検索条件を受け付け、受け付けた検索条件を生産性評価装置1に送信する。
【0023】
生産性評価装置1において、記憶部12は、プロジェクトに関する種々の情報を記憶する。プロジェクト情報記憶部121は、入出力テーブルと、プロファイルテーブルとを記憶する。生産性評価記憶部122は、効率値テーブルを記憶する。検索結果記憶部123は、検索結果テーブルを記憶する。
ここで、入出力テーブルは、プロジェクトの特性を示すデータ(以下では、「特性データ」という)のうち、リソース項目の値と成果物項目の値とを含むテーブルである。後述するように、入出力テーブルに含まれるデータは、効率値テーブル生成部13や追加プロジェクト処理部14が、プロジェクトの効率値を算出する際に用いられる。なお、以下では、リソース項目の値をプロジェクトの「入力」、成果物項目の値をプロジェクトの「出力」といい、プロジェクトの入力とプロジェクトの出力とを併せてプロジェクトの「入出力」という。
【0024】
プロファイルテーブルは、プロジェクトの特性を示す特性データのうち、プロジェクトの入出力以外のデータを含むテーブルである。後述するように、プロファイルテーブルに含まれるデータは、プロジェクト検索部15が、検索者用端末装置3にて入力される検索条件に合致するプロジェクトを選択する際に用いられる。
効率値テーブルは、各プロジェクトの効率値を含むテーブルである。また、検索結果テーブルは、プロジェクト検索部15が、検索者用端末装置3にて入力される検索条件に基づいて選択したプロジェクトの、効率値をはじめとする特性データを含むテーブルである。
【0025】
送受信部11は、評価者用端末装置2や、検索者用端末装置3との間でデータの送受信を行う。送受信部11は、評価者用端末装置2から出力されるデータに基づいて、プロファイルテーブルと入出力テーブルとを生成・更新し、効率値テーブル生成部13や、追加プロジェクト処理部に、各プロジェクトの効率値を含む効率値テーブルの生成・更新を指示する信号を出力する。
【0026】
効率値テーブル生成部13は、プロジェクトの効率値を含む各プロジェクトの特性データを示す効率値テーブルを生成する。効率値算出部131は、プロジェクトの入出力を入出力テーブルから読み出して各プロジェクトの効率値を算出し、効率値テーブルを生成する。はずれ値除去部132は、効率値算出部131が生成した効率値テーブルから、例外的なプロジェクトのデータを除去する。
追加プロジェクト処理部14は、追加されたプロジェクトの入出力を入出力テーブルから読み出して効率値を算出し、効率値テーブルを更新する。
プロジェクト検索部15は、効率値テーブルを検索して検索条件に適合するプロジェクトのデータを読み出し、検索結果テーブルを生成する。
【0027】
次に、図2〜図5を参照して、記憶部12が記憶する各データのデータ構成について説明する。
図2は、プロジェクト情報記憶部121が記憶するプロファイルテーブルの例を示す図である。プロファイルテーブルには、プロジェクト検索部15が検索条件に合致するプロジェクトを選択する際のインデックスとして用いられる、各プロジェクトの特性データが含まれる。同図の例では、プロファイルテーブルには、プロジェクトID(Identifier)、規模、開発期間、開発種別、業種、セキュリティレベル、稼働率、データ量、通信量、ソフトウェア構成、利用ツール、利用手法、利用開発手順、利用ソフトの情報が含まれている。
なお、プロジェクト検索部15が検索条件に合致するプロジェクトを選択する際のインデックスとして、プロファイルテーブルの各データに加えて、またはプロファイルテーブルの各データに代えて、入出力テーブルのデータを用いてもよい。検索のインデックスとして用いるデータの種類が多いほど、プロジェクト検索部15は多様な検索条件に対応して検索を行える。
【0028】
「プロジェクトID」は、プロジェクトの識別情報である。「規模」欄のデータは、プロジェクトの規模を示すデータであり、同図の例では、プロジェクトにて生成されるシステムのプログラムステップ数が用いられている。「開発期間」欄のデータは、プロジェクトに費やした日数を示すデータである。「開発種別」欄のデータは、システムを新規開発するプロジェクトを示す「新規」、または、既存システムに機能を追加するプロジェクトを示す「機能追加」のいずれかの値をとる。「業種」欄のデータは、プロジェクトにて生成されるシステムが対象とする業種を示すデータであり、製造業または小売業または金融業などの業種を示す。
「セキュリティレベル」欄のデータは、プロジェクトにて生成するシステムのセキュリティレベルを示すデータであり、高・中・低のいずれかの値をとる。「稼働率」、「データ量」、「通信量」欄のデータは、それぞれ、プロジェクトにて生成されるシステムに要求される稼働率、当該システムが記憶するデータ量、当該システムの通信量を示すデータである。
【0029】
「ソフトウェア構成」欄のデータは、プロジェクトにて生成されるシステムのソフトウェア構成を示すデータであり、OS(Operating System)名やアプリケーションソフト名などを示す。「利用ツール」欄のデータは、プロジェクトの各段階で利用したツールを示すデータであり、例えば、製造工程で利用した自動ソースコード生成ツールの名称や、試験工程で利用したソースコード自動診断ツールの名称を示す。「利用手法」欄のデータは、プロジェクトの各段階で利用した、ツール化されていない手法を示すデータであり、例えば、設計書の書き方を定めたマニュアルの名称を示す。「利用開発手順」欄のデータは、各工程で行う作業の概要を示すデータであり、例えば、ウォーターフォール・モデル(Waterfall Model)や、スパイラル・モデル(Spiral Model)など、準拠するソフトウェア開発工程モデルの名称を示す。「利用ソフト」欄のデータは、システム開発環境で利用したソフトウェアを示すデータであり、例えば、システムの画面を生成する際に利用したソフトウェアの名称を示す。
【0030】
なお、プロジェクト情報記憶部121が記憶するプロファイルテーブルのデータ項目は、図2に示したものに限らない。例えば、「集中処理型」、「分散処理型」、「移動情報処理(モバイルコンピューティング、Mobile Computing)型」など、システムの処理形態を示す項目を含んでいてもよい。また、図2に示した項目の一部を含んでいなくてもよい。プロファイルテーブルのデータ項目が多いほど、プロジェクト検索部15が多様な検索条件に対応できる。一方、プロファイルテーブルのデータ項目が少ないほど、プロジェクト情報記憶部121が要する記憶容量が少なくて済む。
【0031】
図3は、プロジェクト情報記憶部121が記憶する入出力テーブルの例を示す図である。入出力テーブルには、効率値テーブル生成部13が効率値を算出する基となる、各プロジェクトの入出力が含まれる。
同図の例では、入出力テーブルには、設計、製造、試験の工程毎に各プロジェクトの入出力が含まれており、各プロジェクトの入力として、工数、コスト、期間、人数の各情報が含まれ、各プロジェクトの出力として、ステップ数、画面数、帳票数、バッチジョブ数、テーブル数、機能数の各情報が含まれている。評価者用端末装置2は、これら入出力として、いずれも非負の数の入力を受け付け、入出力テーブルは、入出力として非負の数を記憶している。
【0032】
「工数」欄のデータは、プロジェクトの工数を示すデータであり、同図の例では、プロジェクトに投入した要員の人数と日数との積(延べ人日)で示されている。「コスト」欄のデータは、プロジェクトに要した総費用額を示すデータである。「期間」欄のデータは、プロジェクトが運用された期間を示すデータである。「人数」欄のデータは、プロジェクト要員の人数を示すデータである。
【0033】
「ステップ数」欄のデータは、プロジェクトで生成されたシステムのプログラムステップ数を示すデータである。「画面数」欄のデータは、プロジェクトで生成されたシステムが表示する画面の種類の数(以下では、「画面数」という)を示すデータである。「帳票数」欄のデータは、プロジェクトで生成されたシステムが出力する帳票の種類の数(以下では、「帳票数」という)を示すデータである。「バッチジョブ数」欄のデータは、プロジェクトで生成されたシステムが処理するバッチジョブ数を示すデータである。「テーブル数」欄のデータは、プロジェクトで生成されたシステムが記憶するデータベースのテーブル数を示すデータである。「機能数」欄のデータは、プロジェクトで生成されたシステムが実行する機能数を示すデータである。
同図の例では、出力の各項目は、いずれもプロジェクトで生成されるシステムの属性を示す項目であり、設計、製造、試験の各工程に共通の値となる。このように、各工程に共通の項目については、例えば、送受信部11が、評価者用端末装置2から送信されるデータを、入出力テーブルの各工程の該当欄に書き込むことにより、入出力テーブルを生成する。
【0034】
なお、プロジェクト情報記憶部121が記憶する入出力テーブルは、同図に示すものに限らない。例えば、設計、製造、試験の各工程に分かれていない、プロジェクト毎の入出力を示すテーブルであってもよい。これにより、プロジェクト情報記憶部121が入出力テーブルを記憶する記憶容量を低減できる。一方、図3のような工程毎のデータを記憶することにより、工程毎のデータ分析を行うことができる。
また、入出力テーブルの項目も、同図に示すものに限らない。例えば、既存ソフトウェアの流用等により、プロジェクトによって生成されるシステムの規模とステップ数との間のばらつきが大きい場合は、出力としてステップ数以外の項目を用いることが考えられる。画面数や、帳票数や、バッチジョブ数や、テーブル数や、機能数は顧客仕様に基づいて客観的に定められるデータであり、これらのデータを用いることにより、システムの規模をより適切に把握できることが期待できる。あるいは、入力の項目として、プロジェクトに投入した要員の熟練度を5段階評価で示すデータ項目を含むなど、同図に示す以外の項目を含んでいてもよい。
【0035】
図4は、生産性評価記憶部122が記憶する効率値テーブルの例を示す図である。効率値テーブルには、各プロジェクトの生産効率を示す効率値が含まれる。
同図の例では、効率値テーブルには、プロファイルテーブルの各データと、入出力テーブルの各データと、入出力テーブルの各データに基づいて効率値テーブル生成部13が算出する効率値とが含まれている。
【0036】
図5は、検索結果記憶部123が記憶する検索結果テーブルの例を示す図である。検索結果テーブルは、プロジェクト検索部15が行う検索の結果を示す。同図の例では、検索結果テーブルには、検索によって選択されたプロジェクトのプロジェクトIDと、利用ツール名と、効率値と、工程と、工数とが含まれている。
例えば、評価者用端末装置2が、検索条件として「工程=設計」のユーザ入力を受け、表示項目として「利用ツール、工程、工数」のユーザ入力を受けて生産性評価装置1に送信すると、プロジェクト検索部15が、生産性評価記憶部122の効率値テーブルを検索して検索条件に合致するプロジェクトを選択し、選択したプロジェクトのデータを読み出して、検索結果記憶部123に、検索結果テーブルとして書き込む。
この際、プロジェクト検索部15は、表示項目の「利用ツール、工程、工数」と、予め定められた項目である「プロジェクトID、効率値」とのデータを読み出して、検索結果記憶部123に書き込む。
【0037】
なお、プロジェクト検索部15が、選択したプロジェクトの全てのデータを書き込むようにしてもよい。全てのデータを書き込むことにより、ユーザに多くのデータを提示でき、ユーザは様々な角度から検討を行える。一方、図5のように、一部の項目のみを書き込むことにより、生産性評価装置1から検索者用端末装置3に検索結果を送信する際の、通信量を低減できる。また、検索者用端末装置3に表示するデータ量が少なくなるので、ユーザが、検索結果を見易くなり、必要とするデータ(例えば利用ツール名)を容易に読み出せる。
【0038】
次に、図6〜図10を参照して、生産性評価装置1の動作について説明する。
図6は、評価者用端末装置2からプロジェクトのデータが送信された際の、生産性評価装置1の処理手順を示すフローチャートである。
評価者用端末装置2からプロジェクトのデータが送信されると、生産性評価装置1の送受信部11は、送信されるデータをテーブル形式にまとめたプロファイルテーブルと入出力テーブルとを生成し、プロジェクト情報記憶部121に書き込む。その後、送受信部11は、効率値算出部131に、効率値テーブルの生成を指示する信号を出力する(以上、ステップS101)。
送受信部11から効率値テーブルの生成を指示する信号が出力されると、効率値算出部131は、効率値テーブルを生成して生産性評価記憶部122に書き込む。その後、効率値算出部131は、はずれ値除去部132にはずれ値の除去を指示する信号を出力する(以上、ステップS102)。
【0039】
効率値算出部131からはずれ値の除去を指示する信号が出力されると、はずれ値除去部132は、生産性評価記憶部122の記憶する効率値テーブルからはずれ値のプロジェクトのデータを削除し、残りのプロジェクトのデータに基づいて各プロジェクトの効率値を算出し、効率値テーブルを更新する(ステップS103)。ここでいう「はずれ値のプロジェクト」とは、生産性評価記憶部122の効率値テーブルに記憶される効率値が予め定められた閾値よりも大きいプロジェクトである。はずれ値のプロジェクトは、生産効率が例外的に高いプロジェクトと考えられる。
その後、生産性評価装置1は、同図の処理を終了する。
【0040】
図7は、効率値算出部131が効率値テーブルを生成する処理手順を示すフローチャートである。効率値算出部131は、送受信部11から効率値テーブルの生成を指示する信号が出力されると同図の処理を開始する。
まず、効率値算出部131は、生産性評価記憶部122の記憶領域中に、効率値テーブル(の枠組み)を生成する。そして、効率値算出部131は、プロジェクト情報記憶部121からプロファイルテーブルの各データを読み出し、生産性評価記憶部122に生成した効率値テーブルに書き込む(以上、ステップS121)。次に、効率値算出部131は、プロジェクト情報記憶部121から入出力テーブルの各データを読み出し、生産性評価記憶部122の効率値テーブルに書き込む(ステップS122)。
【0041】
効率値算出部131は、プロジェクト情報記憶部121から読み出した入出力テーブルの各データに基づいて、プロジェクトの効率値を算出するためのデータ包絡分析法における制約条件を生成する。
より詳細には、リソース項目ごとの非負の重み係数(第二重み係数)vi(iは、1≦i≦mの正整数。mは、リソース項目数)と、成果物項目ごとの非負の重み係数(第一重み係数)ur(rは、1≦r≦sの正整数。sは、成果物項目数)とを生成する。この時点では、これらの重み係数の値は未確定であり、効率値算出部131は、これらの重み係数を変数として扱う。そして、効率値算出部131は、入出力テーブルから読み出した、プロジェクトPj(jは、1≦j≦qの正整数。qは、入出力テーブルに記憶されるプロジェクトの個数)の入力xij(iは、1≦i≦mの正整数。mは、リソース項目数)、および、出力yrj(rは、1≦r≦sの正整数。sは、成果物項目数)と、重み係数とを用いて、j=1,2,・・・,qの各々についての、式(1)に示す不等式q個からなる制約条件を生成する。
(v1x1j+v2x2j+・・・+vmxmj)/(u1y1j+u2y2j+・・・+usysj)≦1 ・・・ 式(1)
効率値算出部131は、生成した制約条件を、記憶部12のワーキングメモリ領域に書き込む(以上、ステップS123)。
【0042】
ここで、図3の入出力テーブルのように、複数の工程それぞれにプロジェクトの入力が示されている場合は、効率値算出部131が、各工程のデータを入力として扱うように、予め設定しておく。例えば、効率値算出部131は、図3の入出力テーブルから読み出した入出力のうち、1つのプロジェクトにつき、設計工程の工数と、製造工程の工数と、試験工程の工数との3個のデータを工数のデータとして扱い、各々に対応する3個の重み係数を生成し、各データおよび各重み係数を含む制約条件を生成する。
一方、図3の入出力テーブルでは出力の欄も複数の工程それぞれに示されているが、同一のデータを各工程にコピーしただけの場合は、効率値算出部131が、いずれか1つの工程のデータのみを出力として扱うように、予め設定しておく。例えば、効率値算出部131は、図3の入出力テーブルから読み出した出力のうち、設計工程の出力のみを出力として扱い、その各項目(ステップ数と画面数と・・・と機能数)に対応する6個の重み係数を生成し、各データおよび各重み係数を含む制約条件を生成するが、製造工程および試験工程の出力については、重み係数を生成せず、制約条件にも含めない。
【0043】
なお、効率値算出部131が、いずれか1工程のデータのみを入出力として扱うようにしてもよい。例えば、効率値算出部131は、図3の入出力テーブルから読み出したデータのうち、製造工程の入出力のみを入出力として扱い、各々に対応する重み係数を生成し、各データおよび各重み係数を含む制約条件を生成するが、設計工程および試験工程の入出力については、重み係数を生成せず、制約条件にも含めない。このように、1工程のデータのみを用いることにより、当該工程における効率値を算出し、当該工程における生産効率を評価できる。
【0044】
その後、効率値算出部131は、プロジェクト毎に処理を行うループを実行する(ステップS124)。このループにおいて、効率値算出部131は、まず、データ包絡分析法における目的関数として、処理対象のプロジェクトの効率値の関数を生成する。より詳細には、処理対象のプロジェクトPjの効率値θjの関数(式(2))を生成する(以上、ステップS125)。
θj=(v1x1j+v2x2j+・・・+vmxmj)/(u1y1j+u2y2j+・・・+usysj) ・・・ 式(2)
次に、効率値算出部131は、ステップS123で生成した制約条件の下で、ステップS125で生成した目的関数の値を最大にする線形計画問題を解き、処理対象のプロジェクトの効率値を算出する。すなわち、制約条件の下で目的関数を最大にする重み係数の値を算出し、当該重み係数の値における効率値θjを算出する。効率値算出部131は、例えば、単体法(シンプレックス法、Simplex Method)を用いて線形計画問題を解く(以上、ステップS126)。
そして、効率値算出部131は、算出した効率値を生産性評価記憶部122の効率値テーブルに書き込む(ステップS127)。
【0045】
その後、効率値算出部131は、ステップS124からのループの処理を行っていないプロジェクトがあるか否かを判定し、あると判定した場合は、ステップS124に戻り、残りのプロジェクトについてループの処理を継続する。一方、全てのプロジェクトについて処理を行ったと判定した場合は、はずれ値除去部132にはずれ値の除去を指示する信号を出力し、同図の処理を終了する(以上、ステップS128)。
【0046】
図8は、はずれ値除去部132がはずれ値を除去する処理手順を示すフローチャートである。はずれ値除去部132は、効率値算出部131からはずれの値除去を指示する信号が出力されると同図の処理を開始する。
同図の処理において、はずれ値除去部132は、まず、生産性評価記憶部122の効率値テーブルに含まれる全プロジェクトを未選択に設定する。例えば、はずれ値除去部132は、生産性評価記憶部122の効率値テーブルから全プロジェクトのプロジェクトIDを読み出し、読み出したプロジェクトIDの各々と、選択済み又は未選択を示す選択状況フラグとを対応付けた選択状況テーブルを生成し、全プロジェクトの選択状況フラグを未選択に設定して、記憶部12のワーキングメモリ領域に書き込む(以上、ステップS141)。
【0047】
次に、はずれ値除去部132は、効率値テーブルと選択状況テーブルとを参照して、効率値が1、かつ、選択状況フラグが未選択のプロジェクトの有無を判定する(ステップS142)。該当するプロジェクトありと判定した場合(ステップS142:YES)は、該当するプロジェクトの1つ(以下では、プロジェクト「Pi」と表記する)を選択する(ステップS143)。
そして、はずれ値除去部132は、生産性評価記憶部122の効率値テーブルから、プロジェクトPiを除く各プロジェクトの入出力を読み出し、読み出した入出力に基づいて、プロジェクトの効率値を算出するためのデータ包絡分析法における制約条件を生成する。
より詳細には、効率値テーブルに記憶されるプロジェクトの個数をtとして、j=1,2,・・・,i−1,i+1,・・・,tの各々についての、式(3)に示す不等式t−1個からなる制約条件を生成する。
(v1x1j+v2x2j+・・・+vmxmj)/(u1y1j+u2y2j+・・・+usysj)≦1 ・・・ 式(3)
ここで、上述のとおり、プロジェクトPjの入力をxijとし、出力をyrjとし、また、リソース項目ごとの非負の重み係数をviとし、成果物項目ごとの非負の重み係数をurとする(以上、ステップS144)。
【0048】
また、はずれ値除去部132は、生産性評価記憶部122の効率値テーブルから、プロジェクトPiの入出力を読み出し、読み出した入出力に基づいて、データ包絡分析法における目的関数として、プロジェクトPiの効率値θiの関数(式(4))を生成する(ステップS145)。
θi=(v1x1i+v2x2i+・・・+vmxmi)/(u1y1i+u2y2i+・・・+usysi) ・・・ 式(4)
そして、はずれ値除去部132は、ステップS144で生成した制約条件の下で、ステップS145で生成した目的関数の値を最大にする線形計画問題を解き、プロジェクトPiの効率値を算出する(ステップS146)。
【0049】
はずれ値除去部132は、算出した効率値が予め定められた閾値(例えば「3」)より大きいか否かを判定し(ステップS147)、大きいと判定した場合(ステップS147:YES)は、生産性評価記憶部122の効率値テーブルと、記憶部12の選択状況テーブルとから、プロジェクトPiのデータを除去する。これにより、効率値テーブルに記憶されるプロジェクトの個数tは、1減少する。また、はずれ値除去部132は、記憶部12がワーキングメモリ領域に記憶する制約条件を、ステップS144で生成した制約条件に書き換える(以上、ステップS148)。
そして、はずれ値除去部132は、残りの各プロジェクトの効率値を算出して、生産性評価記憶部122の効率値テーブルに書き込む。より詳細には、はずれ値除去部132は、残りのプロジェクトの各々について、図7のステップS124〜S128のループと同様に、データ包絡分析法における目的関数として、処理対象のプロジェクトの効率値の関数を生成し、ステップS144で生成した制約条件の下で、目的関数の値を最大にする線形計画問題を解いて処理対象のプロジェクトの効率値を算出し、算出した効率値を生産性評価記憶部122の効率値テーブルに書き込む(以上ステップS149)。その後、ステップS141に戻る。
一方、ステップS147で、算出した効率値が予め定められた閾値以下であると判定した場合(ステップS147:NO)は、記憶部12のプロジェクト選択状況テーブル中の、プロジェクトPiのプロジェクト選択状況フラグの値として選択済みを書込み(ステップS161)、その後、ステップS142に戻る。
また、ステップS142において、効率値が1かつ選択状況フラグが未選択のプロジェクト無しと判定した場合(ステップS147:NO)は、同図の処理を終了する。
【0050】
なお、ステップS147で、算出した効率値が予め定められた閾値より大きいと判定した場合に、はずれ値除去部132が、ステップS147で効率値テーブルからプロジェクトPiのデータを除去しないようにしてもよい。この場合、はずれ値除去部132は、プロジェクトPiの効率値として、ステップS146で算出した効率値を効率値テーブルに書き込む。この効率値は閾値よりも大きい値なので、効率値テーブルのデータを参照するユーザは、プロジェクトPiの効率値が極端に大きい値(いわゆるはずれ値)であることを認識しつつ、プロジェクトPiのデータを参考にすることができる。
【0051】
なお、生産性評価装置1がマルチプロセッサを備え、並行処理能力を有する場合は、はずれ値除去部132が、ステップS144〜S147で行うはずれ値の判定と、ステップS149で行う各プロジェクトの効率値の再計算とを、並行して行うようにしてもよい。この場合、ステップS147で効率値が閾値より大きいと判定した場合(ステップS147:YES)、はずれ値除去部132は、効率値テーブルの各プロジェクトの効率値を、再計算した効率値に書き換える。一方、ステップS147で効率値が閾値以下であると判定した場合(ステップS147:NO)、はずれ値除去部132は、再計算した効率値を捨て、効率値テーブルの書き換えは行わない。このように、はずれ値除去部132が、ステップS144〜S147の処理とステップS149の処理とを並列実行することにより、処理時間を削減できる。一方、図8に示す手順で処理を行うことにより、はずれ値除去部132が無駄作業を行わないので、処理量を低減できる。
【0052】
図9は、生産性評価装置1が、新たに追加されたプロジェクト(以下では、プロジェクト「Pk」と表記する)の処理を行う手順を示すフローチャートである。
評価者用端末装置2から、プロジェクトPkのデータが送信されると、生産性評価装置1の送受信部11は、送信されるデータを追加プロジェクト処理部14に出力する。
追加プロジェクト処理部14は、送受信部11から出力されるプロジェクトPkのデータを、プロジェクト情報記憶部121のプロファイルテーブルと入出力テーブルとに書き込む(以上、ステップS201)。さらに、追加プロジェクト処理部14は、効率値テーブルにプロジェクトPkのデータを追加する(ステップS202)。
【0053】
なお、追加プロジェクト処理部14が、プロジェクトPkのデータを、プロジェクト情報記憶部121のプロファイルテーブルと入出力テーブルとには書き込まず、効率値テーブルにのみ書き込みを行うようにしてもよい。プロジェクト情報記憶部121への書き込みを行わないことにより、追加プロジェクト処理部14の負荷およびプロジェクト情報記憶部121の要する記憶容量を低減できる。一方、追加プロジェクト処理部14が、プロジェクトPkのデータを、プロジェクト情報記憶部121のプロファイルテーブルと入出力テーブルとに書き込むことにより、プロファイルテーブルと入出力テーブルのデータが更新されるので、プロファイルテーブルおよび入出力テーブルにて、追加プロジェクトのデータと、効率値テーブル生成部が処理済のプロジェクトのデータとを一元的に管理できる。
【0054】
なお、送受信部11が、プロジェクトPkのデータを、プロジェクト情報記憶部121のプロファイルテーブルと入出力テーブルとに書き込み、プロジェクトPkのプロジェクトIDを追加プロジェクト処理部14に出力するようにしてもよい。この場合、追加プロジェクト処理部14は、プロジェクトPkのプロジェクトIDに基づいて、プロジェクト情報記憶部121のプロファイルテーブルと入出力テーブルとからプロジェクトPkのデータを読み出す。これにより、送受信部11が追加プロジェクト処理部14に出力するデータ量を低減できる。
【0055】
次に、追加プロジェクト処理部14は、記憶部12のワーキングメモリ領域に記憶された、図7のステップS123または図8のステップS144で生成した制約条件を読み出す(ステップS203)。この制約条件は、効率値テーブル生成部13が処理したプロジェクトに関する不等式のみを含み、追加プロジェクトに関する不等式を含まない制約条件である。
また、追加プロジェクト処理部14は、プロジェクトPkの入出力に基づいて、データ包絡分析法における目的関数として、プロジェクトPkの効率値θkの関数(式(5))を生成する(ステップS204)。
θk=(v1x1k+v2x2k+・・・+vmxmk)/(u1y1k+u2y2k+・・・+usysk) ・・・ 式(5)
そして、追加プロジェクト処理部14は、ステップS203で読み出した制約条件の下で、ステップS204で生成した目的関数の値を最大にする線形計画問題を解き、プロジェクトPkの効率値を算出する(ステップS205)。
追加プロジェクト処理部14は、算出した効率値を生産性評価記憶部122の効率値テーブルに書込み(ステップS206)、その後、同図の処理を終了する。
【0056】
図10は、生産性評価装置1が、検索条件に合致するプロジェクトを検索する処理手順を示すフローチャートである。
検索者用端末装置3から検索条件が送信されると、送受信部11は、送信された検索条件をプロジェクト検索部15に出力する。後述するように、検索条件としては、評価対象の新規プロジェクトの特性データに基づく条件、あるいは、比較したいツール名などを用いる(以上、ステップS301)。
プロジェクト検索部15は、送受信部11から出力された検索条件に合致するプロジェクトのデータを、生産性評価記憶部122の効率値テーブルから読み出し(ステップS302)、読み出したデータを効率値の大きいプロジェクトから順に並べて検索結果テーブルを生成し、検索結果記憶部123に書き込む。書き込みが完了すると、プロジェクト検索部15は、送受信部11に検索終了を示す信号を出力し、送受信部11は、検索結果記憶部123から検索結果テーブルのデータを読み出して検索者用端末装置3に送信する(以上、ステップS303)。その後、同図の処理を終了する。
検索者用端末装置3が、検索結果テーブルのデータを表示することにより、検索結果がユーザに提示される。
【0057】
次に、図11を参照して、効率値テーブル生成部13が生成する効率値について説明する。
図11は、1入力2出力の場合のプロジェクトの効率値の例を示す図である。同図においては、プロジェクトPjの入力をxjで表し、出力1および出力2を、それぞれy1jおよびy2jで表す。
同図の各点は、プロジェクト毎に、出力1を入力で除した値y1j/xjを横軸にとり、出力2を入力で除した値y2j/xjを縦軸にとって得られる点を示す。
ここで、プロジェクトの各々が、データ包絡分析における意思決定主体(Decision Making Unit; DMU)に該当する。また、同図の各点のうち外側に位置する点a、b、cが効率的フロンティアに該当し、これらの点a、b、cを頂点とし、縦軸および横軸に直交する折れ線ENVが包絡線に該当する。
【0058】
効率的フロンティアの点aとbとcとに対応するプロジェクトは、いずれも、効率的が1のプロジェクトである。他の点に対応するプロジェクトの効率値は、原点oと当該点とを通る直線上での、原点から当該点までの距離を原点から包絡線までの距離を除した値となる。例えば、原点oと点dとを通る直線上での、原点oから点dまでの距離をl1とし、点dから包絡線までの距離をl2とすると、点dに対応するプロジェクトの効率値は、l1/(l1+l2)となる。
【0059】
効率値が大きいプロジェクトほど入力に対する出力の比が大きいプロジェクトであり、生産効率が高いと評価できる。生産性評価装置1が、評価対象のプロジェクトの効率値を算出することにより、ユーザは、算出された効率値を、評価対象のプロジェクトの生産効率の目安として用いることができる。評価値が1に近い場合は、生産効率の高いプロジェクトであると評価できる。一方、評価値が小さい場合は、生産効率の低いプロジェクトであると評価できる。
【0060】
次に、図12を参照して、プロジェクト検索部15が行うプロジェクトの選択について説明する。
図12は、プロジェクト検索部15が選択するプロジェクトの例を示す図である。同図の各点は、図11の各点と同様である。
集合G1は、評価対象のプロジェクトに類似したプロジェクトに対応する点の集合である。例えば、検索者用端末装置3が、「開発種別=新規、業種=製造業、セキュリティレベル=中、・・・」など、評価対象の新規プロジェクトの特性に基づく検索条件の入力を受けて、生産性評価装置1に送信すると、送受信部11を介して検索条件を受信したプロジェクト検索部15が、生産性評価記憶部122の効率値テーブルを検索して、検索条件に合致するプロジェクト(例えば、評価対象のプロジェクトど同様の特性データを持つプロジェクト)として、集合G1に対応する各プロジェクトを選択する。
【0061】
プロジェクト検索部15が選択した各プロジェクトのデータを、効率値を含めて検索者用端末装置3に表示することにより、ユーザは、選択された各プロジェクトの生産効率が高いか否かを知ることができる。これにより、例えば、効率値の大きいプロジェクトで利用されているツールを評価対象の新規プロジェクトでも利用するなど、ユーザが、効率値の大きいプロジェクトを手本として新規プロジェクトの見直しを行い、新規プロジェクトの生産効率を高めることが期待できる。また、効率値の小さいプロジェクトについては、ユーザが、効率値の小さい原因を分析し、分析結果を新規プロジェクトに反映させることが考えられる。
【0062】
なお、プロジェクト検索部15が、検索条件に合致するプロジェクトのうち、効率値の最も大きいプロジェクト(図12の例では、点aに対応するプロジェクト)のみを選択するようにしてもよい。この場合、プロジェクト検索部15は、効率値テーブルの各プロジェクトを、効率値の大きい順に検索し、検索条件に合致するプロジェクトを1個検出した時点で検索終了できるので、検索の負荷を軽減でき、また、生産性評価装置1から検索者用端末装置3へ検索結果を送信する際の通信量を低減できる。
あるいは、プロジェクト検索部15が、効率値が所定の値(例えば、「0.7」)以上のプロジェクトのみを選択するようにしてもよい。この場合も、効率値の最も大きいプロジェクトのみを選択する場合と同様に、検索の負荷を低減し、また、通信量を低減できる。
【0063】
また、集合G2は、ツールAを利用したプロジェクトに対応する点の集合であり、集合G3は、ツールBを利用したプロジェクトに対応する点の集合である。
例えば、検索者用端末装置3が、「利用ツール=ツールA」との検索条件の入力を受けて、生産性評価装置1に送信すると、送受信部11を介して検索条件を受信したプロジェクト検索部15が、生産性評価記憶部122の効率値テーブルを検索して、検索条件に合致するプロジェクトとして、集合G2に対応する各プロジェクトを選択する。同様に、検索者用端末装置3が、「利用ツール=ツールB」との検索条件の入力を受けると、プロジェクト検索部15が、集合G3に対応する各プロジェクトを選択する。
【0064】
プロジェクト検索部15が選択した各プロジェクトのデータを、効率値を含めて検索者用端末装置3が表示することにより、ユーザは、ツールAを用いた場合の一般的な生産効率と、ツールBを用いた場合の一般的な生産効率とを比較できる。そして、ユーザは、比較結果に基づいて、ツールAを利用すべきかツールBを利用すべきかを検討できる。同図の例では、ツールAを利用したプロジェクトのほうが、ツールBを利用したプロジェクトよりも効率値が大きい。このことから、新規プロジェクトにおいても、ツールAを利用することにより生産効率が高まることが期待できる。
【0065】
なお、プロジェクト検索部15が、図11で説明した検索と、図12で説明した検索とを組み合わせた検索を行うようにしてもよい。
例えば、検索者用端末装置3が、「開発種別=新規、業種=製造業、セキュリティレベル=中、・・・」など、評価対象のプロジェクトに基づく検索条件と、「利用ツール=ツールA」や「利用ツール=ツールB」など、特定の特性を持つプロジェクトを比較する検索条件とを受け付ける。プロジェクト検索部15は、生産性評価記憶部122を検索して、「開発種別=新規、業種=製造業、セキュリティレベル=中、・・・」に合致し、かつツールAを利用するプロジェクトを選択する。図12の例の場合、プロジェクト検索部15は、集合G1と集合G2との両方に含まれる、点aと点bとに対応するプロジェクトを選択する。
また、プロジェクト検索部15は、「開発種別=新規、業種=製造業、セキュリティレベル=中、・・・」に合致し、かつツールBを利用するプロジェクトを選択する。図12の例の場合、プロジェクト検索部15は、集合G1と集合G3との両方に含まれる、点fと点gと点hとに対応するプロジェクトを選択する。
【0066】
選択した各プロジェクトのデータを、効率値を含めて検索者用端末装置3に表示することにより、ユーザは、評価対象のプロジェクトにツールAを用いた場合の生産効率と、評価対象のプロジェクトにツールBを用いた場合の生産効率とを比較でき、比較結果に基づいて、ツールAを利用すべきかツールBを利用すべきかを検討できる。同図の例では、ツールAを利用したプロジェクトのほうが、ツールBを利用したプロジェクトよりも効率値が大きい。このことから、新規プロジェクトにおいても、ツールAを利用することにより生産効率が高まることが期待できる。
【0067】
以上のように、生産性評価装置1は、プロジェクト情報記憶部121が記憶するプロジェクトのインプットやアウトプットを含むデータ、特に複数のインプットまたは複数のアウトプットを含むデータを用いて、各プロジェクトの効率値を算出するので、この効率値を、プロジェクト全体の見積りに対する客観的な評価として示すことができる。特に、プロジェクトにて生成するシステムの画面数や、帳票数や、バッチジョブ数や、テーブル数や、機能数など、プログラムステップ数と比べて顧客仕様とのばらつきが小さく、かつ、システム仕様から容易に計測できる複数の項目値を用いることにより、評価のブレを抑制しつつ、項目ごとではなく、プロジェクト全体に対する単一の指標である効率値に基づいてプロジェクトの生産効率の評価を示すことができる。
このように、単一の指標である効率値に基づいてプロジェクトの生産効率の評価できるので、あるツールを用いることによる生産効率向上の検討など、システム開発環境や部品等が生産効率に及ぼす影響を検討できる。この際、評価に用いるプロジェクトは必ずしも互いに類似する必要はない。これにより、評価に用いるプロジェクト数が比較的少ない場合にも、開発環境や部品についての評価・検討を行える。
【0068】
また、新規プロジェクトの計画段階において、生産性評価装置1が、新規プロジェクトに類似する過去のプロジェクトのデータを、効率値を含めて出力することにより、ユーザは、プロジェクトの特性が新規プロジェクトに類似し、かつ、効率値の大きい過去のプロジェクトを手本とすることができ、手本とすべきプロジェクトの全体像が得られる。また、この過去のプロジェクトのデータを参照することにより、ユーザは、新規プロジェクトの特性に応じた適切なツールや手法、要員数などを知ることができる。これにより、新規プロジェクトのコストや期間が低減されることが期待できる。
【0069】
また、はずれ値除去部132が、例外的に大きい効率値を示すプロジェクトを検出し、当該プロジェクトのデータを効率値テーブルから削除するので、例外的なプロジェクトを含まないプロジェクトを対象として、より適切に効率値を算出できる。
これにより、例えば、各プロジェクトの効率値が小さい値(例えば0.3以下)に集中し、生産性評価装置1の検索結果として得られるプロジェクトが全て生産効率の低いプロジェクトであるかのような誤解や混乱をユーザに与えることを防止できる。
【0070】
また、追加プロジェクト処理部14は、新たなプロジェクトが追加された際に、効率値テーブル生成部13が生成した制約条件を用いて、追加されたプロジェクトの効率値を算出するので、効率値を算出済みのプロジェクトについて、効率値を更新する必要が無く、計算負荷を低減できる。
【0071】
なお、生産性評価装置1が、評価対象のプロジェクトの効率値を算出するようにしてもよい。評価対象のプロジェクトが新規プロジェクトの場合でも、顧客仕様に基づいて、画面数や、帳票数や、バッチジョブ数や、テーブル数や、機能数などの出力仕様を決定し、顧客仕様や出力仕様に基づいて、工数や費用など、プロジェクトに投入するリソースの見積りを行った後は、効率値を算出し得る。
この場合、検索者用端末装置3が入出力のユーザ入力を受けて生産性評価装置1に送信すると、生産性評価装置1は、図9で説明した、新たに追加されたプロジェクトを処理する場合と同様に、効率値を算出する。より詳細には、効率値算出部131が、まず、記憶部12のワーキングメモリ領域に記憶された制約条件を読み出す。この制約条件は、効率値テーブル生成部13が処理したプロジェクトに関する不等式のみを含み、評価対象のプロジェクトに関する不等式を含まない制約条件である。
効率値算出部131は、検索者用端末装置3から送信される入出力に基づいて、評価対象のプロジェクトの効率値の関数を生成する。そして、効率値算出部131は、読み出した制約条件の下で、生成した目的関数の値を最大にする線形計画問題を解き、評価対象のプロジェクトの効率値を算出する。
【0072】
効率値算出部131が算出した効率値を、検索者用端末装置3が表示することにより、ユーザは、表示される効率値を評価対象のプロジェクトの生産効率の目安として用いることができる。評価値が1に近い場合は、生産効率の高いプロジェクトであると評価でき、当該計画にてプロジェクトを推進する。
一方、評価値が小さい場合は、生産効率の低いプロジェクトであると評価でき、プロジェクトに利用するツールの見直しなど、プロジェクトおよび工程見積りを見直して生産効率を改善する余地があると考えられる。
【0073】
なお、生産性評価装置1の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0074】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【0075】
1 生産性評価装置
2 評価者用端末装置
3 検索者用端末装置
11 送受信部
12 記憶部
13 効率値テーブル生成部
14 追加プロジェクト処理部
15 プロジェクト検索部
121 プロジェクト情報記憶部
122 生産性評価記憶部
123 検索結果記憶部
131 効率値算出部
132 はずれ値除去部
500 生産性評価システム
【特許請求の範囲】
【請求項1】
プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とに基づいて、前記プロジェクトの生産効率を示す値として、データ包絡分析法による効率値をプロジェクト毎に算出する生産性評価値算出部を具備することを特徴とする、プロジェクト生産性評価装置。
【請求項2】
前記効率値を算出する対象の前記プロジェクトの、前記成果物項目の値および前記リソース項目の値を記憶するプロジェクト情報記憶部をさらに具備し、
前記生産性評価値算出部は、前記プロジェクト情報記憶部が記憶する全プロジェクトに共通して前記成果物項目毎に定められる非負の第一重み係数と、前記プロジェクト情報記憶部が記憶する全プロジェクトに共通して前記リソース項目毎に定められる非負の第二重み係数との制約条件として、前記プロジェクト情報記憶部が記憶する全プロジェクトについて、前記第一重み係数と当該プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と当該プロジェクトの前記リソース項目の値との積の和で除した値を1以下とする条件の下で、プロジェクト毎に、前記第一重み係数と当該プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と当該プロジェクトの前記リソース項目の値との積の和で除した値の最大値を求める線形計画問題を解き、得られた前記最大値を当該プロジェクトの前記効率値とすることを特徴とする、
請求項1に記載のプロジェクト生産性評価装置。
【請求項3】
前記生産性評価値算出部が生成した前記制約条件を記憶する記憶部と、
追加されたプロジェクトのデータを処理する追加プロジェクト処理部と、
をさらに具備し、
前記生産性評価値算出部は、前記制約条件を前記記憶部に書き込み、
前記追加プロジェクト処理部は、前記生産性評価値算出部が効率値を算出していないプロジェクトの前記成果物項目の値および前記リソース項目の値が入力されると、
前記入力前に前記生産性評価値算出部が生成した前記制約条件を前記記憶部から読み出し、
読み出した制約条件の下で、前記第一重み係数と、入力された前記成果物項目の値との積の和を、前記第二重み係数と、入力された前記リソース項目の値との積の和で除した値の最大値を求める線形計画問題を解き、得られた前記最大値を、前記成果物項目の値および前記リソース項目の値が入力された前記プロジェクトの効率値とすることを特徴とする、
請求項2に記載のプロジェクト生産性評価装置。
【請求項4】
前記生産性評価値算出部は、前記制約条件の下で、評価対象のプロジェクトの前記効率値を算出することを特徴とする、請求項2または請求項3に記載のプロジェクト生産性評価装置。
【請求項5】
前記生産性評価値算出部が算出した前記効率値をプロジェクトの特性を示す特性データと対応付けて記憶する生産性評価記憶部と、
入力された検索条件に適合する前記特性データに対応付けられた前記効率値を前記生産性評価記憶部から読み出すプロジェクト検索部と、
を具備することを特徴とする請求項1から4のいずれかの項に記載のプロジェクト生産性評価装置。
【請求項6】
前記プロジェクト検索部は、前記検索条件に適合する前記特性データに対応付けられた前記効率値のうち、最大の効率値を選択することを特徴とする、請求項5に記載のプロジェクト生産性評価装置。
【請求項7】
前記プロジェクト検索部は、前記検索条件に適合する前記特性データを読み出すことを特徴とする、請求項5または請求項6に記載のプロジェクト生産性評価装置。
【請求項8】
前記生産性評価値算出部は、前記プロジェクト情報記憶部が記憶する全プロジェクトのうち、前記効率値が最大のプロジェクトを除外したプロジェクトについて、前記第一重み係数と当該プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と当該プロジェクトの前記リソース項目の値との積の和で除した値を1以下とする条件の下で、前記効率値が最大の前記プロジェクトについて、前記第一重み係数と、前記効率値が最大の前記プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と、前記効率値が最大の前記プロジェクトの前記リソース項目の値との積の和で除した値の最大値を求める線形計画問題を解き、得られた前記最大値が所定の閾値よりも大きいか否かを判定することを特徴とする、請求項2から4のいずれかの項に記載のプロジェクト評価装置。
【請求項9】
プロジェクトの生産効率を示す効率値を算出するプロジェクト生産性評価装置に用いられるプロジェクト生産性評価方法であって、
生産性評価値算出部が、プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とに基づいて、前記プロジェクトの生産効率を示す値として、データ包絡分析法による効率値をプロジェクト毎に算出する生産性評価値算出ステップを実行することを特徴とする、プロジェクト生産性評価方法。
【請求項10】
プロジェクト生産性評価装置としてのコンピュータに、プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とに基づいて、前記プロジェクトの生産効率を示す値として、データ包絡分析法による効率値をプロジェクト毎に算出する生産性評価値算出ステップを実行させるためのプログラム。
【請求項1】
プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とに基づいて、前記プロジェクトの生産効率を示す値として、データ包絡分析法による効率値をプロジェクト毎に算出する生産性評価値算出部を具備することを特徴とする、プロジェクト生産性評価装置。
【請求項2】
前記効率値を算出する対象の前記プロジェクトの、前記成果物項目の値および前記リソース項目の値を記憶するプロジェクト情報記憶部をさらに具備し、
前記生産性評価値算出部は、前記プロジェクト情報記憶部が記憶する全プロジェクトに共通して前記成果物項目毎に定められる非負の第一重み係数と、前記プロジェクト情報記憶部が記憶する全プロジェクトに共通して前記リソース項目毎に定められる非負の第二重み係数との制約条件として、前記プロジェクト情報記憶部が記憶する全プロジェクトについて、前記第一重み係数と当該プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と当該プロジェクトの前記リソース項目の値との積の和で除した値を1以下とする条件の下で、プロジェクト毎に、前記第一重み係数と当該プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と当該プロジェクトの前記リソース項目の値との積の和で除した値の最大値を求める線形計画問題を解き、得られた前記最大値を当該プロジェクトの前記効率値とすることを特徴とする、
請求項1に記載のプロジェクト生産性評価装置。
【請求項3】
前記生産性評価値算出部が生成した前記制約条件を記憶する記憶部と、
追加されたプロジェクトのデータを処理する追加プロジェクト処理部と、
をさらに具備し、
前記生産性評価値算出部は、前記制約条件を前記記憶部に書き込み、
前記追加プロジェクト処理部は、前記生産性評価値算出部が効率値を算出していないプロジェクトの前記成果物項目の値および前記リソース項目の値が入力されると、
前記入力前に前記生産性評価値算出部が生成した前記制約条件を前記記憶部から読み出し、
読み出した制約条件の下で、前記第一重み係数と、入力された前記成果物項目の値との積の和を、前記第二重み係数と、入力された前記リソース項目の値との積の和で除した値の最大値を求める線形計画問題を解き、得られた前記最大値を、前記成果物項目の値および前記リソース項目の値が入力された前記プロジェクトの効率値とすることを特徴とする、
請求項2に記載のプロジェクト生産性評価装置。
【請求項4】
前記生産性評価値算出部は、前記制約条件の下で、評価対象のプロジェクトの前記効率値を算出することを特徴とする、請求項2または請求項3に記載のプロジェクト生産性評価装置。
【請求項5】
前記生産性評価値算出部が算出した前記効率値をプロジェクトの特性を示す特性データと対応付けて記憶する生産性評価記憶部と、
入力された検索条件に適合する前記特性データに対応付けられた前記効率値を前記生産性評価記憶部から読み出すプロジェクト検索部と、
を具備することを特徴とする請求項1から4のいずれかの項に記載のプロジェクト生産性評価装置。
【請求項6】
前記プロジェクト検索部は、前記検索条件に適合する前記特性データに対応付けられた前記効率値のうち、最大の効率値を選択することを特徴とする、請求項5に記載のプロジェクト生産性評価装置。
【請求項7】
前記プロジェクト検索部は、前記検索条件に適合する前記特性データを読み出すことを特徴とする、請求項5または請求項6に記載のプロジェクト生産性評価装置。
【請求項8】
前記生産性評価値算出部は、前記プロジェクト情報記憶部が記憶する全プロジェクトのうち、前記効率値が最大のプロジェクトを除外したプロジェクトについて、前記第一重み係数と当該プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と当該プロジェクトの前記リソース項目の値との積の和で除した値を1以下とする条件の下で、前記効率値が最大の前記プロジェクトについて、前記第一重み係数と、前記効率値が最大の前記プロジェクトの前記成果物項目の値との積の和を、前記第二重み係数と、前記効率値が最大の前記プロジェクトの前記リソース項目の値との積の和で除した値の最大値を求める線形計画問題を解き、得られた前記最大値が所定の閾値よりも大きいか否かを判定することを特徴とする、請求項2から4のいずれかの項に記載のプロジェクト評価装置。
【請求項9】
プロジェクトの生産効率を示す効率値を算出するプロジェクト生産性評価装置に用いられるプロジェクト生産性評価方法であって、
生産性評価値算出部が、プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とに基づいて、前記プロジェクトの生産効率を示す値として、データ包絡分析法による効率値をプロジェクト毎に算出する生産性評価値算出ステップを実行することを特徴とする、プロジェクト生産性評価方法。
【請求項10】
プロジェクト生産性評価装置としてのコンピュータに、プロジェクトで生成された成果物の規模を示す成果物項目の値と、前記プロジェクトに投入されたリソースの規模を示すリソース項目の値とに基づいて、前記プロジェクトの生産効率を示す値として、データ包絡分析法による効率値をプロジェクト毎に算出する生産性評価値算出ステップを実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−215927(P2011−215927A)
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願番号】特願2010−83964(P2010−83964)
【出願日】平成22年3月31日(2010.3.31)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願日】平成22年3月31日(2010.3.31)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
[ Back to top ]