JP2022188292A - プログラム、情報処理装置および方法 - Google Patents
プログラム、情報処理装置および方法 Download PDFInfo
- Publication number
- JP2022188292A JP2022188292A JP2022168276A JP2022168276A JP2022188292A JP 2022188292 A JP2022188292 A JP 2022188292A JP 2022168276 A JP2022168276 A JP 2022168276A JP 2022168276 A JP2022168276 A JP 2022168276A JP 2022188292 A JP2022188292 A JP 2022188292A
- Authority
- JP
- Japan
- Prior art keywords
- team
- engineer
- information
- review
- engineering
- 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 24
- 230000010365 information processing Effects 0.000 title claims description 5
- 230000000694 effects Effects 0.000 claims abstract description 191
- 238000012552 review Methods 0.000 claims description 137
- 230000008859 change Effects 0.000 claims description 73
- 230000009471 action Effects 0.000 claims description 33
- 230000007704 transition Effects 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 21
- 230000015556 catabolic process Effects 0.000 claims description 14
- 230000006872 improvement Effects 0.000 claims description 8
- 230000010354 integration Effects 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 abstract description 53
- 238000010586 diagram Methods 0.000 description 56
- 238000012545 processing Methods 0.000 description 35
- 238000004891 communication Methods 0.000 description 33
- 238000007726 management method Methods 0.000 description 19
- 238000004364 calculation method Methods 0.000 description 18
- 230000008520 organization Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 11
- 230000004048 modification Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000011161 development Methods 0.000 description 8
- 230000003442 weekly effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 3
- 238000012356 Product development Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】エンジニアチームとしてのパフォーマンスを適切に評価する技術を提供する。【解決手段】チーム活動評価システム1のサーバ20は、その機能として、エンジニアチームの活動状況を示す各種パラメータに基づき、エンジニアチームの活動状況を示すチームスコア(パラメータ)を特定するスコアリングモジュール2035と、特定された、エンジニアチームの活動状況を示すチームスコアを時系列の情報と関連付けて、ユーザに提示する提示モジュール2037と、を備える。【選択図】図3
Description
特許法第30条第2項適用申請有り 令和2年1月22日、4月15日、7月14日、8月3日、8月18日、9月24日ファインディ株式会社ウェブサイト等で発表
本開示は、プログラム、情報処理装置および方法に関する。
企業活動におけるプロダクト開発は、複数のエンジニアによるチームで進められることが多い。チームによるプロダクト開発では、チーム内で適切に人員配置を行い、成果物に対するレビューを適切に行う必要があり、チームとしてのパフォーマンスを最大化する必要がある。
特許文献1には、企業活動における活動の組織性、単独性を分析する活動分析技術が開示されている。この技術は、同時に複数人の介在が可能な活動、例えば会議等について、その活動が発生する場に同時に介在した参加者の情報を参加者の位置情報より取得し、組織を分析する手法である。
ところで、プロダクト開発等を行うエンジニアにより構成されるエンジニアチームのパフォーマンスを評価する場合、当該チームの成果物について適切に把握する必要がある。そのためには、エンジニアチームの構成員であるそれぞれのエンジニアによる成果物の数量だけではなく、チーム内でどのようなプロセスを経ているのかも把握する必要がある。このようなエンジニアチームとしてのパフォーマンスを適切に把握する手法が求められていた。
そこで、本開示では、エンジニアチームとしてのパフォーマンスを適切に評価する技術について説明する。
本開示の一実施形態によると、プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムが提供される。プログラムは、プロセッサに、エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物についてエンジニアチームの構成員が行ったレビュー情報と、の履歴に基づいて、エンジニアチームの活動状況を表すパラメータを特定するステップと、パラメータをユーザに提示するステップと、を実行させる。
本開示によれば、エンジニアとしての成果物を作成するためにアップロードした情報と、当該アップロードされた成果物についてエンジニアチームの構成員が行ったレビュー情報と、の履歴に基づいて、エンジニアチームの活動状況を表すパラメータを特定する。そのため、エンジニアチームとしてのパフォーマンスを適切に把握することが可能になる。
以下、図面を参照しつつ、本開示の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。従って、それらについての詳細な説明は繰り返さない。
<概要>
以下、本開示に係るチーム活動評価システムについて説明する。このチーム活動評価システムは、プロダクト開発等を行うエンジニアにより構成される、エンジニアチームの活動状況(パフォーマンス)を示すチームスコア(パラメータ)を特定して評価するためのシステムである。ここで、エンジニアチームとは、複数人のエンジニアにより構成され、特定のプロダクト、例えば,いわゆるSaaS(Software as a Service)によって提供されるWebサービス,Webサイト等の開発を進めるためのチームであり、チーム内でそれぞれのエンジニアが当該サービスの機能ごと、アウトプットごと等に役割分担して開発を進めている。また、チーム内のエンジニアとは、特定の1つの企業に雇用されている会社員だけとは限らず、複数の企業が共同で開発を進める開発プロジェクトにおけるそれぞれの会社員でもよく、個人事業主、いわゆるフリーランスのエンジニアが含まれてもよい。
以下、本開示に係るチーム活動評価システムについて説明する。このチーム活動評価システムは、プロダクト開発等を行うエンジニアにより構成される、エンジニアチームの活動状況(パフォーマンス)を示すチームスコア(パラメータ)を特定して評価するためのシステムである。ここで、エンジニアチームとは、複数人のエンジニアにより構成され、特定のプロダクト、例えば,いわゆるSaaS(Software as a Service)によって提供されるWebサービス,Webサイト等の開発を進めるためのチームであり、チーム内でそれぞれのエンジニアが当該サービスの機能ごと、アウトプットごと等に役割分担して開発を進めている。また、チーム内のエンジニアとは、特定の1つの企業に雇用されている会社員だけとは限らず、複数の企業が共同で開発を進める開発プロジェクトにおけるそれぞれの会社員でもよく、個人事業主、いわゆるフリーランスのエンジニアが含まれてもよい。
本開示に係るチーム活動評価システムは、エンジニアチームの活動状況を示すチームスコアを特定するため、例として、ソフトウェア開発のプラットフォームであるGitHub(登録商標)にアクセスし、エンジニアチームの構成員であるエンジニアとしての成果を示す各種パラメータを取得する。GitHubは、ソースコードホスティングサービスであり、成果物であるソースコードのバージョン管理を行うためのリポジトリ(管理手段)を有し、ある時点におけるソースコードの一覧を管理している。また、GitHubは、プロジェクトやソースコードの課題を管理するためのイシュー(作成)、エンジニアのローカル環境(ローカルリポジトリ)で作成又は修正を行ったソースコードをリモート環境(リモートリポジトリ)へアップロードするプッシュ、プッシュがされたことを通知してレビュー依頼するプルリクエスト、レビューの際にコメントや修正内容を採用するコミット、レビュー結果を確定させて履歴を統合するマージ等の機能を備えている。なお、ここで、ソースコードとは、Pythonのようなプログラミング言語、JavaScript(登録商標)のようなプログラミング言語の一種であるスクリプト言語を含む概念である。すなわち、本開示に係るチーム活動評価システムは、外部サーバ(クラウドサーバ)で管理している成果物に関するパラメータを取得するものであり、個人PCの使用状況のモニタリングを要することなく、エンジニアチームの活動状況を示すシステムである。
また、プログラミング言語とは、ソフトウェア開発に用いられる言語であり、具体的にはHTML、CSS、JavaScript(登録商標)、Java(登録商標)、Scala、PHP、Ruby、Python、Go、C#、Node.jsなどがある。また、ソフトウェアフレームワークとはソフトウェア開発に利用するソフトウェアプラットフォームであり、具体的には、jQuery、React、Vue.js、Angular、Nuxt.js、Next.js、ReactNative、Spring Framework、Play Framework、Laravel、CakePHP、RubyonRails、Django、Flask、TensorFlow、gin、Unity、Expressなどがある。
エンジニアチームの活動状況を示す各種パラメータとして、GitHubで管理している、GitHubに対するプッシュ数(アップロード数)、GitHubでのソースコードの作成コード数、修正コード数、プルリクエスト数(レビュー依頼数)、マージ数(統合数)等の値を取得することにより、エンジニアチームにおける成果物をオンライン上にアップロードした情報として数値化し、スコアを算出する。これにより、エンジニアチームの活動状況を成果物の量的な側面で推定することが可能であると考えられる。例えば、ソースコードの作成コード数、修正コード数、プッシュ数が多い場合、エンジニアチームとして多くの成果物を作成しているといえるため、エンジニアチームの成果物を作成する活動状況は活発であると推定される。そのため、このスコアの多少により、エンジニアチームの成果物に対する活動状況を成果物の量的な側面で推定できると考えられる。
また、エンジニアチームの活動状況を示す各種パラメータとして、GitHubで管理している、GitHubに対するイシュー作成数、レビュー数、コメント数、コメント回答数、コミット数等の値を取得することにより、これらの値を包含し、エンジニアチームの構成員が行ったレビュー情報として数値化し、スコアを算出する。これにより、エンジニアチームの活動状況を成果物の質的な側面で推定することが可能であると考えられる。例えば、レビュー数、コメント数が多い場合、エンジニアチーム内で成果物に対するチェックや議論が多くなされているといえるため、エンジニアチームの成果物に対するレビューが活発であり、成果物の質が担保されている傾向が高いと推定される。そのため、このスコアの多少により、エンジニアチームの成果物に対する活動状況を成果物の質的な側面で推定できると考えられる。
さらに、これらのチームスコアを時系列の情報と関連付けて提示することにより、エンジニアチームの活動状況を時系列で把握することが可能であると考えられる。例えば、特定の期間(例えば、1週間)のチームスコアが他の期間に対して低い場合、当該期間における成果物の作成、成果物に対するレビューのいずれか、または両方が停滞していたと推定されるため、チームの状況を早期に把握し、原因特定に資することになる。
そのため、本開示に係るチーム活動評価システムでは、GitHubにおける各種パラメータの値を取得し、これらの値からエンジニアチームの活動状況を示すチームスコアを特定する。このチームスコアを、エンジニアチームの構成員やエンジニアチームをマネジメントとする管理者(チームのマネージャや、人事部門担当者、経営陣等)などに提示している。このような構成により、エンジニアチームの活動状況を、より客観的に提示し、把握してもらうことが可能になる。なお、エンジニアチームにおける成果物とは、GitHubにおけるソースコード以外に、システム上の設定情報やデータベース、各種仕様書等を含む概念であるが、本実施形態ではGitHubにおけるソースコードを例として説明する。
<第1の実施の形態>
以下、チーム活動評価システム1について説明する。以下の説明では、例えば、端末装置10がサーバ20へアクセスすることにより、サーバ20が、端末装置10で画面を生成するための情報を応答する。端末装置10は、サーバ20から受信した情報に基づいて画面を生成し表示する。
以下、チーム活動評価システム1について説明する。以下の説明では、例えば、端末装置10がサーバ20へアクセスすることにより、サーバ20が、端末装置10で画面を生成するための情報を応答する。端末装置10は、サーバ20から受信した情報に基づいて画面を生成し表示する。
<1 チーム活動評価システム1の全体構成>
図1は、チーム活動評価システム1の全体の構成を示す図である。図1に示すように、チーム活動評価システム1は、複数の端末装置(図1では、端末装置10Aおよび端末装置10Bを示している。以下、総称して「端末装置10」ということもある)と、サーバ20と、リポジトリサーバ30とを含む。端末装置10と、サーバ20と、リポジトリサーバ30とは、ネットワーク80を介して相互に通信可能に接続されている。ネットワーク80は、有線または無線ネットワークにより構成される。
図1は、チーム活動評価システム1の全体の構成を示す図である。図1に示すように、チーム活動評価システム1は、複数の端末装置(図1では、端末装置10Aおよび端末装置10Bを示している。以下、総称して「端末装置10」ということもある)と、サーバ20と、リポジトリサーバ30とを含む。端末装置10と、サーバ20と、リポジトリサーバ30とは、ネットワーク80を介して相互に通信可能に接続されている。ネットワーク80は、有線または無線ネットワークにより構成される。
端末装置10は、各ユーザが操作する装置である。ここで、ユーザとは、端末装置10を使用してチーム活動評価システム1によるエンジニアチームの活動状況の提示を受ける者であるが、当該エンジニアチームの構成員とは限らず、所属企業の(チームに属さない)マネージャ、人事部門担当者、経営陣などを含む者である。端末装置10は、据え置き型のPC(Personal Computer)、ラップトップPC等により実現される。この他、端末装置10は、例えば移動体通信システムに対応したタブレットや、スマートフォン等の携帯端末であるとしてもよい。
端末装置10は、ネットワーク80を介してサーバ20およびリポジトリサーバ30と通信可能に接続される。端末装置10は、4G、5G、LTE(Long Term Evolution)等の通信規格に対応した無線基地局81、IEEE(Institute of Electrical and Electronics Engineers)802.11等の無線LAN(Local Area Network)規格に対応した無線LANルータ82等の通信機器と通信することにより、ネットワーク80に接続される。図1に端末装置10Bとして示すように、端末装置10は、通信IF(Interface)12と、入力装置13と、出力装置14と、メモリ15と、記憶部16と、プロセッサ19とを備える。
通信IF12は、端末装置10が外部の装置と通信するため、信号を入出力するためのインタフェースである。入力装置13は、ユーザからの入力操作を受け付けるための入力装置(例えば、キーボードや、タッチパネル、タッチパッド、マウス等のポインティングデバイス等)である。出力装置14は、ユーザに対し情報を提示するための出力装置(ディスプレイ、スピーカ等)である。メモリ15は、プログラム、および、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。記憶部16は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。プロセッサ19は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
サーバ20は、GitHubにおける各種パラメータ、エンジニアチームに所属する構成員のパフォーマンス、及びエンジニアチームの活動状況を示すチームスコアの情報を管理する装置である。サーバ20は、ユーザからエンジニアチームを識別する情報を受け付け、対象となるエンジニアチームの活動状況を示すチームスコアを特定し、当該ユーザへ提示する。
サーバ20は、ネットワーク80に接続されたコンピュータである。サーバ20は、通信IF22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備える。
通信IF22は、サーバ20が外部の装置と通信するため、信号を入出力するためのインタフェースである。入出力IF23は、ユーザからの入力操作を受け付けるための入力装置、および、ユーザに対し情報を提示するための出力装置とのインタフェースとして機能する。メモリ25は、プログラム、および、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。ストレージ26は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。プロセッサ29は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
リポジトリサーバ30は、GitHubにおけるリモートリポジトリ(管理手段)を管理する装置である。リポジトリサーバ30は、ユーザがプッシュしたソースコードを受け付けて格納および管理を行い、プルリクエスト、コメント、コミット、マージ等を受け付ける。
<1.1 端末装置10の構成>
図2は、実施の形態1のチーム活動評価システム1を構成する端末装置10の機能的な構成を示すブロック図である。図2に示すように、端末装置10は、複数のアンテナ(アンテナ111、アンテナ112)と、各アンテナに対応する無線通信部(第1無線通信部121、第2無線通信部122)と、操作受付部130(キーボード131およびディスプレイ132を含む)と、音声処理部140と、マイク141と、スピーカ142と、カメラ150と、記憶部160と、制御部170とを含む。端末装置10は、図2では特に図示していない機能および構成(例えば、電力を保持するためのバッテリー、バッテリーから各回路への電力の供給を制御する電力供給回路等)も有している。図2に示すように、端末装置10に含まれる各ブロックは、バス等により電気的に接続される。
図2は、実施の形態1のチーム活動評価システム1を構成する端末装置10の機能的な構成を示すブロック図である。図2に示すように、端末装置10は、複数のアンテナ(アンテナ111、アンテナ112)と、各アンテナに対応する無線通信部(第1無線通信部121、第2無線通信部122)と、操作受付部130(キーボード131およびディスプレイ132を含む)と、音声処理部140と、マイク141と、スピーカ142と、カメラ150と、記憶部160と、制御部170とを含む。端末装置10は、図2では特に図示していない機能および構成(例えば、電力を保持するためのバッテリー、バッテリーから各回路への電力の供給を制御する電力供給回路等)も有している。図2に示すように、端末装置10に含まれる各ブロックは、バス等により電気的に接続される。
アンテナ111は、端末装置10が発する信号を電波として放射する。また、アンテナ111は、空間から電波を受信して受信信号を第1無線通信部121へ与える。
アンテナ112は、端末装置10が発する信号を電波として放射する。また、アンテナ112は、空間から電波を受信して受信信号を第2無線通信部122へ与える。
第1無線通信部121は、端末装置10が他の無線機器と通信するため、アンテナ111を介して信号を送受信するための変復調処理等を行う。第2無線通信部122は、端末装置10が他の無線機器と通信するため、アンテナ112を介して信号を送受信するための変復調処理等を行う。第1無線通信部121と第2無線通信部122とは、チューナー、RSSI(Received Signal Strength Indicator)算出回路、CRC(Cyclic Redundancy Check)算出回路、高周波回路等を含む通信モジュールである。第1無線通信部121と第2無線通信部122とは、端末装置10が送受信する無線信号の変復調や周波数変換を行い、受信信号を制御部170へ与える。
操作受付部130は、ユーザの入力操作を受け付けるための機構を有する。具体的には、操作受付部130は、キーボード131と、ディスプレイ132とを含む。なお、操作受付部130は、例えば静電容量方式のタッチパネルを用いることによって、タッチパネルに対するユーザの接触位置を検出する、タッチスクリーンとして構成してもよい。
キーボード131は、端末装置10のユーザの入力操作を受け付ける。キーボード131は、文字入力を行う装置であり、入力された文字情報を入力信号として制御部170へ出力する。
ディスプレイ132は、制御部170の制御に応じて、画像、動画、テキスト等のデータを表示する。ディスプレイ132は、例えばLCD(Liquid Crystal Display)や有機EL(Electro-Luminescence)ディスプレイによって実現される。
音声処理部140は、音声信号の変復調を行う。音声処理部140は、マイク141から与えられる信号を変調して、変調後の信号を制御部170へ与える。また、音声処理部140は、音声信号をスピーカ142へ与える。音声処理部140は、例えば音声処理用のプロセッサによって実現される。マイク141は、音声入力を受け付けて、当該音声入力に対応する音声信号を音声処理部140へ与える。スピーカ142は、音声処理部140から与えられる音声信号を音声に変換して当該音声を端末装置10の外部へ出力する。
カメラ150は、受光素子により光を受光して、撮影画像として出力するためのデバイスである。カメラ150は、例えば、カメラ150から撮影対象までの距離を検出できる深度カメラである。
記憶部160は、例えばフラッシュメモリ等により構成され、端末装置10が使用するデータおよびプログラムを記憶する。ある局面において、記憶部160は、ユーザ情報161と、ローカルリポジトリ162とを記憶する。
ユーザ情報161は、端末装置10を使用してチーム活動評価システム1の機能であるエンジニアチームの活動状況を示すチームスコアの提示を受けるユーザの情報である。ユーザ情報としては、ユーザを識別する情報(ユーザID)、ユーザの氏名や名称、ユーザが所属している企業等の組織情報、GitHubにサインインするためのID情報やパスワード等が含まれる。
ローカルリポジトリ162には、GitHubによるソフトウェア開発を行う際に、ユーザが自己のローカル環境で作業を行うためのソースコード等の情報が格納されている。ユーザは、ローカルリポジトリ162に作成したソースコードを格納し、ローカルリポジトリ162に格納されているソースコードに対して修正を行う。作成および修正の完了後、ユーザは、ソースコードをリポジトリサーバ30へプッシュする。
制御部170は、記憶部160に記憶されるプログラムを読み込んで、プログラムに含まれる命令を実行することにより、端末装置10の動作を制御する。制御部170は、例えば予め端末装置10にインストールされているアプリケーションである。制御部170は、プログラムに従って動作することにより、入力操作受付部171と、送受信部172と、データ処理部173と、通知制御部174としての機能を発揮する。
入力操作受付部171は、キーボード131等の入力装置に対するユーザの入力操作を受け付ける処理を行う。
送受信部172は、端末装置10が、サーバ20等の外部の装置と、通信プロトコルに従ってデータを送受信するための処理を行う。
データ処理部173は、端末装置10が入力を受け付けたデータに対し、プログラムに従って演算を行い、演算結果をメモリ等に出力する処理を行う。
通知制御部174は、ユーザに対し情報を提示する処理を行う。通知制御部174は、表示画像をディスプレイ132に表示させる処理、音声をスピーカ142に出力させる処理、振動をカメラ150に発生させる処理等を行う。
<1.2 サーバ20の機能的な構成>
図3は、実施の形態1のチーム活動評価システム1を構成するサーバ20の機能的な構成を示す図である。図3に示すように、サーバ20は、通信部201と、記憶部202と、制御部203としての機能を発揮する。
図3は、実施の形態1のチーム活動評価システム1を構成するサーバ20の機能的な構成を示す図である。図3に示すように、サーバ20は、通信部201と、記憶部202と、制御部203としての機能を発揮する。
通信部201は、サーバ20が外部の装置と通信するための処理を行う。
記憶部202は、サーバ20が使用するデータおよびプログラムを記憶する。記憶部202は、リポジトリデータベース2021と、個人パフォーマンスデータベース2022と、チームスコアデータベース2023等を記憶する。
リポジトリデータベース2021は、チーム活動評価システム1においてリポジトリサーバ30から取得した、リモートリポジトリのソースコードの作成コード数、プッシュ数等の各種パラメータに関する各種情報を保持するためのデータベースである。詳細は後述する。
個人パフォーマンスデータベース2022は、チーム活動評価システム1における、エンジニアチームの構成員のパフォーマンスを示す情報を保持するためのデータベースである。詳細は後述する。
チームスコアデータベース2023は、チーム活動評価システム1において提示する、エンジニアチームの活動状況を示すチームスコアと、その基になる各種パラメータの情報を保持するためのデータベースである。詳細は後述する。
制御部203は、サーバ20のプロセッサがプログラムに従って処理を行うことにより、各種モジュールとして受信制御モジュール2031、送信制御モジュール2032、リポジトリ管理モジュール2033、パフォーマンス演算モジュール2034、スコアリングモジュール2035、アラート決定モジュール2036、および提示モジュール2037に示す機能を発揮する。
受信制御モジュール2031は、サーバ20が外部の装置から通信プロトコルに従って信号を受信する処理を制御する。
送信制御モジュール2032は、サーバ20が外部の装置に対し通信プロトコルに従って信号を送信する処理を制御する。
リポジトリ管理モジュール2033は、各ユーザについてネットワーク上に記録されている情報を取得する処理を制御する。チーム活動評価システム1のユーザは、GitHubによりソースコードの開発を行っているため、エンジニアチームの活動状況を示す各種パラメータとして、GitHub(ソースコードホスティング)において作成したソースコードの作成コード数、修正コード数、ソースコードのプッシュ数、プルリクエスト数等の各種パラメータがリポジトリサーバ30に記録されている。また、各種パラメータとして、イシュー作成数、レビュー数、コメント数、コメント回答数、コミット数等の各種パラメータがリポジトリサーバ30に記録されている。そのため、リポジトリ管理モジュール2033は、リポジトリサーバ30にアクセスして当該ユーザの各種パラメータを取得する。
リポジトリサーバ30では、ソースコードのバージョン管理を行うため、あるユーザがソースコードをローカルリポジトリからプッシュした場合、そのユーザの情報、およびそのときの日時をログ情報として記録している。同様に、ソースコード等に関してイシューが作成された場合、ソースコードについてプルリクエストがあった場合、コメントが作成された場合、コメントに対する回答が作成された場合、マージがあった場合等それぞれのアクションについて、当該アクションを行ったユーザの情報、およびそのときの日時をログ情報として記録している。これらの情報は、各ユーザが所属するエンジニアチームごと、プロジェクトごと、そのプロジェクト内で作成されたソースコードのファイルごとに記録されている。リポジトリ管理モジュール2033は、リポジトリサーバ30からこれらのログ情報を取得している。
パフォーマンス演算モジュール2034は、エンジニアチームに所属する構成員のパフォーマンス(成果)を示す値(個人スコア)を演算する処理を制御する。例えば、一定期間における、当該構成員のGitHubにおいて作成したソースコードの作成コード数、修正コード数、ソースコードのプッシュ数、プルリクエスト数をカウントすることで、当該ユーザがエンジニアとして一定期間にソースコードを作成する量(コード数、本数等)が分かるので、当該構成員のエンジニア(プログラマ)としての一定期間の成果を推定することが可能である。また、一定期間における、当該構成員のGitHubにおいて作成したイシュー作成数、レビュー数、コメント数、コメント回答数、コミット数をカウントすることで、当該ユーザがエンジニアとして一定期間にレビューをする量が分かるので、当該構成員のレビュワー(Reviewer)や管理者(マネージャ)等としての一定期間の成果を推定することが可能である。そのため、パフォーマンス演算モジュール2034は、GitHubにおいて作成したソースコードの作成コード数、修正コード数、ソースコードのプッシュ数、プルリクエスト数、イシュー作成数、レビュー数、コメント数、コメント回答数、コミット数等の各種パラメータに基づき、各種演算を行う。例えば、各種演算の例として、各構成員のソースコードの作成コード数、修正コード数、ソースコードのプッシュ数、プルリクエスト数、イシュー作成数、レビュー数、コメント数、コメント回答数、コミット数等を、エンジニアチームに所属する構成員それぞれについて加算する。
パフォーマンス演算モジュール2034は、各種パラメータに基づく演算として、各種パラメータを単純に積み上げて加算してもよく、それぞれのパラメータに重み付けを行う演算(例えば、それぞれのパラメータに所定の係数を掛け合わせて加算)してもよい。また、それぞれのパラメータに対して、成果物(ソースコード)の難易度または重要度に基づいて重み付けを行い、上記の演算を行ってもよい。
スコアリングモジュール2035は、リポジトリ管理モジュール2033が取得した各種パラメータに基づき、エンジニアチームの活動状況を示すパラメータを特定する処理を制御する。ここで、パラメータ(チームスコアともいう)とは、エンジニアチームの活動状況(例えば、エンジニアチームとしての成果)を示す値であり、エンジニアチームの構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物についてエンジニアチームの構成員が行ったレビュー情報と、の履歴に基づいて各種演算を行って特定された値である。後述するように、チームスコアは、時系列の情報に関連付けて提示されるため、スコアリングモジュール2035は、一定期間(例えば、1週間)ごとにチームスコアを特定する。
具体的には、構成員がエンジニアとしての成果物を作成するためにオンライン上にアップロードした情報として、チーム全体のGitHubにおいて作成したソースコードの作成コード数、修正コード数、ソースコードのプッシュ数、プルリクエスト数を一定期間カウントする。これにより、当該エンジニアチームが一定期間にソースコードを作成する量(コード数、本数等)が分かるので、当該チームの成果物を作成する活動状況、すなわちエンジニアチームの活動状況を成果物の量的な側面で推定することが可能である。また、アップロードされた成果物についてエンジニアチームの構成員が行ったレビュー情報として、チーム全体のGitHubにおいて作成したイシュー作成数、レビュー数、コメント数、コメント回答数、コミット数を一定期間カウントする。すなわち、当該チームの活動状況を、各構成員の成果物に関する情報を取得して積み上げることにより取得する。これにより、当該エンジニアチームが一定期間にレビューをする量(コメント数)が分かるので、当該チームの成果物に対するレビュー状況、すなわちエンジニアチームの活動状況を成果物の質的な側面で推定することが可能である。
なお、スコアリングモジュール2035は、GitHubにおいて作成したソースコードの作成コード数、修正コード数、ソースコードのプッシュ数、プルリクエスト数について、成果物(ソースコード)の難易度または重要度に基づいて重み付けを行い、チームスコアを特定してもよい。ソースコードの難易度、重要度は、例えば、ソースコードの改変量、当該ソースコードの改変により影響の及ぶファイル数などから算出してもよく、当該ソースコードの改変に係るプルリクエストに関連するイシューに設定されている工数などから推測してもよい。かかる場合、ソースコードの改変量が大きいほどソースコードの難易度や重要度は高く設定し、ソースコードの改変により影響の及ぶファイル数が多いほどソースコードの難易度や重要度は高く設定し、ソースコードの改変に係るプルリクエストに関連するイシューに設定されている工数が多いほどソースコードの難易度や重要度は高く設定することが望ましい。ソースコードの難易度、重要度に応じて、作成に要する時間、すなわち成果を出すためのパフォーマンスは変動すると考えられるからである。また、スコアリングモジュール2035は、作成後に所定の期間経過後、残存しているコード数の履歴に基づいてチームスコアを特定してもよい。一定期間経過後に残存しているソースコードは有用性が高いと考えられるからである。
アラート決定モジュール2036は、スコアリングモジュール2035が特定したチームスコアの変動に基づき、ユーザに通知する、エンジニアチームの活動状況についてのアラートを決定する処理を制御する。ユーザに通知するアラートとは、チームスコアの変動に基づいてエンジニアチームの活動状況について注意すべき事柄を提示するものであり、例えば、1週間ごとに特定されたチームスコアが、他の週と比較して一定の範囲外である外れ値である場合、アラート決定モジュール2036は外れ値に基づくアラートを決定する。具体例として、アラート決定モジュール2036は、当該週のチームスコアが他の週と比較して、外れ値であると判定される範囲(例えば、20%以上減少)の場合、他の週と比較してエンジニアチームの活動状況が停滞していると推定されるため、外れ値であることを検知し、検知した外れ値に基づくアラートとして通知するよう決定する。
また、アラート決定モジュール2036は、エンジニアチームに所属する構成員のパフォーマンスを示す値、具体的にはGitHubにおける作成コード数、修正コード数、プッシュ数、プルリクエスト数の各種パラメータの変動を検知し、変動に基づいて、ユーザにアラートを通知するよう決定してもよい。構成員のパフォーマンスの変動は、エンジニアチームの活動状況に影響することが多いからである。また、アラート決定モジュール2036は、GitHubにおける、エンジニアチームに所属するある構成員と他の構成員とのレビュー数、レビュー時間、コメント数の変動を検知し、変動に基づいて、ユーザにアラートを通知するよう決定してもよい。特定の構成員同士のレビューの状況がエンジニアチームの活動状況に影響することもあり得るからである。さらに、アラート決定モジュール2036は、パフォーマンス演算モジュール2034が演算を行った個人スコアの変動に基づき、ユーザにアラートを通知するよう決定してもよい。個人スコアによる総合的な評価の変動がエンジニアチームの活動状況に影響する場合もあるからである。
提示モジュール2037は、スコアリングモジュール2035により特定された、エンジニアチームの活動状況を示すチームスコアをユーザに提示する処理を制御する。提示モジュール2037は、例えば、時系列の情報として、1週間ごとのチームスコアの変動状況をユーザに提示するため、ユーザの端末装置10へ通信部201を介して送信する。提示モジュール2037は、チームスコアを、GitHubの作成コード数、プッシュ数等の内訳ごとにチームスコアの変動状況を提示してもよい。
提示モジュール2037は、エンジニアチームの活動状況として、エンジニアチームにおけるレビューの依頼からクローズまでの期間を示すリードタイムを取得し、ユーザに提示してもよい。成果物に対するその後の処理(レビュー等)が行われるまでの時間、その後の時間を把握するためである。ここで、成果物に対してレビューの依頼がされると、当該成果物を作成したエンジニア以外の者がレビューを行い、コメント等を記載する。通常のプロセスの場合、コメントに基づいて成果物の修正が行われ(修正が不要な場合もあり、場合によってはレビューが行われない場合もある)、その成果物を反映させる旨の意思決定がなされると、マージが行われ、当該成果物の作業がクローズとなる。しかし、仕様変更等、何らかの理由により当該成果物を反映させない旨の意思決定がなされる場合もあり、その場合は当該成果物のマージが行われることなくクローズされる。なお、GitHub上などではマージの有無を区別せずプルリクエストに対する意思決定がされたものを「クローズ」と呼ばれているが、本明細書ではマージが行われず、すなわちプルリクエストに対する応答をせずに、成果物に対する修正等の開発作業を終了する意思決定をしたものを「却下」と呼ぶ。上記のリードタイムは、レビューの依頼からマージが行われてクローズとなるまでの期間と、レビューの依頼からマージが行われることなく却下され、クローズとなるまでの期間を含む概念である。すなわち、クローズとは、なんらかの意思決定が行われて成果物に対する修正等の開発作業が終了した状態をいい、マージと却下を含む。なお、上記のような意思決定がされていない成果物は放置という状態になるが、この状態はレビュー依頼がされた成果物に対してまだレビューが行われていない場合や、コメントに対する修正がなされていない場合、作業としては終了しているがマージまたはクローズの意思決定がなされていない状態、これらの状態のまま一定期間が経過している状態を含む概念である。
また、提示モジュール2037は、エンジニアチームの活動状況として、エンジニアチームにおいてレビューの依頼がされた成果物の推移を示す内訳を取得し、ユーザに提示してもよい。上記のように、レビュー依頼がされると、プルリクエストがされた状態から、レビューが行われた状態、レビューに対する応答(コメントに対する回答のコメント、または成果物の修正)が行われた状態、マージが行われた状態に推移していくが、成果物の推移とは、このようなレビュー依頼後の成果物のステータス(上述したそれぞれの状態)の推移である。また、成果物の推移を示す内訳とは、対象となるプルリクエスト全体におけるそれぞれのステータスまで推移しているプルリクエストの内訳であり、例えば、プルリクエストの全体数10個のうち、レビューが行われた状態のものが7件、さらにその7件のうちレビューに対する応答が行われた状態のものが4件、さらにその4件のうちマージが行われた状態のものが2件といった情報が成果物の推移を示す内訳の情報となる。成果物に対してその後の処理(レビュー等)が適切に行われているかを把握するためである。また、提示モジュール2037は、エンジニアチームの活動状況として、エンジニアチームにおいてレビューの依頼がされた成果物に対するコメント数と成果物のクローズまでの時間との関係を取得し、ユーザに提示してもよい。コメント数と成果物のクローズまでの時間との関係がどのように分布しているか、どの件が外れ値であるかを把握するためである。さらに、提示モジュール2037は、エンジニアチームの活動状況として、エンジニアチームにおけるレビューを依頼するレビュイー(Reviewee)とレビューの依頼を受けるレビュワーとの関係を取得し、ユーザに提示してもよい。レビュイーとレビュワーとの関係、レビューの負荷状況を把握するためである。
また、提示モジュール2037は、アラート決定モジュール2036により決定されたエンジニアチームの活動状況についてのアラートを、ユーザに提示する処理を制御する。提示モジュール2037は、例えば、1週間ごとのチームスコアの変動状況に基づくアラートを、チームスコアの変動状況と共に、ユーザの端末装置10へ通信部201を介して送信する。
さらに、提示モジュール2037は、パフォーマンス演算モジュール2034により演算された、エンジニアチームに所属する構成員のパフォーマンスを示す個人スコアを時系列の情報と関連付けて、ユーザに提示してもよい。このとき、エンジニアチームの活動状況を示すチームスコアと対応付けて提示してもよい。エンジニアチームの活動状況を、構成員のパフォーマンスと対応付けて把握するためである。また、提示モジュール2037は、エンジニアチームの活動状況を示すチームスコアを時系列の情報と関連付けて、他のエンジニアチームの活動状況を示すチームスコアを時系列の情報と関連付けて、比較可能に(例えば、並列に表示して)、ユーザに提示してもよい。エンジニアチームの活動状況を、他のチームと比較することで把握するためである。このとき、両者の時系列の情報は、必ずしも同時期である必要はない。両者の活動時期が異なる場合もあり、当該チームに係るプロジェクトの開始時期からの期間の経過で比較したほうがチームの状況を把握しやすくなるからである。さらに、提示モジュール2037は、エンジニアチームにおいてレビューの依頼からマージが行われてクローズとなるまでの期間を示す(ここでは、レビューの依頼からマージが行われることなく却下され、クローズとなるまでの期間は除外する)リードタイムを基準とし、他のエンジニアチームにおけるリードタイムと比較可能に(例えば、並列に表示して)、ユーザに提示してもよい。エンジニアチームにおける成果物の納品状況を、他のチームと比較することで把握するためである。このとき、両者のリードタイムは同一のタイミングである必要はなく、異なる時期および期間で比較してもよい。それぞれのプロジェクトの時期および期間は異なることが通常であるからである。
<2 データ構造>
図4は、サーバ20が記憶するリポジトリデータベース2021のデータ構造を示す図である。また、図5は、サーバ20が記憶する個人パフォーマンスデータベース2022、サーバ20が記憶するチームスコアデータベース2023のデータ構造を示す図である。
図4は、サーバ20が記憶するリポジトリデータベース2021のデータ構造を示す図である。また、図5は、サーバ20が記憶する個人パフォーマンスデータベース2022、サーバ20が記憶するチームスコアデータベース2023のデータ構造を示す図である。
図4に示すように、リポジトリデータベース2021のレコードのそれぞれは、項目「組織ID」と、項目「リポジトリID」と、項目「アドレス」と、項目「更新履歴情報」等を含む。
項目「組織ID」は、チーム活動評価システム1にてリポジトリサーバ30から取得する各種パラメータの対象である、開発プロジェクト等のエンジニアチームが所属する企業等の組織それぞれを識別する情報である。
項目「リポジトリID」は、チーム活動評価システム1にてリポジトリサーバ30から取得する各種パラメータの対象である、開発プロジェクト等のエンジニアチームごとに設定されるリポジトリそれぞれを識別する情報である。
項目「アドレス」は、チーム活動評価システム1にて各種パラメータを取得するリポジトリサーバ30のアドレス(URL)を示す情報であり、プロジェクトごとに作成されたリモートリポジトリのアドレスが格納されている。このアドレスにより、プロジェクトごとに共通するファイル名(README.txt等)を識別することが可能である。
項目「更新履歴情報」は、チーム活動評価システム1にて各種パラメータを取得する、リポジトリサーバ30に格納されているソースコードの更新履歴に関する情報であり、具体的には、項目「アクション」と、項目「作業者」と、項目「タイトル」と、項目「ソースコード」と、項目「作成日時情報」と、項目「更新日時情報」等を含む。この項目「更新履歴情報」は、GitHubにおけるソースコードのバージョン管理及びコメント等のアクション管理情報である。
項目「アクション」は、リポジトリサーバ30に格納されているソースコードに対するアクションの種類の情報である。
項目「作業者」は、リポジトリサーバ30に格納されているソースコードに対するアクションを行ったユーザそれぞれを識別する情報である。
項目「タイトル」は、当該アクションのもとになる案件、改修、修正等の名称を示す情報である。
項目「ソースコード」は、当該アクションを行ったソースコードのファイル名を示す情報である。
項目「作成日時情報」は、リポジトリサーバ30に格納されているソースコードに対するアクションを行った日時の情報である。
項目「更新日時情報」は、リポジトリサーバ30に格納されているソースコードに対してさらにアクションを行った日時の情報である。
サーバ20のリポジトリ管理モジュール2033は、リポジトリサーバ30からログ情報を取得することに伴って、リポジトリデータベース2021を更新する。
図5に示すように、個人パフォーマンスデータベース2022のレコードのそれぞれは、項目「構成員ID」と、項目「パフォーマンス詳細」等を含む。
項目「構成員ID」は、チーム活動評価システム1にてエンジニアチームの活動状況の提示を受ける、当該エンジニアチームに所属する構成員それぞれを識別する情報であり、リポジトリデータベース2021の項目「作業者」に対応している。
項目「パフォーマンス詳細」は、チーム活動評価システム1にてエンジニアチームの活動状況の提示を受ける、当該エンジニアチームに所属する構成員の、GitHubにおけるログ情報の各種パラメータから取得されたアクションに関する情報であり、具体的には、項目「リポジトリID」と、項目「アクション」と、項目「相手構成員ID」と、項目「値」等を含む。
項目「リポジトリID」は、当該エンジニアチームごとに設定されるリポジトリそれぞれを識別する情報であり、リポジトリデータベース2021の項目「リポジトリID」に対応している。
項目「アクション」は、当該エンジニアチームに所属する構成員が行った、リポジトリサーバ30に格納されているソースコードに対するアクションの種類の情報であり、リポジトリデータベース2021の項目「アクション」に対応している。
項目「相手構成員ID」は、当該エンジニアチームに所属する構成員が行った、リポジトリサーバ30に格納されているソースコードに対するアクションがレビュー、コメントのように相手がいる場合における相手の構成員を識別する情報であり、リポジトリデータベース2021の項目「作業者」に対応している。
項目「日付情報」は、リポジトリサーバ30に格納されているソースコードに対するアクションを行った日付の情報である。
サーバ20のパフォーマンス演算モジュール2034は、エンジニアチームに所属する構成員のパフォーマンスを示す個人スコアを演算することに伴って、個人パフォーマンスデータベース2022を更新する。
チームスコアデータベース2023のレコードのそれぞれは、項目「組織ID」と、項目「リポジトリID」と、項目「チーム構成員」と、項目「チーム詳細情報」等を含む。
項目「組織ID」は、チーム活動評価システム1にてエンジニアチームの活動状況の提示を受ける、当該エンジニアチームの上位項目であるエンジニアチームが所属する企業等の組織それぞれを識別する情報であり、リポジトリデータベース2021の項目「組織ID」に対応している。
項目「リポジトリID」は、チーム活動評価システム1にてリポジトリサーバ30から取得する各種パラメータの対象である、開発プロジェクト等のエンジニアチームそれぞれを識別する情報であり、リポジトリデータベース2021の項目「リポジトリID」に対応している。
項目「チーム構成員」は、チーム活動評価システム1にてエンジニアチームの活動状況の提示を受ける、当該エンジニアチームに所属する構成員それぞれを識別する情報であり、個人パフォーマンスデータベース2022の項目「構成員ID」に対応している。
項目「チーム詳細情報」は、チーム活動評価システム1にてエンジニアチームの活動状況の提示を受ける、当該エンジニアチームに関する情報であり、具体的には、項目「日付」と、項目「プルリクエスト数」と、項目「マージ数」と、項目「コミット数」と、項目「レビュー数」等を含む。なお、項目「プルリクエスト数」、項目「マージ数」、項目「コミット数」、項目「レビュー数」はGitHubにおける各種パラメータの例であり、他のパラメータが格納されてもよい。
項目「日付」は、当該エンジニアチームに関する活動状況を取得して1日ごとに集計した日付を示す情報である。
項目「プルリクエスト数」は、当該日付においてGitHubから取得した、当該エンジニアチームにおけるプルリクエスト数の情報である。
項目「マージ数」は、当該日付においてGitHubから取得した、当該エンジニアチームにおけるマージ数の情報である。
項目「コミット数」は、当該日付においてGitHubから取得した、当該エンジニアチームにおけるコミット数の情報である。
項目「レビュー数」は、当該日付においてGitHubから取得した、当該エンジニアチームにおけるレビュー数の情報である。
なお、「プルリクエスト数」、項目「マージ数」、項目「コミット数」、項目「レビュー数」はGitHubから取得した値そのものが格納されてもよく、所定の重み付けを行った値が格納されてもよい。
また、図示は省略するが、チームスコアデータベース2023には、アラート決定モジュール2036が決定したアラートの情報が格納されてもよい。
なお、パフォーマンス演算モジュール2034およびスコアリングモジュール2035が、リポジトリデータベース2021から取得したエンジニアチームの活動状況を集計し、提示モジュール2037でそのまま提示する処理とする場合、個人パフォーマンスデータベース2022、チームスコアデータベース2023は備えなくてもよい。個人パフォーマンスデータベース2022、チームスコアデータベース2023は、後述するようにエンジニアチームの活動状況を提示する日付、期間を変更しても即座に提示可能にするため、あらかじめ集計した値を格納している。
サーバ20のスコアリングモジュール2035は、エンジニアチームの活動状況を示すチームスコアを特定することに伴って、スコアリングモジュール2035を更新する。
<3 動作>
以下、図6および図7を参照しながら、第1の実施の形態におけるチーム活動評価システム1によるスコアリング処理およびチーム活動状況の提示処理について説明する。
以下、図6および図7を参照しながら、第1の実施の形態におけるチーム活動評価システム1によるスコアリング処理およびチーム活動状況の提示処理について説明する。
図6は、実施の形態1のチーム活動評価システム1によるスコアリング処理を行う流れの一例を示すフローチャートである。
ステップS111において、ユーザが端末装置10を操作して、GitHubのローカルリポジトリからリポジトリサーバ30のリモートリポジトリに対して、プッシュやコメント等のアクションを行うので、端末装置10の入力操作受付部171は当該アクションの指示を、ユーザから受け付ける。送受信部172は、受け付けたアクションの情報をサーバ20へ送信する。サーバ20は、アクションの情報を、通信部201を介して受け付ける。
ステップS112において、サーバ20のリポジトリ管理モジュール2033は、チームの各構成員について、リポジトリサーバ30に記録されているソースコードのプッシュ数、プルリクエスト数等の各種パラメータを取得するため、リポジトリサーバ30にアクセスして要求信号を送信する。リポジトリ管理モジュール2033は、リポジトリサーバ30から各種パラメータを、通信部201を介して取得する。
ステップS113において、サーバ20のパフォーマンス演算モジュール2034は、ステップS112で取得したGitHubの各種パラメータに基づき、エンジニアチームに所属する構成員のパフォーマンスを示す値(個人スコア)を演算する。
ステップS114において、サーバ20のスコアリングモジュール2035は、ステップS112で取得したGitHubの各種パラメータに基づき、エンジニアチームの活動状況を示すチームスコアを特定する。
ステップS115において、サーバ20のアラート決定モジュール2036は、ステップS114で特定したチームスコアの変動に基づき、ユーザに通知する、エンジニアチームの活動状況についてのアラートを決定する。
ステップS116において、サーバ20のリポジトリ管理モジュール2033は、ステップS112で取得した各種パラメータを、リポジトリデータベース2021へ格納する。パフォーマンス演算モジュール2034は、ステップS113で演算した個人スコアを、個人パフォーマンスデータベース2022へ格納する。スコアリングモジュール2035は、ステップS114で特定したチームスコアを、チームスコアデータベース2023へ格納する。アラート決定モジュール2036は、ステップS115で決定したアラートの情報を、チームスコアデータベース2023へ格納する。
以上のように、チーム活動評価システム1では、GitHubにおける成果物のログ情報である各種パラメータに基づき、各構成員の個人スコアを演算し、チームスコアを特定する。これにより、チームの活動状況を把握することが可能である。
図7は、実施の形態1のチーム活動評価システム1によるチーム活動状況の提示処理を行う流れの一例を示すフローチャートである。
ステップS211の処理を行う前提として、チーム活動評価システム1にサインインするためのユーザ登録を行う(図7において不図示)。端末装置10の入力操作受付部171は、チーム活動評価システム1にサインインするためのID(仮のものでもよい)、メールアドレスおよびパスワードの情報入力を、ユーザから受け付ける。送受信部172は、受け付けたユーザIDおよびパスワード、当該ユーザのエンジニアチームの情報をサーバ20へ送信する。サーバ20は、送信されたID、メールアドレスおよびパスワードを、通信部201を介して受け付けてユーザ情報の登録を行う。端末装置10の入力操作受付部171は、連携するサービスとしてGitHub、またはその他のサービスの選択を受け付け、当該サービスに登録されている組織(企業等)の選択、当該組織に紐づくエンジニアチーム、メンバ(構成員)、リポジトリの選択を受け付けてサーバ20へ送信する。サーバ20は、送信された各種選択情報を、通信部201を介して受け付けて選択情報の登録を行う。
ステップS211において、端末装置10の入力操作受付部171は、チーム活動評価システム1にサインインするための組織ID、メールアドレスおよびパスワードの情報の入力を、ユーザから受け付ける。送受信部172は、受け付けた組織ID、メールアドレスおよびパスワードの情報をサーバ20へ送信する。
ステップS221において、サーバ20は、組織ID、メールアドレスおよびパスワードを、通信部201を介して受け付けて所定の認証を行い、当該ユーザのサインインを受け付ける。
ステップS222において、サーバ20の提示モジュール2037は、当該ユーザが選択したエンジニアチームについて、ステップS114で特定したチームスコアを、チームスコアデータベース2023から読み出して取得する。なお、チームスコアを取得する際に、当該エンジニアチームの最新のチームスコアを特定して、取得することとしてもよい。
ステップS223において、サーバ20の提示モジュール2037は、ステップS115で決定したエンジニアチームの活動状況についてのアラートを、チームスコアデータベース2023から読み出して取得する。なお、アラートを取得する際に、当該エンジニアチームの最新のチームスコアからアラートを決定して、取得することとしてもよい。
ステップS224において、サーバ20の提示モジュール2037は、ステップS222で特定したチームスコア、およびステップS223で決定したアラートを、当該ユーザに提示するため、端末装置10へ通信部201を介して送信する。
ステップS214において、端末装置10の送受信部172は、サーバ20から送信された当該ユーザの所属するエンジニアチームのチームスコア、およびアラートを受け付ける。通知制御部174は、受け付けたチームスコア、およびアラートを、ディスプレイ132に表示させる。
以上のように、チーム活動評価システム1は、GitHubにおける成果物のログ情報である各種パラメータに基づき、エンジニアチームの時系列のチームスコアを特定する。これにより、チームの活動状況を把握することが可能である。
<4 画面例>
以下、図8ないし図19を参照しながら、チーム活動評価システム1によるチーム活動状況の提示処理の画面例について説明する。
以下、図8ないし図19を参照しながら、チーム活動評価システム1によるチーム活動状況の提示処理の画面例について説明する。
図8は、端末装置10に表示するサインイン画面の例を示す図である。図8の画面例は、エンジニアチームの活動状況の提示を受けるユーザがチーム活動評価システム1にサインインする際の画面例を示す。図7のステップS211に相当する。
図8に示すように、端末装置10のディスプレイ132には、GitHubによりエンジニアチームの活動状況の掲示を受けるため、当該エンジニアチームが所属する企業等の組織ID入力欄1031aと、登録されている当該ユーザのメールアドレス入力欄1031bと、当該ユーザのパスワード入力欄1031cと、ログインするためのログイン遷移ボタン1031dとが配置されている。
ユーザは、組織ID、メールアドレス、およびパスワードを、それぞれ組織ID入力欄1031a、メールアドレス入力欄1031b、および当該ユーザのパスワード入力欄1031cを入力し、画面遷移ボタン1031dを押下することで、サーバ20にログインする。その後、エンジニアチームの活動状況を表示する画面へ遷移する。
図9は、端末装置10に表示するチーム活動状況の表示画面例を示す図である。図9の画面例は、一定期間のチームスコアと、チームスコアの時系列の変化が表示された状態の画面例を示す。図7のステップS214に相当する。
図9に示すように、端末装置10のディスプレイ132には、エンジニアチームの活動状況を表示する指示操作に応答して、当該エンジニアチームの活動状況を特定した期間を表示する期間表示欄1032aと、エンジニアチームの活動状況(パフォーマンス)を示すチームスコアの内訳を表示するスコア表示欄1032bと、エンジニアチームの活動状況であるチームスコアの総合値およびその内訳の時系列の変化を示す時系列変化表示欄1032cと、当該エンジニアチームの活動状況を特定した期間の変更を受け付ける期間変更入力欄1032dが表示されている。
期間表示欄1032aに表示される期間は、スコア表示欄1032bに表示される各スコアを取得した期間の開始日及び終了日により示される期間であり、例として1週間の開始日及び終了日が表示されている。スコア表示欄1032bに表示されるスコアは、GitHubから取得した各種パラメータであり、例として、期間表示欄1032aに表示される期間における、イシュー作成数、プルリクエスト数、マージ数、コミット数、レビュー数が表示されている。一例として、図9においては期間表示欄1032aに記載された期間における各種パラメータと、一つ前の期間における各種パラメータとを比較し、その変動数を表示している。他にも特定の期間における各種パラメータの総数を表示してもよいし、ある時点から累積値が前回時点からどの程度増加しているのかを表示することとしてもよい。時系列変化表示欄1032cに表示される時系列変化は、各種パラメータの1週間ごとの変化を積み上げ棒グラフで表示したものであり、横軸が時系列の変化(例として1つの要素が1週間を示している)であり、縦軸がスコアの値を示している。時系列変化表示欄1032cの積み上げ棒グラフには、スコア表示欄1032bに表示されるパラメータと同様の要素として、イシュー作成数1032c1、プルリクエスト数1032c2、マージ数1032c3、コミット数1032c4、レビュー数1032c5の1週間ごとの変化が積み上げて表示され、合計値の変化も表示されている。図9の例では、6か月分の変化が表示されている。
また、期間表示欄1032aに表示される期間は、期間変更入力欄1032dの入力により変更することが可能に構成されている。たとえば、期間変更入力欄1032dは、所定の期間ごとにプルダウン選択が可能に構成されており、期間の選択により、当該期間が期間表示欄1032aに表示され、当該期間の各種パラメータがスコア表示欄1032bに表示される。また、時系列変化表示欄1032cは、期間変更入力欄1032dの入力により変更された期間からさかのぼった時系列の変化を表示してもよく、イシュー作成数1032c1、プルリクエスト数1032c2、マージ数1032c3、コミット数1032c4、およびレビュー数1032c5が示す値を変更して表示してもよい。さらに、期間表示欄1032aに表示される期間、期間変更入力欄1032dにより選択可能な期間も変更可能に構成してもよく、図9の例では1週間単位で表示しているが、この期間を1日ごと、10日ごと、1ケ月ごとのように変更可能にしてもよい。このような時系列変化表示欄1032cの表示により、ユーザは当該エンジニアチームの活動状況の変化を把握することが可能になる。
図10は、端末装置10に表示するプルリクエスト状況の表示画面例を示す図である。図10の画面例は、当該エンジニアチームにおけるソースコードのプルリクエストの状況が表示された画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
図10に示すように、端末装置10のディスプレイ132には、当該エンジニアチームにおけるアクティブな(なんらかの対応が行われている)プルリクエストを抽出し、その状況の例として、コメント数の多いプルリクエストの一覧が表示されている。具体的には、プルリクエストのタイトルを示すタイトル表示欄1033aと、当該プルリクエストの対応状態を示す状態表示欄1033bと、当該プルリクエストに対応するソースコードへのリンクを表示するリンク表示欄1033cと、当該プルリクエストを行った構成員を示す構成員表示欄1033dと、当該プルリクエストに対するコメント数を示すコメント数表示欄1033eと、当該プルリクエストに対する最終更新日を表示する更新日付表示欄1033fとが表示されている。
図10に示す画面には、例えばコメント数表示欄1033eに表示されているコメント数が多い順に、タイトル表示欄1033aに示すプルリクエストのタイトル、状態表示欄1033bに示す当該プルリクエストの対応状態等が表示されている。このような表示を行っているのは、例えば、レビューが活発に行われているプルリクエストを把握するために表示している。多数のコメントがされているプルリクエストは、活発な議論が行われているため良い傾向を示す場合もあるが、例えば特定の期間(1日)で大幅にコメント数が増加している場合には、レビュワーとレビュイーとの間で認識の齟齬が生じている等、なんらかの多数のコミュニケーションが必要であったことを示している場合もあり、良い/悪いを一概に判断することはできない。そのため、レビューが活発に行われたことを把握するためにこのような表示を行っている。例えば、コメント数の増加量が異常なペースの場合には、コメント数表示欄1033eの表示態様を変更(例えば、色彩を赤色にする)して表示してもよい。なお、図10に示すように、状態表示欄1033bを当該プルリクエストの対応状態に応じて表示態様(例えば、色彩を変更)を変更するように表示してもよい。
図11は、端末装置10に表示する他のチーム状況の表示画面例を示す図である。図11の画面例は、一定期間における当該エンジニアチームと、他のエンジニアチームとのチームスコアが表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
図11に示すように、端末装置10のディスプレイ132には、所定期間における、当該エンジニアチーム及び他のエンジニアチームを示すチーム名表示欄1034aと、それぞれのエンジニアチームの活動状況であるチームスコアの総合値およびその内訳を横棒グラフとして表現したグラフ表示欄1034bと、それぞれのエンジニアチームの活動状況を示すチームスコアの内訳を表示するスコア表示欄1034cと、当該期間の変更を受け付ける期間変更入力欄1034dとが表示されている。
スコア表示欄1034cに表示されるスコアは、GitHubから取得した各種パラメータであり、例として、イシュー作成数、プルリクエスト数、マージ数、コミット数、レビュー数が表示されている。グラフ表示欄1034bには、スコア表示欄1034cに表示されるスコアを右方向へ積み上げた横棒グラフが表示されている。また、期間変更入力欄1034dは、図9に示す期間変更入力欄1032dと同様に、表示されているグラフ表示欄1034bおよびスコア表示欄1034cの集計期間を、入力により変更することが可能に構成されている。グラフ表示欄1034bの表示により、それぞれのチームの活動状況が一目で把握され、横棒グラフの棒の長さによりチームの活動状況が活発であることを把握することが可能になる。
図12は、端末装置10に表示するリードタイムおよびプルリクエストの状況の表示画面例を示す図(a)と、図12(a)に示すダイアグラム表示欄1035dの他の表示例を示す図(b)である。図12の画面例は、エンジニアチームにおける成果物である、ソースコードに対するプルリクエスト(レビューの依頼)からクローズまでの期間を示すリードタイムと、プルリクエストがされたソースコードの推移と、リードタイムの時間推移が表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
図12(a)に示すように、端末装置10のディスプレイ132には、エンジニアチームの活動状況(チームスコア)として、当該エンジニアチームにおけるリードタイムの平均値を示すリードタイム表示欄1035aと、プルリクエストがされたソースコードに対する最初のコメントがされるまでの平均時間を示すコメント時間表示欄1035bと、レビューからクローズまでの平均時間を示すクローズ時間表示欄1035cと、プルリクエストがされたソースコードの推移を表示したダイアグラム表示欄1035dと、リードタイム、最初のコメントまでの時間、レビューからクローズまでの時間それぞれの移動平均時間を表示する移動平均表示欄1035eと、当該期間の変更を受け付ける期間変更入力欄1035fとが表示されている。リードタイム表示欄1035a、コメント時間表示欄1035b、クローズ時間表示欄1035cに表示される平均時間は、当該エンジニアチームにおける所定期間(例えば、3週間)のそれぞれの値の平均値である。
ダイアグラム表示欄1035dに表示される推移の情報は、プルリクエストがされたソースコードが、プルリクエストされてからクローズ又は放置されている状態までどのような推移をしているかを示すものである。より具体的には、プルリクエストされた状態(ステータス)から、その後レビューを受けた状態、レビューに対する応答がされた状態、マージされてクローズした状態、却下されてクローズした状態、およびクローズされずにそのまま放置された状態のうちいずれのステータスに推移していったかを、サンキーダイアグラムと呼ばれる手法により表現したものである。例えば、左側の長方形1035d1は、プルリクエストがされたソースコードの件数を縦方向の長さで示しており、長方形1035d2は、プルリクエストがされたソースコードのうち、レビューがされた状態に推移したソースコードの件数を縦方向の長さで示している。すなわち、長方形1035d1が示す件数と、長方形1035d2が示す件数との差分は、レビューがされていないソースコードの件数を示しており、レビューがされずに放置されているソースコードと、レビューがされることなくクローズされたソースコードが含まれる。また、それぞれの長方形を結ぶ曲線は、上記のようなステータスの推移を示している。なお、その後のステータスについても同様である。さらに、それぞれの長方形や曲線にマウスポインタを重ねることでそれぞれの長方形や曲線が示す属性や件数を表示する(ロールオーバー)ように構成してもよい。ダイアグラム表示欄1035dに表示されるプルリクエスト(レビュー依頼)されたソースコード(成果物)の推移の情報により、エンジニアチームにおける活動状況として、成果物に対するその後の処理(レビュー等)が適切に行われているかを一目で把握することが可能である。
移動平均表示欄1035eに表示される移動平均時間は、当該エンジニアチームにおける所定期間(例えば、3週間)の、それぞれの時間の移動平均時間を棒グラフ及び近似曲線で示したものであり、縦軸が件数、横軸が時間の経過(時系列)を示している。移動平均を算出する区間については、種々設定することが可能だが、例えば、エンジニア業務の曜日ごとの変動を除外するため、7日ごとの移動平均を算出することが望ましい。ただし、より長期的な視点で推移を確認する場合には、3週間ごとの移動平均を設定することなどが望ましい。なお、リードタイム表示欄1035a、コメント時間表示欄1035b、クローズ時間表示欄1035cに表示される平均時間、ダイアグラム表示欄1035dに表示される推移の情報、および移動平均表示欄1035eに表示される移動平均時間を修正した所定期間は、時期および期間を変更可能に構成してもよい。また、期間変更入力欄1035fは、図9に示す期間変更入力欄1032dと同様に、表示されているリードタイム表示欄1035a、コメント時間表示欄1035b、クローズ時間表示欄1035c、ダイアグラム表示欄1035dおよび移動平均表示欄1035eの集計期間を、入力により変更することが可能に構成されている。リードタイム表示欄1035a、コメント時間表示欄1035b、クローズ時間表示欄1035cに表示される平均時間により、エンジニアチームにおける活動状況として、成果物に対するその後の処理(レビュー等)が行われるまでの時間、その後の時間を一目で把握することが可能であり、移動平均表示欄1035eに表示される移動平均時間によりその時系列の推移を把握することが可能になる。
また、図12(b)に示すように、ダイアグラム表示欄1035dに表示される推移の情報を、特定の要素のみ離隔させて表示し、その状態を把握しやすいように表示してもよい。図12(b)の例では、当該期間においてマージされた状態のソースコードの件数を示す右側の長方形1035d3と、当該期間において却下されてクローズされた状態のソースコードの件数を示す右側の長方形1035d4と、当該期間において放置された状態のソースコードの件数を示す右側の長方形1035d5とが表示され、放置の件数を示す長方形1035d5のみを、右下方向へ離隔させて表示している。離隔させる要素は複数でもよく、それぞれの長方形をマウスでクリック等することで選択可能に構成してもよい。このような構成により、エンジニアチームにおける活動状況として、特定の状態(放置。離脱等)にある成果物を一目で把握することが可能である。
図13は、端末装置10に表示するプルリクエストタイプの状況の表示画面例を示す図である。図13の画面例は、エンジニアチームにおける、プルリクエスト(レビューの依頼)に対するコメント数と、マージ・クローズまでの時間との関係が散布図として表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
図13に示すように、端末装置10のディスプレイ132には、所定期間におけるエンジニアチームの活動状況として、散布図1036aが表示されている。散布図1036aは、縦軸が各プルリクエストに対するコメント数を示し、横軸が各プルリクエストのリードタイム(図中はマージクローズ時間と記載)が示しており、チーム内の所定期間における各プルリクエストをプロットしたものである。例えば、図13の点1036bが示すプルリクエストは、コメント数が16で、リードタイムが1.6時間であったことを示している。また、当該所定期間の変更を受け付ける期間変更入力欄1036eが表示されている。なお、散布図1036aは、点1036bにマウスポインタを重ねることでそれぞれの点が示すコメント数およびマージ・クローズ時間を表示する(ロールオーバー)ように構成してもよく、マウスでクリック等することで、後述する図14で示すように当該プルリクエストの状態を示す画面に遷移するように構成してもよい。さらに、散布図1036aは、目盛線で囲まれた所定の枠1036cを選択し、(外れ値を把握するために)要素である点を選択可能に構成してもよい。また、所定の枠1036cを選択する際、1つの枠1036cを選択可能に構成してもよく、複数の枠1036cを(例えば、ドラッグして選択する操作や、シフトキーを押下しながら選択する等の操作により)選択可能に構成してもよい。さらに、あるエンジニアチームのコメント数、マージ・クローズまでの時間の統計的手法による代表値(例えば、平均値、中央値等)を設定しこれよりもコメント数やリードタイムが小さい領域を、枠1036dに示すように表示態様を変更(例えば、色彩を変更等)して表示するように構成してもよい。散布図1036aにより、コメント数と、マージ・クローズまでの時間との関係がどのように分布しているか、その中でも外れ値がどれかを一目で把握することが可能である。
図14は、端末装置10に表示するプルリクエストの状態の表示画面例を示す図である。図14の画面例は、エンジニアチームにおける、プルリクエストの状態が一覧形式で表示された状態の画面例を示すものであり、例えば図13の点1036bをクリック等により選択することにより表示される。
図14に示すように、端末装置10のディスプレイ132には、当該プルリクエストの対象であるソースコードのタイトル表示欄1037aと、ソースコードのファイル名表示欄1037bと、当該ソースコードに対するアクション表示欄1037cと、当該アクションが行われた日付表示欄1037dと、当該アクションを行った構成員表示欄1037eとが表示されている。アクション表示欄1037c、日付表示欄1037d、および構成員表示欄1037eは、例えば個人パフォーマンスデータベース2022から取得される履歴情報である。このような構成により、プルリクエスト(ソースコード)ごとに状況を一目で把握することが可能である。
図15は、端末装置10に表示するレビュー実施状況の表示画面例を示す図である。図15の画面例は、エンジニアチームにおけるレビュー実施率、レビューに対する応答率、およびレビュイーとレビュワーとの関係を示す図が表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
図15に示すように、端末装置10のディスプレイ132には、所定の期間におけるエンジニアチームの活動状況として、当該エンジニアチームにおけるレビュー率を示すレビュー率表示欄1038aと、レビューに対する応答率を示す応答率表示欄1038bと、レビューを依頼するレビュイーとレビューの依頼を受けるレビュワーとの関係を示す関係図表示欄1038cとが表示されている。関係図表示欄1038cは、レビューを依頼するレビュイーが、誰に対してレビューを依頼してレビューを行っているかの関係を示す図であり、例えば、プルリクエストを行ったレビュイーを表示するレビュイー表示欄1038dと、レビュー依頼を受けたレビュワーを表示するレビュワー表示欄1038eと、レビュイー表示欄1038dとレビュワー表示欄1038eとの関係を示す関係表示線1038fとが表示されている。また、当該所定の期間の変更を受け付ける期間変更入力欄1038gが表示されている。なお、レビュイー表示欄1038dおよびレビュワー表示欄1038eの枠の横方向の長さは、レビューの件数を示している。さらに、関係図表示欄1038cは、特定のレビュイー表示欄1038dおよびレビュワー表示欄1038eを選択することにより、選択したレビュイー表示欄1038dまたはレビュワー表示欄1038eに関係する関係表示線1038fのみが表示されるように構成してもよい。
レビュー率表示欄1038aおよび応答率表示欄1038bにより、当該エンジニアチームにおけるレビュー実施状況を一目で把握することが可能である。また、関係図表示欄1038cにより、レビュイーとレビュワーとの関係、レビューの負荷状況を一目で把握することが可能である。
図16は、端末装置10に表示するアラート情報の表示画面例を示す図である。図16の画面例は、一定期間のチームスコアの変動に基づいて決定されたアラートが表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
図16に示すように、端末装置10のディスプレイ132には、アラート情報の重要度を示す重要度表示欄1039aと、エンジニアチームの活動状況から決定されたアラートを表示するアラート表示欄1039bと、当該アラートの根拠となる情報へのリンクを表示する根拠リンク表示欄1039cと、当該アラートを決定した日付を表示する日付表示欄1039dとが表示されている。
重要度表示欄1039aには、アラート表示欄1039bに表示されるアラートの内容の重要度を示す絵や図柄が、例えば重要度が高い場合に赤色に表示される。アラート表示欄1039bには、チームスコアの変動に基づくアラートが表示されるが、チームスコアの変動以外の要素に基づくアラート(例えば、プルリクエストがされてから一定期間以上経過していること、納期が迫っていること)が表示されてもよい。このようなアラート表示欄1039bの表示により、ユーザは当該エンジニアチームの活動状況について注意すべき事柄を把握することが可能になる。
図17は、端末装置10に表示する構成員のパフォーマンス表示画面例を示す図である。図17の画面例は、一定期間のチームスコアの変動に対応する、エンジニアチームに所属する特定の構成員のパフォーマンスを示す値が表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
図17に示すように、端末装置10のディスプレイ132には、当該構成員のパフォーマンスを演算した期間を表示する期間表示欄1040aと、当該構成員の活動状況(パフォーマンス)を示す個人スコアの内訳を表示するスコア表示欄1040bと、当該構成員の個人スコアの総合値およびその内訳の時系列の変化を示す時系列変化表示欄1040cとが表示されている。また、当該構成員のパフォーマンスを演算した期間の変更を受け付ける期間変更入力欄1040dが表示されている。
期間表示欄1040aに表示される期間は、時系列変化表示欄1040cに表示される個人スコアを取得した期間の開始日及び終了日により示される期間であり、例として6ケ月の開始日及び終了日が表示されている。時系列変化表示欄1040cに表示される時系列変化は、各種パラメータの1週間ごとの変化を積み上げ棒グラフで表示したものであり、横軸が時系列の変化(例として1つの要素が1週間を示している)であり、縦軸がスコアの値を示している。時系列変化表示欄1040cの積み上げ棒グラフには、スコア表示欄1040bに表示されるパラメータと同様の、イシュー作成数、プルリクエスト数、マージ数、コミット数、レビュー数の1週間ごとの変化が表示され、合計値の変化も表示されている。なお、合計値ではなくある時点から累積値がどの程度変化したかを表示することとしてもよい。このような時系列変化表示欄1040cの表示により、ユーザは当該構成員の活動状況の変化を把握することが可能になり、エンジニアチームの活動状況の変化と対応付けて把握することが可能になる。
図18は、端末装置10に表示する構成員のプルリクエスト状況の表示画面例を示す図である。図18の画面例は、当該構成員によるソースコードのプルリクエストの状況が表示された画面例を示すものであり、例えば図17の画面例からスクロールまたは別途画面遷移させることにより表示される。
図18に示すように、端末装置10のディスプレイ132には、当該構成員によるソースコードのプルリクエストの状況として、例えば、一定期間以上プルリクエストがなされた状態、すなわちレビュー依頼がなされたままレビューが行われていない(放置された状態の)ソースコードの一覧が表示されている。具体的には、ソースコードを示すソースコード表示欄1041aと、当該ソースコードの状態の根拠となる情報へのリンクを表示する根拠リンク表示欄1041bと、当該ソースコードに対してプルリクエストを行った日付を表示する日付表示欄1041cとが表示されている。また、当該構成員のパフォーマンスを演算した期間の変更を受け付ける期間変更入力欄1041dが表示されている。
ソースコード表示欄1041aには、一定期間以上プルリクエストがなされた状態のソースコードが表示され、その状態の確認手段として、根拠リンク表示欄1041bが表示されている。例えば、ソースコードに対してプルリクエストがなされてから一定期間が経過すると、エンジニアチームにおけるソースコードの着手から納品までの期間を示すリードタイムに影響するため、リードタイムが長い場合に当該画面でレビューの状況を確認するために当該画面表示が使用される。このようなソースコード表示欄1041aにより、個々の成果物に対する空白期間を把握することが可能になる。
図19は、端末装置10に表示するチーム活動状況のチーム比較の表示画面例を示す図である。図19の画面例は、一定期間のチームスコアの変動に対応する、他のエンジニアチームのチームスコアの変動と比較可能に表示された状態の画面例を示すものであり、例えば図9の画面例からスクロールまたは別途画面遷移させることにより表示される。
図19に示すように、端末装置10のディスプレイ132には、当該エンジニアチームの活動状況を特定した期間を表示する期間表示欄1042aと、当該エンジニアチームの活動状況であるチームスコアの総合値およびその内訳の時系列の変化を示す時系列変化表示欄1042bと、比較対象である他のエンジニアチームの活動状況であるチームスコアの総合値およびその内訳の時系列の変化を示す時系列変化表示欄1042cとが表示されている。また、当該エンジニアチームの活動状況を特定した期間の変更を受け付ける期間変更入力欄1042dが表示されている。
期間表示欄1042aに表示される期間は、時系列変化表示欄1042bおよび時系列変化表示欄1042cに表示されるチームスコアを取得した期間の開始日及び終了日により示される期間であり、例として6ケ月の開始日及び終了日が表示されている。時系列変化表示欄1042bおよび時系列変化表示欄1042cに表示される時系列変化は、同一期間における各種パラメータの1週間ごとの変化を積み上げ棒グラフで表示したものであり、横軸が時系列の変化(例として1つの要素が1週間を示している)であり、縦軸がスコアの値を示している。時系列変化表示欄1042bおよび時系列変化表示欄1042cの積み上げ棒グラフには、図9に示す時系列変化表示欄1032cに対応して、イシュー作成数、プルリクエスト数、マージ数、コミット数、レビュー数の1週間ごとの変化が表示され、合計値の変化も表示されている。なお、当該エンジニアチームまたは比較対象である他のエンジニアチームの各種パラメータが一部期間しか存在しない場合、一部の期間のみが表示されるように構成してもよく、両者の時系列の情報は、必ずしも同時期である必要はない。このような時系列変化表示欄1042bおよび時系列変化表示欄1042cの表示により、ユーザはエンジニアチームの活動状況の変化を、他のチームと比較することで把握することが可能になる。なお、他のチームとの比較を行う項目やグラフに関しては図19に示すものに限らず、これまでに説明した各種チームスコアやグラフのいずれに関しても、他のチームについて同様のチームスコアやグラフを作成し、比較することが可能である。
<小括>
以上のように、本実施形態によると、GitHubにおける成果物のログ情報である各種パラメータに基づき、各構成員の個人スコアを演算することでチームスコアが特定され、チームスコアと各種パラメータが提示される。そのため、エンジニアチームとしての活動状況(パフォーマンス)を適切に把握することが可能になる。これにより、エンジニアチームの運営を改善するきっかけを提供することができ、チーム組織の状況に応じて、必要な人材を供給することが可能になる。
以上のように、本実施形態によると、GitHubにおける成果物のログ情報である各種パラメータに基づき、各構成員の個人スコアを演算することでチームスコアが特定され、チームスコアと各種パラメータが提示される。そのため、エンジニアチームとしての活動状況(パフォーマンス)を適切に把握することが可能になる。これにより、エンジニアチームの運営を改善するきっかけを提供することができ、チーム組織の状況に応じて、必要な人材を供給することが可能になる。
また、エンジニアチームとしての活動状況と共に、エンジニアチームの活動状況の変動に基づき、活動状況についてのアラートが決定され、ユーザに提示される。そのため、エンジニアチームの活動状況について注意すべき事柄を、エンジニアチームとしての活動状況に対応付けて把握することが可能になる。これにより、エンジニアチームの活動状況の変動の原因を特定することに資することが可能になるため、エンジニアチームの運営を改善する具体案を検討することが可能になる。
また、エンジニアチームとしての活動状況と共に、エンジニアチームに所属する構成員のパフォーマンスも演算され、ユーザに提示される。そのため、エンジニアチームとしての活動状況を、構成員のパフォーマンスに対応付けて把握することが可能になる。これにより、特定の構成員がボトルネックとなっていること、特定の構成員と他の特定の構成員とのレビューがボトルネックとなっていることを把握することが可能になる。
さらに、エンジニアチームとしての活動状況と共に、他のエンジニアチームとしての活動状況と比較可能にユーザに提示される。そのため、エンジニアチームとしての活動状況を、他のチームと比較することで把握することが可能になる。これにより、エンジニアチームとしての活動状況をより客観的に把握することが可能になる。
<第2の実施の形態>
以下、チーム活動評価システム1の他の実施の形態について説明する。
以下、チーム活動評価システム1の他の実施の形態について説明する。
<1 チーム活動評価システム1の全体構成>
図20は、実施の形態2のチーム活動評価システム1を構成するサーバ20の機能的な構成を示す図である。第2の実施の形態におけるチーム活動評価システム1の全体の構成、端末装置10の構成は、第1の実施の形態と同様であるので、繰り返して説明しない。サーバ20の構成については、図20に示すように、新たにエンジニアデータベース2024を記憶し、レコメンドモジュール2038の機能を備える以外、第1の実施の形態と同様である。以下、第2の実施の形態におけるエンジニアデータベース2024、レコメンドモジュール2038の機能について説明する。
図20は、実施の形態2のチーム活動評価システム1を構成するサーバ20の機能的な構成を示す図である。第2の実施の形態におけるチーム活動評価システム1の全体の構成、端末装置10の構成は、第1の実施の形態と同様であるので、繰り返して説明しない。サーバ20の構成については、図20に示すように、新たにエンジニアデータベース2024を記憶し、レコメンドモジュール2038の機能を備える以外、第1の実施の形態と同様である。以下、第2の実施の形態におけるエンジニアデータベース2024、レコメンドモジュール2038の機能について説明する。
エンジニアデータベース2024は、チーム活動評価システム1においてリポジトリサーバ30から取得した、他のチームに関する各種情報を、例えば異動を希望するエンジニアの情報として本人の了承のもと保持するためのデータベースである。また、エンジニアデータベース2024は、いわゆる転職プラットフォームに登録された転職を希望するエンジニアの情報についても、本人の了承のもと保持することとしてもよい。詳細は後述する。なお、エンジニアデータベース2024は、レコメンドモジュール2038の機能を実現するための必須の構成ではなく、他のシステム等から連携を受けたエンジニアに関する情報をレコメンドモジュール2038でレコメンドする構成にしてもよい。
レコメンドモジュール2038は、提示モジュール2037により活動状況の提示を受けたエンジニアチームユーザについて、エンジニアチームの活動状況の変動の原因、改善案のいずれかまたは両方をユーザへ抽出して提示(レコメンド)する処理を制御する。このとき、レコメンドモジュール2038は、チームスコアデータベース2023に格納されている各種パラメータについて解析を行い、解析結果を出力し、この結果に基づいて変動の原因または改善案の提示を行う。例えば、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報(作成コード数、プッシュ数等)、成果物についてエンジニアチームの構成員がレビューを行った情報(レビュー数、コメント数等)のいずれかまたは両方について、減少したパラメータ、原因となるタスク、アクション、構成員について提示し、担当する構成員の変更、新たな構成員のアサイン等をユーザに提示してレコメンドしてもよい。
例えば、特定の構成員の成果を示す個人スコアが停滞(変動)しており、エンジニアチームの活動状況にも影響している場合、当該特定の構成員が担当する成果物(ソースコード等)が当該特定の構成員のスキルとマッチしていない、不得手である等の原因が考えられる。そのため、レコメンドモジュール2038は、当該特定の構成員が担当する成果物(ソースコード等)の変更を、ユーザに提示してもよい。また、特定の構成員同士のレビュー情報を示す個人スコアが停滞しており、エンジニアチームの活動状況にも影響している場合、当該特定の構成員同士の相性が悪い、コミュニケーションに難がある等の原因が考えられる。そのため、レコメンドモジュール2038は、当該特定の構成員同士のレビュー関係(レビュワー、レビュイー)の変更を、ユーザに提示してもよい。
さらに、ソースコードのプッシュ数、プルリクエスト数は停滞していないが、レビュー数、コメント数が停滞しているような場合、レビューを行う者が不足していることが考えられる。そのため、レコメンドモジュール2038は、エンジニアチーム外のエンジニアである他の構成員の参画をユーザに提示してもよい。このとき、レコメンドモジュール2038は、エンジニアデータベース2024に格納されているエンジニアの成果を示す情報(値)とマッチングを行い、適応可能か否かを判定し、エンジニアチームに適応可能と判定した場合にエンジニアをユーザにレコメンドする。エンジニアチームに適応可能かどうかの判定を行う一例としては、チームパフォーマンス活動状況から所定の判定基準を選択し、選択された判定基準を満たすエンジニアを、エンジニアデータベース2024に登録されている他のチームのエンジニアや、転職プラットフォームに登録されているエンジニアの中から抽出することで可能となる。具体的には、エンジニア活動状況として、レビューが定常的に停滞していることをプルリクエストのリードタイムなどから検知した場合には、レビューに関する判定基準(例えば、所定期間内のレビュー数が所定の閾値以上など)を選択し、当該判定基準を満たすエンジニアを抽出し、レコメンドする。他の例としては、チーム内のプルリクエスト全体の数が低下していることを検知した場合には、プルリクエストに関する判定基準(例えば、所定期間内のプルリクエスト数が所定の閾値以上など)を選択し、当該判定基準を満たすエンジニアを抽出し、レコメンドする。
<2 データ構造>
図21は、サーバ20が記憶するエンジニアデータベース2024のデータ構造を示す図である。
図21は、サーバ20が記憶するエンジニアデータベース2024のデータ構造を示す図である。
図21に示すように、エンジニアデータベース2024のレコードのそれぞれは、項目「エンジニアID」と、項目「自己申告スキル」と、項目「スコア情報」と、項目「パフォーマンス詳細」等を含む。なお、項目「自己申告スキル」および項目「スコア情報」については、図5に示す個人パフォーマンスデータベース2022の同盟項目と同様であるため、説明を省略する。
項目「エンジニアID」は、チーム活動評価システム1にてレコメンドされる、エンジニアそれぞれを識別する情報である。
項目「パフォーマンス詳細」は、チーム活動評価システム1にてエンジニアチームの活動状況の提示を受ける、当該エンジニアチームに所属する構成員の、GitHubにおけるログ情報の各種パラメータから取得されたアクションに関する情報であり、具体的には、項目「チームID(所属)」と、項目「アクション」と、項目「相手構成員ID」と、項目「値」等を含む。なお、項目「アクション」、項目「相手構成員ID」、および項目「値」については、図5に示す個人パフォーマンスデータベース2022の同盟項目と同様であるため、説明を省略する。
項目「チームID(所属)」は、当該エンジニアチームそれぞれを識別する情報である。
レコメンドモジュール2038は、他の構成員の参画をユーザに提示してレコメンドする場合、エンジニアデータベース2024の項目「パフォーマンス詳細」を参照してマッチングを行い、適切なエンジニアをユーザにレコメンドする。
<3 動作>
第2の実施の形態における動作は、第1の実施の形態と同様であるので、繰り返して説明しない。
第2の実施の形態における動作は、第1の実施の形態と同様であるので、繰り返して説明しない。
<4 画面例>
以下、図22を参照しながら、チーム活動評価システム1によるエンジニアのレコメンド処理の画面例について説明する。
以下、図22を参照しながら、チーム活動評価システム1によるエンジニアのレコメンド処理の画面例について説明する。
図22は、端末装置10に表示するエンジニアのレコメンド表示の画面例を示す図である。図22の画面例は、レコメンドするエンジニアの個人スコアと、当該エンジニアのパフォーマンスの情報が表示された状態の画面例を示す。
図22に示すように、端末装置10のディスプレイ132には、エンジニアチームの活動状況を表示する指示操作に応答して、図22に示す個人スコア表示欄1043aと、当該エンジニアのパフォーマンスを示す個人スコアの内訳を表示するスコア表示欄1043bと、当該エンジニアに対してオファーをする場合に押下するオファーボタン1043cが表示されている。ユーザは、当該エンジニアについて、スコア表示欄1043bに表示されているスコアを参照し、当該エンジニアに対してアサインするか否かを決定する。アサインすると決定した場合、ユーザがオファーボタン1043cを押下するので、当該エンジニアに通知される。このような構成により、適切なエンジニアに対してアサインすることが可能になる。
<小括>
以上のように、本実施形態によると、エンジニアチームの活動状況の各種パラメータについて改善案をレコメンドする。例えば、特定の構成員に対するレコメンド、新たな構成員のアサインをレコメンドする。これにより、エンジニアチームの活動状況の改善案を把握することが可能になる。
以上のように、本実施形態によると、エンジニアチームの活動状況の各種パラメータについて改善案をレコメンドする。例えば、特定の構成員に対するレコメンド、新たな構成員のアサインをレコメンドする。これにより、エンジニアチームの活動状況の改善案を把握することが可能になる。
以上、開示に係る実施形態について説明したが、これらはその他の様々な形態で実施することが可能であり、種々の省略、置換および変更を行なって実施することができる。これらの実施形態および変形例ならびに省略、置換および変更を行なったものは、特許請求の範囲の技術的範囲とその均等の範囲に含まれる。
<付記>
以上の各実施形態で説明した事項を、以下に付記する。
以上の各実施形態で説明した事項を、以下に付記する。
(付記1)プロセッサ29と、記憶部202とを備えるコンピュータに実行させるためのプログラムであって、プログラムは、プロセッサに、エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物についてエンジニアチームの構成員が行ったレビュー情報と、の履歴に基づいて、前記エンジニアチームの活動状況を表すパラメータを特定するステップ(S114)と、パラメータをユーザに提示するステップ(S224)と、を実行させる、プログラム。
(付記2)パラメータを特定するステップにおいて、成果物をオンライン上にアップロードした情報、および成果物についてエンジニアチームの構成員により行ったレビュー情報を、エンジニアチームの成果物であるソースコードを管理するソースコードホスティングサービスから取得する、(付記1)に記載のプログラム。
(付記3)パラメータを特定するステップにおいて、パラメータを、エンジニアチームの各構成員が行った成果を示す値に基づいて特定する、(付記1)または(付記2)に記載のプログラム。
(付記4)パラメータを、ユーザが指定した所定の期間における、エンジニアチームの各構成員が行った成果を示す値を積み上げて特定する、(付記3)に記載のプログラム。
(付記5)成果物をオンライン上にアップロードした情報として、エンジニアチーム内のプロジェクトにおける成果物を管理する管理手段に対するアップロード数、作成コード数、修正コード数、レビュー依頼数、レビュー結果を確定させる統合数のいずれかまたは複数を取得する、(付記1)から(付記4)のいずれかに記載のプログラム。
(付記6)パラメータを提示するステップにおいて、アップロード数、作成コード数、修正コード数、レビュー依頼数、統合数のいずれかまたは複数を、時系列の情報としてユーザに提示する、(付記5)に記載のプログラム。
(付記7)作成コード数及び修正コード数に係る作成コード及び修正コードの難易度、もしくは重要度に基づいて重み付けを行い、パラメータを特定し、または、作成後に所定の期間経過後、残存しているコード数を含む履歴に基づき、パラメータを特定する、(付記5)または(付記6)に記載のプログラム。
(付記8)成果物についてエンジニアチームの構成員により行ったレビュー情報として、管理手段に対するレビュー数、コメント数、コメント回答数のいずれかまたは複数を取得する、(付記1)から(付記7)のいずれかに記載のプログラム。
(付記9)レビュー数、コメント数、コメント回答数のいずれかまたは複数を、時系列の情報としてユーザに提示する、(付記8)に記載のプログラム。
(付記10)プログラムは、プロセッサに、さらに、パラメータとして、エンジニアチームにおけるレビューの依頼からクローズまでの期間を示すリードタイムを取得してユーザに提示する、(付記1)から(付記9)のいずれかに記載のプログラム。
(付記11)プログラムは、プロセッサに、さらに、エンジニアチームの活動状況として、エンジニアチームにおいてレビューの依頼がされた成果物の推移を示す内訳を取得してユーザに提示する、(付記1)から(付記10)のいずれかに記載のプログラム。
(付記12)プログラムは、プロセッサに、さらに、エンジニアチームの活動状況として、エンジニアチームにおいてレビューの依頼がされた成果物に対するコメント数と、エンジニアチームにおけるレビューの依頼からクローズまでの期間を示すリードタイムとの関係を取得してユーザに提示する、(付記1)から(付記11)のいずれかに記載のプログラム。
(付記13)プログラムは、プロセッサに、さらに、エンジニアチームの活動状況として、エンジニアチームにおけるレビューを依頼するレビュイーとレビューの依頼を受けるレビュワーとの関係を取得してユーザに提示する、(付記1)から(付記12)のいずれかに記載のプログラム。
(付記14)プログラムは、プロセッサに、さらに、エンジニアチームに所属する構成員の成果を示す値を演算するステップを実行させ、特定のエンジニアチームに所属する構成員の成果を示す値を提示する、(付記1)から(付記13)のいずれかに記載のプログラム。
(付記15)エンジニアチームに所属する構成員の成果を示す値として、エンジニアチーム内のプロジェクトにおける成果物を管理する管理手段に対するアップロード数、作成コード数、修正コード数、レビュー依頼数、レビュー結果を確定させる統合数のいずれかまたは複数を演算して取得する、(付記14)に記載のプログラム。
(付記16)プログラムは、プロセッサに、さらに、パラメータの所定の期間における変動に基づき、アラートを通知するステップを実行させる、(付記1)から(付記15)のいずれかに記載のプログラム。
(付記17)パラメータの所定の期間における値が、パラメータの他の期間の値に基づく外れ値であることを検知し、検知した外れ値に基づき、または特定のエンジニアチームに所属する構成員の成果を示す値の変動に基づき、アラートを通知する、(付記16)に記載のプログラム。
(付記18)特定のエンジニアチームに所属する構成員の成果を示す値として、エンジニアチーム内のプロジェクトにおける当該構成員のアップロード数、コメント数、レビュー着手までの期間、当該構成員と他の構成員とのレビュー数、レビュー時間、コメント数のいずれかまたは複数の変動を検知し、変動に基づくアラートを通知する、(付記17)に記載のプログラム。
(付記19)パラメータの所定の期間における変動に基づき、エンジニアチームの活動状況の変動の原因、改善案のいずれかまたは両方を抽出して提示する、(付記16)から(付記18)のいずれかに記載のプログラム。
(付記20)パラメータの変動の原因として、エンジニアチームの履歴から、当該所定の期間において、減少した成果物をオンライン上にアップロードした情報、エンジニアチームの構成員により行ったレビュー情報のいずれかまたは両方を提示する、(付記19)に記載のプログラム。
(付記21)エンジニアチームの履歴の解析を行い、当該所定の期間におけるパラメータの変動の原因となるタスク、アクション、エンジニアチームに所属する構成員のいずれかまたは複数を検知して提示する、(付記19)または(付記20)に記載のプログラム。
(付記22)プログラムは、プロセッサに、さらに、エンジニアチーム外のエンジニアの成果を示す値を取得するステップと、エンジニアチーム外のエンジニアの成果を示す値と、エンジニアチームの履歴とをマッチングし、エンジニアチーム外のエンジニアがエンジニアチームに適応可能か否かを判定するステップと、エンジニアチーム外のエンジニアがエンジニアチームに適応可能と判定した場合、改善案として、エンジニアチーム外のエンジニアのエンジニアチームへの参画を提示するステップと、を実行させる、(付記19)から(付記21)のいずれかに記載のプログラム。
(付記23)プログラムは、プロセッサに、さらに、パラメータを時系列の情報と関連付けて、他のエンジニアチームの活動状況を表すパラメータを時系列の情報と関連付けて比較可能に提示するステップを実行させる、(付記1)から(付記22)のいずれかに記載のプログラム。
(付記24)パラメータとともに、リードタイムを基準とし、他のエンジニアチームと比較可能に提示する、(付記23)に記載のプログラム。
(付記25)制御部と、記憶部とを備える情報処理装置であって、制御部は、エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物についてエンジニアチームの構成員により行ったレビュー情報と、の履歴に基づいて、エンジニアチームの活動状況を表すパラメータを特定するステップと、パラメータをユーザに提示するステップと、を実行する、情報処理装置。
(付記26)プロセッサと、記憶部とを備えるコンピュータにより実行されるための方法であって、方法は、プロセッサが、エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物についてエンジニアチームの構成員により行ったレビュー情報と、の履歴に基づいて、エンジニアチームの活動状況を表すパラメータを特定するステップと、パラメータをユーザに提示するステップと、を実行する、方法。
10 端末装置、20 サーバ、80 ネットワーク、130 操作受付部、161 ユーザ情報、22 通信IF、23 入出力IF、25 メモリ、26 ストレージ、29 プロセッサ、201 通信部、202 記憶部、2021 リポジトリデータベース、2022 個人パフォーマンスデータベース、2023 チームスコアデータベース、2024 エンジニアデータベース、203 制御部
Claims (26)
- プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、
前記プログラムは、前記プロセッサに、
エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物について前記エンジニアチームの構成員が行ったレビュー情報と、の履歴に基づいて、前記エンジニアチームの活動状況を表すパラメータを特定するステップと、
前記パラメータをユーザに提示するステップと、を実行させる、プログラム。 - 前記パラメータを特定するステップにおいて、前記成果物をオンライン上にアップロードした情報、および前記成果物について前記エンジニアチームの構成員により行ったレビュー情報を、前記エンジニアチームの成果物であるソースコードを管理するソースコードホスティングサービスから取得する、請求項1に記載のプログラム。
- 前記パラメータを特定するステップにおいて、前記パラメータを、前記エンジニアチームの各構成員が行った成果を示す値に基づいて特定する、請求項1または請求項2に記載のプログラム。
- 前記パラメータを、ユーザが指定した所定の期間における、前記エンジニアチームの各構成員が行った成果を示す値を積み上げて特定する、請求項3に記載のプログラム。
- 前記成果物をオンライン上にアップロードした情報として、前記エンジニアチーム内のプロジェクトにおける前記成果物を管理する管理手段に対するアップロード数、作成コード数、修正コード数、レビュー依頼数、レビュー結果を確定させる統合数のいずれかまたは複数を取得する、請求項1から請求項4のいずれか1項に記載のプログラム。
- 前記パラメータを提示するステップにおいて、前記アップロード数、前記作成コード数、前記修正コード数、前記レビュー依頼数、前記統合数のいずれかまたは複数を、時系列の情報としてユーザに提示する、請求項5に記載のプログラム。
- 前記作成コード数及び前記修正コード数に係る作成コード及び修正コードの難易度、もしくは重要度に基づいて重み付けを行い、前記パラメータを特定し、または、作成後に所定の期間経過後、残存しているコード数を含む前記履歴に基づき、前記パラメータを特定する、請求項5または請求項6に記載のプログラム。
- 前記成果物について前記エンジニアチームの構成員により行ったレビュー情報として、前記管理手段に対するレビュー数、コメント数、コメント回答数のいずれかまたは複数を取得する、請求項1から請求項7のいずれか1項に記載のプログラム。
- 前記レビュー数、前記コメント数、前記コメント回答数のいずれかまたは複数を、時系列の情報としてユーザに提示する、請求項8に記載のプログラム。
- 前記プログラムは、前記プロセッサに、さらに、
前記パラメータとして、前記エンジニアチームにおけるレビューの依頼からクローズまでの期間を示すリードタイムを取得してユーザに提示する、請求項1から請求項9のいずれか1項に記載のプログラム。 - 前記プログラムは、前記プロセッサに、さらに、
前記エンジニアチームの活動状況として、前記エンジニアチームにおいてレビューの依頼がされた成果物の推移を示す内訳を取得してユーザに提示する、請求項1から請求項10のいずれか1項に記載のプログラム。 - 前記プログラムは、前記プロセッサに、さらに、
前記エンジニアチームの活動状況として、前記エンジニアチームにおいてレビューの依頼がされた成果物に対するコメント数と、前記エンジニアチームにおけるレビューの依頼からクローズまでの期間を示すリードタイムとの関係を取得してユーザに提示する、請求項1から請求項11のいずれか1項に記載のプログラム。 - 前記プログラムは、前記プロセッサに、さらに、
前記エンジニアチームの活動状況として、前記エンジニアチームにおけるレビューを依頼するレビュイーとレビューの依頼を受けるレビュワーとの関係を取得してユーザに提示する、請求項1から請求項12のいずれか1項に記載のプログラム。 - 前記プログラムは、前記プロセッサに、さらに、
前記エンジニアチームに所属する構成員の成果を示す値を演算するステップを実行させ、
特定の前記エンジニアチームに所属する構成員の成果を示す値を提示する、請求項1から請求項13のいずれか1項に記載のプログラム。 - 前記エンジニアチームに所属する構成員の成果を示す値として、前記エンジニアチーム内のプロジェクトにおける前記成果物を管理する管理手段に対するアップロード数、作成コード数、修正コード数、レビュー依頼数、レビュー結果を確定させる統合数のいずれかまたは複数を演算して取得する、請求項14に記載のプログラム。
- 前記プログラムは、前記プロセッサに、さらに、
前記パラメータの所定の期間における変動に基づき、アラートを通知するステップを実行させる、請求項1から請求項15のいずれか1項に記載のプログラム。 - 前記パラメータの所定の期間における値が、前記パラメータの他の期間の値に基づく外れ値であることを検知し、検知した前記外れ値に基づき、または特定の前記エンジニアチームに所属する構成員の成果を示す値の変動に基づき、アラートを通知する、請求項16に記載のプログラム。
- 特定の前記エンジニアチームに所属する構成員の成果を示す値として、前記エンジニアチーム内のプロジェクトにおける当該構成員のアップロード数、コメント数、レビュー着手までの期間、当該構成員と他の構成員とのレビュー数、レビュー時間、コメント数のいずれかまたは複数の変動を検知し、変動に基づくアラートを通知する、請求項17に記載のプログラム。
- 前記パラメータの所定の期間における変動に基づき、前記エンジニアチームの活動状況の変動の原因、改善案のいずれかまたは両方を抽出して提示する、請求項16から請求項18のいずれか1項に記載のプログラム。
- 前記パラメータの変動の原因として、前記エンジニアチームの前記履歴から、当該所定の期間において、減少した前記成果物をオンライン上にアップロードした情報、前記エンジニアチームの構成員により行ったレビュー情報のいずれかまたは両方を提示する、請求項19に記載のプログラム。
- 前記エンジニアチームの前記履歴の解析を行い、当該所定の期間における前記パラメータの変動の原因となるタスク、アクション、前記エンジニアチームに所属する構成員のいずれかまたは複数を検知して提示する、請求項19または請求項20に記載のプログラム。
- 前記プログラムは、前記プロセッサに、さらに、
前記エンジニアチーム外のエンジニアの成果を示す値を取得するステップと、
前記エンジニアチーム外のエンジニアの成果を示す値と、前記エンジニアチームの前記履歴とをマッチングし、前記エンジニアチーム外のエンジニアが前記エンジニアチームに適応可能か否かを判定するステップと、
前記エンジニアチーム外のエンジニアが前記エンジニアチームに適応可能と判定した場合、前記改善案として、前記エンジニアチーム外のエンジニアの前記エンジニアチームへの参画を提示するステップと、を実行させる、請求項19から請求項21のいずれか1項に記載のプログラム。 - 前記プログラムは、前記プロセッサに、さらに、
前記パラメータを時系列の情報と関連付けて、他のエンジニアチームの活動状況を表すパラメータを時系列の情報と関連付けて比較可能に提示するステップを実行させる、請求項1から請求項22のいずれか1項に記載のプログラム。 - 前記パラメータとともに、前記リードタイムを基準とし、他のエンジニアチームと比較可能に提示する、請求項23に記載のプログラム。
- 制御部と、記憶部とを備える情報処理装置であって、
前記制御部は、
エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物について前記エンジニアチームの構成員により行ったレビュー情報と、の履歴に基づいて、前記エンジニアチームの活動状況を表すパラメータを特定するステップと、
前記パラメータをユーザに提示するステップと、を実行する、情報処理装置。 - プロセッサと、記憶部とを備えるコンピュータに実行されるための方法であって、
前記方法は、前記プロセッサが、
エンジニアチームに所属する構成員が、エンジニアとしての成果物を作成するためにオンライン上にアップロードした情報と、当該アップロードされた成果物について前記エンジニアチームの構成員により行ったレビュー情報と、の履歴に基づいて、前記エンジニアチームの活動状況を表すパラメータを特定するステップと、
前記パラメータをユーザに提示するステップと、を実行する、方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022168276A JP2022188292A (ja) | 2022-06-08 | 2022-10-20 | プログラム、情報処理装置および方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022093215A JP7168966B2 (ja) | 2020-12-30 | 2022-06-08 | プログラム、情報処理装置および方法 |
JP2022168276A JP2022188292A (ja) | 2022-06-08 | 2022-10-20 | プログラム、情報処理装置および方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022093215A Division JP7168966B2 (ja) | 2020-12-30 | 2022-06-08 | プログラム、情報処理装置および方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022188292A true JP2022188292A (ja) | 2022-12-20 |
Family
ID=82848463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022168276A Pending JP2022188292A (ja) | 2022-06-08 | 2022-10-20 | プログラム、情報処理装置および方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022188292A (ja) |
-
2022
- 2022-10-20 JP JP2022168276A patent/JP2022188292A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9524505B2 (en) | End-to-end effective citizen engagement via advanced analytics and sensor-based personal assistant capability (EECEASPA) | |
US11238409B2 (en) | Techniques for extraction and valuation of proficiencies for gap detection and remediation | |
JP6837699B1 (ja) | プログラム、情報処理装置および方法 | |
US11693655B2 (en) | Method, apparatus, and system for outputting a development unit performance insight interface component comprising a visual emphasis element in response to an insight interface component request | |
US11087285B2 (en) | Systems and methods for providing message templates in an enterprise system | |
Brown et al. | The development of evidence-based prehospital guidelines using a GRADE-based methodology | |
US20230325180A1 (en) | Program, information processing apparatus, and method | |
US20190188813A1 (en) | Healthcare accountability and support platform | |
US20190266544A1 (en) | Techniques for managing process-flows across an enterprise | |
JP7168966B2 (ja) | プログラム、情報処理装置および方法 | |
KR102532750B1 (ko) | 소프트웨어 개발 프로젝트 관리 시스템 및 방법 | |
JP2022188292A (ja) | プログラム、情報処理装置および方法 | |
CN115587790A (zh) | 一种结合大数据分析的项目管理系统 | |
JP7219989B1 (ja) | プログラム、情報処理装置および方法 | |
JP7244141B1 (ja) | プログラム、情報処理装置および方法 | |
CA3028428A1 (en) | Method and system for generating an adaptive action campaign involving a pluraltiy of users | |
JP2020077203A (ja) | 情報処理装置、プログラム及び情報処理方法 | |
JP7388785B1 (ja) | 情報処理装置、方法、プログラム、およびシステム | |
US11093359B2 (en) | System and method for automated desktop analytics triggers | |
JP7017597B2 (ja) | 情報処理装置、方法及びプログラム | |
US20230333882A1 (en) | Systems and methods for creating workflows by chaining microapps in a workspace platform | |
US20230307100A1 (en) | Information processing apparatus, information processing system, and information processing method | |
BARTLE et al. | Faster Information for Effective Long-term Discharge: A Field Study in Adult Foster Care | |
JP2024000956A (ja) | プログラム、情報処理装置、方法、および情報処理システム | |
KR20230102729A (ko) | 협업 데이터 히스토리에 기초한 리플레이 정보 제공방법, 장치 및 컴퓨터 프로그램 |