JP2004334321A - 生産性ナレッジ構築方法、ソフトウェア開発工数目標決定方法、同方法を実行するためのプログラム - Google Patents
生産性ナレッジ構築方法、ソフトウェア開発工数目標決定方法、同方法を実行するためのプログラム Download PDFInfo
- Publication number
- JP2004334321A JP2004334321A JP2003125732A JP2003125732A JP2004334321A JP 2004334321 A JP2004334321 A JP 2004334321A JP 2003125732 A JP2003125732 A JP 2003125732A JP 2003125732 A JP2003125732 A JP 2003125732A JP 2004334321 A JP2004334321 A JP 2004334321A
- Authority
- JP
- Japan
- Prior art keywords
- productivity
- project
- development
- model
- man
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 138
- 238000010276 construction Methods 0.000 title claims description 9
- 238000011161 development Methods 0.000 claims abstract description 141
- 238000011156 evaluation Methods 0.000 claims description 31
- 238000004458 analytical method Methods 0.000 claims description 10
- 230000008520 organization Effects 0.000 abstract description 31
- 230000006872 improvement Effects 0.000 abstract description 27
- 230000000694 effects Effects 0.000 abstract description 25
- 230000008569 process Effects 0.000 abstract description 20
- 230000015572 biosynthetic process Effects 0.000 abstract description 5
- 238000000556 factor analysis Methods 0.000 abstract description 2
- 230000014509 gene expression Effects 0.000 description 8
- 238000000605 extraction Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000004451 qualitative analysis Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 238000007630 basic procedure Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】ソフトウェア開発プロジェクト(PJ)の工数見積り精度の向上と伴に生産性 (工数) 目標を決定する際に開発現場との合意の形成を容易にし、開発プロセス改善活動の推進を図る。
【解決手段】品質、生産性の高い複数モデルPJを抽出し、これらの実績生産性データに基いて基本(平均化)生産性モデルf0(x)、抽出PJのばらつき(f0(x)に対する生産性ギャップの大きさ)を求める(S102)。経験者によりモデルPJのばらつきの要因分析を行い要因とその重みをPJ特性として得る(S103)。PJ特性と生産性ギャップの大きさとを基に生産性ナレッジ(標準生産性モデルf1(x)×PJ特性係数c)を決定する。開発工数目標の見積り時に、標準生産性モデルf1(x)の調整によって開発組織全体の生産性の向上を図り、対象PJのPJ特性係数の調整によってコスト管理を可能にする。
【選択図】 図2
【解決手段】品質、生産性の高い複数モデルPJを抽出し、これらの実績生産性データに基いて基本(平均化)生産性モデルf0(x)、抽出PJのばらつき(f0(x)に対する生産性ギャップの大きさ)を求める(S102)。経験者によりモデルPJのばらつきの要因分析を行い要因とその重みをPJ特性として得る(S103)。PJ特性と生産性ギャップの大きさとを基に生産性ナレッジ(標準生産性モデルf1(x)×PJ特性係数c)を決定する。開発工数目標の見積り時に、標準生産性モデルf1(x)の調整によって開発組織全体の生産性の向上を図り、対象PJのPJ特性係数の調整によってコスト管理を可能にする。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、ソフトウェア開発プロジェクトの管理に用いることが可能な生産性ナレッジの構築方法、及びソフトウェア開発工数目標の決定方法に関し、特定すると、開発組織全体の生産性向上と開発コストの改善を狙いとし、組織資産として継続的管理を行うことを前提にした、生産性パラメータとプロジェクト特性よりなる前記生産性ナレッジの構築方法、及び構築された生産性ナレッジを開発組織の新規プロジェクトに適用し、開発工数目標を決定する方法、前記方法を実行するためのコンピュータプログラム及びシステムに関する。
【0002】
【従来の技術】
従来からソフトウェアの開発プロジェクトを起こす際に、その開発計画の要件として所要工数の見積もりを行っている。開発工数の見積りは、プロジェクトの内容(特性)や要員の習熟度(メンバーの能力)などによってばらつきが大きく、正確な見積もりは難しい。
こうした開発工数の見積もりに、モデル・手法・専門ツールなどを用いる方法が従来から存在するが、どんな開発プロジェクトにおいても、そのまま適用できる解決方法ではない。例えばCOCOMO(Constructive Cost Model)、FP(Function Point)法などが、このような手法として知られている。COCOMO法は、生産性に影響を及ぼす要因とその影響度合を推定し、推定した開発要因と開発工数から,開発人月、開発期間を見積るというやり方で、一般的な開発モデルを尺度として対象プロジェクトの違いを推定するという手法であるから、おおよその見積もりを可能とすることを意図した方法と考えられ、計画通りに開発を行っていくための目安を示す意味を持つものである。
【0003】
【発明が解決しようとする課題】
しかしながら、COCOMO法等は、一般的な手法として提示されたものであり、実際の開発プロジェクトに適用するためには、開発組織の成熟度や組織の背景にある文化などに応じたカスタマイズを必要とするが、現状では具体性、客観性に乏しいものとなり勝ちで、カスタマイズがうまく行かないために、見積もり精度が低く、有効な結果を導くことができない場合も少なくない。
また、開発工数などを見積もるこの従来手法における視点は、予測した工数と実際にかかった工数に大きな狂いはなく、計画通りに開発を行うようにするという点におかれており、開発組織全体の開発コストの改善や生産性の向上、という点を明確に意識するものではない。
従って、PDCAサイクル(後記、図1に関する説明、参照)に基づいた組織のプロセス改善活動を実施する際に適用すると、活動の障害となる。つまり、PDCAサイクルにおける生産性目標(工数目標)の決定には、開発部門における合意の形成が重要な要素となるが、具体性、客観性に乏しいものとなり勝ちである上記した従来手法を用いて見積もられた開発計画によると、合意の形成に困難を伴う。
本発明は、ソフトウェアの開発工数を見積もるための上記従来手法における問題点に鑑みてなされたものであり、その目的は、開発プロジェクトのソフトウェア開発工数の見積り精度を向上させるとともに、生産性目標(工数目標)を決定するにあたって開発部門における合意の形成を容易にして、開発組織のプロセス改善活動(開発組織全体の生産性の向上や開発プロジェクトのコスト管理)を推進し得るようにする、ことにある。
【0004】
【課題を解決するための手段】
請求項1の発明は、過去に実行されたソフトウェア開発プロジェクトから選ばれた複数のモデルプロジェクトの実績情報に基づいて一定の生産性傾向を示す基本生産性モデルを作成する手順、前記複数のモデルプロジェクトのプロジェクト特性を分析する手順、該分析手順により得られたプロジェクト特性と前記複数のモデルプロジェクトの前記基本生産性モデルに対するばらつきに基づいて生産性モデルに適用するプロジェクト特性係数を求める手順、該プロジェクト特性係数を前記複数のモデルプロジェクトに適用することにより前記基本生産性モデルを標準化する標準化生産性モデル作成手順、の各手順よりなる生産性ナレッジ構築方法である。
【0005】
請求項2の発明は、請求項1に記載された生産性ナレッジ構築方法において、前記実績情報が開発規模に対する開発工数の関係を示す情報であることを特徴とする方法である。
請求項3の発明は、請求項1又は2に記載された生産性ナレッジ構築方法において、分析される前記プロジェクト特性を複数のモデルプロジェクトにばらつきを生む要因とその重みとし、前記プロジェクト特性係数として、前記ばらつき範囲に標準化生産性モデルを収め、かつプロジェクト特性の違いに応じたバリエーションを用意するようにしたことを特徴とする方法である。
【0006】
請求項4の発明は、請求項1乃至3のいずれかに記載された生産性ナレッジ構築方法の各手順をコンピュータに実行させるためのプログラムである。
請求項5の発明は、請求項4に記載されたプログラムを搭載したコンピュータを備え、生産性ナレッジを構築する手段として該コンピュータを機能させるようにしたことを特徴とする生産性ナレッジ構築システムである。
【0007】
請求項6の発明は、開発工数目標を決定する開発対象プロジェクトの規模を見積る手順、該開発対象プロジェクトのプロジェクト特性を請求項1乃至3のいずれかに記載された生産性ナレッジ構築方法における前記プロジェクト特性係数によって評価する手順、見積られたプロジェクトの規模と評価結果として得られる前記プロジェクト特性係数を請求項1乃至3のいずれかに記載された生産性ナレッジ構築方法によって作成された前記標準化生産性モデルに設定することにより対象プロジェクトのソフトウェア開発工数目標を決定する手順、の各手順よりなるソフトウェア開発工数目標決定方法である。
【0008】
請求項7の発明は、請求項6に記載されたソフトウェア開発工数目標決定方法の各手順をコンピュータに実行させるためのプログラムである。
請求項8の発明は、請求項7に記載されたプログラムを搭載したコンピュータを備え、ソフトウェア開発工数目標を決定する手段として該コンピュータを機能させるようにしたことを特徴とするソフトウェア開発工数目標決定システムである。
【0009】
【発明の実施の形態】
本発明は、ソフトウェア開発プロジェクトにおける「生産性ナレッジ」を構築する方法及び構築された「生産性ナレッジ」をもとにソフトウェア開発工数目標を決定する方法に係わる。
「生産性ナレッジ」は、ソフトウェア開発プロジェクトの開発工数を見積るために構築される開発プロジェクトのモデルというべきものである。ここで構築される生産性ナレッジ モデルは、高い精度で開発工数を見積もることを可能にするとともに、生産性目標(工数目標)を決定するにあたって開発部門における合意の形成を容易にして、開発組織のプロセス改善活動(即ち、開発組織全体の生産性の向上や開発プロジェクトのコスト管理)を推進し得るようにする、といった意図に沿った性格が与えられる。
ここで、上記のような性格が与えられる「生産性ナレッジ」の概念を把握するために、本発明に係わる実施形態により構築される生産性ナレッジの構成、生産性ナレッジの構築方法及び生産性ナレッジを用いた開発工数目標決定方法の概要を説明する。
【0010】
この実施形態により構築される「生産性ナレッジ」の構成上の特徴は、下記式(1)により表現される。
〔生産性ナレッジ Y 〕= 〔生産性パラメータ f1(x)〕 × 〔プロジェクト特性 c〕‥‥式(1)
ここに、式(1)に示した生産性パラメータ f1(x)は、開発プロジェクトの生産性能力を、例えば、開発規模当たりの工数(人月)のような定量的尺度で表現する。また、プロジェクト特性(係数) cは、生産性に影響するプロジェクト単位の定性的な要因をベースに、開発部門の経験に基づいて工数への影響度を個々の特性として定量的に表現する。つまり、「生産性パラメータ」は、組織の生産性能力を表現しているのに対し、「プロジェクト特性」は、開発コスト要因を表現し、それぞれを変量としてとらえることにより、目的に応じた活用を可能にする。
【0011】
また、上記式(1)に示した「生産性ナレッジ」の構築方法は、次に示す(1)〜(4)を基本的な手順とする。
(1) サンプリング(モデルプロジェクトの抽出)
(2) 実績生産性の把握
(3) プロジェクト特性の決定
(4) 生産性ナレッジの決定
上記(1)のサンプリングにおいては、開発組織全体における過去の開発プロジェクトから得られた経験値を蓄積したデータベースからの実績データ(定量化された生産性データ)に基いて、通常の開発体制をとるプロジェクトの中から品質、生産性の高いもの、という条件を満たす複数のモデルプロジェクトを抽出する。
上記(2)の実績生産性の把握においては、上記(1)で抽出された複数のモデルプロジェクトの生産性データをもとに基本生産性モデル(抽出された複数プロジェクトから求めた平均化モデル)を求め、さらに基本生産性モデルに対する抽出プロジェクトのばらつき(生産性ギャップの大きさ)を求める。
上記(3)のプロジェクト特性の決定においては、開発組織の熟練メンバーによる生産性ギャップ(上記(2)参照)の定性的な分析、即ち生産性に影響する要因の定性的評価(定性的事実)からプロジェクト特性(要因とその重み)を決定する。
上記(4)の生産性ナレッジ(上記式(1))の決定においては、プロジェクト特性係数cと生産性パラメータf1(x)を決定する。
プロジェクト特性係数 cは、前段で決定されたプロジェクト特性(生産性に影響する要因とその重み)と、実績生産性として上記(2)で得られる生産性ギャップの大きさをとを基に決定される。
また、生産性パラメータf1(x)は、標準化生産性モデル(後記する「真の生産性」に相当する)、即ちプロジェクト特性が中位(プロジェクト係数が1)であるときの生産性を表すもので、プロジェクト特性係数を複数のモデルプロジェクトの実績情報に適用することにより得られる標準化された情報に基いて作成される。
【0012】
また、上記の手順により決定された生産性ナレッジは実用モデルとして開発プロジェクトの開発工数を見積るために適用される。
生産性ナレッジを適用して開発工数を見積る開発工数目標決定方法は、次に示す(i)〜(iii)を基本的な手順とする。
(i) 開発対象プロジェクトの規模の見積り
(ii) 開発対象プロジェクトのプロジェクト特性の評価
(iii) 開発工数目標の決定
上記(i)における開発対象プロジェクトの規模の見積りにおいては、組織内で実行した開発プロジェクトのメンバーとして豊富な経験を持つ者によって、新規KLOCといったような数値による見積もりを行う。
上記(ii)におけるプロジェクト特性の評価は、組織内で実行した開発プロジェクトのメンバーとして豊富な経験を持つ熟練者により対象プロジェクトを評価し、プロジェクト特性係数(上記(3),(4)参照)で結果を表現する。
上記(iii)の開発工数目標の決定においては、標準化生産性モデル(上記(4)参照)において、上記(i)で見積られたプロジェクトの規模と上記(ii)で評価結果として得られるプロジェクト特性係数を設定することにより求められる開発工数を開発工数目標として決定する。
【0013】
次に、上記で概要を示した、ソフトウェア開発プロジェクトにおける生産性ナレッジを構築する方法及び構築された生産性ナレッジをもとにソフトウェア開発工数目標を決定する方法の手順を、図面とともに示す以下の実施形態に基づきより詳細に説明する。
生産性ナレッジ構築方法、ソフトウェア開発工数目標決定方法の説明に先だって、これらの方法を適用してソフトウェア開発プロジェクトを管理するシステムにおける、プロセス改善活動について説明する。
図1は、本実施形態の方法を適用してプロセス改善活動を実施するPDCAサイクルに基づいた開発プロセスを示す図である。
図1に示すPDCAサイクルは、「目標値決定(Plan)」→「実行(Do)」→「評価(Check)」→「改善措置(Action)」→「目標値決定(Plan)」というサイクルの動作を行う点で、基本的には既存の生産性改善プロセスにおけると変りがない。このPDCAサイクルに従う開発プロセスでは、新たな開発プロジェクトを立案する際に、過去に実行(Do)された開発プロジェクトを参照し、そのプロジェクトの実績の評価(Check)結果を受けて、プロジェクトに必要な改善措置(Action)を施すようにする。このようにして新たに立案した計画により定められる目標値(Plan)に従って開発を実行(Do)し、さらにその実行結果に対する評価を重ねることにより、開発プロジェクトの改善を推進するものである。
【0014】
こうしたPDCAサイクルに基づいた開発プロセスに、本実施形態の生産性ナレッジ構築方法及びソフトウェア開発工数目標決定方法を導入することにより、開発組織全体の生産性の向上や開発プロジェクトのコスト管理によって目的とするプロセス改善活動を推進することが可能になる。
生産性ナレッジ構築方法及びソフトウェア開発工数目標決定方法をPDCAサイクルに基づいた開発プロセスに導入するためには、図1において「生産性データ・定性的事実 データベース10」「生産性ナレッジ構築 手順30」「生産性ナレッジ データベース50」とデータの流れにより示されているような要素を必要とする。これらは、上記した生産性ナレッジを構築・利用する([0010]〜[0012]、参照)ための、生産性ナレッジの構築に用いるデータ、生産性ナレッジを構築する手順、構築された生産性ナレッジをもとに開発工数目標を決定する手順、等に必要な要素である。
生産性ナレッジの構築に用いるデータは、開発組織全体における過去の開発プロジェクトの実行結果として得られた実績データ(生産性データ)を蓄積したもの、さらに過去の開発プロジェクトに対するプロジェクト特性(定性的事実)などの評価データを参照したものが含まれる(図1の「生産性データ・定性的事実データベース10」への「実行(Do)」「評価(Check)」からのデータの流れに示される)。
生産性ナレッジ構築手順30は、「生産性データ・定性的事実 データベース」により提供されるデータに基き、「改善措置(Action)」より指示される方針を反映した形で生産性ナレッジを構築する。
開発工数目標を決定手順は、生産性ナレッジ構築手順30により構築された生産性ナレッジを開発プロジェクトの「目標値決定(Plan)」における決定手順に用いるモデルに適用する。
なお、生産性ナレッジ構築手順30及び開発工数目標を決定する手順については、下記の実施形態で詳述する。
【0015】
「生産性ナレッジ」の構築方法に係わる実施形態を次に示す。
図2は、生産性ナレッジを構築する手順を示すフロー図である。図2に示すフロー図を参照しながら、同図に示すS101〜S104の各手順を追って、その詳細を以下に説明する。
「サンプリング(モデルプロジェクトの抽出)」‥‥(S101)
まず、生産性ナレッジを構築するために用いるプロジェクトを開発組織において過去に開発されたプロジェクトの中からサンプルプロジェクトとして抽出する。
所定の開発組織においては、開発プロジェクトの規模と工数の相関に一定の傾向が現れる。図3のグラフはこの相関を例示するもので、x軸の開発規模(新規KLOC)に対するy軸の開発工数(人月)により、開発生産性のメトリクスを表している。図3の例では、グラフ中に点で示す各プロジェクトは、図示のようにばらつきがあるが、全体として図中に直線で示すような一定の傾向が現れる。
図3に示すようなデータを参照して、開発プロジェクトの中から品質、生産性の高いもの、というサンプリング条件を満たす複数のモデルプロジェクトを抽出する。抽出する際に、例えば、通常の開発体制とは異なる特殊な体制により開発が行われたプロジェクト等は、ノイズになるという理由で抽出の対象から除外する。品質、生産性の高いもの、というサンプリング条件は、開発組織のプロセス改善活動(即ち、開発組織全体の生産性の向上や開発プロジェクトのコスト管理)を推進し得るようにするという観点から重要な要素となる。従って、モデルプロジェクトの抽出は、開発されたプロジェクト全体の状況を把握でき、品質、生産性の判断が可能なメンバーによって行われることが必要で、開発組織側との協議といった方法を採り入れることにより、現場の判断を反映させるようにすることが望ましい。
【0016】
「実績生産性の把握(生産性パラメータの把握)」‥‥(S102)
次に、前段で抽出されたモデルプロジェクトの「実績生産性」を把握する。
ここでは、モデルプロジェクトの過去の実績データをもとに定量モデル(生産性パラメータ)を作成し、また、モデルプロジェクト間の生産性ギャップの大きさを把握する。
定量モデル(生産性パラメータ)は、具体的には、サンプルプロジェクトにおける開発規模に対する所要工数の相関傾向を求めることによる。
図4は、4つのモデルプロジェクトA,B,C,D,が抽出された場合の各プロジェクトの実績データと生産性モデル(y=f0(x))の関係を示す。図4において開発規模(x軸)−所要工数(y軸)上に点で示される各プロジェクトの相関傾向は、最も相関係数の高い近似線により最も端的に表され、この近似線はサンプルプロジェクトの平均的な生産性を示す。このような相関傾向、即ち抽出された複数プロジェクトの平均的な生産性を示す生産性モデルを、y=f0(x)で表現し、「生産性ナレッジ」を構築する場合の基本となる生産性モデルであるということから、「基本生産性モデル」と呼ぶ。
【0017】
さらに、前段で抽出されたモデルプロジェクトの生産性の違いにより生じる生産性ギャップの大きさを把握する。この生産性ギャップの把握は、後述する「プロジェクト係数」の決定に必要な手順である。
生産性ギャップの大きさは、具体的には、上記で抽出モデルプロジェクトの「実績生産性」として求めた基本生産性モデル(y=f0(x))に対する各抽出モデルプロジェクトの生産性の違いを定量的に評価する。
生産性ギャップの大きさの定量化は、以下のような手順により行う。
図4に示した基本生産性モデル(y=f0(x))に対する各抽出モデルプロジェクトA,B,C,D,を例にすると、「y=f0(x)」に対し、各プロジェクトはそれぞれ生産性の高低があり、ばらつきが生じる。そこで、まず「y=f0(x)」から各プロジェクトの実績開発規模xの「予測工数y´」を求め、実績工数yと対比する。
つまり、下記式(2)により予測工数y´を求める。
y´=f0(実績開発規模) ‥‥式(2)
図5は、抽出モデルプロジェクトA,B,C,Dの予測工数と実績のギャップを示すグラフである。図5において予測工数(x軸)−実績工数(y軸)上に示される点で基本生産性モデルに対する生産性の違いを表す。つまり、予測工数と実績工数が一致する「y=x」線上に近いほど、「実績生産性」として求めた基本生産性モデル(y=f0(x))で示される傾向にプロジェクトの特性が合っていると言える。
上記のようにして求めた予測工数に対する実績工数の精度をsとすると、下記式(3)により表すことができる。
s= 実績工数y / 予測工数y´ ‥‥式(3)
精度sは、基本生産性モデル(y=f0(x))に対する各抽出モデルプロジェクトの生産性の違いを定量化する。
図5において、プロジェクトBのように生産性が高かったプロジェクトとプロジェクトCのように低かったプロジェクトに示すように、プロジェクトがばらつく状況において、生産性ギャップの大きさの定量化は、生産性が変動する最大幅とし、例えば下記式(4)に従って、「生産性ギャップの大きさl」として求める。
l = s(max) / s(min) ‥‥式(4)
式(4)の生産性ギャップの大きさlは、基本生産性モデル(y=f0(x))に対して最も生産性の高かったプロジェクトBの精度s(最小値s(min)で表す)に対する、最も生産性の低かったプロジェクトCの精度s(最大値s(max)で表す)の比として表す。なお、この例では、生産性ギャップの大きさは、l=1.65であったとする。
【0018】
「プロジェクトの分析(プロジェクト特性の決定)」‥‥(S103)
次に、抽出モデルプロジェクトの生産性ギャップの定性的な分析を行い、その結果をもとにプロジェクト特性を決定する。
ここでは、全抽出モデルプロジェクトを対象に開発組織の熟練メンバーにより分析を行い、即ち生産性に影響する要因の定性的評価(定性的事実)として分析結果を得、その結果からプロジェクト特性(要因とその重み)を決定する。
全抽出モデルプロジェクトを対象にする定性分析は、生産性に影響してプロジェクトにばらつきを生む定性的要因として、各プロジェクトに共通の要因を抽出する。
この定性分析を実行するために用いる手法としては、開発現場の経験に基く認識・判断を採り入れることができる手法を導入することが望ましい。このような手法の導入は、高い精度で開発工数を見積もることを可能にするとともに、生産性目標の決定にあたって開発部門における合意の形成を容易にし、開発組織のプロセス改善活動を推進し得るようにする、といった目的を持つ生産性ナレッジの構築にとって重要なポイントになる。
従って、例えば、該当するプロジェクトのメンバーへインタビューし実体験を“定性的事実”で表現するといった手法を用いる場合にも、経験者の実体験をストレートに示すことが大事であり、詳細であればよいという訳でもない。このためには「良い結果を得ようとしない」「難しく考えない」「精度を求めない」ことが鍵となる。
ここでは、開発部門の経験に基く認識・判断を採り入れ、全抽出モデルプロジェクトを対象に生産性ギャップの定性的分析を行った結果、各プロジェクトに共通する生産性に影響する定性的要因として導き出されたものを下記[表1]に例示する。[表1]では、5項目の要因が示されている。
【0019】
【表1】
【0020】
次いで、上記で分析結果として得られた生産性に影響する定性的要因を対象にプロジェクト特性を決定する。
プロジェクト特性の決定は、分析結果として得られた生産性に影響する要因を再検討・吟味して、要因それぞれの影響の度合いを相対化する。この検討の過程では、影響が大きい要因に対し問題にならないほど影響の小さい要因を無視するといった整理を行う。
[表1]に示した5項目の定性的要因を例にすると、影響が相対的に大きいと判断した3つの要因を「プロジェクト特性」として決定している。下記[表2]は、この結果を例示するもので、影響が相対的に大きいと判断した3つの要因をそれぞれf1、f2、f3で表す。
【0021】
【表2】
【0022】
[表2]において、「重み(w)」とは各プロジェクト特性の影響度合いの大きさを意味し、要因f1、f2、f3に対応してそれぞれw1、w2、w3で表す。重みは、最も小さいをものを「1」とした相対的な評価を定性的な判断から決定する。
【0023】
「モデルの決定(生産性ナレッジの決定)」‥‥(S104)
次に、「生産性ナレッジ」が、S103で分析結果として得た「プロジェクト特性」とS102でモデルプロジェクトの実績生産性から導かれた「生産性ギャップ」とに基づいて決定される。
生産性ナレッジは、プロジェクト特性係数cと生産性パラメータf1(x)よりなり(上記式(1)参照)、プロジェクト特性係数は、プロジェクト特性(生産性に影響する要因とその重み)と生産性ギャップの大きさとに基づき得られる。また、生産性パラメータf1(x)は、標準化生産性モデル(後記する「真の生産性」に相当する)を作成することにより得られる。
プロジェクト特性係数は、プロジェクト特性([表2])の定量化の一手法であり、生産性に影響する要因として分析された要因ごとに、さらにその大きさにバリエーションを付けることにより、実際に計画の対象になる各プロジェクトのプロジェクト特性の違いに対応することができる様にする。この場合に、用意するバリエーションは、プロジェクト特性に応じて各要因におけるバリエーションを変えても、生産性への影響が上記したモデルプロジェクトのばらつき(生産性ギャップの大きさ)の範囲内に収まるようにして、精度の確保を図るようにする。
【0024】
上記の「プロジェクト特性係数」の決定方法は、以下の手順に従って行うことができる。なお、本例では、プロジェクト特性の要因([表2])を3段階(大・中・小)で評価することにより、各要因におけるバリエーションを用意する。
図6は、プロジェクト特性係数テーブルと特性係数の決定手順を説明するための図を示す。同図におけるプロジェクト特性係数を要因ごとに大・中・小のバリエーションで決定する
プロジェクト特性fNの重みをwNと表し、3段階評価(大・中・小)に応じたプロジェクト特性係数を下記のように表現する。
プロジェクト特性の評価が「中」の場合は1に固定する。この時、cN(max)とcN(min)の差異が、プロジェクト特性fNの重みwNに依存するよう条件を決める。それは、影響が最も大きい場合(cN(max))と最も小さい場合(cN(min))の比(cN(max)・cN(min)) をwNの累乗に比例させることであり、下記[数1]の[条件式▲1▼]ように表わす。
【0025】
【数1】
【0026】
また、プロジェクト特性の評価が「中」の場合のプロジェクト係数(この場合1)が中間値になるよう、下記[条件式▲2▼]を加える。
[条件式▲2▼]
cN(max)−1 = 1−cN(min)
プロジェクト全体のプロジェクト係数c は c1×c2×c3 で表す。プロジェクト係数の最大値c(max)は各プロジェクト特性(この場合3項)の評価が全て「大」の場合であり、最小値c(min)は全て「小」の場合を示し、それぞれを下記[条件式▲3▼]で表す。
[条件式▲3▼]
c(max) = c1(max)×c2(max)×c3(max)
c(min) = c1(min)×c2(min)×c3(min)
この両者の差異は、最も生産性の高いプロジェクトと生産性の低いプロジェクトの生産性の違いを表す。それは上記「実績生産性の把握(生産性パラメータの把握)」(S102)で導き出した「実績生産性」傾向に対する「生産性ギャップの大きさl」に相当する(本例では1.65倍)と考え、c(max)とc(min)の差異と一致させ、下記[条件式▲4▼]で表す。
[条件式▲4▼]
l =c(max) / c(min) = 1.65
以上の[条件式▲1▼]〜[条件式▲4▼]により、全ての「プロジェクト特性係数」を求めると、上記図6のテーブルに示す結果が得られる。
また、特性係数の決定手順を上記[表2]に例示したプロジェクト特性に適用した結果、得られる係数値を載せたテーブルを下記[表3]に示す。
【0027】
【表3】
【0028】
次いで、生産性パラメータf1(x)を求める。
プロジェクト特性が中位(プロジェクト係数cが1)であるときの工数傾向は、現状における標準的な生産性を表す標準生産性モデルと考えられる。これを「真の生産性」と呼び、このときの生産性能力を生産性パラメータf1(x)として表す。
生産性パラメータf1(x)は、上記で抽出モデルプロジェクトに基づいて求めた基本生産性モデル(図4に示したy=f0(x))とは下記式(6)に示す関係にある、と考えられる。
y=f0(x) =f1(x)×c……式(6)
よって、生産性パラメータf1(x)は、下記式(7)として求めることができる。
f1(x)=f0(x)/c = y /c……式(7)
このようにして求められた生産性パラメータf1(x)は、プロジェクト特性を排除した生産性モデルであり、標準生産性モデルと呼ぶ所以である。
【0029】
生産性パラメータf1(x)を求めるためには、先ず、基本生産性モデル(y=f0(x))のもとにしたサンプルプロジェクトそれぞれのプロジェクト特性を求めるためにプロジェクト係数cを求める必要がある。
上記したモデルプロジェクト(図4)の例によると、4つのモデルプロジェクトA,B,C,Dを対象に「プロジェクト特性」の評価を行う。
図7は、4つのモデルプロジェクトA,B,C,Dの特性を評価し、その結果に基づいて特性を定量化したプロジェクト係数の算出結果を示している。同図に示すように、3段階(大・中・小)の特性評価結果に対して[表3]の係数を適用し、プロジェクト全体のプロジェクト係数cを、c= c1×c2×c3により求めた結果である。
求めたプロジェクト係数cと基本生産性モデル(y=f0(x))から真の生産性の傾向f1(x)を標準生産性モデルとして求める。
図8は、基本生産性モデル y=f0(x)と、標準生産性モデルとして作成された生産性パラメータ f1(x)の関係を示すグラフである。同図において、基本生産性モデル y=f0(x)にモデルプロジェクトA,B,C,Dのプロジェクト係数を適用することにより、それぞれの生産性がA’,B’,C’,D’と標準化される。従って、これに基づいて作成される生産性モデルもf1(x)に示すように標準化される。
【0030】
「開発工数目標の決定方法」に係わる実施形態を次に示す。この方法は、上記した「生産性ナレッジ」を利用することを前提とする方法である。
図9は、「生産性ナレッジ」を用いて開発工数目標を決定する手順を示すフロー図である。図9に示すフロー図を参照しながら、同図に示すS201〜S205の各手順を追って、その詳細を以下に説明する。
「開発対象プロジェクトの規模の見積り」‥‥(S201)
対象プロジェクトの開発規模を新規KLOCといったような数値により見積もる。この見積もりは、見積り精度を上げるためにも、組織内で実行した開発プロジェクトのメンバーとして豊富な経験を持ち、経験に基く認識・判断ができる者によって行うことが望ましい。また、見積もられた開発規模(新規KLOC)は、基準工数(人・月)を予測するために用いられる。
【0031】
「プロジェクト特性の評価」‥‥(S202)
見積もりを行うプロジェクトを対象にプロジェクト特性を評価する手順であり、上記した生産性ナレッジの構築方法において行ったプロジェクトの特性の評価と同様に、見積もりを行うプロジェクトを対象に開発工数に影響するプロジェクト特性を評価する。ここでも、組織内で実行した開発プロジェクトのメンバーとして豊富な経験を持ち、経験に基く認識・判断ができる者により、例えば、開発工数(コスト)に影響する要因として分析されている項目の影響の度合いを3段階(大・中・小)で評価する。この定性的特性評価の結果は、後段で行われる開発工数目標を見積もるために用いられる。
なお、ここで行われるプロジェクト特性の評価は、開発工数に影響する要因に対するものであるから、コスト要因を判断したに他ならない。つまり、プロジェクト管理の中で「プロジェクト特性」をコントロールすることにより、コスト改善を意図した目標が設定可能で、例えば、3段階(大・中・小)評価の場合、小さくする方向(大→小)へマネージメントすることによりこれを実現することが可能となる。例えば、N個のコストのバラツキ要因(=プロジェクト特性)を持てたとしたら、コスト改善の要因および方法もN個可能になる。さらに生産性ナレッジの構築における要因分析を強化してプロジェクト特性を充実させることで、プロジェクトのコスト改善さらにはコストのリスク管理活動への活用が可能になる。
【0032】
「基準工数予測」‥‥(S203)
ここでは、上記で「生産性ナレッジ」として構築された標準生産性モデル(真の生産性を表す生産性パラメータ f1(x))を用いて、基準工数を予測する。プロジェクト特性を排除した生産性モデルとして作成されたこの標準生産性モデル(生産性パラメータf1(x))における開発規模(新規KLOC)に上記したステップS201で見積もった開発規模を設定することにより、予測基準工数を求めることができる。求めた予測基準工数は、後段の開発工数目標を見積もるための基準の数値として扱われる。
「改善目標の反映」‥‥(S204)
この手順は、後段で最終的に見積もられる開発工数目標に生産性の改善を図るための数値目標を反映させる手順である。
標準生産性モデル(生産性パラメータ f1(x))という、プロジェクト特性を考慮しない標準的な生産性を表すモデルによって基準工数を予測する段階で、改善措置生産性の改善
ここでは、例えば「生産性20%向上」という目標をたてる場合、標準生産性モデル(生産性パラメータf1(x))の予測結果に対し、0.8倍(20%減)を設定することによって、プロジェクト特性に影響されない開発組織の生産性能力の改善を図るための目標を設定することができる。
【0033】
「目標工数の見積もり」‥‥(S205)
この手順は、見積もりを行うプロジェクトを対象にプロジェクト特性の定量化を行い、その結果を前段までの手順によって予測された基準工数又は改善基準工数に反映させることにより最終的に開発工数目標を求める手順である。
プロジェクト特性の定量化は、ステップS202で評価されたプロジェクト特性の定性評価をもとに、この定性評価をプロジェクト特性係数cという数値で表現するプロセスであり、上記した生産性ナレッジ構築方法の「モデルの決定(生産性ナレッジの決定)」(S104)において行ったプロジェクトの特性評価からプロジェクト特性係数を決定するプロセスにおけると同様の方法により行う。
例えば、対象プロジェクトに対し、プロジェクト特性f1,f2,f3([表2]参照)として、それぞれに以下のような3段階(大・中・小)の評価、即ち、
f1 = 大
f2 = 小
f3 = 中
が与えられた場合には、プロジェクト係数cは、
となり(図6、[表3]参照)、数値化される。
【0034】
上記のようにして、プロジェクト係数cを求めた後、これをステップS203で標準生産性モデル(生産性パラメータf1(x))により予測された基準工数、又はステップS204で生産性の改善措置が施された改善基準工数に適用することにより、生産性ナレッジの概念に従って構築された生産性モデルに基づく開発工数目標が最終的に求まる。
生産性ナレッジは、上記式(1)に示すように、Y =f1(x)×cで表されるから、例えば、開発規模見積り=100(KLOC)であり、上記のプロジェクト係数c=c1(max)×c2(min)×1=1.15×0.97×1=1.12の例を引くと、
見積もられる開発工数目標(人・月)
=f1(x)×c
=f1(100KLOC)×1.12
として工数が求まる。
【0035】
次に、上記した、生産性ナレッジを構築する方法及び構築された生産性ナレッジをもとに開発工数目標を決定する方法の手順を実行するシステムに係わる実施形態について説明する。
この実施システムは、上記において図2を参照して示した生産性ナレッジ構築方法及び図9を参照して示した開発工数目標決定方法を実行するシステムの構成要素として、それぞれの方法における処理手順に必要なデータとデータを操作して目的とする処理結果を導くプロセッサを備える必要がある。
プロセッサとしては、コンピュータを用い、又処理手順に必要なデータとしては、プロセッサとして用いる該コンピュータに搭載するプログラム或いはデータベース、さらに外部からの操作により入力されるデータを含む。
生産性ナレッジ構築方法においては、この方法の処理ステップ(S101〜S104)を実行するプログラムとともに、処理に必要なデータとして、例えば次の形態でデータを用意する。一つは、上記プロジェクトの過去の実績データ(所要工数・開発規模など)で、これは、開発組織の全プロジェクトの実績を蓄積しデータベース化しておく。また、プロジェクトの分析に用いる経験者の評価に必要なデータは、経験者の分析結果から得られた評価項目(要因)をデータベースとして用意し、経験者による重み付けの入力による方法、或いは要因とその重み付けを新たに入力するといった方法を採用することにより実施することが可能である。サンプリング条件についても、判断基準をデータとして用意するか、経験者の入力によるかして、モデルプロジェクトの抽出を実施する方法をとることが可能である。このようにして、対象プロジェクトの開発工数目標を決定する方法を実行するシステムを構成することが可能である。
また、開発工数目標決定方法においては、この方法の処理ステップ(S201〜S205)を実行するプログラムとともに、処理に必要なデータとして、例えば次の形態でデータを用意する。一つは、上記生産性ナレッジ構築方法の実施により得られた生産性ナレッジデータ(生産性パラメータ・プロジェクト特性など)で、これをデータベース化しておく。また、工数を見積もるプロジェクトの開発規模の見積もりやプロジェクト特性の評価に必要なデータは、評価項目(要因)をデータベースとして用意し、経験者による評価結果としての重み付けの入力による方法を採用することにより実施することが可能である。さらに、改善目標の設定についても、設定データの入力手段を用意する。このようにして、生産性ナレッジを構築する方法を実行するシステムを構成することが可能である。
【0036】
【発明の効果】
(1) 請求項1〜3,6の発明に対応する効果
抽出されたモデルプロジェクトの実績情報に基づいて作成された基本生産性モデルに対するプロジェクト間のばらつき(ギャップの大きさ)に基づいて生産性モデルに適用するプロジェクト特性係数を求め、また、抽出モデルプロジェクトのプロジェクト特性係数を基本生産性モデルに適用して標準化生産性モデルを作成することにより、「生産性ナレッジ(=標準生産性モデル×プロジェクト特性係数)」を構築し、生産性ナレッジを利用して対象プロジェクトの工数見積もりを行うようにしたので、開発プロジェクトのソフトウェア開発工数の見積り精度を向上させるとともに、開発組織のプロセス改善活動として下記(1)〜(3)を推進することを可能にする。
(1) 生産性改善活動
「生産性ナレッジ」では、組織の生産性能力を標準生産性モデルで表現し、このモデルに生産性の目標を設定することで、プロジェクト特性に影響されない組織の生産性能力目標を提示することが可能になる。また、「生産性ナレッジ」は、「過去の客観的データ」と「経験者による主観的評価」を結び付ける理論に従う手順によって異なる組織毎に構築されるので、開発部門からの信頼が高く、定量的で改善度合いが見え、再利用・再集計が容易で、レベルに応じた工数目標の設定や改善が可能である、などの性格を有し、SEPG(Software Engineering Process Group)と開発部門が達成目標を合意する方法として、また継続的な工数目標管理のしくみとして有効である。さらに、開発委託を行う場合の発注側と受注側の基準工数の設定方法としても有効な手段となり得る。
(2) コスト改善活動
「生産性ナレッジ」では、「プロジェクト特性」を評価した結果により目標工数を変えることができる仕組みであるから、開発工数(コスト)を見積もる場合、プロジェクト管理の中で「プロジェクト特性」をコントロールするマネージメントによってコスト改善を推進することが可能である。例えば、N個のコストのばらつき要因(=プロジェクト特性)を持てたとしたら、コスト改善の要因および方法もN個可能になる。「プロジェクト特性」を充実させることで、プロジェクトのコスト改善さらにはコストのリスク管理活動への活用が可能になる。
(3) 第三者による見積もり支援
標準生産性モデルの決定とプロジェクト特性の定量パラメータ(特性係数)の算出は、第三者で集計が可能である。つまりSEPGとして開発部門を支援し易くなり、
▲1▼ 開発当事者の経験に頼りがちなソフトウェア見積もりに共通のベースを持てるようになり、工数を見積もる事に対し支援や助言が可能になる。
▲2▼ プロジェクトのQCDに追われて改善活動の時間が確保しにくい開発設計者に対し、見積もり作業の一部を代行できる。
といったメリットがある。
【0037】
(2) 請求項4,5,7,8の発明に対応する効果
請求項1〜3のいずれかに記載された生産性ナレッジ構築方法或いは請求項6に記載されたソフトウェア開発工数目標決定方法の各ステップを実行するためのプログラムをコンピュータに搭載することにより、上記(1)の効果を容易に具現化することが可能になる。
【図面の簡単な説明】
【図1】本発明を適用してプロセス改善活動を実施するPDCAサイクルに基づいた開発プロセスを示す。
【図2】本発明に係わる生産性ナレッジを構築する手順を示すフロー図である。
【図3】開発プロジェクトの規模と工数の相関を例示するグラフを示す。
【図4】抽出モデルプロジェクトA,B,C,Dの実績データと基本生産性モデル(y=f0(x))の関係を示す。
【図5】モデルプロジェクトA,B,C,Dの予測工数と実績のギャップを示すグラフである。
【図6】プロジェクト特性係数テーブルと特性係数の決定手順を説明するための図を示す。
【図7】モデルプロジェクトA,B,C,Dの特性の評価に基づいて算出したプロジェクト特性係数を示す。
【図8】基本生産性モデルf0(x)と、標準生産性モデルとしての生産性パラメータ f1(x)の関係を示すグラフである。
【図9】「生産性ナレッジ」を用いて開発工数目標を決定する手順を示すフロー図である。
【符号の説明】
10…生産性データ・定性的事実 データベース、
30…生産性ナレッジ構築 手順、
50…生産性ナレッジ データベース。
【発明の属する技術分野】
本発明は、ソフトウェア開発プロジェクトの管理に用いることが可能な生産性ナレッジの構築方法、及びソフトウェア開発工数目標の決定方法に関し、特定すると、開発組織全体の生産性向上と開発コストの改善を狙いとし、組織資産として継続的管理を行うことを前提にした、生産性パラメータとプロジェクト特性よりなる前記生産性ナレッジの構築方法、及び構築された生産性ナレッジを開発組織の新規プロジェクトに適用し、開発工数目標を決定する方法、前記方法を実行するためのコンピュータプログラム及びシステムに関する。
【0002】
【従来の技術】
従来からソフトウェアの開発プロジェクトを起こす際に、その開発計画の要件として所要工数の見積もりを行っている。開発工数の見積りは、プロジェクトの内容(特性)や要員の習熟度(メンバーの能力)などによってばらつきが大きく、正確な見積もりは難しい。
こうした開発工数の見積もりに、モデル・手法・専門ツールなどを用いる方法が従来から存在するが、どんな開発プロジェクトにおいても、そのまま適用できる解決方法ではない。例えばCOCOMO(Constructive Cost Model)、FP(Function Point)法などが、このような手法として知られている。COCOMO法は、生産性に影響を及ぼす要因とその影響度合を推定し、推定した開発要因と開発工数から,開発人月、開発期間を見積るというやり方で、一般的な開発モデルを尺度として対象プロジェクトの違いを推定するという手法であるから、おおよその見積もりを可能とすることを意図した方法と考えられ、計画通りに開発を行っていくための目安を示す意味を持つものである。
【0003】
【発明が解決しようとする課題】
しかしながら、COCOMO法等は、一般的な手法として提示されたものであり、実際の開発プロジェクトに適用するためには、開発組織の成熟度や組織の背景にある文化などに応じたカスタマイズを必要とするが、現状では具体性、客観性に乏しいものとなり勝ちで、カスタマイズがうまく行かないために、見積もり精度が低く、有効な結果を導くことができない場合も少なくない。
また、開発工数などを見積もるこの従来手法における視点は、予測した工数と実際にかかった工数に大きな狂いはなく、計画通りに開発を行うようにするという点におかれており、開発組織全体の開発コストの改善や生産性の向上、という点を明確に意識するものではない。
従って、PDCAサイクル(後記、図1に関する説明、参照)に基づいた組織のプロセス改善活動を実施する際に適用すると、活動の障害となる。つまり、PDCAサイクルにおける生産性目標(工数目標)の決定には、開発部門における合意の形成が重要な要素となるが、具体性、客観性に乏しいものとなり勝ちである上記した従来手法を用いて見積もられた開発計画によると、合意の形成に困難を伴う。
本発明は、ソフトウェアの開発工数を見積もるための上記従来手法における問題点に鑑みてなされたものであり、その目的は、開発プロジェクトのソフトウェア開発工数の見積り精度を向上させるとともに、生産性目標(工数目標)を決定するにあたって開発部門における合意の形成を容易にして、開発組織のプロセス改善活動(開発組織全体の生産性の向上や開発プロジェクトのコスト管理)を推進し得るようにする、ことにある。
【0004】
【課題を解決するための手段】
請求項1の発明は、過去に実行されたソフトウェア開発プロジェクトから選ばれた複数のモデルプロジェクトの実績情報に基づいて一定の生産性傾向を示す基本生産性モデルを作成する手順、前記複数のモデルプロジェクトのプロジェクト特性を分析する手順、該分析手順により得られたプロジェクト特性と前記複数のモデルプロジェクトの前記基本生産性モデルに対するばらつきに基づいて生産性モデルに適用するプロジェクト特性係数を求める手順、該プロジェクト特性係数を前記複数のモデルプロジェクトに適用することにより前記基本生産性モデルを標準化する標準化生産性モデル作成手順、の各手順よりなる生産性ナレッジ構築方法である。
【0005】
請求項2の発明は、請求項1に記載された生産性ナレッジ構築方法において、前記実績情報が開発規模に対する開発工数の関係を示す情報であることを特徴とする方法である。
請求項3の発明は、請求項1又は2に記載された生産性ナレッジ構築方法において、分析される前記プロジェクト特性を複数のモデルプロジェクトにばらつきを生む要因とその重みとし、前記プロジェクト特性係数として、前記ばらつき範囲に標準化生産性モデルを収め、かつプロジェクト特性の違いに応じたバリエーションを用意するようにしたことを特徴とする方法である。
【0006】
請求項4の発明は、請求項1乃至3のいずれかに記載された生産性ナレッジ構築方法の各手順をコンピュータに実行させるためのプログラムである。
請求項5の発明は、請求項4に記載されたプログラムを搭載したコンピュータを備え、生産性ナレッジを構築する手段として該コンピュータを機能させるようにしたことを特徴とする生産性ナレッジ構築システムである。
【0007】
請求項6の発明は、開発工数目標を決定する開発対象プロジェクトの規模を見積る手順、該開発対象プロジェクトのプロジェクト特性を請求項1乃至3のいずれかに記載された生産性ナレッジ構築方法における前記プロジェクト特性係数によって評価する手順、見積られたプロジェクトの規模と評価結果として得られる前記プロジェクト特性係数を請求項1乃至3のいずれかに記載された生産性ナレッジ構築方法によって作成された前記標準化生産性モデルに設定することにより対象プロジェクトのソフトウェア開発工数目標を決定する手順、の各手順よりなるソフトウェア開発工数目標決定方法である。
【0008】
請求項7の発明は、請求項6に記載されたソフトウェア開発工数目標決定方法の各手順をコンピュータに実行させるためのプログラムである。
請求項8の発明は、請求項7に記載されたプログラムを搭載したコンピュータを備え、ソフトウェア開発工数目標を決定する手段として該コンピュータを機能させるようにしたことを特徴とするソフトウェア開発工数目標決定システムである。
【0009】
【発明の実施の形態】
本発明は、ソフトウェア開発プロジェクトにおける「生産性ナレッジ」を構築する方法及び構築された「生産性ナレッジ」をもとにソフトウェア開発工数目標を決定する方法に係わる。
「生産性ナレッジ」は、ソフトウェア開発プロジェクトの開発工数を見積るために構築される開発プロジェクトのモデルというべきものである。ここで構築される生産性ナレッジ モデルは、高い精度で開発工数を見積もることを可能にするとともに、生産性目標(工数目標)を決定するにあたって開発部門における合意の形成を容易にして、開発組織のプロセス改善活動(即ち、開発組織全体の生産性の向上や開発プロジェクトのコスト管理)を推進し得るようにする、といった意図に沿った性格が与えられる。
ここで、上記のような性格が与えられる「生産性ナレッジ」の概念を把握するために、本発明に係わる実施形態により構築される生産性ナレッジの構成、生産性ナレッジの構築方法及び生産性ナレッジを用いた開発工数目標決定方法の概要を説明する。
【0010】
この実施形態により構築される「生産性ナレッジ」の構成上の特徴は、下記式(1)により表現される。
〔生産性ナレッジ Y 〕= 〔生産性パラメータ f1(x)〕 × 〔プロジェクト特性 c〕‥‥式(1)
ここに、式(1)に示した生産性パラメータ f1(x)は、開発プロジェクトの生産性能力を、例えば、開発規模当たりの工数(人月)のような定量的尺度で表現する。また、プロジェクト特性(係数) cは、生産性に影響するプロジェクト単位の定性的な要因をベースに、開発部門の経験に基づいて工数への影響度を個々の特性として定量的に表現する。つまり、「生産性パラメータ」は、組織の生産性能力を表現しているのに対し、「プロジェクト特性」は、開発コスト要因を表現し、それぞれを変量としてとらえることにより、目的に応じた活用を可能にする。
【0011】
また、上記式(1)に示した「生産性ナレッジ」の構築方法は、次に示す(1)〜(4)を基本的な手順とする。
(1) サンプリング(モデルプロジェクトの抽出)
(2) 実績生産性の把握
(3) プロジェクト特性の決定
(4) 生産性ナレッジの決定
上記(1)のサンプリングにおいては、開発組織全体における過去の開発プロジェクトから得られた経験値を蓄積したデータベースからの実績データ(定量化された生産性データ)に基いて、通常の開発体制をとるプロジェクトの中から品質、生産性の高いもの、という条件を満たす複数のモデルプロジェクトを抽出する。
上記(2)の実績生産性の把握においては、上記(1)で抽出された複数のモデルプロジェクトの生産性データをもとに基本生産性モデル(抽出された複数プロジェクトから求めた平均化モデル)を求め、さらに基本生産性モデルに対する抽出プロジェクトのばらつき(生産性ギャップの大きさ)を求める。
上記(3)のプロジェクト特性の決定においては、開発組織の熟練メンバーによる生産性ギャップ(上記(2)参照)の定性的な分析、即ち生産性に影響する要因の定性的評価(定性的事実)からプロジェクト特性(要因とその重み)を決定する。
上記(4)の生産性ナレッジ(上記式(1))の決定においては、プロジェクト特性係数cと生産性パラメータf1(x)を決定する。
プロジェクト特性係数 cは、前段で決定されたプロジェクト特性(生産性に影響する要因とその重み)と、実績生産性として上記(2)で得られる生産性ギャップの大きさをとを基に決定される。
また、生産性パラメータf1(x)は、標準化生産性モデル(後記する「真の生産性」に相当する)、即ちプロジェクト特性が中位(プロジェクト係数が1)であるときの生産性を表すもので、プロジェクト特性係数を複数のモデルプロジェクトの実績情報に適用することにより得られる標準化された情報に基いて作成される。
【0012】
また、上記の手順により決定された生産性ナレッジは実用モデルとして開発プロジェクトの開発工数を見積るために適用される。
生産性ナレッジを適用して開発工数を見積る開発工数目標決定方法は、次に示す(i)〜(iii)を基本的な手順とする。
(i) 開発対象プロジェクトの規模の見積り
(ii) 開発対象プロジェクトのプロジェクト特性の評価
(iii) 開発工数目標の決定
上記(i)における開発対象プロジェクトの規模の見積りにおいては、組織内で実行した開発プロジェクトのメンバーとして豊富な経験を持つ者によって、新規KLOCといったような数値による見積もりを行う。
上記(ii)におけるプロジェクト特性の評価は、組織内で実行した開発プロジェクトのメンバーとして豊富な経験を持つ熟練者により対象プロジェクトを評価し、プロジェクト特性係数(上記(3),(4)参照)で結果を表現する。
上記(iii)の開発工数目標の決定においては、標準化生産性モデル(上記(4)参照)において、上記(i)で見積られたプロジェクトの規模と上記(ii)で評価結果として得られるプロジェクト特性係数を設定することにより求められる開発工数を開発工数目標として決定する。
【0013】
次に、上記で概要を示した、ソフトウェア開発プロジェクトにおける生産性ナレッジを構築する方法及び構築された生産性ナレッジをもとにソフトウェア開発工数目標を決定する方法の手順を、図面とともに示す以下の実施形態に基づきより詳細に説明する。
生産性ナレッジ構築方法、ソフトウェア開発工数目標決定方法の説明に先だって、これらの方法を適用してソフトウェア開発プロジェクトを管理するシステムにおける、プロセス改善活動について説明する。
図1は、本実施形態の方法を適用してプロセス改善活動を実施するPDCAサイクルに基づいた開発プロセスを示す図である。
図1に示すPDCAサイクルは、「目標値決定(Plan)」→「実行(Do)」→「評価(Check)」→「改善措置(Action)」→「目標値決定(Plan)」というサイクルの動作を行う点で、基本的には既存の生産性改善プロセスにおけると変りがない。このPDCAサイクルに従う開発プロセスでは、新たな開発プロジェクトを立案する際に、過去に実行(Do)された開発プロジェクトを参照し、そのプロジェクトの実績の評価(Check)結果を受けて、プロジェクトに必要な改善措置(Action)を施すようにする。このようにして新たに立案した計画により定められる目標値(Plan)に従って開発を実行(Do)し、さらにその実行結果に対する評価を重ねることにより、開発プロジェクトの改善を推進するものである。
【0014】
こうしたPDCAサイクルに基づいた開発プロセスに、本実施形態の生産性ナレッジ構築方法及びソフトウェア開発工数目標決定方法を導入することにより、開発組織全体の生産性の向上や開発プロジェクトのコスト管理によって目的とするプロセス改善活動を推進することが可能になる。
生産性ナレッジ構築方法及びソフトウェア開発工数目標決定方法をPDCAサイクルに基づいた開発プロセスに導入するためには、図1において「生産性データ・定性的事実 データベース10」「生産性ナレッジ構築 手順30」「生産性ナレッジ データベース50」とデータの流れにより示されているような要素を必要とする。これらは、上記した生産性ナレッジを構築・利用する([0010]〜[0012]、参照)ための、生産性ナレッジの構築に用いるデータ、生産性ナレッジを構築する手順、構築された生産性ナレッジをもとに開発工数目標を決定する手順、等に必要な要素である。
生産性ナレッジの構築に用いるデータは、開発組織全体における過去の開発プロジェクトの実行結果として得られた実績データ(生産性データ)を蓄積したもの、さらに過去の開発プロジェクトに対するプロジェクト特性(定性的事実)などの評価データを参照したものが含まれる(図1の「生産性データ・定性的事実データベース10」への「実行(Do)」「評価(Check)」からのデータの流れに示される)。
生産性ナレッジ構築手順30は、「生産性データ・定性的事実 データベース」により提供されるデータに基き、「改善措置(Action)」より指示される方針を反映した形で生産性ナレッジを構築する。
開発工数目標を決定手順は、生産性ナレッジ構築手順30により構築された生産性ナレッジを開発プロジェクトの「目標値決定(Plan)」における決定手順に用いるモデルに適用する。
なお、生産性ナレッジ構築手順30及び開発工数目標を決定する手順については、下記の実施形態で詳述する。
【0015】
「生産性ナレッジ」の構築方法に係わる実施形態を次に示す。
図2は、生産性ナレッジを構築する手順を示すフロー図である。図2に示すフロー図を参照しながら、同図に示すS101〜S104の各手順を追って、その詳細を以下に説明する。
「サンプリング(モデルプロジェクトの抽出)」‥‥(S101)
まず、生産性ナレッジを構築するために用いるプロジェクトを開発組織において過去に開発されたプロジェクトの中からサンプルプロジェクトとして抽出する。
所定の開発組織においては、開発プロジェクトの規模と工数の相関に一定の傾向が現れる。図3のグラフはこの相関を例示するもので、x軸の開発規模(新規KLOC)に対するy軸の開発工数(人月)により、開発生産性のメトリクスを表している。図3の例では、グラフ中に点で示す各プロジェクトは、図示のようにばらつきがあるが、全体として図中に直線で示すような一定の傾向が現れる。
図3に示すようなデータを参照して、開発プロジェクトの中から品質、生産性の高いもの、というサンプリング条件を満たす複数のモデルプロジェクトを抽出する。抽出する際に、例えば、通常の開発体制とは異なる特殊な体制により開発が行われたプロジェクト等は、ノイズになるという理由で抽出の対象から除外する。品質、生産性の高いもの、というサンプリング条件は、開発組織のプロセス改善活動(即ち、開発組織全体の生産性の向上や開発プロジェクトのコスト管理)を推進し得るようにするという観点から重要な要素となる。従って、モデルプロジェクトの抽出は、開発されたプロジェクト全体の状況を把握でき、品質、生産性の判断が可能なメンバーによって行われることが必要で、開発組織側との協議といった方法を採り入れることにより、現場の判断を反映させるようにすることが望ましい。
【0016】
「実績生産性の把握(生産性パラメータの把握)」‥‥(S102)
次に、前段で抽出されたモデルプロジェクトの「実績生産性」を把握する。
ここでは、モデルプロジェクトの過去の実績データをもとに定量モデル(生産性パラメータ)を作成し、また、モデルプロジェクト間の生産性ギャップの大きさを把握する。
定量モデル(生産性パラメータ)は、具体的には、サンプルプロジェクトにおける開発規模に対する所要工数の相関傾向を求めることによる。
図4は、4つのモデルプロジェクトA,B,C,D,が抽出された場合の各プロジェクトの実績データと生産性モデル(y=f0(x))の関係を示す。図4において開発規模(x軸)−所要工数(y軸)上に点で示される各プロジェクトの相関傾向は、最も相関係数の高い近似線により最も端的に表され、この近似線はサンプルプロジェクトの平均的な生産性を示す。このような相関傾向、即ち抽出された複数プロジェクトの平均的な生産性を示す生産性モデルを、y=f0(x)で表現し、「生産性ナレッジ」を構築する場合の基本となる生産性モデルであるということから、「基本生産性モデル」と呼ぶ。
【0017】
さらに、前段で抽出されたモデルプロジェクトの生産性の違いにより生じる生産性ギャップの大きさを把握する。この生産性ギャップの把握は、後述する「プロジェクト係数」の決定に必要な手順である。
生産性ギャップの大きさは、具体的には、上記で抽出モデルプロジェクトの「実績生産性」として求めた基本生産性モデル(y=f0(x))に対する各抽出モデルプロジェクトの生産性の違いを定量的に評価する。
生産性ギャップの大きさの定量化は、以下のような手順により行う。
図4に示した基本生産性モデル(y=f0(x))に対する各抽出モデルプロジェクトA,B,C,D,を例にすると、「y=f0(x)」に対し、各プロジェクトはそれぞれ生産性の高低があり、ばらつきが生じる。そこで、まず「y=f0(x)」から各プロジェクトの実績開発規模xの「予測工数y´」を求め、実績工数yと対比する。
つまり、下記式(2)により予測工数y´を求める。
y´=f0(実績開発規模) ‥‥式(2)
図5は、抽出モデルプロジェクトA,B,C,Dの予測工数と実績のギャップを示すグラフである。図5において予測工数(x軸)−実績工数(y軸)上に示される点で基本生産性モデルに対する生産性の違いを表す。つまり、予測工数と実績工数が一致する「y=x」線上に近いほど、「実績生産性」として求めた基本生産性モデル(y=f0(x))で示される傾向にプロジェクトの特性が合っていると言える。
上記のようにして求めた予測工数に対する実績工数の精度をsとすると、下記式(3)により表すことができる。
s= 実績工数y / 予測工数y´ ‥‥式(3)
精度sは、基本生産性モデル(y=f0(x))に対する各抽出モデルプロジェクトの生産性の違いを定量化する。
図5において、プロジェクトBのように生産性が高かったプロジェクトとプロジェクトCのように低かったプロジェクトに示すように、プロジェクトがばらつく状況において、生産性ギャップの大きさの定量化は、生産性が変動する最大幅とし、例えば下記式(4)に従って、「生産性ギャップの大きさl」として求める。
l = s(max) / s(min) ‥‥式(4)
式(4)の生産性ギャップの大きさlは、基本生産性モデル(y=f0(x))に対して最も生産性の高かったプロジェクトBの精度s(最小値s(min)で表す)に対する、最も生産性の低かったプロジェクトCの精度s(最大値s(max)で表す)の比として表す。なお、この例では、生産性ギャップの大きさは、l=1.65であったとする。
【0018】
「プロジェクトの分析(プロジェクト特性の決定)」‥‥(S103)
次に、抽出モデルプロジェクトの生産性ギャップの定性的な分析を行い、その結果をもとにプロジェクト特性を決定する。
ここでは、全抽出モデルプロジェクトを対象に開発組織の熟練メンバーにより分析を行い、即ち生産性に影響する要因の定性的評価(定性的事実)として分析結果を得、その結果からプロジェクト特性(要因とその重み)を決定する。
全抽出モデルプロジェクトを対象にする定性分析は、生産性に影響してプロジェクトにばらつきを生む定性的要因として、各プロジェクトに共通の要因を抽出する。
この定性分析を実行するために用いる手法としては、開発現場の経験に基く認識・判断を採り入れることができる手法を導入することが望ましい。このような手法の導入は、高い精度で開発工数を見積もることを可能にするとともに、生産性目標の決定にあたって開発部門における合意の形成を容易にし、開発組織のプロセス改善活動を推進し得るようにする、といった目的を持つ生産性ナレッジの構築にとって重要なポイントになる。
従って、例えば、該当するプロジェクトのメンバーへインタビューし実体験を“定性的事実”で表現するといった手法を用いる場合にも、経験者の実体験をストレートに示すことが大事であり、詳細であればよいという訳でもない。このためには「良い結果を得ようとしない」「難しく考えない」「精度を求めない」ことが鍵となる。
ここでは、開発部門の経験に基く認識・判断を採り入れ、全抽出モデルプロジェクトを対象に生産性ギャップの定性的分析を行った結果、各プロジェクトに共通する生産性に影響する定性的要因として導き出されたものを下記[表1]に例示する。[表1]では、5項目の要因が示されている。
【0019】
【表1】
【0020】
次いで、上記で分析結果として得られた生産性に影響する定性的要因を対象にプロジェクト特性を決定する。
プロジェクト特性の決定は、分析結果として得られた生産性に影響する要因を再検討・吟味して、要因それぞれの影響の度合いを相対化する。この検討の過程では、影響が大きい要因に対し問題にならないほど影響の小さい要因を無視するといった整理を行う。
[表1]に示した5項目の定性的要因を例にすると、影響が相対的に大きいと判断した3つの要因を「プロジェクト特性」として決定している。下記[表2]は、この結果を例示するもので、影響が相対的に大きいと判断した3つの要因をそれぞれf1、f2、f3で表す。
【0021】
【表2】
【0022】
[表2]において、「重み(w)」とは各プロジェクト特性の影響度合いの大きさを意味し、要因f1、f2、f3に対応してそれぞれw1、w2、w3で表す。重みは、最も小さいをものを「1」とした相対的な評価を定性的な判断から決定する。
【0023】
「モデルの決定(生産性ナレッジの決定)」‥‥(S104)
次に、「生産性ナレッジ」が、S103で分析結果として得た「プロジェクト特性」とS102でモデルプロジェクトの実績生産性から導かれた「生産性ギャップ」とに基づいて決定される。
生産性ナレッジは、プロジェクト特性係数cと生産性パラメータf1(x)よりなり(上記式(1)参照)、プロジェクト特性係数は、プロジェクト特性(生産性に影響する要因とその重み)と生産性ギャップの大きさとに基づき得られる。また、生産性パラメータf1(x)は、標準化生産性モデル(後記する「真の生産性」に相当する)を作成することにより得られる。
プロジェクト特性係数は、プロジェクト特性([表2])の定量化の一手法であり、生産性に影響する要因として分析された要因ごとに、さらにその大きさにバリエーションを付けることにより、実際に計画の対象になる各プロジェクトのプロジェクト特性の違いに対応することができる様にする。この場合に、用意するバリエーションは、プロジェクト特性に応じて各要因におけるバリエーションを変えても、生産性への影響が上記したモデルプロジェクトのばらつき(生産性ギャップの大きさ)の範囲内に収まるようにして、精度の確保を図るようにする。
【0024】
上記の「プロジェクト特性係数」の決定方法は、以下の手順に従って行うことができる。なお、本例では、プロジェクト特性の要因([表2])を3段階(大・中・小)で評価することにより、各要因におけるバリエーションを用意する。
図6は、プロジェクト特性係数テーブルと特性係数の決定手順を説明するための図を示す。同図におけるプロジェクト特性係数を要因ごとに大・中・小のバリエーションで決定する
プロジェクト特性fNの重みをwNと表し、3段階評価(大・中・小)に応じたプロジェクト特性係数を下記のように表現する。
プロジェクト特性の評価が「中」の場合は1に固定する。この時、cN(max)とcN(min)の差異が、プロジェクト特性fNの重みwNに依存するよう条件を決める。それは、影響が最も大きい場合(cN(max))と最も小さい場合(cN(min))の比(cN(max)・cN(min)) をwNの累乗に比例させることであり、下記[数1]の[条件式▲1▼]ように表わす。
【0025】
【数1】
【0026】
また、プロジェクト特性の評価が「中」の場合のプロジェクト係数(この場合1)が中間値になるよう、下記[条件式▲2▼]を加える。
[条件式▲2▼]
cN(max)−1 = 1−cN(min)
プロジェクト全体のプロジェクト係数c は c1×c2×c3 で表す。プロジェクト係数の最大値c(max)は各プロジェクト特性(この場合3項)の評価が全て「大」の場合であり、最小値c(min)は全て「小」の場合を示し、それぞれを下記[条件式▲3▼]で表す。
[条件式▲3▼]
c(max) = c1(max)×c2(max)×c3(max)
c(min) = c1(min)×c2(min)×c3(min)
この両者の差異は、最も生産性の高いプロジェクトと生産性の低いプロジェクトの生産性の違いを表す。それは上記「実績生産性の把握(生産性パラメータの把握)」(S102)で導き出した「実績生産性」傾向に対する「生産性ギャップの大きさl」に相当する(本例では1.65倍)と考え、c(max)とc(min)の差異と一致させ、下記[条件式▲4▼]で表す。
[条件式▲4▼]
l =c(max) / c(min) = 1.65
以上の[条件式▲1▼]〜[条件式▲4▼]により、全ての「プロジェクト特性係数」を求めると、上記図6のテーブルに示す結果が得られる。
また、特性係数の決定手順を上記[表2]に例示したプロジェクト特性に適用した結果、得られる係数値を載せたテーブルを下記[表3]に示す。
【0027】
【表3】
【0028】
次いで、生産性パラメータf1(x)を求める。
プロジェクト特性が中位(プロジェクト係数cが1)であるときの工数傾向は、現状における標準的な生産性を表す標準生産性モデルと考えられる。これを「真の生産性」と呼び、このときの生産性能力を生産性パラメータf1(x)として表す。
生産性パラメータf1(x)は、上記で抽出モデルプロジェクトに基づいて求めた基本生産性モデル(図4に示したy=f0(x))とは下記式(6)に示す関係にある、と考えられる。
y=f0(x) =f1(x)×c……式(6)
よって、生産性パラメータf1(x)は、下記式(7)として求めることができる。
f1(x)=f0(x)/c = y /c……式(7)
このようにして求められた生産性パラメータf1(x)は、プロジェクト特性を排除した生産性モデルであり、標準生産性モデルと呼ぶ所以である。
【0029】
生産性パラメータf1(x)を求めるためには、先ず、基本生産性モデル(y=f0(x))のもとにしたサンプルプロジェクトそれぞれのプロジェクト特性を求めるためにプロジェクト係数cを求める必要がある。
上記したモデルプロジェクト(図4)の例によると、4つのモデルプロジェクトA,B,C,Dを対象に「プロジェクト特性」の評価を行う。
図7は、4つのモデルプロジェクトA,B,C,Dの特性を評価し、その結果に基づいて特性を定量化したプロジェクト係数の算出結果を示している。同図に示すように、3段階(大・中・小)の特性評価結果に対して[表3]の係数を適用し、プロジェクト全体のプロジェクト係数cを、c= c1×c2×c3により求めた結果である。
求めたプロジェクト係数cと基本生産性モデル(y=f0(x))から真の生産性の傾向f1(x)を標準生産性モデルとして求める。
図8は、基本生産性モデル y=f0(x)と、標準生産性モデルとして作成された生産性パラメータ f1(x)の関係を示すグラフである。同図において、基本生産性モデル y=f0(x)にモデルプロジェクトA,B,C,Dのプロジェクト係数を適用することにより、それぞれの生産性がA’,B’,C’,D’と標準化される。従って、これに基づいて作成される生産性モデルもf1(x)に示すように標準化される。
【0030】
「開発工数目標の決定方法」に係わる実施形態を次に示す。この方法は、上記した「生産性ナレッジ」を利用することを前提とする方法である。
図9は、「生産性ナレッジ」を用いて開発工数目標を決定する手順を示すフロー図である。図9に示すフロー図を参照しながら、同図に示すS201〜S205の各手順を追って、その詳細を以下に説明する。
「開発対象プロジェクトの規模の見積り」‥‥(S201)
対象プロジェクトの開発規模を新規KLOCといったような数値により見積もる。この見積もりは、見積り精度を上げるためにも、組織内で実行した開発プロジェクトのメンバーとして豊富な経験を持ち、経験に基く認識・判断ができる者によって行うことが望ましい。また、見積もられた開発規模(新規KLOC)は、基準工数(人・月)を予測するために用いられる。
【0031】
「プロジェクト特性の評価」‥‥(S202)
見積もりを行うプロジェクトを対象にプロジェクト特性を評価する手順であり、上記した生産性ナレッジの構築方法において行ったプロジェクトの特性の評価と同様に、見積もりを行うプロジェクトを対象に開発工数に影響するプロジェクト特性を評価する。ここでも、組織内で実行した開発プロジェクトのメンバーとして豊富な経験を持ち、経験に基く認識・判断ができる者により、例えば、開発工数(コスト)に影響する要因として分析されている項目の影響の度合いを3段階(大・中・小)で評価する。この定性的特性評価の結果は、後段で行われる開発工数目標を見積もるために用いられる。
なお、ここで行われるプロジェクト特性の評価は、開発工数に影響する要因に対するものであるから、コスト要因を判断したに他ならない。つまり、プロジェクト管理の中で「プロジェクト特性」をコントロールすることにより、コスト改善を意図した目標が設定可能で、例えば、3段階(大・中・小)評価の場合、小さくする方向(大→小)へマネージメントすることによりこれを実現することが可能となる。例えば、N個のコストのバラツキ要因(=プロジェクト特性)を持てたとしたら、コスト改善の要因および方法もN個可能になる。さらに生産性ナレッジの構築における要因分析を強化してプロジェクト特性を充実させることで、プロジェクトのコスト改善さらにはコストのリスク管理活動への活用が可能になる。
【0032】
「基準工数予測」‥‥(S203)
ここでは、上記で「生産性ナレッジ」として構築された標準生産性モデル(真の生産性を表す生産性パラメータ f1(x))を用いて、基準工数を予測する。プロジェクト特性を排除した生産性モデルとして作成されたこの標準生産性モデル(生産性パラメータf1(x))における開発規模(新規KLOC)に上記したステップS201で見積もった開発規模を設定することにより、予測基準工数を求めることができる。求めた予測基準工数は、後段の開発工数目標を見積もるための基準の数値として扱われる。
「改善目標の反映」‥‥(S204)
この手順は、後段で最終的に見積もられる開発工数目標に生産性の改善を図るための数値目標を反映させる手順である。
標準生産性モデル(生産性パラメータ f1(x))という、プロジェクト特性を考慮しない標準的な生産性を表すモデルによって基準工数を予測する段階で、改善措置生産性の改善
ここでは、例えば「生産性20%向上」という目標をたてる場合、標準生産性モデル(生産性パラメータf1(x))の予測結果に対し、0.8倍(20%減)を設定することによって、プロジェクト特性に影響されない開発組織の生産性能力の改善を図るための目標を設定することができる。
【0033】
「目標工数の見積もり」‥‥(S205)
この手順は、見積もりを行うプロジェクトを対象にプロジェクト特性の定量化を行い、その結果を前段までの手順によって予測された基準工数又は改善基準工数に反映させることにより最終的に開発工数目標を求める手順である。
プロジェクト特性の定量化は、ステップS202で評価されたプロジェクト特性の定性評価をもとに、この定性評価をプロジェクト特性係数cという数値で表現するプロセスであり、上記した生産性ナレッジ構築方法の「モデルの決定(生産性ナレッジの決定)」(S104)において行ったプロジェクトの特性評価からプロジェクト特性係数を決定するプロセスにおけると同様の方法により行う。
例えば、対象プロジェクトに対し、プロジェクト特性f1,f2,f3([表2]参照)として、それぞれに以下のような3段階(大・中・小)の評価、即ち、
f1 = 大
f2 = 小
f3 = 中
が与えられた場合には、プロジェクト係数cは、
となり(図6、[表3]参照)、数値化される。
【0034】
上記のようにして、プロジェクト係数cを求めた後、これをステップS203で標準生産性モデル(生産性パラメータf1(x))により予測された基準工数、又はステップS204で生産性の改善措置が施された改善基準工数に適用することにより、生産性ナレッジの概念に従って構築された生産性モデルに基づく開発工数目標が最終的に求まる。
生産性ナレッジは、上記式(1)に示すように、Y =f1(x)×cで表されるから、例えば、開発規模見積り=100(KLOC)であり、上記のプロジェクト係数c=c1(max)×c2(min)×1=1.15×0.97×1=1.12の例を引くと、
見積もられる開発工数目標(人・月)
=f1(x)×c
=f1(100KLOC)×1.12
として工数が求まる。
【0035】
次に、上記した、生産性ナレッジを構築する方法及び構築された生産性ナレッジをもとに開発工数目標を決定する方法の手順を実行するシステムに係わる実施形態について説明する。
この実施システムは、上記において図2を参照して示した生産性ナレッジ構築方法及び図9を参照して示した開発工数目標決定方法を実行するシステムの構成要素として、それぞれの方法における処理手順に必要なデータとデータを操作して目的とする処理結果を導くプロセッサを備える必要がある。
プロセッサとしては、コンピュータを用い、又処理手順に必要なデータとしては、プロセッサとして用いる該コンピュータに搭載するプログラム或いはデータベース、さらに外部からの操作により入力されるデータを含む。
生産性ナレッジ構築方法においては、この方法の処理ステップ(S101〜S104)を実行するプログラムとともに、処理に必要なデータとして、例えば次の形態でデータを用意する。一つは、上記プロジェクトの過去の実績データ(所要工数・開発規模など)で、これは、開発組織の全プロジェクトの実績を蓄積しデータベース化しておく。また、プロジェクトの分析に用いる経験者の評価に必要なデータは、経験者の分析結果から得られた評価項目(要因)をデータベースとして用意し、経験者による重み付けの入力による方法、或いは要因とその重み付けを新たに入力するといった方法を採用することにより実施することが可能である。サンプリング条件についても、判断基準をデータとして用意するか、経験者の入力によるかして、モデルプロジェクトの抽出を実施する方法をとることが可能である。このようにして、対象プロジェクトの開発工数目標を決定する方法を実行するシステムを構成することが可能である。
また、開発工数目標決定方法においては、この方法の処理ステップ(S201〜S205)を実行するプログラムとともに、処理に必要なデータとして、例えば次の形態でデータを用意する。一つは、上記生産性ナレッジ構築方法の実施により得られた生産性ナレッジデータ(生産性パラメータ・プロジェクト特性など)で、これをデータベース化しておく。また、工数を見積もるプロジェクトの開発規模の見積もりやプロジェクト特性の評価に必要なデータは、評価項目(要因)をデータベースとして用意し、経験者による評価結果としての重み付けの入力による方法を採用することにより実施することが可能である。さらに、改善目標の設定についても、設定データの入力手段を用意する。このようにして、生産性ナレッジを構築する方法を実行するシステムを構成することが可能である。
【0036】
【発明の効果】
(1) 請求項1〜3,6の発明に対応する効果
抽出されたモデルプロジェクトの実績情報に基づいて作成された基本生産性モデルに対するプロジェクト間のばらつき(ギャップの大きさ)に基づいて生産性モデルに適用するプロジェクト特性係数を求め、また、抽出モデルプロジェクトのプロジェクト特性係数を基本生産性モデルに適用して標準化生産性モデルを作成することにより、「生産性ナレッジ(=標準生産性モデル×プロジェクト特性係数)」を構築し、生産性ナレッジを利用して対象プロジェクトの工数見積もりを行うようにしたので、開発プロジェクトのソフトウェア開発工数の見積り精度を向上させるとともに、開発組織のプロセス改善活動として下記(1)〜(3)を推進することを可能にする。
(1) 生産性改善活動
「生産性ナレッジ」では、組織の生産性能力を標準生産性モデルで表現し、このモデルに生産性の目標を設定することで、プロジェクト特性に影響されない組織の生産性能力目標を提示することが可能になる。また、「生産性ナレッジ」は、「過去の客観的データ」と「経験者による主観的評価」を結び付ける理論に従う手順によって異なる組織毎に構築されるので、開発部門からの信頼が高く、定量的で改善度合いが見え、再利用・再集計が容易で、レベルに応じた工数目標の設定や改善が可能である、などの性格を有し、SEPG(Software Engineering Process Group)と開発部門が達成目標を合意する方法として、また継続的な工数目標管理のしくみとして有効である。さらに、開発委託を行う場合の発注側と受注側の基準工数の設定方法としても有効な手段となり得る。
(2) コスト改善活動
「生産性ナレッジ」では、「プロジェクト特性」を評価した結果により目標工数を変えることができる仕組みであるから、開発工数(コスト)を見積もる場合、プロジェクト管理の中で「プロジェクト特性」をコントロールするマネージメントによってコスト改善を推進することが可能である。例えば、N個のコストのばらつき要因(=プロジェクト特性)を持てたとしたら、コスト改善の要因および方法もN個可能になる。「プロジェクト特性」を充実させることで、プロジェクトのコスト改善さらにはコストのリスク管理活動への活用が可能になる。
(3) 第三者による見積もり支援
標準生産性モデルの決定とプロジェクト特性の定量パラメータ(特性係数)の算出は、第三者で集計が可能である。つまりSEPGとして開発部門を支援し易くなり、
▲1▼ 開発当事者の経験に頼りがちなソフトウェア見積もりに共通のベースを持てるようになり、工数を見積もる事に対し支援や助言が可能になる。
▲2▼ プロジェクトのQCDに追われて改善活動の時間が確保しにくい開発設計者に対し、見積もり作業の一部を代行できる。
といったメリットがある。
【0037】
(2) 請求項4,5,7,8の発明に対応する効果
請求項1〜3のいずれかに記載された生産性ナレッジ構築方法或いは請求項6に記載されたソフトウェア開発工数目標決定方法の各ステップを実行するためのプログラムをコンピュータに搭載することにより、上記(1)の効果を容易に具現化することが可能になる。
【図面の簡単な説明】
【図1】本発明を適用してプロセス改善活動を実施するPDCAサイクルに基づいた開発プロセスを示す。
【図2】本発明に係わる生産性ナレッジを構築する手順を示すフロー図である。
【図3】開発プロジェクトの規模と工数の相関を例示するグラフを示す。
【図4】抽出モデルプロジェクトA,B,C,Dの実績データと基本生産性モデル(y=f0(x))の関係を示す。
【図5】モデルプロジェクトA,B,C,Dの予測工数と実績のギャップを示すグラフである。
【図6】プロジェクト特性係数テーブルと特性係数の決定手順を説明するための図を示す。
【図7】モデルプロジェクトA,B,C,Dの特性の評価に基づいて算出したプロジェクト特性係数を示す。
【図8】基本生産性モデルf0(x)と、標準生産性モデルとしての生産性パラメータ f1(x)の関係を示すグラフである。
【図9】「生産性ナレッジ」を用いて開発工数目標を決定する手順を示すフロー図である。
【符号の説明】
10…生産性データ・定性的事実 データベース、
30…生産性ナレッジ構築 手順、
50…生産性ナレッジ データベース。
Claims (8)
- 過去に実行されたソフトウェア開発プロジェクトから選ばれた複数のモデルプロジェクトの実績情報に基づいて一定の生産性傾向を示す基本生産性モデルを作成する手順、前記複数のモデルプロジェクトのプロジェクト特性を分析する手順、該分析手順により得られたプロジェクト特性と前記複数のモデルプロジェクトの前記基本生産性モデルに対するばらつきに基づいて生産性モデルに適用するプロジェクト特性係数を求める手順、該プロジェクト特性係数を前記複数のモデルプロジェクトに適用することにより前記基本生産性モデルを標準化する標準化生産性モデル作成手順、の各手順よりなる生産性ナレッジ構築方法。
- 請求項1に記載された生産性ナレッジ構築方法において、前記実績情報が開発規模に対する開発工数の関係を示す情報であることを特徴とする生産性ナレッジ構築方法。
- 請求項1又は2に記載された生産性ナレッジ構築方法において、分析される前記プロジェクト特性を複数のモデルプロジェクトにばらつきを生む要因とその重みとし、前記プロジェクト特性係数として、前記ばらつき範囲に標準化生産性モデルを収め、かつプロジェクト特性の違いに応じたバリエーションを用意するようにしたことを特徴とする生産性ナレッジ構築方法。
- 請求項1乃至3のいずれかに記載された生産性ナレッジ構築方法の各手順をコンピュータに実行させるためのプログラム。
- 請求項4に記載されたプログラムを搭載したコンピュータを備え、生産性ナレッジを構築する手段として該コンピュータを機能させるようにしたことを特徴とする生産性ナレッジ構築システム。
- 開発工数目標を決定する開発対象プロジェクトの規模を見積る手順、該開発対象プロジェクトのプロジェクト特性を請求項1乃至3のいずれかに記載された生産性ナレッジ構築方法における前記プロジェクト特性係数によって評価する手順、見積られたプロジェクトの規模と評価結果として得られる前記プロジェクト特性係数を請求項1乃至3のいずれかに記載された生産性ナレッジ構築方法によって作成された前記標準化生産性モデルに設定することにより対象プロジェクトのソフトウェア開発工数目標を決定する手順、の各手順よりなるソフトウェア開発工数目標決定方法。
- 請求項6に記載されたソフトウェア開発工数目標決定方法の各手順をコンピュータに実行させるためのプログラム。
- 請求項7に記載されたプログラムを搭載したコンピュータを備え、ソフトウェア開発工数目標を決定する手段として該コンピュータを機能させるようにしたことを特徴とするソフトウェア開発工数目標決定システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003125732A JP2004334321A (ja) | 2003-04-30 | 2003-04-30 | 生産性ナレッジ構築方法、ソフトウェア開発工数目標決定方法、同方法を実行するためのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003125732A JP2004334321A (ja) | 2003-04-30 | 2003-04-30 | 生産性ナレッジ構築方法、ソフトウェア開発工数目標決定方法、同方法を実行するためのプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004334321A true JP2004334321A (ja) | 2004-11-25 |
Family
ID=33502907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003125732A Pending JP2004334321A (ja) | 2003-04-30 | 2003-04-30 | 生産性ナレッジ構築方法、ソフトウェア開発工数目標決定方法、同方法を実行するためのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004334321A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006244000A (ja) * | 2005-03-02 | 2006-09-14 | Toshiba Corp | 工程管理装置および工程管理プログラム |
JP2007323299A (ja) * | 2006-05-31 | 2007-12-13 | Sharp Corp | レビュー実施順序決定装置、レビュー実施順序決定プログラム、レビュー実施順序決定プログラムが格納された記録媒体およびレビュー実施順序決定方法 |
WO2010095323A1 (ja) * | 2009-02-17 | 2010-08-26 | 株式会社日立製作所 | プロジェクト支援方法、その実行プログラム及びその実行装置 |
JP5997315B1 (ja) * | 2015-04-09 | 2016-09-28 | エプソンアヴァシス株式会社 | 資産管理装置、資産管理方法、及びプログラム |
CN116051022A (zh) * | 2022-12-14 | 2023-05-02 | 辽宁邮电规划设计院有限公司 | 一种信息通信项目软件成本度量的方法 |
-
2003
- 2003-04-30 JP JP2003125732A patent/JP2004334321A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006244000A (ja) * | 2005-03-02 | 2006-09-14 | Toshiba Corp | 工程管理装置および工程管理プログラム |
JP2007323299A (ja) * | 2006-05-31 | 2007-12-13 | Sharp Corp | レビュー実施順序決定装置、レビュー実施順序決定プログラム、レビュー実施順序決定プログラムが格納された記録媒体およびレビュー実施順序決定方法 |
WO2010095323A1 (ja) * | 2009-02-17 | 2010-08-26 | 株式会社日立製作所 | プロジェクト支援方法、その実行プログラム及びその実行装置 |
JP2010191581A (ja) * | 2009-02-17 | 2010-09-02 | Hitachi Ltd | プロジェクト支援方法、その実行プログラム及びその実行装置 |
JP5997315B1 (ja) * | 2015-04-09 | 2016-09-28 | エプソンアヴァシス株式会社 | 資産管理装置、資産管理方法、及びプログラム |
JP2016200940A (ja) * | 2015-04-09 | 2016-12-01 | エプソンアヴァシス株式会社 | 資産管理装置、資産管理方法、及びプログラム |
CN116051022A (zh) * | 2022-12-14 | 2023-05-02 | 辽宁邮电规划设计院有限公司 | 一种信息通信项目软件成本度量的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4240504B2 (ja) | 製品開発プロセスにおける設計変更の影響度分析装置および方法 | |
Shepperd | Software project economics: a roadmap | |
Yang et al. | Phase distribution of software development effort | |
WO2007021790A2 (en) | Apparatus and method for simulating an analytic value chain | |
US20170372389A1 (en) | Adaptive and tunable risk processing system and method | |
Wang et al. | Application of importance-satisfaction analysis and influence-relations map to evaluate design delay factors | |
Acebes et al. | On the project risk baseline: Integrating aleatory uncertainty into project scheduling | |
KR101049405B1 (ko) | 교량 자산관리 시스템 | |
Kbaier et al. | Determining the threshold values of quality metrics in BPMN process models using data mining techniques | |
JP2019096308A (ja) | 構造方程式モデルを活用した特許評価方法およびその方法を実行するシステム | |
Erdoğan et al. | More effective sprint retrospective with statistical analysis | |
JP2004334321A (ja) | 生産性ナレッジ構築方法、ソフトウェア開発工数目標決定方法、同方法を実行するためのプログラム | |
Garmabaki et al. | Modeling two-dimensional software multi-upgradation and related release problem (a multi-attribute utility approach) | |
KR102290355B1 (ko) | 스마트 매칭을 구현하는 구인구직 시스템에서 구직자의 능력치 평가방법 | |
JP5560220B2 (ja) | 工数見積装置、工数見積方法、工数見積プログラム | |
Aktaş et al. | An introduction to software testing methodologies | |
Li et al. | Monitoring software projects with earned value analysis and use case point | |
Holschke et al. | Using enterprise architecture models and bayesian belief networks for failure impact analysis | |
US20110225103A1 (en) | Efficiency of computer modeling and analysis of complex processes | |
JP2011175593A (ja) | プロジェクト管理装置、プロジェクト管理方法、プロジェクト管理プログラム及び記録媒体 | |
CN117556525B (zh) | 基于bim模型变更分析模型质量的方法及系统 | |
Oni | Towards a bayesian decision model for release planning in incremental development | |
CN117495064B (zh) | 一种面向多样性的代码审查者推荐方法及存储介质、设备 | |
Pradhan et al. | Release time analysis of open source software using entropy and reliability | |
KR101040334B1 (ko) | 소호 사업의 업종 현황 평가 시스템 및 그 방법 |