(57)【要約】【課題】作業内容に応じて適切な開発者を割り当てることを可能にする。【解決手段】  開発者情報記憶部１２０は、開発者にて実施された開発タスクである実施タスクの作業内容である実作業内容を含む開発者情報を開発者ごとに記憶する。開発タスク情報記憶部１３０は、実施タスクと実作業内容との対応関係を示す開発タスク情報を記憶する。未実施タスク作業内容推定部１６０は、開発タスク情報に基づいて、実施されていない開発タスクである未実施タスクの作業内容である未実施作業内容を推定する。開発者割当案生成部１７０は、未実施作業内容と開発者情報とに基づいて、未実施タスクを実施する担当者として割り当てる開発者の候補を示す割当案を生成する。【選択図】図１
2020197939.tif 000002
【特許請求の範囲】
【請求項１】
開発者が行った作業の作業内容である担当者作業内容を含む開発者情報を前記開発者ごとに記憶する開発者情報記憶部と、
既に実施された開発タスクである実施タスクと前記実施タスクに応じて行われた作業の作業内容である実作業内容との対応関係を示す開発タスク情報を記憶する開発タスク情報記憶部と、
前記開発タスク情報に基づいて、未だ実施されていない開発タスクである未実施タスクに応じて行う作業の作業内容である未実施作業内容を推定する推定部と、
前記未実施作業内容と前記開発者情報とに基づいて、前記未実施タスクを実施する担当者として割り当てる開発者の候補を示す割当案を生成する生成部と、を有する開発者割当案生成装置。
【請求項２】
前記開発者情報は、前記担当者作業内容に関する前記開発者の能力の度合いをさらに含む、請求項１に記載の開発者割当案生成装置。
【請求項３】
前記担当者を割り当てる方針を示す方針情報を記憶する方針記憶部をさらに有し、
前記生成部は、前記未実施作業内容、前記開発者情報および前記方針情報に基づいて、前記割当案を生成する、請求項１に記載の開発者割当案生成装置。
【請求項４】
前記実施タスクに応じた開発成果物と、当該開発成果物の編集履歴を示す管理情報と、を記憶する管理情報記憶部と、
前記開発成果物および前記管理情報に基づいて、前記開発者情報および前記開発タスク情報を生成する作業内容特定部と、をさらに有する請求項１に記載の開発者割当案生成装置。
【請求項５】
前記未実施タスクが新規実施タスクとして実施された場合、当該新規実施タスクに応じて行われた作業内容と、当該新規実施タスクにおける前記未実施作業内容とに基づいて、前記推定部が前記未実施作業内容を推定するためのパラメータを補正する補正部をさらに有する請求項１に記載の開発者割当案生成装置。
【請求項６】
前記開発者情報に基づいて、前記開発者が行ったとみなせる作業内容であるみなし作業内容を推定し、当該みなし作業内容を前記開発者情報に加える作業実績推定部をさらに有する請求項１に記載の開発者割当案生成装置。
【請求項７】
前記みなし作業内容を推定してから所定期間が経過した場合、前記開発者情報に含まれる実作業内容と前記みなし作業内容とに基づいて、前記作業実績推定部が前記みなし作業内容を推定するためのパラメータを補正する補正部をさらに有する請求項６に記載の開発者割当案生成装置。
【請求項８】
開発者割当案生成装置が行う開発者割当案生成方法であって、
開発者が行った作業の作業内容である担当者作業内容を含む開発者情報を前記開発者ごとに記憶し、
既に実施された開発タスクである実施タスクと前記実施タスクに応じて行われた作業の作業内容である実作業内容との対応関係を示す開発タスク情報を記憶し、
前記開発タスク情報に基づいて、未だ実施されていない開発タスクである未実施タスクに応じて行う作業の作業内容である未実施作業内容を推定し、
前記未実施作業内容と前記開発者情報とに基づいて、前記未実施タスクを実施する担当者として割り当てる開発者の候補を示す割当案を生成する、開発者割当案生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、開発者割当案生成装置および開発者割当案生成方法に関する。
【背景技術】
【０００２】
計算機システムの開発などでは、通常、種々の開発タスクに対して、その開発タスクを実施する開発者を割り当てている。これに関して、特許文献１には、作業フェーズに対して、その作業フェーズに用いられる開発環境の使用能力の有無に基づいて、開発者を割り当てる技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−１４２２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術では、作業フェーズにおける作業内容が考慮されていない。このため、高度な専門知識を要する開発作業などの場合、開発環境の使用能力の有無だけでは、開発タスクに対して開発者を適切に割り当てることが難しい。
【０００５】
本開示は、上記課題を鑑みてなされたものであり、作業内容に応じて適切な開発者を割り当てることが可能な開発者割当案生成装置および開発者割当案生成方法を提供することである。
【課題を解決するための手段】
【０００６】
本開示の一態様に従う開発者割当案生成装置は、開発者にて実施された開発タスクである実施タスクに応じて行われた作業内容である実作業内容を含む開発者情報を前記開発者ごとに記憶する開発者情報記憶部と、前記実施タスクと前記実作業内容との対応関係を示す開発タスク情報を記憶する開発タスク情報記憶部と、前記開発タスク情報に基づいて、実施されていない開発タスクである未実施タスクに応じて行われる作業内容である未実施作業内容を推定する推定部と、前記未実施作業内容と前記開発者情報とに基づいて、前記未実施タスクを実施する担当者として割り当てる開発者の候補を示す割当案を生成する生成部と、を有する。
【発明の効果】
【０００７】
本発明によれば、作業内容に応じて適切な開発者を割り当てることが可能になる。
【図面の簡単な説明】
【０００８】
【図１】本開示の実施例１におけるシステム開発者割当案生成装置の構成図である。
【図２】開発成果物の一例を示す図である。
【図３】成果物編集記録の一例を示す図である。
【図４】開発タスク情報の一例を示す図である。
【図５】開発者情報の一例を示す図である。
【図６】開発者割当戦略の例を示す図である。
【図７】開発者割当案の一例を示す図である。
【図８】実施済タスク作業内容特定部の処理の一例を示すフローチャートである。
【図９】未実施タスク作業内容推定部の処理の一例を示すフローチャートである。
【図１０】開発者割当案生成部の処理の一例を示すフローチャートである。
【図１１】本開示の実施例２におけるシステム開発者割当案生成装置の構成図である。
【図１２】本開示の実施例３におけるシステム開発者割当案生成装置の構成図である。
【発明を実施するための形態】
【０００９】
以下、本開示の実施例について図面を参照して説明する。
【実施例１】
【００１０】
＜実施例１におけるシステム開発者割当案生成装置の構成＞
図１は、本実施例におけるシステム開発者割当案生成装置１００の構成図である。システム開発者割当案生成装置１００は、システム開発に係る複数の開発者の中から、システム開発上の指示である開発タスクを実施する担当者として割り当てる開発者の候補を示す割当案を生成する開発者割当案生成装置である。
【００１１】
システム開発者割当案生成装置１００は、成果物版管理情報記憶部１１０と、開発者情報記憶部１２０と、開発タスク情報記憶部１３０と、開発者割当戦略記憶部１４０と、実施済タスク作業内容特定部１５０と、未実施タスク作業内容推定部１６０と、開発者割当案生成部１７０とを有する。また、システム開発者割当案生成装置１００は、入力装置１８０および出力装置１９０と接続可能である。
【００１２】
成果物版管理情報記憶部１１０、開発者情報記憶部１２０、開発タスク情報記憶部１３０および開発者割当戦略記憶部１４０は、ＲＡＭ（Random Access Memory）およびＲＯＭ(Read Only Memory)などの揮発性記憶素子、および、ＨＤＤ（Hard Disk Drive）およびＳＳＤ（Solid State Drive）などの不揮発性記憶素子などの記憶装置で構成される。
【００１３】
成果物版管理情報記憶部１１０は、システム開発により開発された成果物である開発成果物２００（図２参照）と、開発成果物２００の編集履歴である成果物編集記録３００（図３参照）とを記憶する。開発成果物２００は、複数あってもよい。成果物編集記録３００は、システム開発における開発タスクに応じた、１つまたは複数の開発成果物を含む編集単位ごとに記憶される。
【００１４】
開発者情報記憶部１２０は、システム開発を行う開発者に関する開発者情報５００（図５参照）を開発者ごとに記憶する。開発者情報５００は、後述するように、開発者の属性情報である開発者属性５１０と、開発者が過去に行った作業の作業実績である実作業実績を示す開発者作業実績５２０とを含む。開発者作業実績５２０は、作業実績として、開発者が行った作業の作業内容である担当者作業内容と、担当者作業内容に関する開発者の能力の度合いである能力度とを含む。
【００１５】
開発タスク情報記憶部１３０は、開発タスクに関する開発タスク情報４００（図４参照）を開発タスクごとに記憶する。開発タスク情報４００は、開発タスクとその開発タスクに応じて行う作業の作業内容との対応関係を示す情報であり、具体的には、開発タスクの属性情報であるタスク属性４１０と、既に実施された開発タスクに応じて行われた作業内容である実作業内容４２０と、未だ実施されていない開発タスク応じて行われると推定された作業内容である推定作業内容４３０とを含む。
【００１６】
開発者割当戦略記憶部１４０は、開発者を開発タスクに割り当てる方針（戦略）を示す方針情報である開発者割当戦略情報６００を記憶する方針記憶部である。
【００１７】
実施済タスク作業内容特定部１５０は、成果物版管理情報記憶部１１０に記憶された開発成果物２００および成果物編集記録３００に基づいて、開発タスク情報４００および開発者情報５００（具体的には、実作業内容４２０および開発者作業実績５２０）とを生成して開発者情報記憶部１２０および開発タスク情報記憶部１３０にそれぞれ記憶する機能を有する作業内容特定部である。実施済タスク作業内容特定部１５０は、当該機能を実現するためのプログラムを記憶する記憶装置と、そのプログラムを実行するＣＰＵ（Central Processing Unit）などの演算装置で実現される。
【００１８】
未実施タスク作業内容推定部１６０は、開発タスク情報記憶部１３０に記憶された開発タスク情報４００内の実作業内容４２０に基づいて、未だ実施されていない開発タスクである未実施タスクに応じて行われる作業内容である未実施作業内容を推定し、その推定した未実施作業内容を、未実施タスクに対応する開発タスク情報４００の推定作業内容４３０に反映する機能を有する。未実施タスク作業内容推定部１６０は、当該機能を実現するためのプログラムを記憶する記憶装置と、そのプログラムを実行するＣＰＵなどの演算装置で実現される。
【００１９】
開発者割当案生成部１７０は、開発者情報記憶部１２０が記憶する開発者情報５００と、開発タスク情報記憶部１３０が記憶する開発タスク情報４００と、開発者割当戦略記憶部１４０が記憶する開発者割当戦略情報６００とに基づいて、未実施タスクを実施する担当者として割り当てる開発者の候補を示す割当案である開発者割当案７００（図７参照）を生成する機能を有する。開発者割当案生成部１７０は、当該機能を実現するためのプログラムを記憶する記憶装置と、そのプログラムを実行するＣＰＵなどの演算装置で実現される。
【００２０】
なお、開発者割当案生成部１７０は、開発者割当案７００を出力装置１９０から出力してもよい。出力装置１９０は、例えば、ディスプレイまたはプリンタなどであり、開発者割当案生成部１７０は、例えば、開発者割当案７００をディスプレイ上に表示したり、開発者割当案７００を印字した印字物をプリンタから出力したりする。また、開発者割当戦略情報６００は、複数の方針を示してもよい。この場合、開発者割当案生成部１７０は、入力装置１８０からユーザの入力を受け付け、その入力に従って、開発者割当戦略情報６００が示す複数の方針の中から、開発者割当案生成部１７０が用いる方針を選択してもよい。入力装置１８０は、例えば、キーボードまたはマウスなどである。
【００２１】
また、実施済タスク作業内容特定部１５０、未実施タスク作業内容推定部１６０および開発者割当案生成部１７０の記憶装置は、成果物版管理情報記憶部１１０、開発者情報記憶部１２０、開発タスク情報記憶部１３０および開発者割当戦略記憶部１４０の記憶装置と同一のものでもよい。
【００２２】
＜開発成果物＞
図２は、開発成果物２００の一例を示す図である。開発成果物２００は、システム開発の成果物であり、開発タスクに応じて編集（作成および更新）されるたびに、成果物版管理情報記憶部１１０に記憶される。
【００２３】
開発成果物２００は、自身（開発成果物２００）の識別子である成果物名２１０と、本体である成果物内容２２０とを含む。成果物名２１０は、例えば、「function_a.xls」のような文字列で表される。成果物名２１０の末尾などに、開発成果物２００のファイル種別を示す拡張子（例えば、「xls」）が含まれてもよい。成果物内容２２０は、文字列、図表および動画像などの内容物で構成される。また、成果物内容２２０は、内容物間の配置および文字列のフォントのような各内容物のレイアウトを示すレイアウト属性などを含んでもよい。
【００２４】
開発成果物２００には、自身の識別性の向上を図るために、開発成果物２００が電子データとして格納されている格納場所を示す成果物格納パス２３０が含まれてもよい。成果物格納パス２３０は、例えば、「\\development\AAA\」のような文字列で表される。また、格納場所は、成果物格納パス２３０の代わりに、または、成果物格納パス２３０に加えて、例えば、「\\development\AAA\function_a.xls」のような形式を用いて、成果物名２１０に含まれてもよい。開発成果物２００は、自身の属性情報として、ファイルサイズまたは文字数などの規模情報、初期作成日時または更新日時などの日時情報、および、最初に作成した初期作成者と最後に更新した最新更新者との少なくとも一方を示す編集者情報などを有してもよい。
【００２５】
＜成果物編集記録＞
図３は、成果物編集記録３００の一例を示す図である。成果物編集記録３００は、例えば、開発タスクに応じた、１つまたは複数の開発成果物を含む編集単位に対する作業である編集作業が終了するたびに、その作業を行った開発者によって作成されて成果物版管理情報記憶部１１０に記憶される。
【００２６】
成果物編集記録３００は、編集作業の識別子である版管理ＩＤ３１０と、編集作業が終了した日時である編集時刻３２０と、成果物編集記録３００を作成した作成者の識別子である編集者３３０と、編集作業に関する情報を文字列で示したテキストメッセージ３４０と、編集作業において編集された開発成果物２００の一覧である編集ファイル一覧３５０とを含む。
【００２７】
版管理ＩＤ３１０は、例えば、「REVISION001」のような文字列で表される。編集時刻３２０は、例えば、「2019/03/01/14:25」ような時刻を示す文字列で表される。この例では、編集時刻３２０は、年月日時分の単位で表されるが、これよりも粗い単位が使用されてもよいし、これよりも細かい単位が使用されてもよい。編集者３３０は、例えば、「日立太郎」のような、人名またはハンドルネームなどを示す文字列で表される。テキストメッセージ３４０は、編集作業の作業内容および補足情報などを示す文字列で表される。テキストメッセージ３４０には、「TASK001」のような、版管理ＩＤ３１０の編集作業に対応する開発タスクを識別するタスクＩＤが含まれてもよい。なお、１つのタスクＩＤに複数の版管理ＩＤ３１０が対応付けられてもよい。
【００２８】
編集ファイル一覧３５０は、編集ファイル名３５１と、編集種別３５２と、編集規模３５３とを有する。編集ファイル名３５１は、編集作業が行われた開発成果物２００を識別する識別子であり、図２の成果物名２１０、または、成果物名２１０と成果物格納パス２３０との組み合わせと対応する。
【００２９】
編集種別３５２は、開発成果物２００に対する編集の種別を示す文字列で表される。編集の種別は、例えば、開発成果物２００を新規に作成した「ファイル作成」、開発成果物２００を削除した「ファイル削除」、開発成果物２００の構成要素を追加した「要素追加」、開発成果物２００の構成要素を変更した「要素変更」、および、開発成果物２００の構成要素を削除した「要素削除」などを表す。なお、開発成果物２００の構成要素は、文字および画像などである。編集規模３５３は、開発成果物２００に対する編集の規模を示す数値で表される。編集規模３５３は、例えば、編集された文字数、行数またはファイルサイズ数などで表される。
【００３０】
＜開発タスク情報＞
図４は、開発タスク情報４００の一例を示す図である。開発タスク情報４００は、開発タスクの属性情報であるタスク属性４１０と、実施済タスク作業内容特定部１５０にて特定された作業内容である実作業内容４２０と、未実施タスク作業内容推定部１６０にて推定された作業内容を示す推定作業内容４３０とを含む。
【００３１】
タスク属性４１０は、開発タスクを識別する識別子であるタスクＩＤ４１１と、開発タスクの指示内容を文字列で表した作業指示４１２とを有する。また、タスク属性４１０は、開発タスクを実施する担当者として割り当てられた開発者の識別子である担当者４１３と、開発タスクが完了した日時である完了時刻４１４とを有してもよい。
【００３２】
実作業内容４２０および推定作業内容４３０は、開発タスクの作業内容を複数の分類方式のそれぞれで分類した複数の種別情報と、その種別情報で示される作業で開発成果物２００に対して行われた編集の規模を示す規模情報とを有してもよい。図の例では、実作業内容４２０および推定作業内容４３０は、種別情報として、ファイル種別４２１、成果物種別４２２、ドメイン種別４２３および編集種別４２４を有し、規模情報として編集規模４２５を有している。
【００３３】
ファイル種別４２１は、開発タスクに応じた開発成果物２００（開発タスクにより編集作業の作業対象となった開発成果物２００）のファイル種別であり、例えば、「c」および「xls」などのファイルの拡張子で表される。
【００３４】
成果物種別４２２は、開発タスクに応じた開発成果物２００のシステム開発上の分類であり、例えば、「プログラム」、「設計書」、「テスト」および「設定ファイル」などの文字列で表される。なお、「テスト」は、他のプログラムのような成果物の動作などをテストするためのテスト用ファイル（例えば、プログラムやマクロファイル）が開発成果物２００であることを示す。
【００３５】
ドメイン種別４２３は、開発タスクに応じた開発成果物２００が関わるドメインの種別であり、例えば、「融資」および「預金」のような業務ドメイン、または、「空調」および「エレベーター」のような製品ドメインを示す文字列で表される。ドメイン種別４２３は、例えば、業務ドメイン内の業務種別または製品ドメイン内の製品種別のような更に細かい種別を示してもよい。
【００３６】
編集種別４２４は、開発タスクに応じて開発成果物２００に対して行われた編集の種別を示す文字列で表される。編集種別４２４は、成果物編集記録３００における編集種別３５２と同じ種別を示してもよいが、編集種別３５２を調整したものを示してもよい。編集種別３５２の調整としては、例えば、「ファイル作成」と「要素追加」とを併せて「新要素追加」を作成すること、および、「ファイル削除」と「要素削除」を併せて「既存要素削除」を作成することなどが挙げられる。
【００３７】
編集規模４２５は、開発タスクに応じて開発成果物２００に対して行われた編集の規模を示す数値で表される。編集規模４２５は、成果物編集記録３００の編集規模３５３と同じデータ形式を用いても良い。
【００３８】
なお、タスク属性４１０のタスクＩＤ４１１および作業指示４１２は、開発タスクが発生した際に作成され、開発タスク情報４００として記憶される。その後、未実施タスク作業内容推定部１６０にて未実施作業内容が推定されると、その未実施作業内容が推定作業内容４３０として開発タスク情報４００に反映され、さらに、開発タスクが完了し、実施済タスク作業内容特定部１５０にて実作業内容が特定されると、その実作業内容が実作業内容４２０として開発タスク情報４００に反映される。タスク属性４１０の担当者４１３および完了時刻４１４は、例えば、実作業内容４２０が開発タスク情報４００に反映される際などに、実施済タスク作業内容特定部１５０にて追加される。
【００３９】
＜開発者情報＞
図５は、開発者情報５００の一例を示す図である。開発者情報５００は、開発者の属性情報である開発者属性５１０と、開発者が過去に行った作業の作業内容に関する開発者作業実績５２０とを有する。開発者属性５１０は、開発者の識別子である開発者名５１１を有する。また、開発者属性５１０は、開発者の年齢、経歴および資格などの情報を有してもよい。
【００４０】
開発者作業実績５２０は、開発者が行った作業の作業内容である担当者作業内容と、担当者作業内容に関する開発者の能力度とを有してもよい。本実施例では、開発者作業実績５２０は、担当者作業内容として、種別情報である、ファイル種別５２１、成果物種別５２２、ドメイン種別５２３および編集種別５２４を有し、開発者の能力度として、最終編集日５２５、編集回数５２６、累計編集規模５２７および最大編集規模５２８を有する。
【００４１】
ファイル種別５２１は開発タスク情報４００のファイル種別４２１と対応し、成果物種別５２２は開発タスク情報４００の成果物種別４２２と対応し、ドメイン種別５２３は開発タスク情報４００のドメイン種別４２３と対応し、編集種別５２４は開発タスク情報４００の編集種別４２４と対応する。
【００４２】
最終編集日５２５は、当該作業（ファイル種別５２１、成果物種別５２２、ドメイン種別５２３および編集種別５２４で表される作業内容の作業）を最後に実施した日時であり、「2019/03/29」のような文字列で表される。編集回数５２６は、当該作業を実施した回数であり、「４０」のような数値で表される。累計編集規模５２７は、当該作業で開発成果物２００に対して行われた編集の規模である編集規模４２５の累計値であり、「12000」のような数値で表される。最大編集規模５２８は、当該作業で開発成果物２００に対して行われた編集の編集規模４２５の最大値を示しており、「500」のような数値で表される。
【００４３】
＜開発者割当戦略＞
図６は、開発者割当戦略情報６００の例を示す図である。図６では、開発者割当戦略情報６００として、開発者割当戦略情報６００ａおよび６００ｂの２つの例が示されているが、開発者割当戦略情報６００ａおよび６００ｂを区別する必要がない場合、これらを単に開発者割当戦略情報６００と記載する。
【００４４】
開発者割当戦略情報６００は、開発者を開発タスクに割り当てる戦略（条件）を示す情報であり、具体的には、開発者を開発タスクに割り当てる際に、開発タスク情報４００の推定作業内容４３０と開発者情報５００の開発者作業実績５２０とに含まれる各要素情報（例えば、ファイル種別４２１およびファイル種別５２１など）をどのように使用するかを示す情報である。なお、図の例では、開発者割当戦略情報６００ａおよび６００ｂのそれぞれが＃１〜＃３までの複数の方針を示している。
【００４５】
開発者割当戦略情報６００は、ファイル種別条件値６０１と、成果物種別条件値６０２と、ドメイン種別条件値６０３と、編集種別条件値６０４と、最終編集日条件値６０５と、編集回数条件値６０６と、累計編集規模条件値６０７と、最大編集規模条件値６０８とを有してもよい。なお、図では、「条件値」という文言を省略している。
【００４６】
ファイル種別条件値６０１、成果物種別条件値６０２、ドメイン種別条件値６０３および編集種別条件値６０４は、推定作業内容４３０のファイル種別４２１、成果物種別４２２、ドメイン種別４２３および編集種別４２４とそれぞれ対応し、同様に、開発者作業実績５２０のファイル種別５２１、成果物種別５２２およびドメイン種別５２３、編集種別５２４ともそれぞれ対応している。
【００４７】
ファイル種別条件値６０１、成果物種別条件値６０２、ドメイン種別条件値６０３および編集種別条件値６０４は、開発タスクの担当者として割り当てる開発者の候補を選択するための制約条件であり、それぞれ対応する推定作業内容４３０および開発者作業実績５２０の種別情報を考慮する度合いを示す。開発者割当戦略情報６００ａは、制約条件として、各種別情報を考慮するか否か示し、開発者割当戦略情報６００ｂでは、制約条件として、各種別情報を考慮する順位を表す数値を示している。図の例では、開発者割当戦略情報６００ａは、種別情報を考慮する場合、「valid」を示し、考慮しない場合、「invalid」を示す。
【００４８】
最終編集日条件値６０５、編集回数条件値６０６、累計編集規模条件値６０７および最大編集規模条件値６０８は、開発者作業実績５２０の最終編集日５２５、編集回数５２６、累計編集規模５２７および最大編集規模５２８とそれぞれ対応している。
【００４９】
最終編集日条件値６０５、編集回数条件値６０６、累計編集規模条件値６０７および最大編集規模条件値６０８は、上記の制約条件により選択された開発者の候補に対して、候補としての適正度に応じた順位付けを行うための指標を示す指標情報である。開発者割当戦略情報６００ａは、指標として、開発者の能力度に対する優先順位を示し、開発者割当戦略情報６００ｂは、指標として、開発者の能力度に対する重み値を示している。
【００５０】
＜開発者割当案＞
図７は、開発者割当案７００の一例を示す図である。開発者割当案７００は、開発タスクごとに生成される。開発者割当案７００は、開発タスクの識別子を示す割当タスクＩＤ７０１と、開発タスクに対して担当者として割り当てる開発者の候補である割当候補者の一覧である割当候補開発者リスト７０２と、を有する。
【００５１】
割当タスクＩＤ７０１は、開発タスク情報４００のタスクＩＤ４１１と対応している。割当候補開発者リスト７０２は、割当候補者の識別子を含む。各識別子は、開発者情報５００の開発者名５１１と対応している。割当候補開発者リスト７０２は、例えば、適正度に応じた順序で割当候補者の識別子を並べた情報である。
【００５２】
なお、開発者割当案７００は、順位を付けるために指標情報を用いて算出した値などを割当候補者の識別子ごとに示してもよい。また、開発者割当案７００は、開発タスクの推定作業内容４３０をさらに示してもよいし、割当候補者の開発者作業実績５２０のうち推定作業内容４３０に対応する種別情報などをさらに示してもよい。
【００５３】
＜実施済タスク作業内容特定部の動作＞
図８は、実施済タスク作業内容特定部１５０の処理の一例を説明するためのフローチャートである。
【００５４】
ステップＳ８０１では、実施済タスク作業内容特定部１５０は、成果物版管理情報記憶部１１０から開発成果物２００および成果物編集記録３００を取得する。
【００５５】
ステップＳ８０２では、実施済タスク作業内容特定部１５０は、取得した開発成果物２００および成果物編集記録３００に基づいて、開発成果物２００ごとに、実作業内容として開発成果物２００を編集した際に行った作業の作業内容を特定する。このとき、実施済タスク作業内容特定部１５０は、開発タスク情報４００の実作業内容４２０および推定作業内容４３０と同じ形式で作業内容を特定する。作業内容を特定する具体的な処理については、＜作業内容の特定処理＞にて後述する。
【００５６】
ステップＳ８０３では、実施済タスク作業内容特定部１５０は、開発者情報記憶部１２０から成果物編集記録３００に含まれる編集者３３０に対応する開発者情報５００を取得し、その開発者情報５００の開発者作業実績５２０に、ステップＳ８０２で特定した作業内容を反映する。作業内容を開発者作業実績５２０に反映する処理については、＜作業内容の開発者作業実績への反映処理＞にて後述する。
【００５７】
ステップＳ８０４では、実施済タスク作業内容特定部１５０は、開発タスク情報記憶部１３０から成果物編集記録３００に対応する開発タスク情報４００を特定し、その開発タスク情報４００の実作業内容４２０に、ステップＳ８０２で特定した作業内容を反映して、本処理を終了する。成果物編集記録３００と開発タスク情報４００との対応を特定する処理については、＜成果物編集記録と開発タスク情報との対応付け処理＞にて後述する。また、作業内容を実作業内容４２０に反映する処理については、＜作業内容の実作業内容への反映処理＞にて後述する。
【００５８】
＜作業内容の特定処理＞
本処理では、実施済タスク作業内容特定部１５０は、先ず、成果物編集記録３００の編集ファイル一覧３５０に基づいて、成果物編集記録３００（班管理ＩＤ３１０）ごとに、過去に編集された開発成果物２００を特定する。例えば、実施済タスク作業内容特定部１５０は、編集ファイル一覧３５０に含まれる編集ファイル名３５１にて識別される開発成果物２００の全てを、過去に編集された開発成果物２００として特定する。
【００５９】
続いて、実施済タスク作業内容特定部１５０は、特定した各開発成果物２００の成果物名２１０に含まれる拡張子に基づいて、各開発成果物２００のファイル種別４２１を特定する。
【００６０】
さらに、実施済タスク作業内容特定部１５０は、各開発成果物２００の成果物種別４２２およびドメイン種別４２３を特定する。例えば、実施済タスク作業内容特定部１５０は、開発成果物２００の成果物格納パス２３０に含まれるディレクトリ名から、成果物種別４２２およびドメイン種別４２３を特定する。この場合、ディレクトリ名と成果物種別４２２およびドメイン種別４２３との対応関係を予め定めておき、実施済タスク作業内容特定部１５０は、その対応関係を用いて、ディレクトリ名から成果物種別４２２およびドメイン種別４２３を特定することができる。例えば、実施済タスク作業内容特定部１５０は、「program」というディレクトリ名のディレクトリに開発成果物２００が格納されている場合、成果物種別４２２を「プログラム」と特定する。
【００６１】
なお、実施済タスク作業内容特定部１５０は、全ての開発成果物２００について、成果物名２１０および成果物内容２２０の類似度に基づくクラスタリングを行い、各クラスタにつけたラベルを、成果物種別４２２およびドメイン種別４２３として用いてもよい。類似度としては、例えば、成果物名２１０および成果物内容２２０の文字列情報および画像情報をベクトル化して算出するコサイン類似度などが挙げられる。
【００６２】
さらに、実施済タスク作業内容特定部１５０は、編集ファイル一覧３５０における各開発成果物２００の編集ファイル名３５１に対応する編集種別３５２および編集規模３５３を、それぞれ開発成果物２００の編集種別４２４および編集規模４２５として特定する。
【００６３】
そして、実施済タスク作業内容特定部１５０は、特定した作業内容（ファイル種別４２１、成果物種別４２２、ドメイン種別４２３および編集種別４２４）が全て同じ複数の開発成果物２００が存在するか否かを確認する。作業内容が全て同じ複数の開発成果物２００が存在する場合、実施済タスク作業内容特定部１５０は、それらの作業内容を１つの作業内容として併合し、作業内容が全て同じ複数の開発成果物２００の編集規模４２５を合計した値を、併合した１つの作業内容に対応する編集規模４２５として生成する。
【００６４】
＜作業内容の開発者作業実績への反映処理＞
本処理では、実施済タスク作業内容特定部１５０は、先ず、成果物編集記録３００ごとに、編集者３３０と同じ開発者名５１１を有する開発者情報５００の開発者作業実績５２０において、ステップＳ８０２の作業内容の特定処理で特定した作業内容（ファイル種別４２１、成果物種別４２２、ドメイン種別４２３および編集種別４２４）に対応する実作業実績（レコード）が存在するか否かを確認する。
【００６５】
対応する実作業実績が存在しない場合、実施済タスク作業内容特定部１５０は、開発者作業実績５２０に新しい実作業実績を追加し、その実作業実績のファイル種別５２１、成果物種別５２２、ドメイン種別５２３および編集種別５２４のそれぞれに、特定した作業内容のファイル種別４２１、成果物種別４２２、ドメイン種別４２３および編集種別４２４を記録する。そして、実施済タスク作業内容特定部１５０は、追加した実作業実績の最終編集日５２５には、成果物編集記録３００の編集時刻３２０を記録し、編集回数５２６には、「１」を記録し、累計編集規模５２７および最大編集規模５２８には、特定した編集規模４２５を記録する。
【００６６】
一方、対応する実作業実績が存在する場合、実施済タスク作業内容特定部１５０は、対応する実作業実績の最終編集日５２５を、成果物編集記録３００の編集時刻３２０に更新し、編集回数５２６に１を加え、累計編集規模５２７に、特定した作業内容の編集規模４２５を加える。また、実施済タスク作業内容特定部１５０は、特定した作業内容の編集規模４２５が対応する実作業実績の最大編集規模５２８を超えている場合、その最大編集規模５２８を編集規模４２５に更新する。
【００６７】
＜成果物編集記録と開発タスク情報との対応付け処理＞
本処理では、実施済タスク作業内容特定部１５０は、例えば、成果物編集記録３００のテキストメッセージ３４０内に含まれるタスクＩＤ４１１にて特定される開発タスクの開発タスク情報４００を、成果物編集記録３００に対応する開発タスク情報４００として特定する。
【００６８】
また、実施済タスク作業内容特定部１５０は、成果物編集記録３００のテキストメッセージ３４０と、開発タスク情報４００の作業指示４１２との類似度を算出し、成果物編集記録３００のテキストメッセージ３４０との類似度が最も高い作業指示４１２を有する開発タスク情報４００を、その成果物編集記録３００に対応する開発タスク情報４００として特定してもよい。
【００６９】
＜作業内容の実作業内容への反映処理＞
本処理では、実施済タスク作業内容特定部１５０は、ステップＳ８０２の作業内容の特定処理において、成果物編集記録３００ごとに特定したファイル種別４２１、成果物種別４２２、ドメイン種別４２３、編集種別４２４および編集規模４２５のそれぞれを、成果物編集記録３００に対応する開発タスク情報４００における実作業内容４２０のファイル種別４２１、成果物種別４２２、ドメイン種別４２３および編集種別４２４に記録する。
【００７０】
＜未実施タスク作業内容推定部の動作＞
図９は、未実施タスク作業内容推定部１６０の処理の一例を説明するためのフローチャートである。
【００７１】
ステップＳ９０１では、未実施タスク作業内容推定部１６０は、開発タスク情報記憶部１３０から、実施された開発タスクである実施タスクに関する情報として、実作業内容４２０が空でない開発タスク情報４００を取得する。
【００７２】
ステップＳ９０２では、未実施タスク作業内容推定部１６０は、ステップＳ９０１で取得した開発タスク情報４００のタスク属性４１０と実作業内容４２０との関係性を特定する。関係性を特定する処理については、＜タスク属性と実作業内容の関係性の特定処理＞にて後述する。
【００７３】
ステップＳ９０３では、未実施タスク作業内容推定部１６０は、開発タスク情報記憶部１３０から、まだ実施していない開発タスクである未実施タスクに関する情報として、実作業内容４２０が空である開発タスク情報４００を取得する。
【００７４】
ステップＳ９０４では、未実施タスク作業内容推定部１６０は、ステップＳ９０２で特定した関係性に基づいて、ステップＳ９０３で取得した開発タスク情報４００のタスク属性４１０を入力として推定した作業内容を、推定作業内容４３０に反映し、本処理を終了する。作業内容を推定する処理については、＜作業内容の推定処理＞にて後述する。
【００７５】
＜タスク属性と実作業内容の関係性の特定処理＞
未実施タスク作業内容推定部１６０は、開発タスク情報４００ごとに、タスク属性４１０と実作業内容４２０の関係性を特定する。
【００７６】
先ず、未実施タスク作業内容推定部１６０は、開発タスク情報４００のタスク属性４１０と、実作業内容４２０の各要素との関係性を分析する。例えば、未実施タスク作業内容推定部１６０は、ファイル種別４２１の値が同じ複数の開発タスク情報４００において、タスク属性４１０の作業指示４１２にて頻出するキーワードである頻出キーワードが存在する場合、そのファイル種別４２１と頻出キーワードとに関係性がある判定する。同様に未実施タスク作業内容推定部１６０は、成果物種別４２２、ドメイン種別４２３、編集種別４２４および編集規模４２５の少なくとも１つと作業指示４１２内のキーワードとの関係性を特定してもよい。
【００７７】
具体例を用いて説明すると、未実施タスク作業内容推定部１６０は、成果物種別４２２として「プログラム」を有する複数の開発タスク情報４００において、作業指示４１２に「実装」というキーワードが頻出する場合、成果物種別４２２「プログラム」と頻出キーワード「実装」とに関係性があると判定してもよい。なお、未実施タスク作業内容推定部１６０は、キーワードが出現する回数または割合が閾値以上の場合、キーワードが頻出すると判断してもよい。キーワードが出現する割合は、具体的には、キーワードが出現する回数を開発タスク情報４００の数で除算した値である。
【００７８】
また、未実施タスク作業内容推定部１６０は、実作業内容４２０が空でない開発タスク情報４００に基づいて、作業指示４１２からファイル種別４２１を算出する分類モデルを、タスク属性４１０と実作業内容４２０の関係性として特定してもよい。分類モデルは、例えば、作業指示４１２を入力、ファイル種別４２１を出力とするペアを教師データとして用いた機械学習によって生成されてもよい。また、未実施タスク作業内容推定部１６０は、同様にして、作業指示４１２から成果物種別４２２、ドメイン種別４２３、編集種別４２４および編集規模４２５のそれぞれを算出する分類モデルを、タスク属性４１０と実作業内容４２０の関係性として特定してもよい。なお、機械学習のアルゴリズムとしては、例えば、ナイーブベイズ分類器、ランダムフォレストまたはニューラルネットワークなどを用いることができる。
【００７９】
＜作業内容の推定処理＞
未実施タスク作業内容推定部１６０は、タスク属性４１０と実作業内容４２０との関係性に基づいて、未実施タスクのタスク属性４１０から、未実施タスクの作業内容である未実施作業内容を推定する。
【００８０】
例えば、タスク属性４１０と実作業内容４２０との関係性がファイル種別４２１などの種別情報の値と頻出キーワードとの関係性の場合、未実施タスク作業内容推定部１６０は、未実施タスクの作業指示４１２において、頻出キーワードのうち最も多く出現するキーワードと関連性がある種別情報の値を、未実施作業内容の種別情報の値として推定してもよい。
【００８１】
具体例を用いて説明すると、未実施タスク作業内容推定部１６０は、成果物種別４２２「プログラム」とキーワード「実装」とに関係性があると特定された場合、未実施タスク作業内容推定部１６０は、未実施タスクの作業指示４１２において、「実装」というキーワードが最も多く出現する場合、その未実施タスクの成果物種別４２２の値を「プログラム」としてもよい。
【００８２】
また、特定した関係性が分類モデルの場合、未実施タスク作業内容推定部１６０は、例えば、未実施タスクの作業指示４１２を分類モデルに入力し、その分類モデルの出力を未実施作業内容としてもよい。例えば、分類モデルが成果物種別４２２「プログラム」を出力した場合、未実施タスク作業内容推定部１６０は、未実施タスクの成果物種別４２２の値を「プログラム」としてもよい。
【００８３】
＜開発者割当案生成部の動作＞
図１０は、開発者割当案生成部１７０の処理の一例を説明するためのフローチャートである。
【００８４】
ステップＳ１００１では、開発者割当案生成部１７０は、開発タスク情報記憶部１３０から、未実施タスクに関する情報として、実作業内容４２０が空である開発タスク情報４００を取得する。
【００８５】
ステップＳ１００２では、開発者割当案生成部１７０は、開発者情報記憶部１２０から、開発者情報５００を取得する。
【００８６】
ステップＳ１００３では、開発者割当案生成部１７０は、開発者割当戦略記憶部１４０から、開発者割当戦略情報６００を取得する。
【００８７】
ステップＳ１００４では、開発者割当案生成部１７０は、開発者割当戦略情報６００に基づいて、取得した開発者情報５００の中から、取得した開発タスク情報４００の推定作業内容４３０に対応する開発者作業実績５２０を有する開発者情報５００を特定し、その開発者情報５００に含まれる開発者名５１１を割当候補者として特定する。また、割当候補者が複数存在する場合、開発者割当案生成部１７０は、開発者割当戦略情報６００に基づいて、割当候補者を順位付けする。そして、開発者割当案生成部１７０は、開発タスク情報４００のタスクＩＤ４１１を割当タスクＩＤ７０１とし、割当候補者の一覧を割当候補開発者リスト７０２とした開発者割当案７００を生成する。開発者割当案７００の生成方法については、＜開発者割当案の生成処理＞にて後述する。
【００８８】
ステップＳ１００５では、開発者割当案生成部１７０は、ステップＳ１００４で生成した開発者割当案７００を出力装置から出力し、本処理を終了する。
【００８９】
＜開発者割当案の生成処理＞
先ず、割当候補者を選択する処理について説明する。
【００９０】
開発者割当戦略情報６００が図６で示した開発者割当戦略情報６００ａの場合、開発者割当案生成部１７０は、値が「valid」である制約条件（ファイル種別条件値６０１、成果物種別条件値６０２、ドメイン種別条件値６０３および編集種別条件値６０４）に対応する種別情報が開発タスク情報４００の推定作業内容４３０と一致する開発者作業実績５２０を有する開発者情報５００の開発者名５１１の開発者を割当候補者として選択する
【００９１】
例えば、方針＃１の場合、全ての制約条件が「valid」であるため、開発者割当案生成部１７０は、推定作業内容４３０のファイル種別４２１、成果物種別４２２、ドメイン種別４２３および編集種別４２４がそれぞれファイル種別５２１、成果物種別５２２、ドメイン種別５２３および編集種別５２４と一致する開発者作業実績５２０を選択し、その開発者作業実績５２０を有する開発者情報５００の開発者名５１１の開発者を割当候補者として選択する。
【００９２】
また、方針＃３の場合、ファイル種別条件値６０１のみが「valid」であるため、開発者割当案生成部１７０は、推定作業内容４３０のファイル種別４２１がファイル種別５２１と一致する開発者作業実績５２０を選択し、その開発者作業実績５２０を有する開発者情報５００の開発者名５１１の開発者を割当候補者として選択する。
【００９３】
方針＃１の例では、割当候補者として選択される条件が厳しいため、適切な開発者を割当候補者として選択することができる。また、方針＃３では、割当候補者として選択される条件が方針＃１よりも緩和されているため、割当候補者として選択される人数が増え、開発者の柔軟な割り当てが可能となる。
【００９４】
また、開発者割当戦略情報６００が図６で示した開発者割当戦略情報６００ｂの場合、開発者割当案生成部１７０は、制約条件が示す値（種別情報を考慮する度合いを表す数値）に応じて、開発者作業実績５２０を選択する。
【００９５】
方針＃１の例では、各種別情報を考慮する順位が全て同じ値であるため、開発者割当案生成部１７０は、各種別情報を同等に扱う。例えば、開発者割当案生成部１７０は、推定作業内容４３０のファイル種別４２１、成果物種別４２２、ドメイン種別４２３および編集種別４２４の少なくともいずれか１つがファイル種別５２１、成果物種別５２２、ドメイン種別５２３および編集種別５２４と一致する開発者作業実績５２０を選択する。
【００９６】
また、方針＃３の例では、ドメイン種別条件値６０３の値が最大値であるため、開発者割当案生成部１７０は、ドメイン種別４２３がドメイン種別５２３と一致する開発者作業実績５２０を優先的に選択し、ドメイン種別４２３がドメイン種別５２３と一致する開発者作業実績５２０が存在しない場合に、次に値が大きいファイル種別４２１および成果物種別４２２の少なくとも一方がファイル種別５２１および成果物種別５２２と一致する開発者作業実績５２０を選択する。
【００９７】
次に、割当候補者の順位付けを行う処理について説明する。
【００９８】
開発者割当戦略情報６００が図６で示した開発者割当戦略情報６００ａの場合、開発者割当案生成部１７０は、開発者割当戦略情報６００ａが示す優先順位の高い能力度に応じて、割当候補者の順位付けを行う。
【００９９】
例えば、方針＃１の場合、累計編集規模条件値６０７が「１」、編集回数条件値６０６が「２」、最終編集日条件値６０５が「３」、最大編集規模条件値６０８が「４」であるため、開発者割当案生成部１７０は、先ず、最も優先順位の高い累計編集規模５２７が高い順に、割当候補者に順位付けを行う。その際、同じ順位の割当候補者（累計編集規模５２７が同じ割当候補者）が複数存在した場合、開発者割当案生成部１７０は、その複数の割当候補者に対して、次に優先順位が高い編集回数５２６が高い順に順位付けを行う。それでも同じ順位の割当候補者が複数いる場合、以降同様に、開発者割当案生成部１７０は、最終編集日５２５および最大編集規模５２８を用いる。
【０１００】
開発者割当戦略情報６００が図６で示した開発者割当戦略情報６００ｂの場合、開発者割当案生成部１７０は、開発者割当戦略情報６００ｂが示す重み値に基づいて、割当候補者の順位付けを行う。
【０１０１】
例えば、方針＃２の場合、開発者割当案生成部１７０は、最終編集日５２５から現時点までの日数に「０．８」を、編集回数５２６の値に「０．１」を、累積編集規模５２７の値に「０．１」をそれぞれ乗算した値の総和が大きい方から順に、割当候補者の順位付けを行う。この場合、各能力度（最終編集日５２５と、編集回数５２６、累計編集規模５２７および最大編集規模５２８）の尺度を合せるために、各能力度に対して正規化が行われてもよい。
【０１０２】
以上の説明では、開発タスクに対して実績の豊富な開発者を優先的に割り当てる観点で説明したが、実績のない、または、実績の乏しい開発者を割り当てるようにしてもよい。この場合、開発者のスキル向上などを図ることが可能になる。また、これらを切り替えるために、開発者割当戦略情報６００は、以下で説明する昇順降順フラグおよび候補者反転フラグの少なくとも一方などを有してもよい。
【０１０３】
昇順降順フラグは、割当候補者の順位付けの方針を示すフラグであり、「降順」および「昇順」の２値で示される。例えば、昇順降順フラグが「降順」の場合、開発者割当案生成部１７０は、上述の例の通り、割当候補者の能力度が高いほど（編集回数５２６、累計編集規模５２７および最大編集規模５２８が大きいほど、最終編集日５２５が現時点に近いほど）、その割当候補者の順位を高くする。一方、昇順降順フラグが「昇順」の場合、開発者割当案生成部１７０は、上述の例とは逆に、割当候補者の能力度が低いほど、割当候補者の順位を高くする。
【０１０４】
また、候補者反転フラグは、制約条件（ファイル種別条件値６０１、成果物種別条件値６０２、ドメイン種別条件値６０３および編集種別条件値６０４）に応じた割当候補者を選択するか否かを示すフラグであり、「無効」および「有効」の２値で示される。候補者反転フラグが「無効」の場合、開発者割当案生成部１７０は、上述の例の通り、制約条件に応じた開発者を割当候補者として選択し、候補者反転フラグが「有効」の場合、制約条件に応じた開発者以外の開発者を割当候補者として選択する。
【実施例２】
【０１０５】
本実施例は、特に作業実績が少ない開発者などに対して、開発者が行ったとみなせる作業実績であるみなし作業実績（みなし作業内容およびみなし能力度）を推定することを目的とする。以下では、実施例１からの変更点および追加点を主に説明する。
【０１０６】
＜実施例２におけるシステム開発者割当案生成装置の構成＞
図１１は、本実施例におけるシステム開発者割当案生成装置１１００の構成図である。システム開発者割当案生成装置１１００は、図１に示した実施例１におけるシステム開発者割当案生成装置１００の構成に加えて、みなし作業実績を推定する作業実績推定部１１１０をさらに有する。
【０１０７】
また、システム開発者割当案生成装置１１００の開発者情報記憶部１２０が記憶する開発者情報５００の開発者作業実績５２０は、実施例１における実作業実績に加えて、作業実績推定部１１１０にて推定されたみなし作業実績を有する。みなし作業実績は、実作業実績と同じ形式であり、開発者割当案生成部１７０は、みなし作業実績と実作業実績とを区別せずに用いることができる。
【０１０８】
作業実績推定部１１１０は、開発者情報記憶部１２０が記憶する開発者情報５００の開発者作業実績５２０に基づいてみなし作業実績を推定し、そのみなし作業実績を、開発者情報５００の開発者作業実績５２０に反映するの機能を有する。作業実績推定部１１１０は、当該機能を実現するためのプログラムを記憶する記憶装置と、そのプログラムを実行するＣＰＵなどの演算装置で実現される。
【０１０９】
＜みなし作業実績の推定処理＞
作業実績推定部１１１０は、先ず、開発者情報記憶部１２０から、開発者作業実績５２０が空でない開発者情報５００を取得し、その開発者作業実績５２０に基づいて、実作業実績間の共起関係を特定する。
【０１１０】
例えば、作業実績推定部１１１０は、開発者情報５００ごとに、開発者作業実績５２０内で同時に出現する２つの実作業実績である同時実績を特定し、その同時実績の各実作業実績に共起関係があるか否かを判定する。
【０１１１】
同時実績を特定する処理では、作業実績推定部１１１０は、実作業実績の要素（ファイル種別５２１および最終編集日５２５など）ごとに同時実績を特定してもよいし、実作業実績の要素の組合せについて同時実績を特定してもよい。また、作業実績推定部１１１０は、所定の要素または所定の要素の組合せについてのみ同時実績を特定してもよい。
【０１１２】
図の５の例では、開発者作業実績５２０における実作業実績＃１および＃３の種別情報に着目すると、開発者作業実績５２０は、ファイル種別５２１が「ｃ」、成果物種別５２２が「プログラム」、ドメイン種別５２３が「融資」、編集種別５２４が「ファイル作成」である実作業実績と、ファイル種別５２１が「xls」、成果物種別５２２が「設定ファイル」、ドメイン種別５２３が「融資」、編集種別５２４が「要素変更」である実作業実績を有している。
【０１１３】
上記の例において、要素ごとに同時実績を特定する場合、作業実績推定部１１１０は、ファイル種別５２１の「ｃ」と「xls」、成果物種別５２２の「プログラム」と「設定ファイル」、編集種別５２４の「ファイル作成」と「要素変更」をそれぞれ同時実績として特定する。また、要素の組合せについて同時実績を特定する場合、作業実績推定部１１１０は、ファイル種別５２１が「ｃ」、成果物種別５２２が「プログラム」、ドメイン種別５２３が「融資」、編集種別５２４が「ファイル作成」である実作業実績と、ファイル種別５２１が「xls」、成果物種別５２２が「設定ファイル」、ドメイン種別５２３が「融資」、編集種別５２４が「要素変更」である実作業実績とを同時実績として特定する。
【０１１４】
また、同時実績を特定する処理では、作業実績推定部１１１０は、各要素の値が完全に一致していなくても、値の差が所定の範囲内に収まる２つの作業実績を同時実績として特定してもよい。所定の範囲は、例えば、最終編集日５２５の場合、１カ月または１年などであり、編集回数５２６の場合、１０回などであり、累計編集規模５２７の場合、１０００などである。
【０１１５】
同時実績の各実作業実績が共起関係か否かを判定する処理では、作業実績推定部１１１０は、例えば、全ての開発者情報５００において、同じ同時実績が出現する回数または割合が所定値以上の場合、その同時実績の各作業実績に共起関係があるとする。また、作業実績推定部１１１０は、同時実績の各実作業実績に関する信頼度または支持度のような指標値を算出し、その指標値が閾値を超えた場合、その同時実績の各実作業実績に共起関係があるとしてもよい。
【０１１６】
続いて、作業実績推定部１１１０は、特定した実作業実績の共起関係に基づいて、開発者ごとに、みなし作業実績を推定する。例えば、作業実績推定部１１１０は、共起関係にある２つの実作業実績の一方の実作業実績を開発者作業実績５２０に有する開発者が存在した場合、その開発者に対して、他方の実作業実績をみなし作業実績として推定する。このとき、所定の要素または所定の要素の組合せについてのみ同時実績を特定した場合、残りの要素については、空のままでもよいし、所定の値を記録してもよい。所定の値は、例えば、平均値などの統計値である。
【０１１７】
具体例を用いて説明すると図５に示した「日立太郎」の開発者作業実績５２０における作業実績＃１および＃３に共起関係がある場合、作業実績推定部１１１０は、他の開発者である「日立二郎」の開発者作業実績５２０が作業実績＃１と同じ作業実績を有していると、作業実績＃３を「日立二郎」のみなし作業実績として推定する。
【０１１８】
そして、作業実績推定部１１１０は、推定したみなし作業実績を、開発者情報５００の開発者作業実績５２０に反映する。
【０１１９】
なお、作業実績推定部１１１０は、各開発者の開発者作業実績５２０における実作業実績の組合せを教師データとして教師あり機械学習を行い、1つ以上の作業実績を入力とし、１つ以上の作業実績を出力とする実績推定モデルを構築してもよい。この場合、作業実績推定部１１１０は、実績推定デルに対象となる開発者作業実績５２０を入力した際に出力として得られる作業実績を、みなし作業実績とする。
【実施例３】
【０１２０】
本実施例は、実施例２における未実施タスク作業内容推定部１６０および作業実績推定部１１１０の推定精度を補正することを目的とする。以下では、実施例２からの変更点および追加点を主に説明する。
【０１２１】
＜実施例３におけるシステム開発者割当案生成装置の構成＞
図１２は、本実施例におけるシステム開発者割当案生成装置１２００の構成図である。システム開発者割当案生成装置１２００は、図１１に示した実施例２のシステム開発者割当案生成装置１１００の構成に加えて、推定精度補正部１２１０をさらに有する。なお、図１２においては、視認性の向上を図るため、成果物版管理情報記憶部１１０、開発者割当戦略記憶部１４０、実施済タスク作業内容特定部１５０、開発者割当案生成部１７０、入力装置１８０および出力装置１９０の図示を省略している。
【０１２２】
推定精度補正部１２１０は、開発者情報記憶部１２０が記憶する開発者情報５００における開発者作業実績５２０と、作業実績推定部１１１０が推定したみなし作業実績とに基づいて、作業実績推定部１１１０がみなし作業実績を推定するためのパラメータを補正して、作業実績推定部１１１０がみなし作業実績を推定する推定精度を補正する機能を有する。
【０１２３】
また、推定精度補正部１２１０は、開発タスク情報記憶部１３０が記憶する開発タスク情報４００における実作業内容４２０と推定作業内容４３０とに基づいて、未実施タスク作業内容推定部１６０が推定作業内容４３０として記録される未実施作業内容を推定するためのパラメータを補正して、未実施タスク作業内容推定部１６０が未実施作業内容を推定する推定精度を補正する機能を有する。
【０１２４】
推定精度補正部１２１０は、これらの機能を実現するためのプログラムを記憶する記憶装置と、そのプログラムを実行するＣＰＵなどの演算装置で実現される。
【０１２５】
＜作業実績推定部１１１０の推定精度の補正処理＞
推定精度補正部１２１０は、開発者作業実績５２０の実作業実績とみなし作業実績の差異を特定し、その差異に基づいて、作業実績推定部１１１０のパラメータを補正して、作業実績推定部１１１０の推定精度を補正する。
【０１２６】
具体的には、先ず、作業実績推定部１１１０がみなし作業実績を推定してから所定期間が経過した場合、推定精度補正部１２１０は、その所定期間において実施済タスク作業内容特定部１５０により更新された開発者作業実績５２０である実作業実績と、みなし作業実績とを比較して、それらの差異を特定する。推定精度補正部１２１０は、それらの差異に基づいて、作業実績推定部１１１０がみなし作業実績を推定するために使用したパラメータを補正する。所定期間は、限定されないが、例えば、１カ月間、半年間または１年間などである。
【０１２７】
例えば、推定精度補正部１２１０は、差異のないみなし作業実績を、正しい推定が行われた作業実績と判断して、そのみなし作業実績を推定するために使用したパラメータにボーナスを与え、差異のあるみなし作業実績を、正しい推定が行われていない作業実績と判断して、そのみなし作業実績を推定するために使用したパラメータにペナルティを与える。なお、ボーナスとは、当該みなし作業実績が推定されやすくなるように補正することであり、ペナルティは、当該みなし作業実績が推定されにくくなるように補正することである。
【０１２８】
具体例を用いて説明すると、例えば、推定精度補正部１２１０は、正しい推定が行われたみなし作業実績の共起関係に関する指標値を１．５倍にし、正しい推定が行われていないみなし作業実績の共起関係に関する指標値を０．５倍にする。また、推定精度補正部１２１０は、同時実績の各作業実績が共起関係か否かを判定するための所定値または閾値などを補正してもよい。
【０１２９】
＜未実施タスク作業内容推定部１６０の推定精度の補正処理＞
推定精度補正部１２１０は、開発タスク情報４００における実作業内容４２０と推定作業内容４３０の差異を特定し、その差異に基づいて、未実施タスク作業内容推定部１６０のパラメータを補正して、未実施タスク作業内容推定部１６０の推定精度を補正する。
【０１３０】
具体的には、先ず、未実施タスク作業内容推定部１６０が推定作業内容４３０を推定した後で、推定作業内容４３０に対応する未実施タスクに担当者が割り当てられ、その未実施タスクが新規実施タスクとして実施されて成果物版管理情報記憶部１１０が更新された場合、推定精度補正部１２１０は、実施済タスク作業内容特定部１５０により特定された新規実施タスクの実作業内容４２０と推定作業内容４３０を比較し、それらの差異を特定する。推定精度補正部１２１０は、それらの差異に基づいて、未実施タスク作業内容推定部１６０が推定作業内容４３０として記録される未実施作業内容を推定するために使用したパラメータを補正する。
【０１３１】
例えば、推定精度補正部１２１０は、差異のない未実施作業内容を、正しい推定が行われた未実施作業内容と判断して、その未実施作業内容を推定するために使用したパラメータにボーナスを与え、差異のある未実施作業内容を、正しい推定が行われていない未実施作業内容と判断して、その未実施作業内容を推定するために使用したパラメータにペナルティを与える。なお、ボーナスとは、未実施作業内容が推定されやすくなるように補正することであり、ペナルティは、未実施作業内容が推定されにくくなるように補正することである。
【０１３２】
具体例を用いて説明すると、例えば、推定精度補正部１２１０は、正しい推定が行われた未実施作業内容に対応する、タスク属性４１０と実作業内容４２０との関係性にボーナスを与え、正しい推定が行われていない未実施作業内容に対応する、タスク属性４１０と実作業内容４２０との関係性にペナルティを与える。例えば、ボーナスとしては、頻出キーワードが出現する回数または割合を１．５倍にすること、ペナルティとしては、頻出キーワードがする回数または割合を０．５倍にすることなどが挙げられる。
【０１３３】
なお、推定精度補正部１２１０は、みなし作業実績および未実施作業内容を出力装置１９０から出力し、ユーザから入力装置１８０を介してみなし作業実績および未実施作業内容に対する正誤を示す正誤情報を受け付け、その正誤情報に基づいて、パラメータを補正してもよい。
【０１３４】
また、実施例１で説明したシステム開発者割当案生成装置１１００の構成に推定精度補正部１２１０を加えて、未実施タスク作業内容推定部１６０の推定精度を補正してもよい。
【０１３５】
以上説明したように、本開示は以下の事項を含む。
【０１３６】
本開示の一態様に係る開発者割当案生成装置は、開発者が行った作業の作業内容である担当者作業内容を含む開発者情報（５００）を開発者ごとに記憶する開発者情報記憶部（１２０）と、既に実施された開発タスクである実施タスクと実施タスクに応じて行われた作業の作業内容である実作業内容との対応関係を示す開発タスク情報（４００）を記憶する開発タスク情報記憶部（１３０）と、開発タスク情報に基づいて、未だ実施されていない開発タスクである未実施タスクに応じて行う作業の作業内容である未実施作業内容を推定する推定部（１６０）と、未実施作業内容と開発者情報とに基づいて、未実施タスクを実施する担当者として割り当てる開発者の候補を示す割当案を生成する生成部（１７０）と、を有する。
【０１３７】
上記構成を有することにより、開発者が行った作業の作業内容である担当者作業内容を含む開発者情報と、未実施タスクに応じて行う作業の作業内容である未実施作業内容とに基づいて、未実施タスクを実施する担当者として割り当てる開発者の候補を示す割当案が生成される。このため、作業内容に応じて適切な開発者を割り当てることが可能になる。
【０１３８】
また、開発者情報は、担当者作業内容に関する開発者の能力の度合いをさらに含む。このため、作業内容だけでなく、その作業内容に関する開発者の能力の度合いに基づいて割当案を生成することができるため、開発者の能力の度合いに応じて適切な開発者を割り当てることが可能になる。
【０１３９】
また、開発者割当案生成装置は、担当者を割り当てる方針を示す方針情報（６００）を記憶する方針記憶部（１４０）をさらに有し、生成部は、未実施作業内容、開発者情報および方針情報に基づいて、割当案を生成する。このため、開発者の割り当てを柔軟に決定することが可能になる。
【０１４０】
開発者割当案生成装置は、実施タスクに応じた開発成果物（２００）と、当該開発成果物の編集履歴を示す管理情報（３００）と、を記憶する管理情報記憶部（１１０）と、開発成果物および管理情報に基づいて、開発者情報および開発タスク情報を生成する作業内容特定部（１５０）と、をさらに有する。このため、システム開発などにおいて通常使用される開発成果物および管理情報から開発者情報および開発タスク情報を生成することが可能になるため、容易に適切な開発者を割り当てることが可能になる。
【０１４１】
開発者割当案生成装置は、未実施タスクが新規実施タスクとして実施された場合、当該新規実施タスクに応じて行われた作業内容と、当該新規実施タスクにおける未実施作業内容とに基づいて、推定部が未実施作業内容を推定するためのパラメータを補正する補正部（１２１０）をさらに有する。このため、未実施作業内容の推定精度を向上させることが可能になるため、開発タスクに対して開発者をより適切に割り当てることが可能になる。
【０１４２】
開発者割当案生成装置は、開発者情報に基づいて、開発者が行ったとみなせる作業内容であるみなし作業内容を推定し、当該みなし作業内容を開発者情報に加える作業実績推定部（１１１０）をさらに有する。このため、新しく加わった開発者のような作業実績が少ない開発者に対しても適切に開発タスクを割り当てることが可能になる。
【０１４３】
また、開発者割当案生成装置は、みなし作業内容を推定してから所定の期間が経過した場合、開発者情報に含まれる実作業内容とみなし作業内容とに基づいて、作業実績推定部がみなし作業内容を推定するためのパラメータを補正する補正部（１２１０）をさらに有する。このため、みなし作業内容の推定精度を向上させることが可能になるため、開発タスクに対して開発者をより適切に割り当てることが可能になる。
【０１４４】
上述した本開示の実施形態は、本開示の説明のための例示であり、本開示の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の範囲を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【符号の説明】
【０１４５】
１００：システム開発者割当案生成装置、１１０：成果物版管理情報記憶部、１２０：開発者情報記憶部、１３０：開発タスク情報記憶部、１４０：開発者割当戦略記憶部、記憶部
１５０：実施済タスク作業内容特定部、１６０：未実施タスク作業内容推定部、１７０：開発者割当案生成部、１８０：入力装置、１９０：出力装置、１１００：システム開発者割当案生成装置、１１１０：作業実績推定部、１２００：システム開発者割当案生成装置、１２１０：推定精度補正部
【図１】
2020197939.tif 000003
【図２】
2020197939.tif 000004
【図３】
2020197939.tif 000005
【図４】
2020197939.tif 000006
【図５】
2020197939.tif 000007
【図６】
2020197939.tif 000008
【図７】
2020197939.tif 000009
【図８】
2020197939.tif 000010
【図９】
2020197939.tif 000011
【図１０】
2020197939.tif 000012
【図１１】
2020197939.tif 000013
【図１２】
2020197939.tif 000014