(57)【要約】【課題】タスクに掛かる時間を精度よく見積もる。【解決手段】タスク情報入力部が、タスクの指定と、当該タスクについて見積もられた予定の指定とを受け付ける。生産性推定部が、担当者の各々に対応づけられた、タスクの実施履歴と、タスクの生産性に関する情報とを参照して、当該タスクの実施履歴と、タスクの生産性に関する情報とに基づいて、担当者の各々について、当該タスクにおける、タスクの実施履歴とタスクの生産性との相関関係を特定し、担当者の各々について、担当者の当該タスクの相関関係に基づいて、指定された当該タスクについての生産性を推定し、担当者の各々について推定した生産性と、見積もられた予定とに基づいて、当該タスクの実施スケジュールを生成する。【選択図】図１
2019185132.tif 000002
【特許請求の範囲】
【請求項１】
タスクの指定と、前記タスクについて見積もられた予定の指定とを受け付け、
担当者の各々に対応づけられた、前記タスクの実施履歴と、前記タスクの生産性に関する情報とを記憶する記憶部を参照して、前記担当者の各々の、前記タスクの実施履歴と、前記タスクの生産性に関する情報とに基づいて、前記担当者の各々について、前記タスクにおける、前記タスクの実施履歴と前記タスクの生産性との相関関係を特定し、
前記担当者の各々について、前記担当者の前記タスクの前記相関関係に基づいて、指定された前記タスクについての生産性を推定し、
前記担当者の各々について推定した前記生産性と、見積もられた前記予定とに基づいて、前記タスクの実施スケジュールを生成する、
処理をコンピュータに実行させることを特徴とする推定プログラム。
【請求項２】
前記予定は、予定時間を含み、
前記タスクの生産性に関する情報は、前記タスクについて見積もられた予定時間に対する実績の所要時間の比とし、
前記タスクの実施履歴は、前回のタスクからの実施間隔と、タスクの経験回数とを含み、
前記タスクについて、前記タスクの実施履歴に含まれる前記前回のタスクからの実施間隔、及び前記タスクの経験回数と、前記タスクの生産性に関する情報とに基づいて、重回帰分析を行って前記相関関係を特定する請求項１に記載の推定プログラム。
【請求項３】
前記タスクの生産性に関する情報は、過去のタスクの生産性を含み、
前記タスクについて、前記記憶部に記憶されている、前記タスクの実施履歴、及び前記タスクの生産性に関する情報に基づいて、前記タスクの生産性が担当者のスキルに依存するか否かを判定し、
前記スキルに依存する場合に、推定した前記生産性に基づいて、前記実施スケジュールを生成し、
前記スキルに依存しない場合に、予め定められた担当者の前記タスクの生産性に関する情報に含まれる過去のタスクの生産性に基づいて、前記実施スケジュールを生成する請求項１又は請求項２に記載の推定プログラム。
【請求項４】
前記タスクの最低所要時間が存在するか否かを判定し、
前記最低所要時間が存在する場合に、推定された前記生産性に基づいて、前記最低所要時間以上となるように、前記タスクの実施スケジュールを生成する請求項１〜請求項３の何れか１項に記載の推定プログラム。
【請求項５】
前記実施スケジュールが生成され、実施された前記タスクについて、
実際のタスクの実績と予定との作業内容の差分についての実績の所要時間に基づいて、見積もられた前記予定の予定時間を補正し、
前記実績の所要時間と、補正された前記予定の時間とに基づいて、前記タスクの生産性を算出し、前記タスクの生産性に関する情報として記録する請求項１〜請求項４の何れか１項に記載の推定プログラム。
【請求項６】
複数の担当者によって分担されるタスクに関して、複数の担当者の各々について見積もられたタスクの予定時間を受け付け、
担当者の各々に対応付けられた、前記タスクの生産性に関する情報を記憶する記憶部を参照して、前記複数の担当者の各々の前記タスクに関する生産性を特定し、
受け付けた前記複数の担当者の各々について見積もられた前記予定時間と、特定した前記複数の担当者の各々の前記タスクに関する生産性とに基づいて、前記複数の担当者の各々の前記タスクに要する時間の期待値を算出し、
算出した前記期待値と、前記複数の担当者の各々に前記タスクを割り当て可能な工数の割合とに基づいて、前記複数の担当者による前記タスクの推定所要時間を算出する、
処理をコンピュータに実行させることを特徴とする推定プログラム。
【請求項７】
前記タスクの生産性に関する情報は、前記タスクについて見積もられた予定時間に対する実績の所要時間の比とし、
前記複数の担当者の各々についての前記期待値は、前記複数の担当者の各々について見積もられた予定時間の平均時間と、前記担当者の前記生産性の比とを掛け合わせた時間とする請求項６に記載の推定プログラム。
【請求項８】
前記割り当て可能な工数は、前記タスクを実施する期間において前記担当者が予定している工数から、前記担当者に既に割り当てられた他のタスクの工数を差し引いた工数とする請求項６又は請求項７に記載の推定プログラム。
【請求項９】
タスクの指定と、前記タスクについて見積もられた予定の指定とを受け付ける入力部と、
担当者の各々に対応づけられた、前記タスクの実施履歴と、前記タスクの生産性に関する情報とを記憶する記憶部を参照して、前記担当者の各々の、前記タスクの実施履歴と、前記タスクの生産性に関する情報とに基づいて、前記担当者の各々について、前記タスクにおける、前記タスクの実施履歴と前記タスクの生産性との相関関係を特定し、前記担当者の各々について、前記担当者の前記タスクの前記相関関係に基づいて、指定された前記タスクについての生産性を推定し、前記担当者の各々について推定した前記生産性と、見積もられた前記予定とに基づいて、前記タスクの実施スケジュールを生成する推定部と、
を含む推定装置。
【請求項１０】
複数の担当者によって分担されるタスクに関して、複数の担当者の各々について見積もられたタスクの予定時間を受け付ける入力部と、
担当者の各々に対応付けられた、前記タスクの生産性に関する情報を記憶する記憶部を参照して、前記複数の担当者の各々の前記タスクに関する生産性を特定し、
受け付けた前記複数の担当者の各々について見積もられた前記予定時間と、特定した前記複数の担当者の各々の前記タスクに関する生産性とに基づいて、前記複数の担当者の各々の前記タスクに要する時間の期待値を算出し、
算出した前記期待値と、前記複数の担当者の各々に前記タスクを割り当て可能な工数の割合とに基づいて、前記複数の担当者による前記タスクの推定所要時間を算出する推定部と、
を含む推定装置。
【請求項１１】
タスクの指定と、前記タスクについて見積もられた予定の指定とを受け付け、
担当者の各々に対応づけられた、前記タスクの実施履歴と、前記タスクの生産性に関する情報とを記憶する記憶部を参照して、前記担当者の各々の、前記タスクの実施履歴と、前記タスクの生産性に関する情報とに基づいて、前記担当者の各々について、前記タスクにおける、前記タスクの実施履歴と前記タスクの生産性との相関関係を特定し、
前記担当者の各々について、前記担当者の前記タスクの前記相関関係に基づいて、指定された前記タスクについての生産性を推定し、
前記担当者の各々について推定した前記生産性と、見積もられた前記予定とに基づいて、前記タスクの実施スケジュールを生成する、
ことを含む処理をコンピュータが実行することを特徴とする推定方法。
【請求項１２】
複数の担当者によって分担されるタスクに関して、複数の担当者の各々について見積もられたタスクの予定時間を受け付け、
担当者の各々に対応付けられた、前記タスクの生産性に関する情報を記憶する記憶部を参照して、前記複数の担当者の各々の前記タスクに関する生産性を特定し、
受け付けた前記複数の担当者の各々について見積もられた前記予定時間と、特定した前記複数の担当者の各々の前記タスクに関する生産性とに基づいて、前記複数の担当者の各々の前記タスクに要する時間の期待値を算出し、
算出した前記期待値と、前記複数の担当者の各々に前記タスクを割り当て可能な工数の割合とに基づいて、前記複数の担当者による前記タスクの推定所要時間を算出する、
ことを含む処理をコンピュータが実行することを特徴とする推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定プログラム、推定装置、及び推定方法に関する。
【背景技術】
【０００２】
従来より、ソフトウェア開発の工数を見積もり、作業のスケジュールを作成する技術が提案されている。
【０００３】
例えば、実際に行われた開発過程と先に作成したソフトウェア開発計画とを比較・評価し、必要に応じて、見積パラメータデータに修正を加え、実際の開発内容を次回の開発計画にフィードバックする技術がある。
【０００４】
また、過去にリリースした案件の開発工数、開発期間の実績値を見積要素として含み、見積要素に基づいて、新規開発案件の見積値を算出する技術がある。
【０００５】
また、スキルレベルに応じたスキルレベル補正値を用いた計算により、標準作業時間を補正した見積もり作業時間を計算する技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３９６０３号公報
【特許文献２】特開２０１２−２０８６６４号公報
【特許文献３】特開２００９−４８５８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
もっとも、従来の技術は、ウォーターフォール型開発のように、上流工程から下流工程までの一貫した長期間の開発工程に対応するものであった。しかし、アジャイル型開発のようなサイクルで区切られ、短期間でリリースが行われる開発工程では、より精度の高い工数の見積もりが必要となる。また、従来の技術では、作業者のタスクに対する習熟状況を考慮してスケジュールを作成することはしていなかった。
【０００８】
本発明は、一つの側面として、タスクに掛かる時間を精度よく見積もることを目的とする。
【課題を解決するための手段】
【０００９】
一つの態様として、タスクの指定と、前記タスクについて見積もられた予定の指定とを受け付ける。担当者の各々に対応づけられた、前記タスクの実施履歴と、前記タスクの生産性に関する情報とを記憶する記憶部を参照して、前記担当者の各々の、前記タスクの実施履歴を特定する。前記担当者の各々について、前記タスクの実施履歴と、前記タスクの生産性に関する情報とに基づいて、前記タスクにおける、前記タスクの実施履歴と前記タスクの生産性との相関関係を特定する。前記担当者の各々について、前記担当者の前記タスクの前記相関関係に基づいて、指定された前記タスクについての生産性を推定する。前記担当者の各々について推定した前記生産性と、見積もられた前記予定とに基づいて、前記タスクの実施スケジュールを生成する。
【発明の効果】
【００１０】
一つの側面として、タスクに掛かる時間を精度よく見積もることができる、という効果を有する。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１実施形態に係る推定装置の概略構成を示すブロック図である。
【図２】タスク情報記憶ＤＢに格納される情報の一例を示す図である。
【図３】タスク分類記憶ＤＢに格納される情報の一例を示す図である。
【図４】生産性情報記憶ＤＢに格納される情報の一例を示す図である。
【図５】生産性の実績、実施間隔、及び経験回数から求めた重回帰分析の一例を示す図である。
【図６】第１実施形態の推定装置として機能するコンピュータの概略構成を示すブロック図である。
【図７】第１実施形態の推定装置の開発計画時の処理の一例を示すフローチャートである。
【図８】タスク性質判断部の処理の詳細の一例を示すフローチャートである。
【図９】生産性推定部の生産性を推定する処理の詳細の一例を示すフローチャートである。
【図１０】生産性推定部の最低所要時間の有無を判断する処理の詳細の一例を示すフローチャートである。
【図１１】推定装置のタスク完了時の処理の一例を示すフローチャートである。
【図１２】タスク実績情報記録部の予定時間を補正する処理の詳細の一例を示すフローチャートである。
【図１３】本発明の第２実施形態に係る推定装置の概略構成を示すブロック図である。
【図１４】作業工数記憶ＤＢに格納される情報の一例を示す図である。
【図１５】各担当者の推定所要時間、及び割り当て可能な工数の一例を示す図である。
【図１６】第２実施形態の推定装置として機能するコンピュータの概略構成を示すブロック図である。
【図１７】第２実施形態の推定装置の開発計画時の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明に係る実施形態の一例を詳細に説明する。
【００１３】
まず、本発明の実施形態に係る手法の前提となる背景について説明する。
【００１４】
ソフトウェア開発において開発工数の見積もり精度を向上させることは重要である。見積もり精度が低い場合、納期までに開発を完了させることができず、ビジネスチャンスを逃すことになりうる。仮に、見積もりを誤り想定以上の工数が掛かるにも関わらず納期に間に合わせようとする場合には、人員の追加や担当者の作業時間の増大が起き、想定以上のコストを費やすことになる。
【００１５】
近年、科学技術の急速な進化に伴い、顧客の要望も多様化し、変化しやすい状況にあり、ウォーターフォール型開発のように長期にわたって多大な工数を費やして長期間を掛けて開発した製品又はサービスがすぐに時代遅れとなってしまう場合がある。
【００１６】
そこで注目されているのが、顧客からのフィードバックを受けつつ、短い開発工程を繰り返し、リリースしていくアジャイル開発である。
【００１７】
アジャイル型開発の代表的な手法であるスクラムでは、スプリントとよばれる１〜４週間の短い開発期間に対し、スプリントごとに開発計画を行い、最終的な開発計画では具体的なタスクレベルまで落とし込み、かつ、タスクの時間を見積もる。なお、タスクとは、単体テストやユニットテストなどの工程と、工程のコンポーネント（プログラムの修正など）とによって分類される項目である。また、タスクごとに小単位の作業があり、タスクに含まれる作業に掛かった時間を合計した時間が、タスクに掛かった時間である。
【００１８】
このように、アジャイル型開発では、細かい粒度でタスクに掛かる時間を見積もる必要がある。そのため、長期的な開発期間の見積もりでよいウォーターフォール型開発よりも、アジャイル型開発では、正確な見積もりが要求される。
【００１９】
また、ウォーターフォール型開発は機能の開発ごとに担当者が割り当てられることが多いため、次回の機能開発における時間の間隔の変化が少なく、時間間隔の考慮が不要であった。しかし、アジャイル型開発、特にスクラムの手法では、各タスクの担当者が未定であり、次回、同一分類のタスクに着手する時間間隔が不定である。例えば、２日、１週間、３か月ぶりなど時間間隔は変化する。従って、時間間隔の考慮が必要になる。
【００２０】
これまでも開発規模の大小に関わらず、ソフトウェア開発の工数見積もりの精度を上げるための様々な手法が考えられている。
【００２１】
例えば、様々な要因や過去の実績から見積もり精度を向上する手法がある。この手法では、プロジェクトごとの特性項目（開発言語や開発対象の新規開発規模など）と、生産性に関する特性項目（品質管理部門などの組織サポートの有無や複雑さなど）とを各プロジェクトで数値化し、グルーピングする。そして特性項目に基づいて、見積もり対象のプロジェクトがどのグループに対応するか判断し、対象グループの過去の実績をもとに、見積もりが適切か否かを判断する手法である。
【００２２】
また、各担当者の過去の予定と実績からタスクの見積もり時間を統計的に計算する手法がある。この手法では、計算時に使うパラメータは蓄積された実績をもとに更新していく。
【００２３】
また、過去の予定と実績、個人のスキル差を考慮し、工数を見積もる手法がある。見積もりの際に、個人の生産性を正しく補正するために、タスクの難易度や、上位工程のバグなどの影響を考慮している。
【００２４】
上記を整理すると、従来の手法においても、過去の実績や担当者、チームやタスクの特性をもとに見積もり精度を高める手法が考案されている。しかし、これらでは、チームメンバの成長や、前回の開発時からの時間間隔を考慮していないため、次回の見積もりの際に、同一のタスクに着手する際の見積もり精度が低くなる。
【００２５】
また、アジャイル型開発では、担当者が固定されていないため、ウォーターフォール型開発を想定した従来の手法では、アジャイル型開発については精度良く見積もることができないことが想定される。
【００２６】
また、ウォーターフォール型開発では、開発サイクルが長く、工数や見積もり粒度が大きいが、アジャイル型開発では、開発サイクルが短く、工数や見積もりの粒度が小さいことが特徴である。そのため、従来の手法では、数ヶ月先の予定や、細かい作業まで見積もることが困難だった。
【００２７】
また、ウォーターフォール型開発では、納期調整が人員追加や残業等のコストを掛けることで可能になるため、見積もり精度が多少低くても問題が生じなかった。しかし、アジャイル型開発では、機能の単位でコストと納期を調整するため、見積もり精度が低いと問題が顕在化しやすいという問題がある。
【００２８】
本発明の実施形態では、これらの問題に対処するため、以下の観点に基づいて、タスクの時間間隔や、タスク時間の補正を考慮してタスクの見積もりをする場合について説明する。
【００２９】
まず、第１に、担当者やタスクごとに生産性を分類する。担当者はベテランや新人など、担当者のレベルによってタスクに対するスキルの格差が存在する。また、得意不得意も存在する。例えば、プログラミングスキルは高いが、ドキュメント作成スキルは低いなどである。
【００３０】
これらを考慮するために、タスクを分類し、分類されたタスクと担当者の組み合わせごとに生産性を導入する。
【００３１】
タスクの分類では、一例としてコンポーネントや工程などの組み合わせをタスクの単位とする。また、タスク名を形態素解析した用語の組み合わせをタスクの単位としてもよい。
【００３２】
第２に、担当者の成長や時間経過によるスキルの低下などを考慮する。分類されたタスクについて、それぞれ担当者と見積もった予定時間、実績時間、そしてタスクの完了日を記録する。
【００３３】
過去の生産性の実績から、担当者が次回に取り組む際の生産性を推定することで、個人の成長力や記憶力を加味した推定が可能になる。また、生産性を推定する際に、過去の実績の時間間隔を考慮することで、各担当者の成長力、及び記憶力を考慮した見積もりができる。例えば、（１）半年ぶりに同じ分類のタスクを実施する場合と、（２）先週実施したタスクを実施する場合とを比べると、本来であれば（２）のほうが早くタスクが完了するはずである。したがって、過去の実績の時間間隔を考慮しない場合は、どちらも見積もり時間が同じになり、精度が低くなってしまう。そのため、成長、及び時間経過を反映することで正確な見積もりができるようになる。
【００３４】
第３に、タスクの性質を考慮する。上記第２の観点で成長性を考慮した見積もりをすることができるが、タスクの中には成長しないタスク、あるいはこれ以上成長が見込めないタスクもある。そのため、（１）個人のスキルに依存しないタスク、例えば、申請など１度経験すれば２回目以降は時間をかけずに終わるようなタスクを考慮する。このようなスキルに依存しないタスクを考慮することで、成長、及び時間経過が反映されるタスクと区別することができる。このようなタスクは、どの担当者も同等の生産性を示し、かつ、見積もり時間が毎回同じタスクが該当する。（２）また、タスクの最低所要時間を考慮する。タスクの最低所要時間を考慮することで、生産性を推定した場合に、極端に低い値で見積もられることを防ぐことができる。
【００３５】
第４に、タスクの作業内容の乖離を考慮する。タスクには予定外の作業が必要であったり、実は不要であった作業が存在する場合がある。その場合、予定作業から見積もられたタスクの予定時間は、作業内容に応じて異なってくる。そこで、各タスク内で実施した作業内容の詳細を記録する。見積もった予定作業の予定時間と、実際に行った作業の時間との乖離を考慮して予定時間を補正した上で生産性を計算することで、生産性の精度を高める。
【００３６】
以下、上記背景に基づく各実施形態を説明する。
【００３７】
[第１実施形態]
第１実施形態では、作業者がタスクに取り組む際の時間間隔を考慮し、タスクの生産性について重回帰分析を行って推定し、推定した生産性を用いてタスクの時間を見積もる場合について説明する。なお、本実施形態の生産性とは、タスクについて見積もられた予定時間に対する実際に掛かった実績時間の比とする。例えば、予定時間が2.0であり、実績時間が1.0であれば生産性は0.5となる。生産性の値は小さければ生産性が高く、値が大きければ生産性が低いことを表す。
【００３８】
図１に示すように、本実施形態に係る推定装置１０は、タスク情報入力部２２と、タスク性質判断部２４と、生産性推定部２６と、出力部２８とを含む。また、推定装置１０は、タスク情報記憶ＤＢ３０と、タスク分類記憶ＤＢ３２と、生産性情報記憶ＤＢ３４と、タスク実績情報記録部４０と、生産性計算部４２とを含む。なお、タスク情報入力部２２が入力部の一例であり、生産性推定部２６が推定部の一例である。
【００３９】
推定装置１０の処理は、大別してタスクに掛かる時間を見積もる開発計画時の処理と、タスク完了時の処理とに分かれる。開発計画時は、タスク情報入力部２２、タスク性質判断部２４、生産性推定部２６、及び出力部２８において処理を行う。タスク完了時は、タスク実績情報記録部４０、及び生産性計算部４２において処理を行う。
【００４０】
まず、開発計画時の各処理部の機能について説明する。なお、処理フローの詳細については後述する。
【００４１】
タスク情報入力部２２は、タスクの分類、タスクの予定時間、及びタスクに含まれる予定作業を受け付け、タスク情報記憶ＤＢ３０、及びタスク分類記憶ＤＢ３２を更新する。なお、タスクの分類がタスクの指定の一例である。また、タスクの予定時間、及びタスクに含まれる予定作業が、タスクについて見積もられた予定の指定の一例である。
【００４２】
タスクの分類には、タスク自体の分類番号と、コンポーネントの種類と、工程の種類とが含まれる。タスク自体の分類番号は、進捗管理用のツールにより自動的に割り当てられた番号を用いればよい。コンポーネントの種類は、工程に必要なプログラムなどの種類である。工程の種類は、単体テストやユニットテストなどの開発における工程の種類である。タスクの予定時間は、例えば複数の担当者の各々が当該タスクを行う場合の作業時間を見積もった時間の平均時間や、特定の担当者が当該タスクを行う場合の作業時間を見積もった時間などでよい。
【００４３】
タスク情報記憶ＤＢ３０の一例を図２に示す。開発計画時にタスク情報入力部２２で受け付けた情報により、点線で囲った項目、タスク番号、タスク分類、予定時間、及び予定作業を更新する。タスク情報記憶ＤＢ３０のタスク情報テーブル３０Ａには、タスク番号、タスク分類、担当者、実績時間、予定時間、完了日、予定作業、及び作業乖離時間の各情報が格納される。図２の１レコード目の例では、タスク番号にＤＢ内の通し番号の１、タスク分類に分類番号の１、担当者に担当者名のＡと格納される。また、実績時間に1.5、予定時間に1.5、完了日に2016/02/01、予定作業に「作業１（1.5）／作業２（0.5）／作業３（0.5）」、実績作業に「作業１（1.5）／作業２（0.5）」、作業乖離時間に-0.5と格納される。予定作業の括弧内の時間の合計が予定時間に対応する。なお、枠線で囲っていない項目についてはタスク完了時に更新される。
【００４４】
タスク分類記憶ＤＢ３２の一例を図３に示す。タスク分類記憶ＤＢ３２のタスク分類テーブル３２Ａには、タスク分類、コンポーネント、及び工程が格納される。図３の１レコード目の例では、タスク分類に分類番号の１、コンポーネントにコンポＡ、工程に単体テストと格納される。
【００４５】
次に、タスク性質判断部２４、及び生産性推定部２６が参照する生産性情報記憶ＤＢ３４について説明する。
【００４６】
生産性情報記憶ＤＢ３４の一例を図４に示す。生産性情報記憶ＤＢ３４の生産性情報テーブル３４Ａには、タスク分類、担当者、生産性、予定時間、完了日、及び経験回数が格納される。図４の１レコード目の例では、タスク分類に分類番号の１、担当者に担当者名のＡ、生産性に2.0、予定時間に2.0、完了日に2016/02/01、経験回数に１が格納される。
【００４７】
タスク性質判断部２４は、生産性情報記憶ＤＢ３４から担当者ごとの当該タスクの生産性に関する情報を取得し、当該タスクの作業時間が担当者のスキルに依存するか否かを判断する。例えば、タスク性質判断部２４は、担当者間でタスクの生産性に0.5以上の差異があるか否かを判定する。また、タスク性質判断部２４は、生産性に差異がない場合に、当該タスクの生産性に関する情報の履歴から予定時間に変化がないタスクであるかを判定する。予定時間に変化がないかは、例えば、履歴の予定時間の分散が予め定めたしきい値以上であるかなどにより判定すればよい。タスク性質判断部２４は、予定時間に変化がないと判定された場合には、当該タスクは担当者のスキルに依存しないタスクであると判断する。一方、予定時間に変化があると判定された場合には、当該タスクは担当者のスキルに依存するスキルであると判断する。
【００４８】
生産性推定部２６は、担当者の各々について、生産性情報記憶ＤＢ３４に格納されている生産性に関する情報に基づいて、当該タスクの見積もり時間を計算する。
【００４９】
生産性推定部２６の処理は、タスク性質判断部２４で当該タスクは担当者のスキルに依存しないタスクであると判断された場合と、担当者のスキルに依存しないタスクであると判断されなかった場合とに分けられる。担当者のスキルに依存しないタスクであると判断されなった場合、つまり担当者のスキルに依存する場合には、生産性推定部２６は、担当者の各々について、当該担当者の当該タスクの生産性の推定を行う。
【００５０】
生産性推定部２６は、タスク性質判断部２４で当該タスクは担当者のスキルに依存しないタスクであると判断された場合に、生産性情報記憶ＤＢ３４を参照し、担当者の各々について、当該担当者の当該タスクの直近の生産性を取得する。そして、担当者の各々について、直近の生産性に予定時間を掛け、当該タスクの見積もり時間を計算する。例えば、生産性が0.5、予定時間が2.0であれば当該担当者の当該タスクの見積もり時間は1.0となる。
【００５１】
生産性推定部２６は、タスク性質判断部２４で当該タスクは担当者のスキルに依存しないタスクであると判断されなかった場合に、生産性情報記憶ＤＢ３４を参照し、担当者の各々について、当該担当者の当該タスクの実施履歴と生産性とを取得する。実施履歴とは、例えば、生産性情報記憶ＤＢ３４の完了日や経験回数である。完了日からは、当該タスクの前回実施からの実施間隔を把握できる。生産性推定部２６は、取得した当該タスクの実施履歴と、生産性とに基づいて、重回帰分析を行って、実施履歴と生産性との相関関係を特定する。
【００５２】
生産性推定部２６は、例えば、図５に示すように、担当者の過去の生産性の実績、実施間隔、及び経験回数から求めた多項式の重回帰関数によってグラフ上にプロット可能な値を求めて、実施履歴と生産性との相関関係を特定する。
【００５３】
相関関係からは担当者のタスクについての傾向が把握できるようになる。傾向とは、例えば、ｎヶ月以上の実施間隔が空くと生産性の値が1.1倍になり生産性が下がる、１ヶ月以内であれば生産性の値が0.8倍になり生産性が上がる、半年間隔が空いた場合でも５回以上経験したタスクであれば生産性の値は等倍となる、といったものである。
【００５４】
担当者によって実施間隔と、タスクのノウハウに対する記憶力が異なるため、担当者ごとに異なる傾向が生じるが、実施履歴と生産性との相関関係を特定することにより担当者ごとに異なる傾向を把握することが可能となる。
【００５５】
生産性推定部２６は、担当者の各々について、特定した相関関係と、当該担当者の実施履歴とに基づいて、当該タスクの生産性を推定する。図５に示すように、重回帰分析による相関関係の推定結果と、当該担当者の前回実施からの実施間隔と、今回の当該タスクを含めた経験回数とから、当該タスクの実施時点における生産性を推定することが可能である。
【００５６】
生産性推定部２６は、担当者の各々について、担当者の各々について推定した当該タスクの生産性に、当該タスクの予定時間を掛けてタスクの見積もり時間を計算し、担当者の各々の当該タスクの見積もり時間を出力部２８に出力する。また、タスクに最低所要時間がある場合には、最低所要時間以上となるようにタスクの見積もり時間を計算する。例えば、推定された生産性と予定時間とから計算される見積もり時間2.0であるのに、最低所要時間2.5である場合には、当該タスクの見積もり時間を2.5以上となるようにする。なお、担当者の各々について計算された当該タスクの見積もり時間が、タスクの実施スケジュールの一例である。
【００５７】
出力部２８は、担当者の各々の当該タスクの見積もり時間を一覧で出力する。なお、生産性推定部２６で複数のタスクについて担当者の各々の見積もり時間を計算し、最も効率の良いタスクと担当者との組み合わせを出力するようにしてもよい。また、担当者ごとの生産性の履歴の一覧を生産性情報記憶ＤＢ３４から取得して、出力するようにしてもよい。
【００５８】
次に、タスク完了時の各処理部の機能について説明する。なお、処理フローの詳細については後述する。
【００５９】
タスク実績情報記録部４０は、完了したタスクの完了時のタスクの担当者、タスクの実績時間、タスクの完了日、タスクの実績作業などのタスク情報を受け付け、タスク情報記憶ＤＢ３０を更新する。また、タスク実績情報記録部４０は、予定作業と実績作業とに乖離があるかを判定し、乖離がある場合には、予定作業と実績作業とを比較して増減した実績作業分の作業乖離時間により予定時間を補正する。実績作業が増加した場合は予定時間に増加した分の作業乖離時間を加算し、実績作業が減った場合は予定時間から作業解離時間だけ差し引くようにする。このように実際の実績作業の所要時間に基づいて予定時間を補正することで、補正した予定時間を、タスク情報記憶ＤＢ３０に反映する。また、上記図２のタスク情報記憶ＤＢ３０では補正前の予定時間と補正後の予定時間とを分けていないが、分けて管理するようにしてもよい。このように予定時間を補正することで、本来想定されていた予定作業に対する予定時間となるため、正確にタスクの生産性を計算することができる。
【００６０】
生産性計算部４２は、受け付けたタスクについて、更新されたタスク情報記憶ＤＢ３０のタスク分類、担当者、予定時間、実績時間を用いて、生産性情報記憶ＤＢ３４を更新する。生産性情報記憶ＤＢ３４の更新は、生産性情報テーブル３４Ａに、タスクについて記録されたレコードを追加する。タスク分類、担当者、予定時間、及び完了日は、タスク情報記憶ＤＢ３０の情報をそのまま用いる。生産性は更新された予定時間、及び実績時間に基づいて計算する。経験回数は、担当者と、当該担当者の経験回数の履歴とを参照して、直近の経験回数からカウントアップした経験回数とする。なお、生産性情報記憶ＤＢ３４には、タスク分類記憶ＤＢ３２を参照して、コンポーネントや工程の項目を追加するようにしてもよい。
【００６１】
推定装置１０は、例えば図６に示すコンピュータ５０で実現することができる。コンピュータ５０は、Central Processing Unit（ＣＰＵ）５１と、一時記憶領域としてのメモリ５２と、不揮発性の記憶部５３とを備える。また、コンピュータ５０は、入出力装置５４と、記憶媒体５９に対するデータの読み込み及び書き込みを制御するRead/Write（Ｒ／Ｗ）部５５と、インターネット等のネットワークに接続される通信インターフェース（Ｉ／Ｆ）５６とを備える。ＣＰＵ５１、メモリ５２、記憶部５３、入出力装置５４、Ｒ／Ｗ部５５、及び通信Ｉ／Ｆ５６は、バス５７を介して互いに接続される。
【００６２】
記憶部５３は、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部５３には、コンピュータ５０を推定装置１０として機能させるための推定プログラム６０が記憶される。推定プログラム６０は、タスク情報入力プロセス６２と、タスク性質判断プロセス６３と、生産性推定プロセス６４と、タスク実績情報記録プロセス６５と、生産性計算プロセス６６とを有する。また、記憶部５３は、タスク情報記憶領域６７と、タスク分類記憶領域６８と、生産性情報記憶領域６９とを有する。
【００６３】
ＣＰＵ５１は、推定プログラム６０を記憶部５３から読み出してメモリ５２に展開し、推定プログラム６０が有するプロセスを順次実行する。ＣＰＵ５１は、タスク情報入力プロセス６２を実行することで、図１に示すタスク情報入力部２２として動作する。また、ＣＰＵ５１は、タスク性質判断プロセス６３を実行することで、図１に示すタスク性質判断部２４として動作する。また、ＣＰＵ５１は、生産性推定プロセス６４を実行することで、図１に示す生産性推定部２６として動作する。また、ＣＰＵ５１は、タスク実績情報記録プロセス６５を実行することで、図１に示すタスク実績情報記録部４０として動作する。また、ＣＰＵ５１は、生産性計算プロセス６６を実行することで、図１に示す生産性計算部４２として動作する。また、ＣＰＵ５１は、タスク情報記憶領域６７と、タスク分類記憶領域６８と、生産性情報記憶領域６９とから情報を読み出して、メモリ５２に展開する。これにより、推定プログラム６０を実行したコンピュータ５０が、推定装置１０として機能することになる。なお、プログラムを実行するＣＰＵ５１はハードウェアである。
【００６４】
なお、推定プログラム６０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【００６５】
次に、本実施形態に係る推定装置１０の作用について説明する。
【００６６】
まず、開発計画時の処理について図７のフローチャートを参照して説明する。
【００６７】
ステップＳ１００で、タスク情報入力部２２は、タスクの分類、タスクの予定時間、及びタスクに含まれる予定作業を受け付け、タスク情報記憶ＤＢ３０、及びタスク分類記憶ＤＢ３２を更新する。
【００６８】
ステップＳ１０２で、タスク性質判断部２４は、生産性情報記憶ＤＢ３４から担当者ごとの当該タスクの生産性に関する情報を取得し、担当者のスキルに依存するか否かを判断する。
【００６９】
ステップＳ１０４で、タスク性質判断部２４は、上記ステップＳ１０２の判断結果が、タスクの性質が担当者のスキルに依存しないタスクであることを示す判断結果であるか否かを判定する。スキルに依存しないタスクであればステップＳ１０６へ移行し、スキルに依存するタスクであればステップＳ１０８へ移行する。
【００７０】
ステップＳ１０６で、生産性推定部２６は、生産性情報記憶ＤＢ３４を参照し、担当者の各々について、当該担当者の当該タスクの直近の生産性を取得する。そして、担当者の各々について、直近の生産性に予定時間を掛け、当該タスクの見積もり時間を計算する。
【００７１】
ステップＳ１０８で、生産性推定部２６は、生産性情報記憶ＤＢ３４を参照し、当該担当者の当該タスクの実施履歴を取得する。そして、取得した実施履歴と生産性との相関関係を特定し、生産性を推定する。処理の詳細については後述する。
【００７２】
ステップＳ１０９で、生産性推定部２６は、当該タスクの最低所要時間の有無を判断する。処理の詳細については後述する。
【００７３】
ステップＳ１１０で、生産性推定部２６は、上記ステップ１０９の判断結果が、タスクの最低所要時間があることを示す判断結果であるか否かを判定する。最低所要時間がある場合には、ステップＳ１１２へ移行し、最低所要時間がない場合にはステップＳ１１４へ移行する。
【００７４】
ステップＳ１１２で、生産性推定部２６は、ステップＳ１０９の判断結果の最低所要時間以上となるように、担当者の各々について推定した当該タスクの生産性に、当該タスクの予定時間を掛けてタスクの見積もり時間を計算する。
【００７５】
ステップＳ１１４で、生産性推定部２６は、担当者の各々について推定した当該タスクの生産性に、当該タスクの予定時間を掛けてタスクの見積もり時間を計算する。
【００７６】
ステップＳ１１６で、生産性推定部２６は、担当者の各々の当該タスクの見積もり時間を出力部２８に出力する。そして、出力部２８は、担当者の各々の当該タスクの見積もり時間を一覧で出力して処理を終了する。
【００７７】
次に、上記ステップＳ１０２のタスク性質判断部２４の処理の詳細について図８のフローチャートを参照して説明する。
【００７８】
ステップＳ１０００で、当該タスクの分類番号をタスク分類記憶ＤＢ３２から取得する。
【００７９】
ステップＳ１００２で、ステップＳ１０００で分類番号を取得した当該タスクについて、当該タスクの生産性に関する情報を担当者ごとに生産性情報記憶ＤＢ３４から取得する。
【００８０】
ステップＳ１００４で、ステップＳ１００２で担当者ごとに取得した当該タスクの生産性に関する情報に基づいて、担当者間で生産性に差異がないか否かを判定する。差異がない場合にはステップＳ１００６へ移行し、差異がある場合にはステップＳ１０１０へ移行する。
【００８１】
ステップＳ１００６で、ステップＳ１００２で担当者ごとに取得した当該タスクの生産性に関する情報に基づいて、予定時間に変化がないタスクであるか否かを判定する。変化がないタスクである場合にはステップＳ１００８へ移行し、変化があるタスクである場合にはステップＳ１０１０へ移行する。
【００８２】
ステップＳ１００８で、担当者のスキルに依存しないタスクであると判断して処理を終了する。
【００８３】
ステップＳ１０１０で、担当者のスキルに依存するタスクであると判断して処理を終了する。
【００８４】
次に、上記ステップＳ１０８の生産性推定部２６の処理の詳細について図９のフローチャートを参照して説明する。
【００８５】
ステップＳ１１００で、生産性情報記憶ＤＢ３４を参照し、担当者の各々の当該タスクの実施履歴と生産性とを取得する。
【００８６】
ステップＳ１１０２で、担当者の各々について、取得した当該タスクの実施履歴と、生産性とに基づいて、重回帰分析を行って、実施履歴と生産性との相関関係を特定する。
【００８７】
ステップＳ１１０４で、担当者の各々について、特定した相関関係に基づいて、当該タスクの生産性を推定して処理を終了する。
【００８８】
次に、上記ステップＳ１０９の生産性推定部２６の処理の詳細について図１０のフローチャートを参照して説明する。
【００８９】
ステップＳ１２００で、当該タスクの分類番号をタスク分類記憶ＤＢ３２から取得する。
【００９０】
ステップＳ１２０２で、ステップＳ１２００で分類番号を取得した当該タスクについて、当該タスクの生産性に関する情報を担当者ごとに生産性情報記憶ＤＢ３４から取得する。
【００９１】
ステップＳ１２０４で、ステップＳ１２０２で取得した担当者ごとの生産性に関する情報に基づいて、担当者の中で生産性が最も良い（生産性が最も高い）担当者の生産性の履歴を取得する。
【００９２】
ステップＳ１２０６で、ステップＳ１２０４で取得した生産性が最も良い担当者の生産性に変化がないか否かを判定する。変化の有無は、例えば、直近の数回の生産性が0.2以上変化している場合に変化があるものとし、0.2未満の変化であれば変化がないものとする。変化がない場合にはステップＳ１２０８へ移行し、変化がある場合にはステップＳ１２１０へ移行する。
【００９３】
ステップＳ１２０８で、当該タスクの最低所要時間があると判断して処理を終了する。
【００９４】
ステップＳ１２１０で、当該タスクの最低所要時間がないと判断して処理を終了する。
【００９５】
次に、タスク完了時の処理について図１１のフローチャートを参照して説明する。
【００９６】
ステップＳ２００で、タスク実績情報記録部４０は、完了したタスクの完了時のタスクの担当者、タスクの実績時間、タスクの完了日、タスクの実績作業などのタスク情報を受け付ける。
【００９７】
ステップＳ２０２で、タスク実績情報記録部４０は、ステップＳ２００で受け付けたタスク情報に基づいて、タスク情報記憶ＤＢ３０の実績に係る項目を更新する。
【００９８】
ステップＳ２０４で、タスク実績情報記録部４０は、予定作業と実績作業とに乖離があるか否かを判定する。乖離がある場合にはステップＳ２０６へ移行し、乖離がない場合にはステップＳ２０８へ移行する。
【００９９】
ステップＳ２０６で、タスク実績情報記録部４０は、予定作業と実績作業とを比較して増減した実績作業分の作業乖離時間により予定時間を補正する。処理の詳細は後述する。
【０１００】
ステップＳ２０８で、生産性計算部４２は、当該タスクについて、更新された予定時間、及び実績時間に基づいて生産性を計算する。
【０１０１】
ステップＳ２１０で、生産性計算部４２は、ステップＳ２０２で更新した内容と、ステップＳ２０８で計算した生産性とに基づいて、生産性情報記憶ＤＢ３４を更新して処理を終了する。
【０１０２】
次に、上記ステップＳ２０６のタスク実績情報記録部４０の処理の詳細について図１２のフローチャートを参照して説明する。
【０１０３】
ステップＳ２０００で、実績作業が予定作業より増えているか否かを判定する。増えている場合にはステップＳ２００２へ移行する。増えていない場合には減少しているものとしてステップＳ２００４へ移行する。
【０１０４】
ステップＳ２００２で、増加分の実績作業の実績時間を、予定時間に加算して補正する。
【０１０５】
ステップＳ２００４で、減少分の実績作業の実績時間を、予定時間から差し引いて補正する。
【０１０６】
以上説明したように、本実施形態に係る推定装置１０によれば、タスクの指定と、当該タスクについて見積もられた予定の指定とを受け付ける。担当者の各々に対応づけられた、タスクの実施履歴と、タスクの生産性に関する情報とを参照する。参照した、当該タスクの実施履歴と、タスクの生産性に関する情報とに基づいて、担当者の各々について、当該タスクにおける、タスクの実施履歴とタスクの生産性との相関関係を特定する。担当者の各々について、担当者の当該タスクの相関関係に基づいて、指定された当該タスクについての生産性を推定する。担当者の各々について推定した生産性と、見積もられた予定とに基づいて、当該タスクの実施スケジュールを生成する。このため、タスクに掛かる時間を精度よく見積もることができる。
【０１０７】
以上の本実施形態の手法により、開発チームの担当者各々の成長を考慮することで、タスクで実施する作業内容とそれにかかる時間の見積もり精度が向上する。その結果、製品及びサービスのリリースがスケジュール通りに進み、顧客の信頼を得ることができ、かつ、市場変化の対応も容易になることが想定される。
【０１０８】
また、過去の実績を分析することにより、開発計画にかかる工数を削減することができる。また、担当者ごとのタスクの生産性を算出したものを出力すれば、開発チームの成長状況を見える化することも可能である。例えば、担当者ごとのタスクの生産性を比較することでチーム間の格差があるのか、チーム内でスキルが平準化しているかなどを確認できる。タスクの分類ごとに生産性を算出しているため、チームに足りていないスキルは何か等も判断することができる。つまり、チームの改善点を見える化することもできる。
【０１０９】
[第２実施形態]
次に第２実施形態について説明する。第２実施形態では、複数の担当者でタスクを分担する場合について説明する。なお第１実施形態と同様となる箇所については同一符号を付して説明を省略する。
【０１１０】
スキルに依存しないタスクであれば担当者が定まっていなかったとしてもタスクの見積もりは容易である。しかし、開発計画時にはタスクの担当者が定まっていないことがあり、担当者の生産性をそのままタスクの見積もり時間に利用することができないことがある。そこで、全員で見積もったタスクの予定時間の平均に、各担当者の生産性を掛けて、各メンバの開発期間内の工数の割合で補正をかける。これにより、例えば、能力が高い人が休暇や病欠で不在になる場合にも対応することができる。
【０１１１】
図１３に示すように、本実施形態に係る推定装置２１０は、タスク情報入力部２２と、作業工数入力部２２４と、推定部２２６と、出力部２８とを含む。また、推定装置２１０は、タスク情報記憶ＤＢ３０と、タスク分類記憶ＤＢ３２と、生産性情報記憶ＤＢ３４と、作業工数記憶ＤＢ２３６と、タスク実績情報記録部４０と、生産性計算部４２とを含む。
【０１１２】
作業工数入力部２２４は、担当者の各々の開発における開発期間内に割り当てられる工数の合計を受け付けて、作業工数記憶ＤＢ２３６を更新する。作業工数記憶ＤＢ２３６の一例を図１４に示す。作業工数記憶ＤＢ２３６の作業工数テーブル２３６Ａには、担当者、及び工数が格納される。図１４の１レコード目の例では、担当者に担当者名のＡ、開発期間内の工数に40h（時間）と格納される。また、作業工数入力部２２４は、推定対象のタスクについて、複数の担当者の各々について見積もられた予定時間を受け付ける。また、作業工数入力部２２４は、担当者の各々の当該タスク以外のタスクに割り当てられている工数を受け付ける。
【０１１３】
推定部２２６は、生産性情報記憶部３４を参照して、複数の担当者の各々の当該タスクに関する生産性を特定する。
【０１１４】
推定部２２６は、受け付けた複数の担当者の各々について見積もられた予定時間と、特定した複数の担当者の各々の当該タスクに関する生産性とに基づいて、複数の担当者の各々のタスクに要する時間の期待値を推定所要時間として算出する。時間の期待値は、複数の担当者の各々について見積もられた予定時間の平均時間と、担当者の生産性の比とを掛け合わせた時間とする。例えば、見積もられた予定時間が、担当者Ａについては1.5、担当者Ｂについては2.5、担当者Ｃについては2.0であれば、予定時間の平均時間は2.0となる。予定時間の平均時間に対して担当者の生産性を掛けた時間が、当該担当者の推定所要時間となる。図１５の計算例に示すように、担当者Ａの生産性が0.5であれば推定所要時間は1.0になる。
【０１１５】
推定部２２６は、複数の担当者の各々について算出した時間の期待値と、複数の担当者の各々に当該タスクを割り当て可能な工数の割合とに基づいて、複数の担当者による当該タスクの推定所要時間を算出する。割り当て可能な工数は、例えば、図１５に示すように計算する。割り当て可能な工数は、担当者の開発期間内の工数から他のタスクに割り当て済みのタスクの合計時間を差し引いて計算する。例えば、担当者Ｂであれば32h-8h=24hとなり、日数換算で３日が割り当て可能な工数となる。図１５の場合、担当者の合計工数は10であるので、複数の担当者によるタスクの推定所要時間は、1.0*5/10+2.0*3/10+3.0*2/10=1.7と算出される。
【０１１６】
推定装置２１０は、例えば図１６に示すコンピュータ２５０で実現することができる。コンピュータ２５０は、ＣＰＵ５１と、一時記憶領域としてのメモリ５２と、不揮発性の記憶部２５３とを備える。また、コンピュータ２５０は、入出力装置５４と、記憶媒体５９に対するデータの読み込み及び書き込みを制御するＲ／Ｗ部５５と、インターネット等のネットワークに接続される通信Ｉ／Ｆ５６とを備える。ＣＰＵ５１、メモリ５２、記憶部２５３、入出力装置５４、Ｒ／Ｗ部５５、及び通信Ｉ／Ｆ５６は、バス５７を介して互いに接続される。
【０１１７】
記憶部２５３は、ＨＤＤ、ＳＳＤ、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部２５３には、コンピュータ２５０を推定装置２１０として機能させるための推定プログラム２６０が記憶される。推定プログラム２６０は、タスク情報入力プロセス６２と、作業工数入力プロセス２６３と、推定プロセス２６４と、タスク実績情報記録プロセス６５と、生産性計算プロセス６６とを有する。また、記憶部２５３は、タスク情報記憶領域６７と、タスク分類記憶領域６８と、生産性情報記憶領域６９と、作業工数記憶領域２７０とを有する。
【０１１８】
ＣＰＵ５１は、推定プログラム２６０を記憶部２５３から読み出してメモリ５２に展開し、推定プログラム２６０が有するプロセスを順次実行する。ＣＰＵ５１は、タスク情報入力プロセス６２を実行することで、図１３に示すタスク情報入力部２２として動作する。また、ＣＰＵ５１は、作業工数入力プロセス２６３を実行することで、図１３に示す作業工数入力部２２４として動作する。また、ＣＰＵ５１は、推定プロセス２６４を実行することで、図１３に示す推定部２２６として動作する。また、ＣＰＵ５１は、タスク実績情報記録プロセス６５を実行することで、図１３に示すタスク実績情報記録部４０として動作する。また、ＣＰＵ５１は、生産性計算プロセス６６を実行することで、図１３に示す生産性計算部４２として動作する。また、ＣＰＵ５１は、タスク情報記憶領域６７と、タスク分類記憶領域６８と、生産性情報記憶領域６９と、作業工数記憶領域２７０とから情報を読み出して、メモリ５２に展開する。これにより、推定プログラム２６０を実行したコンピュータ２５０が、推定装置２１０として機能することになる。なお、プログラムを実行するＣＰＵ５１はハードウェアである。
【０１１９】
なお、推定プログラム２６０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ等で実現することも可能である。
【０１２０】
次に、本実施形態に係る推定装置２１０の作用について説明する。開発計画時の処理について図１７のフローチャートを参照して説明する。
【０１２１】
ステップＳ３００で、作業工数入力部２２４は、担当者の各々の開発における開発期間内に割り当てられる工数の合計を受け付け、作業工数記憶ＤＢ２３６を更新する。また、作業工数入力部２２４は、推定対象のタスクについて、複数の担当者の各々について見積もられた予定時間を受け付ける。また、作業工数入力部２２４は、担当者の各々の当該タスク以外のタスクに割り当てられている工数を受け付ける。
【０１２２】
ステップＳ３０２で、複数の担当者の各々について、見積もられた予定時間の平均時間と、担当者の生産性の比とを掛け合わせた時間の期待値として担当者ごとの推定所要時間を算出する。
【０１２３】
ステップＳ３０４で、複数の担当者の各々について、開発期間内に割り当てられる工数の合計から当該タスク以外のタスクに割り当てられている工数を差し引いて、当該タスクを割り当て可能な工数の割合を求める。
【０１２４】
ステップＳ３０６で、ステップＳ３０２で複数の担当者の各々について算出した時間の期待値と、ステップＳ３０４で求めた複数の担当者の各々に当該タスクを割り当て可能な工数の割合とに基づいて、複数の担当者による当該タスクの推定所要時間を算出する。
【０１２５】
なお、第２実施形態の他の構成及び作用については第１実施形態と同様であるため説明を省略する。
【０１２６】
以上説明したように、本実施形態に係る推定装置２１０によれば、複数の担当者によって分担されるタスクに関して、複数の担当者の各々について見積もられた当該タスクの予定時間を受け付ける。担当者の各々に対応付けられた、当該タスクの生産性を参照して、複数の担当者の各々の当該タスクに関する生産性を特定する。受け付けた複数の担当者の各々について見積もられた予定時間と、特定した複数の担当者の各々の当該タスクに関する生産性とに基づいて、複数の担当者の各々の当該タスクに要する時間の期待値を算出する。算出した期待値と、複数の担当者の各々に当該タスクを割り当て可能な工数の割合とに基づいて、複数の担当者による当該タスクの推定所要時間を算出する。このため、タスクに掛かる時間を精度よく見積もることができる。
【０１２７】
以上の各実施形態に関し、更に以下の付記を開示する。
【０１２８】
（付記１）
タスクの指定と、前記タスクについて見積もられた予定の指定とを受け付け、
担当者の各々に対応づけられた、前記タスクの実施履歴と、前記タスクの生産性に関する情報とを記憶する記憶部を参照して、前記担当者の各々の、前記タスクの実施履歴と、前記タスクの生産性に関する情報とに基づいて、前記担当者の各々について、前記タスクにおける、前記タスクの実施履歴と前記タスクの生産性との相関関係を特定し、
前記担当者の各々について、前記担当者の前記タスクの前記相関関係に基づいて、指定された前記タスクについての生産性を推定し、
前記担当者の各々について推定した前記生産性と、見積もられた前記予定とに基づいて、前記タスクの実施スケジュールを生成する、
処理をコンピュータに実行させることを特徴とする推定プログラム。
【０１２９】
（付記２）
前記予定は、予定時間を含み、
前記タスクの生産性に関する情報は、前記タスクについて見積もられた予定時間に対する実績の所要時間の比とし、
前記タスクの実施履歴は、前回のタスクからの実施間隔と、タスクの経験回数とを含み、
前記タスクについて、前記タスクの実施履歴に含まれる前記前回のタスクからの実施間隔、及び前記タスクの経験回数と、前記タスクの生産性に関する情報とに基づいて、重回帰分析を行って前記相関関係を特定する付記１に記載の推定プログラム。
【０１３０】
（付記３）
前記タスクの生産性に関する情報は、過去のタスクの生産性を含み、
前記タスクについて、前記記憶部に記憶されている、前記タスクの実施履歴、及び前記タスクの生産性に関する情報に基づいて、前記タスクの生産性が担当者のスキルに依存するか否かを判定し、
前記スキルに依存する場合に、推定した前記生産性に基づいて、前記実施スケジュールを生成し、
前記スキルに依存しない場合に、予め定められた担当者の前記タスクの生産性に関する情報に含まれる過去のタスクの生産性に基づいて、前記実施スケジュールを生成する付記１又は付記２に記載の推定プログラム。
【０１３１】
（付記４）
前記タスクの最低所要時間が存在するか否かを判定し、
前記最低所要時間が存在する場合に、推定された前記生産性に基づいて、前記最低所要時間以上となるように、前記タスクの実施スケジュールを生成する付記１〜付記３の何れかに記載の推定プログラム。
【０１３２】
（付記５）
前記実施スケジュールが生成され、実施された前記タスクについて、
実際のタスクの実績と予定との作業内容の差分についての実績の所要時間に基づいて、見積もられた前記予定の予定時間を補正し、
前記実績の所要時間と、補正された前記予定の時間とに基づいて、前記タスクの生産性を算出し、前記タスクの生産性に関する情報として記録する付記１〜付記４の何れかに記載の推定プログラム。
【０１３３】
（付記６）
複数の担当者によって分担されるタスクに関して、複数の担当者の各々について見積もられたタスクの予定時間を受け付け、
担当者の各々に対応付けられた、前記タスクの生産性に関する情報を記憶する記憶部を参照して、前記複数の担当者の各々の前記タスクに関する生産性を特定し、
受け付けた前記複数の担当者の各々について見積もられた前記予定時間と、特定した前記複数の担当者の各々の前記タスクに関する生産性とに基づいて、前記複数の担当者の各々の前記タスクに要する時間の期待値を算出し、
算出した前記期待値と、前記複数の担当者の各々に前記タスクを割り当て可能な工数の割合とに基づいて、前記複数の担当者による前記タスクの推定所要時間を算出する、
処理をコンピュータに実行させることを特徴とする推定プログラム。
【０１３４】
（付記７）
前記タスクの生産性に関する情報は、前記タスクについて見積もられた予定時間に対する実績の所要時間の比とし、
前記複数の担当者の各々についての前記期待値は、前記複数の担当者の各々について見積もられた予定時間の平均時間と、前記担当者の前記生産性の比とを掛け合わせた時間とする付記６に記載の推定プログラム。
【０１３５】
前記割り当て可能な工数は、前記タスクを実施する期間において前記担当者が予定している工数から、前記担当者に既に割り当てられた他のタスクの工数を差し引いた工数とする付記６又は付記７に記載の推定プログラム。
【０１３６】
（付記９）
タスクの指定と、前記タスクについて見積もられた予定の指定とを受け付ける入力部と、
担当者の各々に対応づけられた、前記タスクの実施履歴と、前記タスクの生産性に関する情報とを記憶する記憶部を参照して、前記担当者の各々の、前記タスクの実施履歴と、前記タスクの生産性に関する情報とに基づいて、前記担当者の各々について、前記タスクにおける、前記タスクの実施履歴と前記タスクの生産性との相関関係を特定し、前記担当者の各々について、前記担当者の前記タスクの前記相関関係に基づいて、指定された前記タスクについての生産性を推定し、前記担当者の各々について推定した前記生産性と、見積もられた前記予定とに基づいて、前記タスクの実施スケジュールを生成する推定部と、
を含む推定装置。
【０１３７】
（付記１０）
前記予定は、予定時間を含み、
前記タスクの生産性に関する情報は、前記タスクについて見積もられた予定時間に対する実績の所要時間の比とし、
前記タスクの実施履歴は、前回のタスクからの実施間隔と、タスクの経験回数とを含み、
前記タスクについて、前記タスクの実施履歴に含まれる前記前回のタスクからの実施間隔、及び前記タスクの経験回数と、前記タスクの生産性に関する情報とに基づいて、重回帰分析を行って前記相関関係を特定する付記９に記載の推定装置。
【０１３８】
（付記１１）
前記タスクの生産性に関する情報は、過去のタスクの生産性を含み、
前記タスクについて、前記記憶部に記憶されている、前記タスクの実施履歴、及び前記タスクの生産性に関する情報に基づいて、前記タスクの生産性が担当者のスキルに依存するか否かを判定し、
前記スキルに依存する場合に、推定した前記生産性に基づいて、前記実施スケジュールを生成し、
前記スキルに依存しない場合に、予め定められた担当者の前記タスクの生産性に関する情報に含まれる過去のタスクの生産性に基づいて、前記実施スケジュールを生成する付記９又は付記１０に記載の推定装置。
【０１３９】
（付記１２）
前記タスクの最低所要時間が存在するか否かを判定し、
前記最低所要時間が存在する場合に、推定された前記生産性に基づいて、前記最低所要時間以上となるように、前記タスクの実施スケジュールを生成する請求項９〜請求項１１の何れかに記載の推定装置。
【０１４０】
（付記１３）
前記実施スケジュールが生成され、実施された前記タスクについて、
実際のタスクの実績と予定との作業内容の差分についての実績の所要時間に基づいて、見積もられた前記予定の予定時間を補正し、
前記実績の所要時間と、補正された前記予定の時間とに基づいて、前記タスクの生産性を算出し、前記タスクの生産性に関する情報として記録する付記９〜付記１２の何れかに記載の推定装置。
【０１４１】
（付記１４）
複数の担当者によって分担されるタスクに関して、複数の担当者の各々について見積もられたタスクの予定時間を受け付ける入力部と、
担当者の各々に対応付けられた、前記タスクの生産性に関する情報とを記憶する記憶部を参照して、前記複数の担当者の各々の前記タスクに関する生産性を特定し、受け付けた前記複数の担当者の各々について見積もられた予定時間と、特定した前記複数の担当者の各々の前記タスクに関する生産性とに基づいて、前記複数の担当者の各々の前記タスクに要する時間の期待値を算出し、算出した前記期待値と、前記複数の担当者の各々に前記タスクを割り当て可能な工数の割合とに基づいて、前記複数の担当者による前記タスクの推定所要時間を算出する推定部と、
を含む推定装置。
【０１４２】
（付記１５）
タスクの指定と、前記タスクについて見積もられた予定の指定とを受け付け、
担当者の各々に対応づけられた、前記タスクの実施履歴と、前記タスクの生産性に関する情報とを記憶する記憶部を参照して、前記担当者の各々の、前記タスクの実施履歴と、前記タスクの生産性に関する情報とに基づいて、前記担当者の各々について、前記タスクにおける、前記タスクの実施履歴と前記タスクの生産性との相関関係を特定し、
前記担当者の各々について、前記担当者の前記タスクの前記相関関係に基づいて、指定された前記タスクについての生産性を推定し、
前記担当者の各々について推定した前記生産性と、見積もられた前記予定とに基づいて、前記タスクの実施スケジュールを生成する、
ことを含む処理をコンピュータが実行することを特徴とする推定方法。
【０１４３】
（付記１６）
前記予定は、予定時間を含み、
前記タスクの生産性に関する情報は、前記タスクについて見積もられた予定時間に対する実績の所要時間の比とし、
前記タスクの実施履歴は、前回のタスクからの実施間隔と、タスクの経験回数とを含み、
前記タスクについて、前記タスクの実施履歴に含まれる前記前回のタスクからの実施間隔、及び前記タスクの経験回数と、前記タスクの生産性に関する情報とに基づいて、重回帰分析を行って前記相関関係を特定する付記１５に記載の推定方法。
【０１４４】
（付記１７）
前記タスクの生産性に関する情報は、過去のタスクの生産性を含み、
前記タスクについて、前記記憶部に記憶されている、前記タスクの実施履歴、及び前記タスクの生産性に関する情報に基づいて、前記タスクの生産性が担当者のスキルに依存するか否かを判定し、
前記スキルに依存する場合に、推定した前記生産性に基づいて、前記実施スケジュールを生成し、
前記スキルに依存しない場合に、予め定められた担当者の前記タスクの生産性に関する情報に含まれる過去のタスクの生産性に基づいて、前記実施スケジュールを生成する付記１５又は付記１６に記載の推定方法。
【０１４５】
（付記１８）
前記タスクの最低所要時間が存在するか否かを判定し、
前記最低所要時間が存在する場合に、推定された前記生産性に基づいて、前記最低所要時間以上となるように、前記タスクの実施スケジュールを生成する付記１５〜付記１７の何れかに記載の推定方法。
【０１４６】
（付記１９）
前記実施スケジュールが生成され、実施された前記タスクについて、
実際のタスクの実績と予定との作業内容の差分についての実績の所要時間に基づいて、見積もられた前記予定の予定時間を補正し、
前記実績の所要時間と、補正された前記予定の時間とに基づいて、前記タスクの生産性を算出し、前記タスクの生産性に関する情報として記録する付記１５〜付記１８の何れかに記載の推定方法。
【０１４７】
（付記２０）
複数の担当者によって分担されるタスクに関して、複数の担当者の各々について見積もられたタスクの予定時間を受け付け、
担当者の各々に対応付けられた、前記タスクの生産性に関する情報を記憶する記憶部を参照して、前記複数の担当者の各々の前記タスクに関する生産性を特定し、
受け付けた前記複数の担当者の各々について見積もられた前記予定時間と、特定した前記複数の担当者の各々の前記タスクに関する生産性とに基づいて、前記複数の担当者の各々の前記タスクに要する時間の期待値を算出し、
算出した前記期待値と、前記複数の担当者の各々に前記タスクを割り当て可能な工数の割合とに基づいて、前記複数の担当者による前記タスクの推定所要時間を算出する、
ことを含む処理をコンピュータが実行することを特徴とする推定方法。
【符号の説明】
【０１４８】
２２   タスク情報入力部
２４   タスク性質判断部
２６   生産性推定部
２８   出力部
３０   タスク情報記憶ＤＢ
３２   タスク分類記憶ＤＢ
３４   生産性情報記憶ＤＢ
４０   タスク実績情報記録部
４２   生産性計算部
５０、２５０  コンピュータ
５１   ＣＰＵ
５２   メモリ
５３、２５３  記憶部
５９   記録媒体
６０、２６０  推定プログラム
２２４ 作業工数入力部
２２６ 推定部
２３６ 作業工数記憶ＤＢ
【図１】
2019185132.tif 000003
【図２】
2019185132.tif 000004
【図３】
2019185132.tif 000005
【図４】
2019185132.tif 000006
【図５】
2019185132.tif 000007
【図６】
2019185132.tif 000008
【図７】
2019185132.tif 000009
【図８】
2019185132.tif 000010
【図９】
2019185132.tif 000011
【図１０】
2019185132.tif 000012
【図１１】
2019185132.tif 000013
【図１２】
2019185132.tif 000014
【図１３】
2019185132.tif 000015
【図１４】
2019185132.tif 000016
【図１５】
2019185132.tif 000017
【図１６】
2019185132.tif 000018
【図１７】
2019185132.tif 000019