(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023115586
(43)【公開日】2023-08-21
(54)【発明の名称】プロジェクト成否予測装置、予測モデルの機械学習方法、およびプロジェクト成否予測方法
(51)【国際特許分類】
G06Q 10/0639 20230101AFI20230814BHJP
G06F 40/216 20200101ALI20230814BHJP
G06F 40/279 20200101ALI20230814BHJP
【FI】
G06Q10/06 332
G06F40/216
G06F40/279
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022017886
(22)【出願日】2022-02-08
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】巴 統哉
(72)【発明者】
【氏名】北川 健二
(72)【発明者】
【氏名】川上 真澄
【テーマコード(参考)】
5B091
5L049
【Fターム(参考)】
5B091AA15
5B091CA01
5B091EA01
5L049AA09
(57)【要約】
【課題】
従来よりも多面的な判断材料を利用して、プロジェクト成否を予測する技術を提供することにある。
【解決手段】
機械学習によって生成された予測モデルを用いてプロジェクトの成否を予測する成否予測部と、予測実行時点までの前記プロジェクトのプロジェクト情報から予測時メトリクスを生成するプロジェクト情報加工部を備え、前記予測時メトリクスに基づいた説明変数を前記成否予測部に入力し、出力される目的変数によりプロジェクト成否を予測し、前記プロジェクト情報は、管理指標と文書を含み、前記プロジェクト情報加工部は、前記管理指標を前記予測時メトリクスに変換する数値指標加工部と、前記文書を前記予測時メトリクスに変換する自然言語加工部を備える、プロジェクト成否予測装置である。
【選択図】
図1
【特許請求の範囲】
【請求項1】
機械学習によって生成された予測モデルを用いてプロジェクトの成否を予測する成否予測部と、
予測実行時点までの前記プロジェクトのプロジェクト情報から予測時メトリクスを生成するプロジェクト情報加工部を備え、
前記予測時メトリクスに基づいた説明変数を前記成否予測部に入力し、出力される目的変数によりプロジェクト成否を予測し、
前記プロジェクト情報は、
管理指標と文書を含み、
前記プロジェクト情報加工部は、
前記管理指標を前記予測時メトリクスに変換する数値指標加工部と、前記文書を前記予測時メトリクスに変換する自然言語加工部を備える、
プロジェクト成否予測装置。
【請求項2】
前記自然言語加工部は、
前記文書内の文章をスコア値へ変換する、
請求項1記載のプロジェクト成否予測装置。
【請求項3】
前記自然言語加工部は、
前記文書内の所定の単語の出現頻度に基づいて前記文章を前記スコア値へ変換する、
請求項2記載のプロジェクト成否予測装置。
【請求項4】
前記自然言語加工部は、
予め定めた単語の分類を示すキーワード記録テーブルを参照して前記所定の単語を抽出するとともに前記単語の分類に基づいた属性を付与し、
前記スコア値に前記属性を付与する、
請求項3記載のプロジェクト成否予測装置。
【請求項5】
前記単語の分類は、プロジェクト管理の視点で良い意味か悪い意味かで分類したものである、
請求項4記載のプロジェクト成否予測装置。
【請求項6】
前記単語の分類は、プロジェクト管理の異なる視点で分類したものである、
請求項4記載のプロジェクト成否予測装置。
【請求項7】
プロジェクトの成否を予測する予測モデルの機械学習方法であって、
前記プロジェクトのプロジェクト情報から学習時メトリクスを生成するプロジェクト情報加工処理と、
前記学習時メトリクスに基づいた説明変数と、プロジェクト成否結果に基づいた目的変数を用いて、前記予測モデルの機械学習を行う予測モデル構築処理を実行し、
前記プロジェクト情報は、
管理指標と文書を含み、
前記プロジェクト情報加工処理は、
前記管理指標を前記学習時メトリクスに変換する数値指標加工処理と、前記文書を前記学習時メトリクスに変換する自然言語加工処理を実行する、
予測モデルの機械学習方法。
【請求項8】
前記自然言語加工処理は、
前記文書内の文章をスコア値へ変換する、
請求項7記載の予測モデルの機械学習方法。
【請求項9】
前記自然言語加工処理は、
前記文書内の所定の単語の出現頻度に基づいて前記文章を前記スコア値へ変換する、
請求項8記載の予測モデルの機械学習方法。
【請求項10】
前記自然言語加工処理は、
予め定めた単語の分類を示すキーワード記録テーブルを参照して前記所定の単語を抽出するとともに前記単語の分類に基づいた属性を付与し、
前記スコア値に前記属性を付与する、
請求項9記載の予測モデルの機械学習方法。
【請求項11】
前記単語の分類は、プロジェクト管理の視点で良い意味か悪い意味かで分類したものである、
請求項10記載の予測モデルの機械学習方法。
【請求項12】
前記単語の分類は、プロジェクト管理の異なる視点で分類したものである、
請求項10記載の予測モデルの機械学習方法。
【請求項13】
請求項7記載の予測モデルの機械学習方法で機械学習した予測モデルを用いたプロジェクト成否予測方法であって、
予測実行時点までの前記プロジェクトのプロジェクト情報から予測時メトリクスを生成する第2のプロジェクト情報加工処理を実行し、
前記予測時メトリクスに基づいた説明変数を前記予測モデルに入力し、出力される目的変数によりプロジェクト成否を予測し、
前記プロジェクト情報は、
管理指標と文書を含み、
前記第2のプロジェクト情報加工処理は、
前記管理指標を前記予測時メトリクスに変換する第2の数値指標加工処理と、前記文書を前記予測時メトリクスに変換する第2の自然言語加工処理を実行する、
プロジェクト成否予測方法。
【請求項14】
前記第2の自然言語加工処理は、
前記文書内の所定の単語の出現頻度に基づいて前記文書内の単語をスコア値へ変換する、
請求項13記載のプロジェクト成否予測方法。
【請求項15】
前記第2の自然言語加工処理は、
予め定めた単語の分類を示すキーワード記録テーブルを参照して前記所定の単語を抽出するとともに前記単語の分類に基づいた属性を付与し、
前記スコア値に前記属性を付与する、
請求項14記載のプロジェクト成否予測方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロジェクトの成否を予測する技術、例えばソフトウェア開発プロジェクトの成否予測技術に関する。
【背景技術】
【0002】
ソフトウェア開発におけるプロジェクト(PJ)の成否は、プロジェクトの終了時における、工程遅れや品質不足、コスト超過などの要因により判断される。プロジェクトの失敗を未然に防ぐために、プロジェクトマネージャー(PM)は、プロジェクトの成果物量や不具合量といった様々な管理指標や現場の状況から、プロジェクトに何らかの失敗予兆があると判断する。その予兆をいち早く検知し、問題発見・対処につなげていくことが求められる。PMは、過去に担当した失敗プロジェクトにて、何が原因となったのかを細部まで把握し、学習することで、失敗予兆発見の知見を得る。
【0003】
多数のプロジェクトが同時進行するような組織の場合、複数のプロジェクトを俯瞰し、リスク管理、品質管理を担当する品質保証(QA)やプロジェクトマネジメントオフィス(PMO)といったチームが存在する場合が多い。それらのチームは、PMとは異なり、多数のプロジェクトを横断して管理を行う役割を担う。プロジェクトが失敗に陥ったときの、PMからの報告や、各プロジェクトの管理指標を学習することで、失敗予兆発見の知見を得る。
【0004】
このように、PM、PMO、QA(プロジェクト管理者と総称する)は、過去に担当した複数の失敗プロジェクトにおいて、事前に現れていた指標・状況とプロジェクト失敗との因果関係を経験的に学習する。新たなプロジェクトに同じような指標・状況が現れていた場合、そのプロジェクトに何らかの異常があると失敗予兆として検知する。
【0005】
しかし、人間が経験的に因果関係を学習できるのは、数多に存在する過去のPJの内、多くとも数十プロジェクトである。また、人間が考慮することのできる指標・状況の組み合わせにも限りがある。学習対象のプロジェクトや指標が限られたものとなると、プロジェクト状況把握も不十分なものとなり、失敗予兆の発見に見逃しが生まれる。過去に蓄積された大量のプロジェクトの、指標や状況の数多の組みあわせをすべて考慮して、因果関係を導くには、教師あり機械学習のアプローチが適していると考えられる。
【0006】
教師あり機械学習とは、説明変数と目的変数が既知である大量のデータセットから、説明変数と目的変数間の因果関係を求める手法である。一例として、目的変数は説明変数に任意の次元のベクトルを掛け合わされる形で算出されると仮定すると、そのベクトルは入出力間の因果関係を表すことになる。このベクトルを重みベクトル(予測モデル)と呼ぶ。全ての既知の入出力値の関係を最も説明できるように重みベクトルを調節する。こうして得られた予測モデルを、出力が未知の入力に対して掛け合わせることで、出力を算出する。予測モデルを作成するステップを機械学習における学習フェイズと呼び、予測モデルに基づいて、入力から出力を算出するステップを、予測フェイズと呼ぶ。
【0007】
機械学習の原理に基づけば、進行中プロジェクトの任意の工程完了時点におけるプロジェクト管理指標を用いて、最終的な成否を予測することが可能である。具体的には、過去の大量のプロジェクトの成否を目的変数とし、上記と同じ工程完了時点におけるプロジェクト管理指標を説明変数とした機械学習を行うことで実現する。これにより、失敗予兆発見の際の属人性の排除が実現し、人間では発見することが困難であった失敗予兆を発見する効果が期待される。
【0008】
これを実現するための関連技術の一つとして、特許文献1がある。特許文献1のリスク評価装置は、複数の過去プロジェクトの任意の工程完了時点における複数の管理指標を説明変数とし、各プロジェクトの成否を目的変数として機械学習を行い、予測モデルを生成する。生成した予測モデルを用いて、進行中プロジェクトの同時点において、プロジェクト成否を出力する。
【0009】
プロジェクト管理者は、このような仕組みを利用し、失敗と予測されたプロジェクトには、何らかの異常があると判断し、そのプロジェクトに対してより細かな状況把握を行うことで、より小さな粒度の問題を特定し、プロジェクト失敗を未然に防ぐことが可能となる。
【0010】
また、特許文献2は、プロジェクト情報を記述する表現パターンに基づき、それがプロジェクト情報中のテキストに出現した時点を基準としたプロジェクト・トラブルの発生確率分布、および分布を表現する統計量によって、トラブルが発生する確率と時期を推定することにより、トラブルになりそうなプロジェクトの絞り込みを行うことを示す。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2014-235654号公報
【特許文献2】特開2009-230351号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
PMが経験的に行っていた予兆検知の判断材料の一つに、プロジェクト管理指標がある。プロジェクト管理指標の例として、不具合量や成果物量といった数値指標が挙げられる。特許文献1では、プロジェクト管理指標のみを説明変数として、機械学習による失敗予測を行う。このように、数値で表される指標は、説明変数としてそのまま入力することが可能であるため、機械学習アプローチを適用しやすい。
【0013】
しかしながら、PMが経験的に行っていた予兆検知の判断材料には、プロジェクト管理の過程にて蓄積される文書も多種存在する。例えば、担当者間のメールや定期的な報告書、会議資料、懸念点リストの内容といったものである。このようなプロジェクト管理文書は、数値指標では表すことが困難な現場の状況を文章で表している場合がある。そのため、プロジェクト管理指標のみを用いた機械学習アプローチでは、PMが経験的に行っていた成否予測や失敗予兆発見と比べ、判断材料が不十分である。
【0014】
特許文献2のシステムは、過去プロジェクトの報告書内のリスク自然言語パターン表現の出現頻度とプロジェクトのトラブル発生件数を統計的に分析し、報告書に存在するリスクを数値化する。これにより、新たなプロジェクトの報告書を用いて、トラブルが発生する確率と時期を推定することにより、従来できなかったような高い尤度で、トラブルになりそうなプロジェクトの絞り込みを行うことを可能とする。特許文献1がプロジェクト管理指標のみを判断材料としているのに対し特許文献2は、プロジェクト管理文書のみを判断材料としている。
【0015】
このように、プロジェクト管理指標もしくは、プロジェクト管理文書のどちらかを判断材料とした、成否予測、失敗予兆検知は従来技術として存在するが、双方を判断材料とした従来技術は存在しない。従来技術では、PMによる経験的な失敗予兆発見と比べ、判断材料が不十分なまま、機械学習や統計手法によるアプローチを利用しているという課題がある。
【0016】
本発明の課題は、従来よりも多面的な判断材料を利用して、プロジェクト成否を予測する技術を提供することにある。
【課題を解決するための手段】
【0017】
本発明の好ましい一側面は、機械学習によって生成された予測モデルを用いてプロジェクトの成否を予測する成否予測部と、予測実行時点までの前記プロジェクトのプロジェクト情報から予測時メトリクスを生成するプロジェクト情報加工部を備え、前記予測時メトリクスに基づいた説明変数を前記成否予測部に入力し、出力される目的変数によりプロジェクト成否を予測し、前記プロジェクト情報は、管理指標と文書を含み、前記プロジェクト情報加工部は、前記管理指標を前記予測時メトリクスに変換する数値指標加工部と、前記文書を前記予測時メトリクスに変換する自然言語加工部を備える、プロジェクト成否予測装置である。
【0018】
本発明の好ましい他の一側面は、プロジェクトの成否を予測する予測モデルの機械学習方法であって、前記プロジェクトのプロジェクト情報から学習時メトリクスを生成するプロジェクト情報加工処理と、前記学習時メトリクスに基づいた説明変数と、プロジェクト成否結果に基づいた目的変数を用いて、前記予測モデルの機械学習を行う予測モデル構築処理を実行し、前記プロジェクト情報は、管理指標と文書を含み、前記プロジェクト情報加工処理は、前記管理指標を前記学習時メトリクスに変換する数値指標加工処理と、前記文書を前記学習時メトリクスに変換する自然言語加工処理を実行する、予測モデルの機械学習方法である。
【0019】
本発明の他の好ましい一側面は、上記の予測モデルの機械学習方法で機械学習した予測モデルを用いたプロジェクト成否予測方法であって、予測実行時点までの前記プロジェクトのプロジェクト情報から予測時メトリクスを生成する第2のプロジェクト情報加工処理を実行し、前記予測時メトリクスに基づいた説明変数を前記予測モデルに入力し、出力される目的変数によりプロジェクト成否を予測し、前記プロジェクト情報は、管理指標と文書を含み、前記第2のプロジェクト情報加工処理は、前記管理指標を前記予測時メトリクスに変換する第2の数値指標加工処理と、前記文書を前記予測時メトリクスに変換する第2の自然言語加工処理を実行する、プロジェクト成否予測方法である。
【発明の効果】
【0020】
従来よりも多面的な判断材料を利用して、プロジェクト成否を予測する技術を提供することができる。
【図面の簡単な説明】
【0021】
【
図1】ソフトウェア開発プロジェクト成否予測装置を構成する各処理部及び記録装置の内部データを示したブロック図である。
【
図2】ソフトウェア開発プロジェクト成否予測装置の処理を実行するハードウェア構造を示すブロック図である。
【
図3】ソフトウェア開発プロジェクト成否予測装置のデータフローを示すブロック図である。
【
図4】プロジェクト管理指標の実例を示した表図である。
【
図5】プロジェクト管理文書の実例を示した表図である。
【
図6】過去プロジェクト成否結果記録テーブルを示した表図である。
【
図7】成否予測値記録テーブルを示した表図である。
【
図8】実施例1に係るキーワード記録テーブルの実例を示した表図である。
【
図9】実施例1に係る単語列分類テーブルの実例を示した表図である。
【
図10】実施例1に係るキーワード・スコアテーブルの実例を示した表図である。
【
図11】メトリクス記録テーブルの実例を示した表図である。
【
図12】過去プロジェクト情報加工部のデータフローを示したブロック図である。
【
図13】過去プロジェクト情報を用いた機械学習処理フローを示した流れ図である。
【
図14】進行中プロジェクト情報からの成否予測処理フローを示した流れ図である。
【
図15】進行中プロジェクト情報加工部のデータフローを示したブロック図である。
【
図16】プロジェクト情報抽出部の処理フローを示した流れ図である。
【
図17】実施例2に係る単語列分類テーブルの実例を示した表図である。
【
図18】実施例2に係るキーワード記録テーブルの実例を示した表図である。
【
図19】実施例2に係るキーワード・スコアテーブルの実例を示した表図である。
【
図20】実施例2に係る自然言語加工部の処理フローを示した流れ図である。
【発明を実施するための形態】
【0022】
以下、本発明に係る実施形態を、図を用いて説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではない。また実施形態において説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0023】
以下に説明する実施例の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
【0024】
同一あるいは同様な機能を有する要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、複数の要素を区別する必要がない場合には、添字を省略して説明する場合がある。
【0025】
本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【0026】
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
【0027】
本明細書で引用した刊行物、特許および特許出願は、そのまま本明細書の説明の一部を構成する。
【0028】
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
【実施例0029】
以下,本発明に係る実施形態を説明する。
図1は、ソフトウェア開発プロジェクト成否予測装置を構成する各処理部及び記録装置の内部データを示した図である。
図2は、ソフトウェア開発プロジェクト成否予測装置の処理を実行するハードウェア構造を示す図である。
図3は、ソフトウェア開発プロジェクト成否予測装置のデータフローを示す。
まず,
図1および
図2を用いて,ソフトウェア開発プロジェクト成否予測装置の構成を記載する。
【0030】
図1は、実施例のソフトウェア開発プロジェクト成否予測装置10の機能ブロック図である。
図1に示されるように,ソフトウェア開発プロジェクト成否予測装置10は,自然言語加工部103と数値指標加工部102からなるプロジェクト情報加工部101を備える。また,プロジェクト情報抽出部104,予測モデル構築部105,成否予測部106を備える。これら各処理部の機能は後に説明するようにプログラムとして実装される。
【0031】
プロジェクト情報記録データベース(DB)110には、過去プロジェクト成否結果記録テーブル111、キーワード記録テーブル112、プロジェクト管理指標114とプロジェクト管理文書115を含むプロジェクト情報113、および成否予測値記録テーブル116が記録されている。プロジェクト情報記録DB110は、ソフトウェア開発プロジェクト成否予測装置10がデータを利用できる限り、ソフトウェア開発プロジェクト成否予測装置10の一部(例えば後述の補助記憶装置203)としてもよいし、ネットワークなどで接続された他の装置で構成してもよい。本実施例では、補助記憶装置203で構成する例として説明する。
【0032】
図2を用いてソフトウェア開発プロジェクト成否予測装置10のハードウェア・ソフトウェア構成について説明する。
【0033】
ソフトウェア開発プロジェクト成否予測装置10は、ソフトウェア開発プロジェクトの管理等に利用される情報処理装置(コンピュータ)である。ソフトウェア開発プロジェクト成否予測装置10は、クラウドシステムにより提供されるクラウドサーバ等のように仮想的に実現されるものであってもよい。
【0034】
ソフトウェア開発プロジェクト成否予測装置10は、プロセッサ201、主記憶装置202、補助記憶装置203、入力装置204、出力装置205、及び通信装置206を備える。これらコンポーネントは、バス等の通信手段を介して互いに通信できるように接続されている。
【0035】
プロセッサ201は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)のような半導体装置によりロジック回路を実現したものである。プロセッサ201が、主記憶装置202に格納されているプログラムを実行することにより、ソフトウェア開発プロジェクト成否予測装置10の様々な機能が実現される。プログラムは補助記憶装置203や他の記憶装置から読みだして、主記憶装置202に格納する。
【0036】
主記憶装置202は、RAM(Random Access Memory)などのプログラムやデータを記憶する装置である。
【0037】
補助記憶装置203は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、ストレージシステム、ICカード、SDメモリカードや光学式記録媒体等の記録媒体の読取/書込装置、クラウドサーバの記憶領域等である。補助記憶装置203に格納されているプログラムやデータは主記憶装置202に随時ロードされる。
【0038】
入力装置204は、ソフトウェア開発プロジェクト成否予測装置10に情報を入力する装置であり、例えば、キーボード、マウス、タッチパネル、カードリーダ、音声入力装置等である。
【0039】
出力装置205は、ソフトウェア開発プロジェクト成否予測装置10における処理経過や処理結果等の各種情報をユーザに提供するユーザインタフェースを実現する装置であり、例えば、画面表示装置(液晶モニタ、LCD(Liquid Crystal Display)、グラフィックカード等)、音声出力装置(スピーカ等)、印字装置等である。
【0040】
通信装置206は、LANやインターネット等の通信手段を介した他の装置との間の通信を実現する有線、または、無線による通信インタフェースを実現する装置であり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。本装置では,通信装置206をプロジェクト情報記録DB110との接続に用いる。
【0041】
本実施形態のソフトウェア開発プロジェクト成否予測装置10の補助記憶装置203には、数値指標加工プログラム207、自然言語加工プログラム208,予測モデル構築プログラム210,成否予測プログラム211,プロジェクト情報抽出プログララム209がインストールされている。
【0042】
また,キーワード・スコアテーブル213,学習時メトリクス記録テーブル212,予測モデル215が格納される。
【0043】
数値指標加工プログラム207、自然言語加工プログラム208,予測モデル構築プログラム210,成否予測プログラム211,プロジェクト情報抽出プログララム209は、プロセッサ201が実行することにより、各々
図1の数値指標加工部102,自然言語加工部103,予測モデル構築部105,成否予測部106,プロジェクト情報抽出部104の機能を実現するプログラムである。
【0044】
図1~
図3を参照すると、プロジェクト情報抽出部104は,プロジェクト情報113を,過去のプロジェクト情報と,進行中プロジェクトの情報に分けて,主記憶装置202に出力する役割を担う。ここで情報を分ける際に,各プロジェクトが進行中か,完了済みかを表す指標を参考にする必要があるが,その参考指標は,本装置では省略し,別途テーブルに格納されているものとする。
【0045】
プロジェクト情報加工部101は,入力された過去,および進行中のプロジェクト情報を機械学習の説明変数(メトリクス)として適した形に加工後,学習時メトリクス記録テーブル212および,予測時メトリクス記録テーブル214に記録する役割を担う。
【0046】
予測モデル構築部105は,学習時メトリクス記録テーブル212に記録された複数プロジェクトのメトリクス値を説明変数とし,過去プロジェクト成否結果記録テーブル111に記載された各PJの成否予測値を目的変数として機械学習により学習し,予測モデル215を構築する役割を担う。
【0047】
成否予測部106は,前記にて生成した予測モデル215と,予測時メトリクス記録テーブル214に記載のメトリクスを用いて,機械学習による成否予測を行い,その結果を成否予測値記録テーブル116に記録する役割を担う。
【0048】
数値指標加工部102は,プロジェクト管理指標114を入力とし,その指標値をメトリクスへ変換する役割を担う。
【0049】
自然言語加工部103は,プロジェクト管理文書115を入力とし,文書内の自然言語からメトリクスを生成する役割を担う。
【0050】
また,プロジェクト情報記録DB110は,プロジェクト管理指標114とプロジェクト管理文書115からなるプロジェクト情報113,過去プロジェクト成否結果記録テーブル111,キーワード記録テーブル112,成否予測値記録テーブル116を格納する。プロジェクト管理指標114とプロジェクト管理文書115は,どちらもプロジェクトの過程で蓄積される情報であるため,以降,これらを総称して,プロジェクト情報113と記載する。
【0051】
プロジェクト管理指標114は,成果物量や不具合量といったプロジェクト管理指標を記録するテーブルである。
【0052】
図4に、プロジェクト管理指標114の実例を記載する。プロジェクトの各工程703の完了時点における指標値704が,プロジェクト番号P#701ごと,指標種別702ごとに格納されていることを想定する。指標種別は、例えば「成果物量」、「不具合量」など自由に定義してよいが、基本的に数値で表現される指標である。数値に変換できるのであればA,B,Cのようなランク付けでもよい。各工程703は、工程の完了時刻を格納してもよいし、プロジェクトにおいて定義されている工程(例えば、要件定義、設計、デバッグなど)を特定する番号や記号を格納してもよい。本実施例では工程703を、各プロジェクトで共通に定義するものとする。
【0053】
図5に、プロジェクト管理文書テーブルの実例を記載する。プロジェクト管理文書115は,メール内容,週報や懸案事項,修正事項といったプロジェクトの過程で蓄積される文書を記録するテーブルである。実際には文書はテーブルではなくテキストファイル形式で保存されることが多いが,ここでは便宜上,文書内の全ての文章がテーブル内の一つのセルに格納されていることを想定する。
【0054】
プロジェクト番号P#701ごとにデータを格納する。格納日付802には,文書が格納された日付を格納する。文書種803には,文書の種別名(例えば、週報、報告書、メールなど)を格納する。文章804には,文書内の全ての文章を格納する。
【0055】
図6は、過去プロジェクト成否結果記録テーブルを示した図である。過去プロジェクト成否結果記録テーブル111は,過去プロジェクトの成否結果を一定の範囲内の値で事前に人手により定められた失敗度合いの値を格納するテーブルである。値は、PM等プロジェクトに知見を持つ担当者が決定して入力する。
【0056】
過去プロジェクト成否結果記録テーブル111は、機械学習の目的変数となるプロジェクトの失敗度合をテーブルの属性として持つ。プロジェクトの総合的な失敗度合いを、プロジェクト番号P#701ごとに全体失敗度合い結果値905に記載する。また,結果値902~904のように,失敗度合いを,Q(品質),C(コスト),D(納期)といった分類により細かく分割して記載する。
【0057】
図7は、成否予測値記録テーブルを示した図である。成否予測値記録テーブル116は,進行中プロジェクトの成否予測値を記録するテーブルである。
図7のように,テーブルの概要は
図6の過去プロジェクト成否結果記録テーブル111と同じものとなる。ただし,予測値1002~1005には,過去の成否結果値ではなく,本装置の成否予測部106による成否予測結果値を失敗度合い予測値として格納する。
【0058】
図8は、キーワード記録テーブルの実例を示した図である。キーワード記録テーブル112は,単語列とその単語列の特性が記載されたテーブルである。本テーブルは,本装置の実行前に,事前に作成されていることを想定する。一例として,
図8のように,後述する分類種別601(
図9)のような分類が分類1102に記載される。文書に出現する所定の単語列(例えば、「失敗」、「遅延」、「順調」等)に対して分類分けが行われ,分類基準602に当てはまるものは,分類1102にその分類が入力されている。キーワード記録テーブル112は、PM等プロジェクトに知見を持つ担当者や文書の専門家等が決定して入力する。
【0059】
図9は、単語列分類テーブルの実例を示した図である。単語列分類テーブル600は,単語列の分類の種別と,分類基準を表す。
図9では、分類種別601としてプロジェクト管理の視点で良い意味か悪い意味かで分類している。PM等プロジェクトに知見を持つ担当者や文書の専門家等が決定して入力する。本装置の構成要素ではないが,本実施例の説明のために記載した。
【0060】
図10は、キーワード・スコアテーブルの実例を示した図である。キーワード・スコアテーブル213は,文書内に出現した単語列1203に関して,その出現日付1202と,分類1204と,その単語列の文書全体に対する重要度を表すスコア値1205からなる。後に説明するように、スコア値は自然言語加工部103によって計算される。
【0061】
図11は、メトリクス記録テーブルの実例を示した図である。学習時メトリクス記録テーブル212は,学習時に,プロジェクト情報加工部101により生成したメトリクスを値1303に格納する。後に記載するように,自然言語データに関しては,集計結果が値として格納される形になるので,
図11の例にあるように,「Quality-集計結果」のように,「集計結果」という文字列を分類の後につけた。
【0062】
すなわち、予め定めた単語の分類を示すキーワード記録テーブル112(
図8)を参照して所定の単語を抽出するとともに単語の分類に基づいた属性を付与し、スコア値に分類(属性)を示す文字列を付与している。単語の分類は利用者が任意に設定することができる。
図11の例では、自然言語データを「Quality」、「Delivery」のように評価視点に基づいて分類している。単一分類あるいは
図8のキーワード記録テーブル112に従って、「Good」と「Bad」のように意味づけして分類してもよい。視点に基づいて自然言語データを詳細に分類する例は、実施例2で詳しく述べる。
【0063】
同様に,予測時メトリクス記録テーブル214は,予測時に,プロジェクト情報加工部101により生成したメトリクスを格納する。
【0064】
学習時メトリクス記録テーブル212と予測時メトリクス記録テーブル214は,同じテーブル形式を持つため,
図11にテーブルの概念図をまとめて記載した。
【0065】
次に,
図3を再度用いて実施形態1に係るソフトウェア開発プロジェクト成否予測装置10で実行される処理のフローを記載する。
図3には入出力を明記した全体のデータフローを記載した。
図12には,プロジェクト情報加工部101の詳細を記載する。
図13には,学習フェイズにおける,予測モデル生成のためのフローを記載する。
図14には,予測フェイズにおける,成否予測結果生成のためのフローを記載する。
【0066】
本実施例では学習フェイズと予測フェイズを同じ装置で実現しているが、学習フェイズと予測フェイズは、異なる装置やシステムで実行することもできる。
【0067】
各処理部の機能を説明する前に,
図3を参考に,装置外も含めて,全体概念を説明する。プロジェクトマネージャ1は,進行中プロジェクトの全てのプロジェクト工程の中で,成否予測を実行する工程を決める。以降,これを成否予測実行時点と呼ぶ。
【0068】
図3と
図12によれば,本装置は,学習フェイズにて,プロジェクト情報抽出部104は,プロジェクト情報113(プロジェクト管理指標114とプロジェクト管理文書115の両者を含む)から,過去プロジェクト情報301を抽出し,成否予測実行時点までの情報を,プロジェクト情報加工部101で機械学習のメトリクスとして適切な形に変形する。プロジェクト情報加工部101の自然言語加工部103では,文章からメトリクスを生成するためにキーワード記録テーブル112を参照する。数値指標加工部102は,プロジェクト管理指標114の数値を必要に応じて変換する。
【0069】
学習時メトリクス記録テーブル212に記録したメトリクスと過去プロジェクト成否結果記録テーブル111を用いて,予測モデル構築部105で予測モデル215を生成する。具体的には、生成されたメトリクスを説明変数(問題)とし、過去プロジェクト成否結果を目的変数(正解)として、予測モデルの教師あり学習を行う。
【0070】
一度予測モデル215を生成すれば,さらに多くのプロジェクトが蓄積されるまで学習フェイズを再度実行する必要はなく,同じ予測モデルを一定の期間,複数の進行中プロジェクトに対して予測フェイズにて利用し続ける。
【0071】
予測フェイズでは,説明変数として進行中プロジェクト情報302に基づく予測時メトリクス記録テーブル214を用いる点が,学習フェイズと異なる。まず,学習フェイズと同様に,進行中のプロジェクトの成否予測実行時点までの情報からメトリクスが生成される。生成したメトリクスと,予測モデル215を用いて,成否予測部106が成否予測値を算出する。具体的には、生成されたメトリクスを説明変数として入力し、出力として目的変数(成否予測値)を得る。
【0072】
プロジェクトマネージャ1は,成否予測値記録テーブル116に記載の複数の進行中プロジェクトの成否予測値を基に,失敗リスクの高いプロジェクトを認識する。
【0073】
図13は,過去プロジェクト情報301を学習し,予測モデル215を生成する方法を表すフローチャートである。その後,
図14におけるステップ1501,ステップ1502,ステップ1503により,生成した前記予測モデル215を用いて,進行中プロジェクトの成否予測値を生成する。成否予測値を生成するに至るまでの各ステップを以下で説明する。
【0074】
図13において、ステップs1401は、プロジェクト情報抽出部104において,プロジェクト情報113を入力とし、プロジェクト管理指標114は、工程703に基づいて成否予測実行時点までの期間の行のみをフィルタして取り出し、過去プロジェクト情報301を生成する。ただし,プロジェクト管理文書115からは,成否予測実行時点までの格納日付802の文書内の文章をすべて連結して抽出する。
【0075】
ステップs1402は、過去プロジェクト情報301を入力とし、プロジェクト情報加工部101において,入力を機械学習の説明変数に適した形へと加工し、メトリクスを生成し,学習時メトリクス記録テーブル212に記録する。
【0076】
ステップs1403は,予測モデル構築部105において,学習時メトリクス記録テーブル212内のすべてのメトリクスを説明変数として,過去プロジェクト成否結果記録テーブル111内の成否結果を目的変数として入力し、教師あり機械学習を実行することで、予測モデル215を生成する。目的変数の成否結果として,
図6の過去プロジェクト成否結果記録テーブル111のそれぞれの項目の失敗度合い結果値902~905を入力することで,それぞれの項目に対する予測モデル215を生成する。
【0077】
図14は,成否予測部106による、プロジェクト成否予測処理を表すフローチャートである。予測フェイズにおけるステップs1501,ステップs1502は,学習フェイズにおけるステップs1401,ステップs1402とそれぞれ同様のフローとなる。
【0078】
ステップs1501は、プロジェクト情報抽出部104において,予測対象とするプロジェクトのプロジェクト情報113を入力とし、成否予測実行時点までの期間の行のみをフィルタして取り出し、進行中プロジェクト情報302を生成する。ただし,プロジェクト管理文書115からは,予測対象とするプロジェクトの成否予測実行時点までの格納日付の文書内の文章をすべて連結して抽出する。
【0079】
ステップs1502は、進行中プロジェクト情報302を入力とし、プロジェクト情報加工部101において,入力を機械学習の説明変数に適した形へと加工し、メトリクスを生成し,予測時メトリクス記録テーブル214に記録する。
【0080】
ステップs1503は,成否予測部106において,予測時メトリクス記録テーブル214内のすべてのメトリクスを説明変数として,ステップs1403にて生成したそれぞれの予測モデル215を用いて機械学習による予測を行うことで,
図7の成否予測値記録テーブル116の1002から1005までの成否予測値を生成し,成否予測値記録テーブル116に記録する。
【0081】
次に,プロジェクト情報加工部101の詳細を記述する。プロジェクト情報加工部101は,過去プロジェクト情報301および進行中プロジェクト情報302を機械学習のメトリクスとして適切な形に加工する役割を担う。
【0082】
図15に、予測時においてプロジェクト情報加工部101が、進行中プロジェクト情報の加工を行うフローを記載した。入力がプロジェクト管理指標114の場合,数値指標加工部102によりメトリクスを生成する。入力がプロジェクト管理文書115の場合,自然言語加工部103により,メトリクスを生成する。
【0083】
自然言語加工部103は,入力文章から自然言語処理を用いて単語列を抽出し,当該単語列の出現頻度を計算する。本実施例では,この指標を単語列のスコア値と呼ぶ。スコア値をプロジェクトごとに集計し,集計結果をメトリクスとして出力する。
【0084】
ここでは,数値指標加工部102は特許文献1と同様の方法を用いており,本特許の請求項に関わりが薄いため説明を省略する。
【0085】
図16は、実施例1に係る自然言語加工部の処理フローを示した図である。本実施例に関わる,自然言語加工部103における処理フローのみを説明する。
【0086】
まず,入力されたプロジェクト管理文書115内の文章から,自然言語処理を用いて単語列を抽出する(s1701)。
【0087】
抽出した全ての単語列を一つずつ取り出し,キーワード記録テーブル112(
図8)に存在するかどうか確認する(s1702)。もし存在した場合,キーワード記録テーブル112に記載の該当単語列の分類1102を読み込む(s1703)。
【0088】
その後,単語列分類テーブル600のBADに分類された単語列の出現頻度をもとに,スコア値を計算する(s1704)。
【0089】
各単語列と,分類,スコア値を補助記憶装置203内のキーワード・スコアテーブル213に記録する(s1705)。
【0090】
最後に,キーワード・スコアテーブル213に記録されたスコア値を集計する。集計の一例として成否予測実行時点以前の単語列スコア値の合計を、全出現単語数で正規化した値をメトリクスとし,学習時メトリクス記録テーブル212に記録する(s1706)。本実施例では、単語列スコア値の集計はGoodまたはBad、あるいはQCDの分類ごとに行う。
【0091】
本実施例により、プロジェクト管理指標と、プロジェクト管理文書の双方を判断材料としたプロジェクト成否予測が可能となる。これにより、既存技術と比べ、より広い要因の中から失敗予兆を発見することができる。
各単語列1203と,BADの分類1204,QCD分類2001,スコア値1205を補助記憶装置203内の,キーワード・スコアテーブル213に記録する(s2005)。
上記実施例によれば、効率の良いプロジェクトマネジメントが実現可能となるため、効率の良いプロジェクトの実行が可能となり、消費エネルギーが少なく、炭素排出量を減らし、地球温暖化を防止、持続可能な社会の実現に寄与することができる。