IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファインディ株式会社の特許一覧

特開2024-571プログラム、情報処理装置、方法、および情報処理システム
<>
  • 特開-プログラム、情報処理装置、方法、および情報処理システム 図1
  • 特開-プログラム、情報処理装置、方法、および情報処理システム 図2
  • 特開-プログラム、情報処理装置、方法、および情報処理システム 図3
  • 特開-プログラム、情報処理装置、方法、および情報処理システム 図4
  • 特開-プログラム、情報処理装置、方法、および情報処理システム 図5
  • 特開-プログラム、情報処理装置、方法、および情報処理システム 図6
  • 特開-プログラム、情報処理装置、方法、および情報処理システム 図7
  • 特開-プログラム、情報処理装置、方法、および情報処理システム 図8
  • 特開-プログラム、情報処理装置、方法、および情報処理システム 図9
  • 特開-プログラム、情報処理装置、方法、および情報処理システム 図10
  • 特開-プログラム、情報処理装置、方法、および情報処理システム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024000571
(43)【公開日】2024-01-09
(54)【発明の名称】プログラム、情報処理装置、方法、および情報処理システム
(51)【国際特許分類】
   G06Q 10/0639 20230101AFI20231226BHJP
【FI】
G06Q10/06 332
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022099300
(22)【出願日】2022-06-21
(11)【特許番号】
(45)【特許公報発行日】2023-02-27
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
2.PYTHON
(71)【出願人】
【識別番号】516291402
【氏名又は名称】ファインディ株式会社
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】山田 裕一朗
(72)【発明者】
【氏名】佐藤 将高
(72)【発明者】
【氏名】志賀 優毅
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA08
(57)【要約】
【課題】チームによる開発パフォーマンスを適切に評価する。
【解決手段】本開示の一態様のプログラムは、コンピュータを、チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段、開発活動に関する情報に基づいて、複数の指標を生成する手段、複数の指標に基づいて、チームによる開発パフォーマンスを評価する手段、チームによる開発パフォーマンスの評価結果を出力する手段、として機能させる。
【選択図】図4
【特許請求の範囲】
【請求項1】
コンピュータを、
チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段、
前記開発活動に関する情報に基づいて、複数の指標を生成する手段、
前記複数の指標に基づいて、前記チームによる開発パフォーマンスを評価する手段、
前記チームによる開発パフォーマンスの評価結果を出力する手段、
として機能させるプログラム。
【請求項2】
前記複数の指標は、開発ボリューム、開発効率、または開発クオリティの少なくとも1つに関する、
請求項1に記載のプログラム。
【請求項3】
前記チームによる開発パフォーマンスを評価する手段は、前記複数の指標の少なくとも1つが特定の指標に該当する場合に、前記チームに含まれるメンバーの数に基づいて当該特定の指標を評価する、
請求項1に記載のプログラム。
【請求項4】
前記チームによる開発パフォーマンスを評価する手段は、前記チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つを定量的に評価する、
請求項1に記載のプログラム。
【請求項5】
前記チームによる開発パフォーマンスを評価する手段は、プルリク作成数、マージ済みプルリク数、レビュー数、レビューしたプルリク数、コーディング数、コミット数、またはメインブランチへのマージ回数、の少なくとも1つに基づいて前記チームの開発ボリュームを定量的に評価する、
請求項4に記載のプログラム。
【請求項6】
前記チームによる開発パフォーマンスを評価する手段は、前記チームのメンバーが最初のレビューをするまでの平均時間、プルリク作成からマージまたはクローズされるまでの平均時間、最初のコミットからプルリク作成までの平均時間、プルリク作成からレビューまでの平均時間、最初のレビューからクローズまでの平均時間、最初のレビューから最後のアプルーブまでの平均時間、最後のアプルーブからマージまでの平均時間、メインブランチへのマージされたプルリクの作成からマージまでの平均時間、またはメインブランチへマージされたプルリクに紐づく最初のコミットからマージまでの平均時間、の少なくとも1つに基づいて前記チームの開発効率を定量的に評価する、
請求項4に記載のプログラム。
【請求項7】
前記チームによる開発パフォーマンスを評価する手段は、レビューされずにマージされたプルリクの割合、変更障害率、1プルリクに対する平均コメント数、1プルリクあたりの平均変更行数、または1プルリクあたりの変更ファイル数、の少なくとも1つに基づいて前記チームの開発クオリティを定量的に評価する、
請求項4に記載のプログラム。
【請求項8】
前記コンピュータを、前記複数の指標の少なくとも1つが前記チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価に及ぼした影響を分析する手段としてさらに機能させる、
請求項4に記載のプログラム。
【請求項9】
前記コンピュータを、前記複数の指標の少なくとも1つが前記チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価に正負いずれの影響を及ぼしたかを分析する手段、としてさらに機能させる、
請求項8に記載のプログラム。
【請求項10】
前記コンピュータを、前記チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価に及ぼした負の影響が最も大きい指標を分析する手段、としてさらに機能させる、
請求項8に記載のプログラム。
【請求項11】
前記コンピュータを、前記チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価結果について所定の条件が成立する場合に、通知を行う手段としてさらに機能させる、
請求項4に記載のプログラム。
【請求項12】
前記チームによる開発パフォーマンスを評価する手段は、前記複数の指標の少なくとも1つについて基準値と比較することで、当該指標を個別に評価する、
請求項1に記載のプログラム。
【請求項13】
前記コンピュータを、前記チームによる開発パフォーマンスの評価結果を、他のチームによる開発パフォーマンスの評価結果、または異なる期間における前記チームによる開発パフォーマンスの評価結果と比較する手段、としてさらに機能させる、
請求項12に記載のプログラム。
【請求項14】
前記コンピュータを、組織に属する全チームの各々について生成した複数の指標、または当該組織に属する全チームの各々の開発パフォーマンスの評価結果の少なくとも1つに基づいて、当該組織の開発パフォーマンスを評価する手段としてさらに機能させる、
請求項1に記載のプログラム。
【請求項15】
前記コンピュータを、前記チームによる開発パフォーマンスの評価結果を含む、当該チームの属する組織の求人情報を公開する手段としてさらに機能させる、
請求項1に記載のプログラム。
【請求項16】
前記開発活動に関する情報は、前記イシュー管理サービスに保存されているソースコードに関して、前記チームに属するメンバーにより行われた活動を特定可能な情報と、当該活動が行われた日時を特定可能な情報とを含む、
請求項1に記載のプログラム。
【請求項17】
チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段と、
前記開発活動に関する情報に基づいて、複数の指標を生成する手段と、
前記複数の指標に基づいて、前記チームによる開発パフォーマンスを評価する手段と
前記チームによる開発パフォーマンスの評価結果を出力する手段と
を具備する、情報処理装置。
【請求項18】
クライアント装置と、サーバとを具備する情報処理システムであって、
前記サーバは、
チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段と、
前記開発活動に関する情報に基づいて、複数の指標を生成する手段と、
前記複数の指標に基づいて、前記チームによる開発パフォーマンスを評価する手段とを備え、
前記クライアント装置は、前記チームによる開発パフォーマンスの評価結果を提示する手段を備える、
情報処理システム。
【請求項19】
チームによる開発パフォーマンスの評価結果を受信する手段と、
前記評価結果を提示する手段と
を具備し、
前記評価結果は、前記チームによる開発パフォーマンスが複数の指標に基づいて評価された結果であり、
前記複数の指標は、前記チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報に基づいて生成される、
情報処理装置。
【請求項20】
クライアント装置に情報処理を実行させる方法であって、
前記クライアント装置に、
チームによる開発パフォーマンスの評価結果を受信する処理と、
前記評価結果を提示する処理と
を実行させ、
前記評価結果は、前記チームによる開発パフォーマンスが複数の指標に基づいて評価された結果であり、
前記複数の指標は、前記チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報に基づいて生成される、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、情報処理装置、方法、および情報処理システムに関する。
【背景技術】
【0002】
組織におけるプロダクト(例えばソフトウェア)開発は、通常、複数のエンジニアからなるチームによって遂行される。プロダクトの開発責任者は、当該プロダクトを担当するチームによる開発パフォーマンスを適切に把握することが求められる。
【0003】
特許文献1には、ソフトウェアの開発者の成果を評価する技術について開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2015-118650号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の技術は、開発者個人の成果を評価の対象としており、チームによる開発パフォーマンスの評価に直ちに応用することはできない。
【0006】
本開示の目的は、チームによる開発パフォーマンスを適切に評価する技術を提供することである。
【課題を解決するための手段】
【0007】
本開示の一態様のプログラムは、コンピュータを、チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段、開発活動に関する情報に基づいて、複数の指標を生成する手段、複数の指標に基づいて、チームによる開発パフォーマンスを評価する手段、として機能させる。
【発明の効果】
【0008】
本開示によれば、チームによる開発パフォーマンスを適切に評価することができる。
【図面の簡単な説明】
【0009】
図1】本実施形態の情報処理システムの構成を示すブロック図である。
図2】本実施形態のクライアント装置の構成を示すブロック図である。
図3】本実施形態のサーバの構成を示すブロック図である。
図4】本実施形態の一態様の説明図である。
図5】本実施形態のリポジトリデータベースのデータ構造を示す図である。
図6】本実施形態の開発活動データベースのデータ構造を示す図である。
図7】本実施形態の情報処理のフローチャートである。
図8】本実施形態の情報処理において表示される画面例を示す図である。
図9】本実施形態の情報処理において表示される画面例を示す図である。
図10】本実施形態の情報処理において表示される画面例を示す図である。
図11】本実施形態の情報処理において表示される画面例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の一実施形態について、図面に基づいて詳細に説明する。なお、実施形態を説明するための図面において、同一の構成要素には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0011】
本明細書において、チームとは、複数人のエンジニアにより構成される集団を意味する。チームは、特定のプロダクトの開発を担当する。プロダクトは、典型的にはソフトウェアであり、例えば、SaaS(Software as a Service)などのWebサービスを提供するためのWebサイトであってもよいし、コンピュータにインストールされるアプリケーションであってもよい。チーム内では、それぞれのエンジニアが機能ごと、アウトプットごと等に役割分担して開発を進める。また、チーム内のエンジニアは、特定の1つの企業(組織)に雇用されている会社員のみに限られず、複数の企業が共同で開発を進める開発プロジェクトにおける任意の企業の会社員でもよい。さらに、チーム内のエンジニアには、派遣社員、個人事業主(いわゆるフリーランス)のエンジニアが含まれてもよい。
【0012】
(1)情報処理システムの構成
情報処理システムの構成について説明する。図1は、本実施形態の情報処理システムの構成を示すブロック図である。
【0013】
図1に示すように、情報処理システム1は、クライアント装置10と、サーバ30とを備える。
クライアント装置10及びサーバ30は、ネットワーク(例えば、インターネット又はイントラネット)NWを介して接続される。また、サーバ30は、ネットワークNWを介して外部システム50と接続される。
【0014】
クライアント装置10は、サーバ30にリクエストを送信する情報処理装置の一例である。クライアント装置10は、例えば、スマートフォン、タブレット端末、又は、パーソナルコンピュータである。クライアント装置10は、情報処理システム1によって提供される、チームによる開発パフォーマンスの評価結果を確認するために用いることができる。クライアント装置10のユーザは、例えば、以下の少なくとも1つを含むことができる。
・評価の対象となるチーム(以下、「対象チーム」という)のメンバーまたはリーダー
・対象チームの担当するプロダクトの開発責任者
・対象チームの所属する組織における人事担当者
・対象チームの所属する組織における経営幹部
・対象チームの所属する組織の求人情報を閲覧する者
【0015】
サーバ30は、クライアント装置10から送信されたリクエストに応じたレスポンスをクライアント装置10に提供する情報処理装置の一例である。サーバ30は、例えば、サーバコンピュータである。サーバ30は、クライアント装置10からのリクエストに応じて、対象チームによる開発パフォーマンスの評価結果を提供する。
【0016】
外部システム50は、サーバ30からのリクエストに応じて、対象チームのメンバー(エンジニア)による開発活動の活動に関する情報を提供する。外部システム50は、典型的には、GitHub(登録商標)などの、ソフトウェア開発プラットフォームである。GitHubは、エンジニアによる開発の成果物であるソースコードの管理、ソースコードに対するレビューの管理等を行う。
【0017】
なお、外部システム50は、GitHubに限られず、GitLab(登録商標)またはBitbucket(登録商標)等の他のソフトウェア開発プラットフォームであってもよい。或いは、外部システム50は、ソフトウェア開発における課題管理ツール(例えばJira(登録商標))、またはタスク管理ツール(例えば、Trello(登録商標)またはbacklog(登録商標)等)であってもよい。これらソフトウェア開発プラットフォーム、課題管理ツールまたはタスク管理ツールは、イシュー管理サービスとして総称することもできる。以下の説明では、外部システム50として、GitHubを利用することを前提として述べる。
【0018】
GitHubは、ソースコードホスティングサービスである。GitHubは、開発の成果物であるソースコードのバージョン管理を行うためのリポジトリ(管理手段)を有する。GitHubは、ある時点におけるソースコードの一覧を管理している。GitHubは、イシュー(作成)、プッシュ、コミット、プルリクエスト、マージ等の各種機能を備えている。イシューは、プロジェクトやソースコードの課題を管理するための機能である。プッシュは、エンジニアのローカル環境(ローカルリポジトリ)で作成又は修正を行ったソースコードをリモート環境(リモートリポジトリ)へアップロードする機能である。コミットは、ソースコードへの変更内容を登録するための機能である。プルリクエストは、プッシュがなされたことを通知してレビューを依頼する機能である。マージは、レビュー結果を確定させて履歴を統合する機能である。ここで、ソースコードとは、Pythonのようなプログラミング言語、またはHTML、CSSのようなマークアップ言語により記述されるコード(文字列)に加え、JavaScript(登録商標)のようなプログラミング言語の一種であるスクリプト言語により記述されるスクリプト(文字列)を含む概念である。
【0019】
プログラミング言語とは、ソフトウェア開発に用いられる言語であり、具体的にはJavaScript(登録商標)、Java(登録商標)、Scala、PHP、Ruby、Python、Go、C#、などがある。また、ソフトウェアフレームワークとはソフトウェア開発に利用するソフトウェアプラットフォームであり、具体的には、jQuery、React、Vue.js、Angular、Nuxt.js、Next.js、ReactNative、Spring Framework、Play Framework、Laravel、CakePHP、RubyonRails、Django、Flask、TensorFlow、gin、Unity、Expressなどがある。
【0020】
(1-1)クライアント装置の構成
クライアント装置の構成について説明する。図2は、本実施形態のクライアント装置の構成を示すブロック図である。
【0021】
図2に示すように、クライアント装置10は、記憶装置11と、プロセッサ12と、入出力インタフェース13と、通信インタフェース14とを備える。クライアント装置10は、ディスプレイ21に接続される。
【0022】
記憶装置11は、プログラム及びデータを記憶するように構成される。記憶装置11は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、及び、ストレージ(例えば、フラッシュメモリ又はハードディスク)の組合せである。
【0023】
プログラムは、例えば、以下のプログラムを含む。
・OS(Operating System)のプログラム
・情報処理を実行するアプリケーション(例えば、ウェブブラウザ)のプログラム
【0024】
データは、例えば、以下のデータを含む。
・情報処理において参照されるデータベース
・情報処理を実行することによって得られるデータ(つまり、情報処理の実行結果)
【0025】
プロセッサ12は、記憶装置11に記憶されたプログラムを起動することによって、クライアント装置10の機能を実現するコンピュータである。プロセッサ12は、例えば、以下の少なくとも1つである。
・CPU(Central Processing Unit)
・GPU(Graphic Processing Unit)
・ASIC(Application Specific Integrated Circuit)
・FPGA(Field Programmable Array)
【0026】
入出力インタフェース13は、クライアント装置10に接続される入力デバイスから情報(例えばユーザの指示)を取得し、かつ、クライアント装置10に接続される出力デバイスに情報(例えば画像信号)を出力するように構成される。
入力デバイスは、例えば、キーボード、ポインティングデバイス、タッチパネル、又は、それらの組合せである。
出力デバイスは、例えば、ディスプレイ21、スピーカ、又は、それらの組合せである。
【0027】
通信インタフェース14は、クライアント装置10と外部装置(例えばサーバ30)との間の通信を制御するように構成される。
【0028】
ディスプレイ21は、画像(静止画、または動画)を表示するように構成される。ディスプレイ21は、例えば、液晶ディスプレイ、または有機ELディスプレイである。
【0029】
(1-2)サーバの構成
サーバの構成について説明する。図3は、本実施形態のサーバの構成を示すブロック図である。
【0030】
図3に示すように、サーバ30は、記憶装置31と、プロセッサ32と、入出力インタフェース33と、通信インタフェース34とを備える。
【0031】
記憶装置31は、プログラム及びデータを記憶するように構成される。記憶装置31は、例えば、ROM、RAM、及び、ストレージ(例えば、フラッシュメモリ又はハードディスク)の組合せである。
【0032】
プログラムは、例えば、以下のプログラムを含む。
・OSのプログラム
・情報処理を実行するアプリケーションのプログラム
【0033】
データは、例えば、以下のデータを含む。
・情報処理において参照されるデータベース
・情報処理の実行結果
【0034】
プロセッサ32は、記憶装置31に記憶されたプログラムを起動することによって、サーバ30の機能を実現するコンピュータである。プロセッサ32は、例えば、以下の少なくとも1つである。
・CPU
・GPU
・ASIC
・FPGA
【0035】
入出力インタフェース33は、サーバ30に接続される入力デバイスからユーザの指示を取得し、かつ、サーバ30に接続される出力デバイスに情報を出力するように構成される。
入力デバイスは、例えば、キーボード、ポインティングデバイス、タッチパネル、又は、それらの組合せである。
出力デバイスは、例えば、ディスプレイである。
【0036】
通信インタフェース34は、サーバ30と外部装置(例えばクライアント装置10または外部システム50)との間の通信を制御するように構成される。
【0037】
(2)実施形態の一態様
本実施形態の一態様について説明する。図4は、本実施形態の一態様の説明図である。
【0038】
図4に示すように、チームET1に属するメンバーは、外部システム50を利用して種々の開発活動を行う。外部システム50は、このような開発活動のログに関する情報(以下、「開発活動情報」という)を保存する。サーバ30は、外部システム50から開発活動情報を収集する。サーバ30は、定期的に開発活動情報を収集してもよいし、何らかのトリガ(例えば、クライアント装置10からの評価要求の受信)に応じて開発活動情報を収集してもよい。
【0039】
クライアント装置10は、ユーザUS2からの指示に応じて、チームET1による開発パフォーマンスの評価をサーバ30に要求する。サーバ30は、評価要求に応じて、チームET1による開発パフォーマンスに関する複数の指標を生成する。具体的には、サーバ30は、チームET1のメンバーの開発活動情報に基づいて(例えば、複数のメンバーの開発活動情報を統合することで)各指標を生成する。サーバ30は、生成した複数の指標に基づいて、チームET1による開発パフォーマンスを評価し、評価結果を含む評価応答をクライアント装置10へ送信する。クライアント装置10は、評価応答をユーザUS2に提示する。
【0040】
このように、サーバ30によれば、複数の指標を介した、チームET1のメンバーの開発活動情報の多面的な分析に基づいて当該チームET1による開発パフォーマンスを適切に評価することができる。
【0041】
(3)データベース
本実施形態のデータベースについて説明する。以下のデータベースは、記憶装置31に記憶される。
【0042】
(3-1)リポジトリデータベース
本実施形態のリポジトリデータベースについて説明する。図5は、本実施形態のリポジトリデータベースのデータ構造を示す図である。
【0043】
リポジトリデータベースには、リポジトリ情報が格納される。リポジトリ情報は、外部システム50において作成されているリポジトリに関する情報である。
【0044】
図5に示すように、リポジトリデータベースは、「リポジトリID」フィールドと、「チームID」フィールドと、「アドレス」フィールドとを含む。各フィールドは、互いに関連付けられている。
【0045】
「リポジトリID」フィールドには、リポジトリIDが格納される。リポジトリIDは、リポジトリを識別する情報である。サーバ30は、外部システム50からリポジトリIDを取得可能である。
【0046】
「チームID」フィールドには、チームIDが格納される。チームIDは、対応するリポジトリIDによって特定されるリポジトリを作成したチームを識別する情報である。サーバ30は、外部システム50からチームIDを取得可能である。
【0047】
なお、チームIDは、図示しないデータベースにおいて、組織IDと関連付けられてもよい。チームIDに関連付けられる組織IDは、当該チームIDに対応するチームが属する組織を識別する。また、チームIDは、図示しないデータベースにおいて、エンジニアIDと関連付けられてもよい。チームIDに関連付けられるエンジニアIDは、当該チームIDに対応するチームに属するメンバーを識別する。
【0048】
「アドレス」フィールドには、アドレス情報が格納される。アドレス情報は、対応するリポジトリIDによって特定されるリポジトリにアクセスするための情報(例えばURL(Uniform Resource Locator))である。
【0049】
(3-2)開発活動データベース
本実施形態の開発活動データベースについて説明する。図6は、本実施形態の開発活動データベースのデータ構造を示す図である。
【0050】
開発活動データベースには、開発活動情報が格納される。開発活動情報は、外部システム50において作成されたリポジトリに保存されているソースコードに関して、エンジニアにより行われた活動に関する情報である。
【0051】
外部システム50は、例えば、ユーザ(つまり、エンジニア)がソースコードをローカルリポジトリからプッシュした場合に、プッシュを行ったユーザを特定可能な情報、およびプッシュが行われた日時をログ情報として記録する。同様に、ソースコードに関してイシューを作成した場合、ソースコードについてプルリクエストがあった場合、コメントが作成された場合、コメントに対する回答が作成された場合、またはマージがなされた場合などに、外部システム50は、ログ情報を記録する。
【0052】
サーバ30は、外部システム50から取得した開発活動情報に基づいて、開発活動データベースを更新する。サーバ30は、定期的に開発活動情報を取得してもよいし、何らかのトリガ(例えば、クライアント装置10からの評価要求の受信)に応じて開発活動情報を取得してもよい。
【0053】
図6に示すように、開発活動データベースは、「活動ID」フィールドと、「リポジトリID」フィールドと、「アクションID」フィールドと、「エンジニアID」フィールドと、「日時」フィールドと、「ソースコード」フィールドとを含む。
【0054】
「活動ID」フィールドには、活動IDが格納される。活動IDは、外部システム50において作成されたリポジトリに保存されているソースコードに関して、エンジニアにより行われた活動を識別する情報である。
【0055】
「リポジトリID」フィールドには、リポジトリIDが格納される。リポジトリIDは、対応する活動IDによって特定される活動が行われたソースコードが保存されているリポジトリを識別する情報である。
【0056】
「アクション」フィールドには、アクション情報が格納される。アクション情報は、対応する活動IDによって特定される活動の種別に関する情報である。
【0057】
「エンジニアID」フィールドには、エンジニアIDが格納される。エンジニアIDは、対応する活動IDによって特定される活動を行ったエンジニア(つまり、外部システム50のユーザ)を識別する情報である。
【0058】
「日時」フィールドには、日時情報が格納される。日時情報は、対応する活動IDによって特定される活動が行われた日時に関する情報である。
【0059】
「ソースコード」フィールドには、ソースコード情報が格納される。ソースコード情報は、対応する活動IDによって特定される活動が行われたソースコードに関する情報(例えばファイル名情報)である。
【0060】
(4)情報処理
本実施形態の情報処理について説明する。図7は、本実施形態の情報処理のフローチャートである。図8は、本実施形態の情報処理において表示される画面例を示す図である。図9は、本実施形態の情報処理において表示される画面例を示す図である。図10は、本実施形態の情報処理において表示される画面例を示す図である。図11は、本実施形態の情報処理において表示される画面例を示す図である。
【0061】
図7に示すように、クライアント装置10は、評価要求(S110)を実行する。
具体的には、クライアント装置10は、ユーザの指示に応じて評価要求を生成する。評価要求は、対象チームを特定可能な情報(例えばチームID)を含む。また、評価要求は、評価の対象となる期間(以下、「対象期間」という)を特定可能な情報を含んでもよい。ただし、対象期間が予め定められている場合には、評価要求はかかる情報を含まなくてもよい。以下の説明では、対象期間はユーザが指定できることを前提とする。
【0062】
なお、評価要求(S110)と同時に、または評価要求(S110)と前後して、サーバ30は、ユーザ認証を行ってもよい。
具体的には、クライアント装置10は、ユーザ認証に用いられる情報を取得し、サーバ30へ送信する。サーバ30は、かかる情報に基づいてクライアント装置10の操作者が登録済みのユーザであるか否かを確認する。サーバ30は、ユーザ認証が成功した場合に、以後の処理を実行する。ただし、評価要求(S110)と同時もしくは評価要求(S110)よりも後にユーザ認証が行われ、かつ対象チームの評価結果を閲覧する権限がユーザに割り当てられていない場合に、サーバ30は評価要求を拒否する。
【0063】
ユーザ認証に用いられる情報は、ユーザを特定可能な情報(例えばユーザID)と、クライアント装置10の操作者が当該ユーザ本人であることを証明するために当該操作者によって提供された情報(例えば、パスワード、または生体情報、など)とを含み得る。
【0064】
ステップS110の後に、サーバ30は、情報の取得(S130)を実行する。
具体的には、サーバ30は、ステップS110において送信された評価要求を受信する。サーバ30は、受信した評価要求に基づいて対象チームおよび対象期間を特定する。サーバ30は、例えばリポジトリデータベース(図5)を参照し、対象チームを示すチームIDに関連付けられているリポジトリIDを抽出する。サーバ30は、例えば開発活動データベース(図6)を参照し、特定した対象期間内の日付を示す日付情報と、抽出したリポジトリIDとを含む開発活動情報を抽出する。
【0065】
なお、サーバ30は、開発活動データベースから開発活動情報を抽出する前に、外部システム50から対象チームに属するメンバーに関する開発活動情報を取得し、当該データベースを更新してもよい。
【0066】
ステップS130の後に、サーバ30は、指標の生成(S131)を実行する。
具体的には、サーバ30は、ステップS130において取得した開発活動情報に基づいて、対象期間における対象チームによる開発パフォーマンスに関する複数の指標を生成する。サーバ30は、取得した開発活動情報をそのまま指標として扱ってもよいし、当該開発活動情報に基づいて演算(例えば、カウント)を行うことで指標を算出してもよい。
【0067】
複数の指標は、例えば以下の少なくとも1つを含むことができる。
・開発のボリュームに関する指標
・開発の効率に関する指標
・開発のクオリティに関する指標
【0068】
開発のボリュームに関する指標は、例えば、以下の少なくとも1つを含むことができる。
・プルリク作成数
・マージ済みプルリク数
・レビュー数
・レビューしたプルリク数
・コーディング数(アクティブ日数)
・コミット数
・メインブランチへのマージ回数
なお、上に例示した開発のボリュームに関する指標は、いずれも値が大きいほど開発のボリュームが大きいことを示唆する。ただし、後述するように、これらの指標は、チームの規模(例えばメンバー数)が大きいほど高くなりやすいので、妥当な評価を行うためにはチームの規模に応じた補正をすることが好ましい。指標の補正は、指標の生成(S131)において実行されてもよいし、パフォーマンスの評価(S132)において実行されてもよい。
【0069】
開発の効率に関する指標は、例えば、以下の少なくとも1つを含むことができる。なお、以下に例示する開発の効率に関する指標は、いずれも値が小さいほど開発の効率が高いことを示唆する。
・自チームのメンバーが最初のレビューをするまでの平均時間[h]
・プルリク作成からマージまたはクローズされるまでの平均時間[h]
・最初のコミットからプルリク作成までの平均時間[h]
・プルリク作成からレビューまでの平均時間[h]
・最初のレビューからクローズまでの平均時間[h]
・最初のレビューから最後のアプルーブまでの平均時間[h]
・最後のアプルーブからマージまでの平均時間[h]
・メインブランチへのマージされたプルリクの作成からマージまでの平均時間[h]
・メインブランチへマージされたプルリクに紐づく最初のコミットからマージまでの平均時間[h]
【0070】
開発のクオリティに関する指標は、例えば、以下の少なくとも1つを含むことができる。なお、以下に例示する開発のクオリティに関する指標のうち「レビューされずにマージされた割合」および「変更障害率」は、いずれも値が小さいほど開発のクオリティが高いことを示唆する。他方、以下に例示する開発のクオリティに関する指標のうち「1プルリクに対する平均コメント数」、「1プルリクあたりの平均変更行数」および「1プルリクあたりの変更ファイル数」は、単純な大小のみによる評価は妥当でないおそれがある。例えば、これらの指標に対しては、定性的な分析が行われてもよいし、適正値からの差が小さいほど開発のクオリティが高いものとして扱われてもよい。
・レビューされずにマージされたプルリクの割合[%]
・変更障害率
・1プルリクに対する平均コメント数
・1プルリクあたりの平均変更行数
・1プルリクあたりの変更ファイル数
ここで、変更障害率とは、変更に伴って発生した障害の割合を意味する。一例として、変更障害率は、メインブランチへマージしたプルリク数に対する、障害を意味するタグ付けがなされたブランチからメインブランチへマージしたプルリク数の割合として表現できる。障害を意味するタグ付けがなされたブランチは、例えば、修正を意味する文字列(hotfix)または変更を元に戻すことを意味する文字列(revert)を含む(大文字小文字問わず)ブランチである。
【0071】
なお、サーバ30は、生成した指標を、図示しないデータベースに格納してもよい。これにより、サーバ30は、同一の対象チームおよび同一の対象期間が指定された場合に、指標の生成(S131)を実行する代わりに、データベースに格納されている指標を読み出して利用することができる。また、サーバ30は、対象期間の長さに関わらず、対象期間に属する所定の時間単位(例えば日単位)における指標を生成してデータベースに格納し、当該対象期間に属する時間単位に亘って指標を統合すること対象期間における指標を生成してもよい。これにより、過去に指定された対象期間と重複する対象期間が指定された場合であっても、過去に生成した指標を再利用して指標の生成(S131)を実行できる。
【0072】
ステップS131の後に、サーバ30は、パフォーマンスの評価(S132)を実行する。
具体的には、サーバ30は、ステップS131において生成した指標に基づいて、以下の少なくとも1つを評価する。
・対象期間における対象チームの個別指標の評価
・対象期間における対象チームの開発ボリュームの評価
・対象期間における対象チームの開発効率の評価
・対象期間における対象チームの開発クオリティの評価
・対象期間における対象チームの開発パフォーマンスの総合評価
【0073】
サーバ30は、評価を実施する前に、個別指標に対する前処理を行うことができる。個別指標に対する前処理の例として、サーバ30は、ステップS131において生成した指標に対する加工を行うことができる。加工は、例えば以下の少なくとも1つを含むことができる。
・スケールの変換(例えば正規化)
・補正(例えばチームの規模による影響を緩和する補正)
・丸め(例えばより粗いレーティングへの変換)
・逆数化または符号反転(例えば、パフォーマンスが高いほど低くなると推定される指標を、パフォーマンスが高いほど高くなる指標に変換する加工)
【0074】
個別指標の評価の一例として、サーバ30は、ステップS131において生成した指標またはその加工値を、基準値と比較することで当該指標の個別評価を行うことができる。基準値は、例えば以下の少なくとも1つに基づいて定められてよい。
・対象期間以外の期間における対象チームの同一指標の値、またはその統計値
・対象期間または他の期間における他のチームの同一指標の値、またはその統計値
・対象期間における対象チームの同一カテゴリの他の指標の値、またはその統計値
・ここで説明した基準値の例のいずれかを、対象チームに含まれるメンバーの数に基づいて補正した値
ここで、カテゴリとは、例えば、「開発ボリューム」、「開発効率」、または「開発クオリティ」である。一例として、プルリク作成数、およびマージ済みプルリク数は、いずれも同一のカテゴリである「開発ボリューム」の指標である。
また、対象チームに含まれるメンバーの数は、例えば当該対象チームに対応するリポジトリに紐付けられるエンジニアの数(つまりエンジニアIDの総数)を計算することで導出可能である。なお、補正に用いられるメンバーの数は、対象チームに対応するリポジトリに紐付けられるエンジニアのうち対象期間に稼働のあったエンジニアの数に限られてもよい。
本例において、サーバ30は、個別指標の評価結果としてテキストを得るようにしてもよいし、数値を得るようにしてもよい。テキストは、例えば指標と基準値との関係に応じて予め定められ得る。数値は、例えば指標と基準値との関係(例えば差または比率)に依存する。
【0075】
開発ボリュームの評価の例として、サーバ30は、ステップS131において生成した「開発ボリューム」の指標またはその個別評価結果を統合することで、開発ボリュームを定量的に評価してもよい。第1例として、サーバ30は、「開発ボリューム」の指標またはその加工値の重み付き和(重みは一様であってもよい)を開発ボリュームの評価結果として算出してもよい。第2例としてサーバ30は、「開発ボリューム」の指標と基準値との比較結果に対して数値(例えば、指標の基準値に対する差、または指標の基準値に対する比率の少なくとも1つに依存する数値)を割り当て、割り当てられた数値の重み付き和(重みは一様であってもよい)を開発ボリュームの評価結果として算出してもよい。或いは、サーバ30は、これらの重み付き和を加工することで開発ボリュームの評価結果を得るようにしてもよい。
【0076】
また、サーバ30は、「開発ボリューム」の指標の各々が開発ボリュームの評価結果に及ぼした影響を分析してもよい。一例として、サーバ30は、影響の度合いを具体的な数値として導出してもよいし、影響の符号(正負)のみを特定してもよい。また、サーバ30は、負の影響の度合いが大きい指標を要改善指標として特定してもよい。負の影響の度合いが大きい指標は、負の影響の度合いが閾値を超える指標、または負の影響の度合いが上位N1位以内の指標(N1は任意の自然数)を含み得る。これらの分析結果は、評価結果に含められ得る。
【0077】
開発効率の評価の例として、サーバ30は、ステップS131において生成した「開発効率」の指標またはその個別評価結果を統合することで、開発効率を定量的に評価してもよい。第1例として、サーバ30は、「開発効率」の指標またはその加工値の重み付き和(重みは一様であってもよい)を開発効率の評価結果として算出してもよい。第2例としてサーバ30は、「開発効率」の指標と基準値との比較結果に対して数値(例えば、指標の基準値に対する差、または指標の基準値に対する比率の少なくとも1つに依存する数値)を割り当て、割り当てられた数値の重み付き和(重みは一様であってもよい)を開発効率の評価結果として算出してもよい。或いは、サーバ30は、これらの重み付き和を加工することで開発効率の評価結果を得るようにしてもよい。
【0078】
また、サーバ30は、「開発効率」の指標の各々が開発効率の評価結果に及ぼした影響を分析してもよい。一例として、サーバ30は、影響の度合いを具体的な数値として導出してもよいし、影響の符号(正負)のみを特定してもよい。また、サーバ30は、負の影響の度合いが大きい指標を要改善指標として特定してもよい。負の影響の度合いが大きい指標は、負の影響の度合いが閾値を超える指標、または負の影響の度合いが上位N2位以内の指標(N2は任意の自然数)を含み得る。これらの分析結果は、評価結果に含められ得る。
【0079】
開発クオリティの評価の例として、サーバ30は、ステップS131において生成した「開発クオリティ」の指標またはその個別評価結果を統合することで、開発クオリティを定量的に評価してもよい。第1例として、サーバ30は、「開発クオリティ」の指標またはその加工値の重み付き和(重みは一様であってもよい)を開発クオリティの評価結果として算出してもよい。第2例としてサーバ30は、「開発クオリティ」の指標と基準値との比較結果に対して数値(例えば、指標の基準値に対する差、または指標の基準値に対する比率の少なくとも1つに依存する数値)を割り当て、割り当てられた数値の重み付き和(重みは一様であってもよい)を開発クオリティの評価結果として算出してもよい。或いは、サーバ30は、これらの重み付き和を加工することで開発クオリティの評価結果を得るようにしてもよい。
【0080】
また、サーバ30は、「開発クオリティ」の指標の各々が開発クオリティの評価結果に及ぼした影響を分析してもよい。一例として、サーバ30は、影響の度合いを具体的な数値として導出してもよいし、影響の符号(正負)のみを特定してもよい。また、サーバ30は、負の影響の度合いが大きい指標を要改善指標として特定してもよい。負の影響の度合いが大きい指標は、負の影響の度合いが閾値を超える指標、または負の影響の度合いが上位N3位以内の指標(N3は任意の自然数)を含み得る。これらの分析結果は、評価結果に含められ得る。
【0081】
開発パフォーマンスの総合評価の第1例として、サーバ30は、開発ボリューム、開発効率、または開発クオリティのうち少なくとも2つの評価結果を統合する。例えば、サーバ30は、複数の評価結果の重み付き和(重みは一様であってもよい)を開発パフォーマンスの総合評価結果として算出してもよい。開発パフォーマンスの総合評価の第2例として、サーバ30は、ステップS131において生成した各指標またはその個別評価結果を統合する。例えば、サーバ30は、各指標またはその加工値の重み付き和(重みは一様であってもよい)を開発パフォーマンスの総合評価結果として算出してもよい。或いは、サーバ30は、各指標と基準値との比較結果に対して数値(例えば、指標の基準値に対する差、または指標の基準値に対する比率の少なくとも1つに依存する数値)を割り当て、割り当てられた数値の重み付き和(重みは一様であってもよい)を開発パフォーマンスの総合評価結果として算出してもよい。或いは、サーバ30は、これらの重み付き和を加工することで開発パフォーマンスの総合評価結果を得るようにしてもよい。
【0082】
なお、サーバ30は、導出した評価結果を、図示しないデータベースに格納してもよい。これにより、サーバ30は、同一の対象チームおよび同一の対象期間が指定された場合に、パフォーマンスの評価(S132)を実行する代わりに、データベースに格納されている評価結果を読み出して利用することができる。また、サーバ30は、対象期間の長さに関わらず、対象期間に属する所定の時間単位(例えば日単位)における評価結果を導出してデータベースに格納し、当該対象期間に属する時間単位に亘って評価結果を統合することにより対象期間における評価結果を導出してもよい。これにより、過去に指定された対象期間と重複する対象期間が指定された場合であっても、過去に導出した評価結果を再利用してパフォーマンスの評価(S132)を実行できる。
【0083】
ステップS132の後に、サーバ30は、評価応答(S133)を実行する。
具体的には、サーバ30は、ステップS132において導出した評価結果をクライアント装置10のユーザに提示するための情報を含む評価応答を生成する。サーバ30は、生成した評価応答をクライアント装置10へ送信する。ここで、評価結果を提示するための情報は、例えば、クライアント装置10がディスプレイ21に表示させる画面を生成するための情報であってよい。
【0084】
ステップS133の後に、クライアント装置10は、情報提示(S111)を実行する。
具体的には、クライアント装置10は、ステップS133において送信された評価応答を受信し、当該評価応答に基づく画面をディスプレイ21に表示させる。これにより、ユーザは、ステップS110において指定した対象チームによる対象期間における開発パフォーマンスの評価を確認することができる。
【0085】
一例として、クライアント装置10は、図8に示す画面をディスプレイ21に表示させる。図8の画面は、オブジェクトJ20~J29を含む。
【0086】
オブジェクトJ20は、対象チームが属する組織の名称を表示する。
オブジェクトJ21は、対象チームの名称(対象チームを特定可能な情報の一例)を表示する。オブジェクトJ21は、対象チームを変更する指示を受け付けるように構成されてもよい。この場合に、クライアント装置10のユーザは、当該ユーザに評価の閲覧権限が割り当てられているチームのいずれかを新たな対象チームとして選択する入力が認められる。
【0087】
対象チームが変更された場合に、クライアント装置10は、ディスプレイ21の画面(例えば、後述するオブジェクトJ26~J29の表示内容)を更新する。クライアント装置10は、ディスプレイ21に更新後の画面を表示させるための情報(例えば、対象期間における変更後の対象チームの評価結果)をサーバ30に要求してもよい。この場合に、サーバ30は、変更後の対象チームに関して、ステップS130~S132と同様の処理を行ってよい。或いは、かかる情報は、ステップS133における評価応答に予め含められていてもよい。
【0088】
オブジェクトJ22は、対象期間の開始日および終了日(対象期間を特定可能な情報の一例)を表示する。オブジェクトJ22は、対象期間を変更する指示を受け付けるように構成されてもよい。この場合に、クライアント装置10のユーザは、対象期間の開始日または終了日の少なくとも1つを変更する入力が認められる。
【0089】
オブジェクトJ23は、対象期間を指定するための指示を受け付ける。オブジェクトJ23が選択されると、クライアント装置10はカレンダーUI(User Interface)を表示し、ユーザは当該カレンダーUI上で対象期間を指定する入力を行うことができる。
【0090】
対象期間が変更された場合に、クライアント装置10は、ディスプレイ21の画面(例えば、後述するオブジェクトJ26~J29の表示内容)を更新する。クライアント装置10は、ディスプレイ21に更新後の画面を表示させるための情報(例えば、変更後の対象期間における対象チームの評価結果)をサーバ30に要求してもよい。この場合に、サーバ30は、変更後の対象期間に関して、ステップS130~S132と同様の処理を行ってよい。或いは、かかる情報は、ステップS133における評価応答に予め含められていてもよい。
【0091】
オブジェクトJ24は、対象チームと他チームとの比較結果を示す画面への切り替え指示を受け付ける。オブジェクトJ24が選択されると、クライアント装置10はディスプレイ21の画面の切り替えを行う。
【0092】
オブジェクトJ24が選択された場合に、クライアント装置10は、ディスプレイ21に切り替え後の画面(例えば後述する図10の画面)を表示させるための情報(例えば、比較対象となる他チームの指標または評価結果の情報)をサーバ30に要求してもよい。この場合に、サーバ30は、他チームに関して、ステップS130~S132と同様の処理を行ってよい。或いは、かかる情報は、ステップS133における評価応答に予め含められていてもよい。
【0093】
オブジェクトJ25は、対象チームの評価結果を時系列で比較する画面への切り替え指示を受け付ける。オブジェクトJ25が選択されると、クライアント装置10はディスプレイ21の画面の切り替えを行う。
【0094】
オブジェクトJ25が選択された場合に、クライアント装置10は、ディスプレイ21に切り替え後の画面(例えば後述する図11の画面)を表示させるための情報(例えば、対象チームの対象期間以外の期間における評価結果の情報)をサーバ30に要求してもよい。この場合に、サーバ30は、対象期間以外の期間に関して、ステップS130~S132と同様の処理を行ってよい。或いは、かかる情報は、ステップS133における評価応答に予め含められていてもよい。
【0095】
オブジェクトJ26は、対象期間における対象チームによる開発パフォーマンスの総合評価結果、開発ボリュームの評価結果、開発効率の評価結果、および開発クオリティの評価結果を表示する。図8の例では、開発パフォーマンスの総合評価結果は任意の段階のレーティング(図8の例では星マークの数であるが、SABCDのようなアルファベットによるランクであってもよい)で表現されており、その他の評価結果は最高100点で0.1点刻みの点数で表現されている。ただし、これらの表現は例示に過ぎず、任意の評価結果が任意の態様で表現されてよい。例えば、各評価結果が、平均値からの隔たりを表す指数(例えば、偏差値)として表現されてもよい。この場合に、平均値または標準偏差として、実際の統計値が使用されてもよいし、予め定められた値が使用されてもよい。
【0096】
オブジェクトJ27は、「開発ボリューム」の指標の個別評価結果を表示する。図8の例では、オブジェクトJ27は、各指標の個別評価結果を表現するテキストを表示する。さらに、オブジェクトJ27では、開発ボリュームの評価結果に正の影響を及ぼした指標に対応するテキストが[Good]欄に配置され、開発ボリュームの評価結果に負の影響を及ぼした指標に対応するテキストが[Bad]欄に配置されている。つまり、ユーザは、いずれの指標が正の影響または負の影響を及ぼしたかを容易に判別できる。
【0097】
また、オブジェクトJ27は、オブジェクトJ27aを含む。オブジェクトJ27aが選択されると、クライアント装置10は、「開発ボリューム」の指標の個別評価結果の詳細を表示する。一例として、クライアント装置10は、グラフを表示する。グラフは、例えば、任意の「開発ボリューム」の指標の値またはその加工値と、対応する基準値とを視覚的に対比して表現し得る。グラフで表現される指標は、ユーザ指示に応じて切り替えられてよい。グラフの例を図9に示す。
【0098】
図9のグラフは、メンバー数に対するマージ済みプルリク数を表現する。図9中の星印は、対象期間における対象チームのメンバー数およびマージ済みプルリク数を表すデータポイントである。また、図9中の黒丸印は、他のデータポイントである。他のデータポイントは、例えば以下の少なくとも1つを含む。
・対象期間における他のチームのメンバー数およびマージ済みプルリク数を表すデータポイント
・対象期間以外の期間における対象チームのメンバー数およびマージ済みプルリク数を表すデータポイント
・対象期間以外の期間における他のチームのメンバー数およびマージ済みプルリク数を表すデータポイント
【0099】
図9中の直線は、対象期間内に稼働のあったメンバー数を説明変数とし、マージ済みプルリク数を目的変数とした場合の回帰直線を表す。回帰直線は、星印および黒丸印に対応するデータポイントを元に線形回帰を計算することで導出される。ユーザは、図9のグラフを確認することで、対象期間における対象チームのマージ済みプルリク数が、メンバー数に対する予測値(つまり、回帰直線上で対象チームのメンバー数に対応する値であり、基準値の一例)に比べてどの程度優れているかを把握することができる。サーバ30は、他の指標についても同様の態様で表示することができる。なお、対象期間内に稼働のあったメンバー数の代わりに、各チームに属する全メンバー数(つまり、各チームに対応するリポジトリに紐付けられているエンジニアの数)を説明変数として用いることもできる。また、回帰直線の代わりに回帰曲線によって、メンバー数に対応するマージ済みプルリク数が近似されてよい。さらに、近似に用いる関数は、例えば情報処理システム1の運営者が選択可能であってよい。
【0100】
オブジェクトJ28は、「開発効率」の指標の個別評価結果を表示する。図8の例では、オブジェクトJ28は、各指標の個別評価結果を表現するテキストを表示する。さらに、オブジェクト27では、開発効率の評価結果に正の影響を及ぼした指標に対応するテキストが[Good]欄に配置され、開発効率の評価結果に負の影響を及ぼした指標に対応するテキストが[Bad]欄に配置されている。
【0101】
また、オブジェクトJ28は、オブジェクトJ28aを含む。オブジェクトJ28aが選択されると、クライアント装置10は、「開発効率」の指標の個別評価結果の詳細を表示する。一例として、クライアント装置10は、グラフを表示する。グラフは、例えば、任意の「開発ボリューム」の指標の値またはその加工値と、対応する基準値とを視覚的に対比して表現し得る。グラフで表現される指標は、ユーザ指示に応じて切り替えられてよい。
【0102】
オブジェクトJ29は、「開発クオリティ」の指標の個別評価結果を表示する。なお、図示していないが、オブジェクトJ29は、各指標の個別評価結果を表現するテキストを表示する。さらに、オブジェクト27では、開発クオリティの評価結果に正の影響を及ぼした指標に対応するテキストが[Good]欄に配置され、開発クオリティの評価結果に負の影響を及ぼした指標に対応するテキストが[Bad]欄に配置されている。
【0103】
また、オブジェクトJ29は、オブジェクトJ29aを含む。オブジェクトJ29aが選択されると、クライアント装置10は、「開発クオリティ」の指標の個別評価結果の詳細を表示する。一例として、クライアント装置10は、グラフを表示する。グラフは、例えば、任意の「開発ボリューム」の指標の値またはその加工値と、対応する基準値とを視覚的に対比して表現し得る。グラフで表現される指標は、ユーザ指示に応じて切り替えられてよい。
【0104】
前述のように、例えばオブジェクトJ24が選択された場合に、クライアント装置10は、図10の画面をディスプレイ21に表示させることができる。図10の画面は、オブジェクトJ20~23、J25、J30~J31を含む。オブジェクトJ20~23、J25は、前述のとおりである。
【0105】
オブジェクトJ30は、対象チームの評価サマリを示す画面(例えば図8の画面)への切り替え指示を受け付ける。オブジェクトJ30が選択されると、クライアント装置10はディスプレイ21の画面の切り替えを行う。
【0106】
オブジェクトJ31は、対象期間における対象チームの評価結果と、対象期間における比較相手の評価結果とを対比して視覚的に表現するグラフ(レーダーチャート)を表示する。図10の例では、評価結果は、開発パフォーマンスの総合評価結果、ならびに開発ボリューム、開発効率、および開発クオリティの評価結果を含むが、これらは例示に過ぎない。また、グラフの種類もレーダーチャートに限られない。なお、比較相手の評価結果は、以下のいずれであってもよい。
・他の全チームの評価結果の平均、中央値、もしくは最頻値、またはこれらに基づく統計的数値範囲(例えば四分位範囲)
・他の特定の複数チームの評価結果の平均、中央値、もしくは最頻値、またはこれらに基づく統計的数値範囲
・他の無作為抽出された複数チームの評価結果の平均、中央値、もしくは最頻値、またはこれらに基づく統計的数値範囲
・他の特定のチームの評価結果
【0107】
比較相手となるチームは、ユーザによって指定されてもよいし、対象チームの開発分野または業界に基づいて決定されてもよい。比較相手となるチームは、対象チームが属する組織に属する他のチームであってもよいし、異なる組織に属する他のチームであってもよい。サーバ30は、比較相手(比較相手との候補を含む)となるチームが、対象チームと異なる組織に属する場合に、当該チームの情報を、匿名化した状態で提供してもよい。また、サーバ30は、対象チームの情報を、他組織に属するチームとの比較のために提供するか否か、また提供する場合の条件を、ユーザ指示に応じて設定してもよい。
【0108】
図示しないが、図10の画面は、さらに、対象期間における対象チームの各カテゴリの個別指標の評価結果と、対象期間における比較相手の各カテゴリの個別指標の評価結果とを対して視覚的に表現するグラフを表示するオブジェクトを含むことができる。
【0109】
前述のように、例えばオブジェクトJ25が選択された場合に、クライアント装置10は、図11の画面をディスプレイ21に表示させることができる。図11の画面は、オブジェクトJ20~24、J30、J40~J42を含む。オブジェクトJ20~24、J30は、前述のとおりである。
【0110】
オブジェクトJ40は、対象期間における対象チームの評価結果と、対象期間とは異なる期間における対象チームの評価結果とを対比して視覚的に表現するグラフ(折れ線グラフ)を表示する。図11の例では、評価結果は、開発パフォーマンスの総合評価結果、ならびに開発ボリューム、開発効率、および開発クオリティの評価結果を含むが、これらは例示に過ぎない。また、グラフの種類も折れ線グラフに限られない。
【0111】
オブジェクトJ41は、オブジェクトJ40に表示されるグラフを構成する分析単位の数を指定するユーザ指示を受け付ける。ここで、分析単位は、評価が行われる時間的範囲を意味しており、典型的には、日、週、月、四半期、または年のいずれかである。
オブジェクトJ42は、オブジェクトJ40に表示されるグラフを構成する分析単位を指定するユーザ指示を受け付ける。
つまり、図11の例では、オブジェクトJ40に表示されるグラフは、4ヶ月分に亘る、1ヶ月単位の評価結果を含んでいる。
【0112】
分析単位の数、または分析単位が変更された場合に、クライアント装置10は、ディスプレイ21の画面(例えば、オブジェクトJ40の表示内容)を更新する。クライアント装置10は、ディスプレイ21に更新後の画面を表示させるための情報(例えば、変更後の対象期間における対象チームの評価結果)をサーバ30に要求してもよい。この場合に、サーバ30は、変更後の対象期間に関して、ステップS130~S132と同様の処理を行ってよい。或いは、かかる情報は、図11の画面の表示前にサーバ30から受信した応答に予め含められていてもよい。
【0113】
図示しないが、図11の画面は、さらに、対象期間における対象チームの各カテゴリの個別指標の評価結果と、対象期間とは異なる期間における対象チームの各カテゴリの個別指標の評価結果とを対して視覚的に表現するグラフを表示するオブジェクトを含むことができる。
【0114】
(5)小括
以上説明したように、本実施形態のサーバ30は、対象チームに属するメンバーが外部システム50を利用することで当該外部システム50に保存された、当該メンバーの開発活動情報に基づいて、当該対象チームによる開発パフォーマンスに関する複数の指標を生成し、当該指標に基づいて当該対象チームによる開発パフォーマンスを評価する。これにより、複数の指標を介した、対象チームのメンバーの開発活動情報の多面的な分析に基づいて当該対象チームによる開発パフォーマンスを適切に評価することができる。
【0115】
複数の指標は、開発ボリューム、開発効率、または開発クオリティの少なくとも1つに関するものであってよい。これにより、対象チームによる開発パフォーマンスを、開発ボリューム、開発効率、または開発クオリティの少なくとも1つの観点から評価することができる。
【0116】
サーバ30は、複数の指標の少なくとも1つが特定の指標に該当する場合に、対象チームに含まれるメンバーの数に基づいて当該特定の指標を評価してもよい。これにより、対象チームに含まれるメンバーの大小が及ぼす影響を抑制して特定の指標を評価することができる。
【0117】
サーバ30は、対象チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つを定量的に評価してもよい。これにより、対象チームの開発パフォーマンスを比較容易な形式で表現することができる。
【0118】
サーバ30は、複数の指標の少なくとも1つが対象チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価に及ぼした影響を分析してもよい。これにより、各指標が最終的な評価結果にどの程度影響を及ぼしているのかを特定することができる。また、サーバ30は、複数の指標の少なくとも1つが対象チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価に正負いずれの影響を及ぼしたかを分析してもよい。これにより、対象チームの強みまたは弱みを特定することができる。
【0119】
サーバ30は、複数の指標の少なくとも1つについて基準値と比較することで、当該指標を個別に評価してもよい。これにより、各指標の良し悪しを判断するための材料を提供することができる。
【0120】
サーバ30は、対象チームによる開発パフォーマンスの評価結果を、他のチームによる開発パフォーマンスの評価結果、または異なる期間における当該対象チームによる開発パフォーマンスの評価結果と比較してもよい。これにより、対象チームによる開発パフォーマンスの評価結果の良し悪しを判断するための材料を提供することができる。
【0121】
開発活動情報は、外部システム50に保存されているソースコードに関して、対象チームに属するメンバーにより行われた活動を特定可能な情報と、当該活動が行われた日時を特定可能な情報とを含んでもよい。これにより、適切な指標を作成することができる。
【0122】
(6)その他の変形例
記憶装置11は、ネットワークNWを介して、クライアント装置10と接続されてもよい。ディスプレイ21は、クライアント装置10と一体化されてもよい。記憶装置31は、ネットワークNWを介して、サーバ30と接続されてもよい。
【0123】
上記の情報処理の各ステップは、クライアント装置10及びサーバ30の何れでも実行可能である。例えば、サーバ30が実行するとして説明された処理を、クライアント装置10が実行してもよい。
【0124】
また、上記説明では、情報処理において各ステップを特定の順序で実行する例を示したが、各ステップの実行順序は、依存関係がない限りは説明した例に制限されない。
【0125】
上記説明では、複数の指標の少なくとも1つが対象チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価に及ぼした影響を分析する例を示した。この場合に、サーバ30は、上記定量的な評価に及ぼした負の影響が最も大きい指標を分析してもよい。これにより、対象チームの最も大きな弱みを特定することができる。本変形例において、負の影響が最も大きい指標に関する情報が、他の指標に関する情報に比べて例えば強調して提示されてよい。また、正の影響についても同様の処理が可能である。
【0126】
上記説明では、クライアント装置10がユーザ指示に応じて対象チームの評価を要求する例を示した。しかしながら、サーバ30は、クライアント装置10からの評価要求によらずに、対象チームの評価を繰り返し(例えば所定の周期で)実行してもよい。さらに、サーバ30は、対象チームの評価結果(例えば、対象チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価結果)について所定の条件が成立する場合に、例えばユーザ宛に通知を行ってもよい。所定の条件は、例えば評価結果が閾値を下回ること、であってよい。通知は、アプリ画面、またはウェブサイト画面上で行われてもよいし、メールまたはその他のメッセージ(例えば、SNS(Social Networking Service)メッセージ、SMS(Short Message Service)メッセージ、など)を用いて行われてもよい。通知は、所定条件が成立したことを伝える情報を含んでいてもよいし、対象チームの開発パフォーマンスの評価結果(またはその一部)の情報を含んでいてもよい。これにより、ユーザは、対象チームの開発パフォーマンスを能動的に頻繁に確認せずとも、上記所定の条件の成立時に対象チームの開発パフォーマンスを速やかに把握することができる。
【0127】
上記説明では、対象チームの開発パフォーマンスを評価する例を示した。サーバ30は、同一の組織に属する全チームの各々について生成した複数の指標、または当該組織に属する全チームの各々の開発パフォーマンスの評価結果の少なくとも1つに基づいて、当該組織の開発パフォーマンスを評価してもよい。第1例として、サーバ30は、各チームの評価結果を統合する。例えば、サーバ30は、各チームの評価結果の重み付き和(重みは一様であってもよい)を組織の開発パフォーマンスの総合評価結果として算出してもよい。第2例として、サーバ30は、各チームについて生成した各指標またはその個別評価結果を統合する。例えば、サーバ30は、各指標またはその加工値の重み付き和(重みは一様であってもよい)を組織の開発パフォーマンスの総合評価結果として算出してもよい。或いは、サーバ30は、各指標と基準値との比較結果に対して数値(例えば、指標の基準値に対する差、または指標の基準値に対する比率の少なくとも1つに依存する数値)を割り当て、割り当てられた数値の重み付き和(重みは一様であってもよい)を組織の開発パフォーマンスの総合評価結果として算出してもよい。或いは、サーバ30は、これらの重み付き和を加工することで組織の開発パフォーマンスの総合評価結果を得るようにしてもよい。これにより、1以上のチームによって構成される組織による開発パフォーマンスを適切に評価することができる。
【0128】
サーバ30は、対象チームによる開発パフォーマンスの評価結果を含む、当該対象チームの属する組織の求人情報を公開してもよい。或いは、サーバ30は、対象チームの属する組織による開発パフォーマンスの評価結果を含む当該組織の求人情報を公開してもよい。これにより、対象チームまたは組織による開発パフォーマンスの評価結果を、求職者に対する組織のアピール材料として活用することができる。さらなる変形例として、サーバ30は、評価結果について所定の条件が成立した場合に限って、当該評価結果を含む求人情報を公開してもよい。例えば、所定の条件とは、評価結果が閾値を上回ること、であってよい。これにより、良好でない評価結果(つまり、求職者に対するアピール材料とならない評価結果)を含んだ求人情報が公開される事態を防ぐことができる。なお、本変形例で説明した処理は、サーバ30と、外部装置(例えば求人システムにおけるサーバ)と協同で実行してもよい。この場合に、外部装置は、サーバ30から対象チームまたは組織による開発パフォーマンスの評価結果を取得する。
【0129】
サーバ30は、各チームによる開発パフォーマンスの評価結果のランキングを公開してもよい。或いは、サーバ30は、各組織による開発パフォーマンスの評価結果のランキングを公開してもよい。ランキングは、チームまたは組織の属性別に集計されてよい。チームの属性は、例えば規模、または開発分野を含む。組織の属性は、例えば、規模、設立からの経過年数、業界、または本社所在地を含む。さらなる変形例として、サーバ30は、所定の順位よりも低い順位に位置づけられたチームまたは組織の情報を公開の対象から除外してもよい。なお、本変形例で説明した処理は、サーバ30と、外部装置と協同で実行してもよい。この場合に、外部装置は、サーバ30から各チームまたは各組織による開発パフォーマンスの評価結果を取得する。
【0130】
上記説明では、開発クオリティを独立した項目として評価する例を示した。しかしながら、開発クオリティを評価の対象から除外し、その代わりに、「開発クオリティ」の指標(例えば関連する平均変更行数)を、他の項目(例えば開発ボリューム)の評価を調整するために用いてもよい。具体的には、開発ボリュームの指標(例えばプルリク作成数等)を、開発クオリティの指標に基づいて重み付けする補正が行われてよい。重み付けは、例えば、開発クオリティの指標の評価が高い(一例として適正値に近い)ほど、開発ボリュームの指標により大きな補正係数を乗じることで行われ得る。
【0131】
サーバ30は、対象期間における対象チームまたは組織の評価結果と、過去の期間における対象チームまたは組織の評価結果に対する変化(例えば改善)の比率、または量を算出し、算出結果をユーザに提示してもよい。
【0132】
(7)付記
実施形態および変形例で説明した事項を、以下に付記する。
【0133】
(付記1)
コンピュータ(30)を、
チームに属するメンバーがイシュー管理サービス(50)を利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段(S130)、
開発活動に関する情報に基づいて、複数の指標を生成する手段(S131)、
複数の指標に基づいて、チームによる開発パフォーマンスを評価する手段(S132)、
チームによる開発パフォーマンスの評価結果を出力する手段(S133)、
として機能させるプログラム。
【0134】
(付記2)
複数の指標は、開発ボリューム、開発効率、または開発クオリティの少なくとも1つに関する、
付記1に記載のプログラム。
【0135】
(付記3)
チームによる開発パフォーマンスを評価する手段は、複数の指標の少なくとも1つが特定の指標に該当する場合に、チームに含まれるメンバーの数に基づいて当該特定の指標を評価する、
付記1に記載のプログラム。
【0136】
(付記4)
チームによる開発パフォーマンスを評価する手段は、チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つを定量的に評価する、
付記1に記載のプログラム。
【0137】
(付記5)
チームによる開発パフォーマンスを評価する手段は、プルリク作成数、マージ済みプルリク数、レビュー数、レビューしたプルリク数、コーディング数、コミット数、またはメインブランチへのマージ回数、の少なくとも1つに基づいてチームの開発ボリュームを定量的に評価する、
付記4に記載のプログラム。
【0138】
(付記6)
チームによる開発パフォーマンスを評価する手段は、チームのメンバーが最初のレビューをするまでの平均時間、プルリク作成からマージまたはクローズされるまでの平均時間、最初のコミットからプルリク作成までの平均時間、プルリク作成からレビューまでの平均時間、最初のレビューからクローズまでの平均時間、最初のレビューから最後のアプルーブまでの平均時間、最後のアプルーブからマージまでの平均時間、メインブランチへのマージされたプルリクの作成からマージまでの平均時間、またはメインブランチへマージされたプルリクに紐づく最初のコミットからマージまでの平均時間、の少なくとも1つに基づいてチームの開発効率を定量的に評価する、
付記4に記載のプログラム。
【0139】
(付記7)
チームによる開発パフォーマンスを評価する手段は、レビューされずにマージされたプルリクの割合、変更障害率、1プルリクに対する平均コメント数、1プルリクあたりの平均変更行数、または1プルリクあたりの変更ファイル数、の少なくとも1つに基づいてチームの開発クオリティを定量的に評価する、
付記4に記載のプログラム。
【0140】
(付記8)
コンピュータを、複数の指標の少なくとも1つがチームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価に及ぼした影響を分析する手段としてさらに機能させる、
付記4に記載のプログラム。
【0141】
(付記9)
コンピュータを、複数の指標の少なくとも1つがチームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価に正負いずれの影響を及ぼしたかを分析する手段、としてさらに機能させる、
付記8に記載のプログラム。
【0142】
(付記10)
コンピュータを、チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価に及ぼした負の影響が最も大きい指標を分析する手段、としてさらに機能させる、
付記8に記載のプログラム。
【0143】
(付記11)
コンピュータを、チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価結果について所定の条件が成立する場合に、通知を行う手段としてさらに機能させる、
付記4に記載のプログラム。
【0144】
(付記12)
チームによる開発パフォーマンスを評価する手段は、複数の指標の少なくとも1つについて基準値と比較することで、当該指標を個別に評価する、
付記1に記載のプログラム。
【0145】
(付記13)
コンピュータを、チームによる開発パフォーマンスの評価結果を、他のチームによる開発パフォーマンスの評価結果、または異なる期間におけるチームによる開発パフォーマンスの評価結果と比較する手段、としてさらに機能させる、
付記12に記載のプログラム。
【0146】
(付記14)
コンピュータを、組織に属する全チームの各々について生成した複数の指標、または当該組織に属する全チームの各々の開発パフォーマンスの評価結果の少なくとも1つに基づいて、当該組織の開発パフォーマンスを評価する手段としてさらに機能させる、
付記1に記載のプログラム。
【0147】
(付記15)
コンピュータを、チームによる開発パフォーマンスの評価結果を含む、当該チームの属する組織の求人情報を公開する手段としてさらに機能させる、
付記1に記載のプログラム。
【0148】
(付記16)
開発活動に関する情報は、イシュー管理サービスに保存されているソースコードに関して、チームに属するメンバーにより行われた活動を特定可能な情報と、当該活動が行われた日時を特定可能な情報とを含む、
付記1に記載のプログラム。
【0149】
(付記17)
チームに属するメンバーがイシュー管理サービス(50)を利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段(S130)と、
開発活動に関する情報に基づいて、複数の指標を生成する手段(S131)と、
複数の指標に基づいて、チームによる開発パフォーマンスを評価する手段(S132)と
チームによる開発パフォーマンスの評価結果を出力する手段(S133)と
を具備する、情報処理装置。
【0150】
(付記18)
クライアント装置(10)と、サーバ(30)とを具備する情報処理システム(1)であって、
サーバは、
チームに属するメンバーがイシュー管理サービス(50)を利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段(S130)と、
開発活動に関する情報に基づいて、複数の指標を生成する手段(S131)と、
複数の指標に基づいて、チームによる開発パフォーマンスを評価する手段(S132)とを備え、
クライアント装置は、チームによる開発パフォーマンスの評価結果を提示する手段(S111)を備える、
情報処理システム。
【0151】
(付記19)
チームによる開発パフォーマンスの評価結果を受信する手段と、
前記評価結果を提示する手段(S111)と
を具備し、
前記評価結果は、前記チームによる開発パフォーマンスが複数の指標に基づいて評価された結果であり、
前記複数の指標は、前記チームに属するメンバーがイシュー管理サービス(50)を利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報に基づいて生成される、
情報処理装置(10)。
【0152】
(付記20)
クライアント装置(10)に情報処理を実行させる方法であって、
クライアント装置に、
チームによる開発パフォーマンスの評価結果を受信する処理と、
評価結果を提示する処理(S111)と
を実行させ、
評価結果は、チームによる開発パフォーマンスが複数の指標に基づいて評価された結果であり、
複数の指標は、チームに属するメンバーがイシュー管理サービス(50)を利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報に基づいて生成される、
方法。
【0153】
以上、本発明の実施形態について詳細に説明したが、本発明の範囲は上記の実施形態に限定されない。また、上記の実施形態は、本発明の主旨を逸脱しない範囲において、種々の改良や変更が可能である。また、上記の実施形態及び変形例は、組合せ可能である。
【符号の説明】
【0154】
1 :情報処理システム
10 :クライアント装置
11 :記憶装置
12 :プロセッサ
13 :入出力インタフェース
14 :通信インタフェース
21 :ディスプレイ
30 :サーバ
31 :記憶装置
32 :プロセッサ
33 :入出力インタフェース
34 :通信インタフェース
50 :外部システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
【手続補正書】
【提出日】2022-11-10
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータを、
チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段、
前記開発活動に関する情報に基づいて、複数の指標を生成する手段、
前記複数の指標に基づいて、前記チームによる開発パフォーマンスを評価する手段、
前記チームによる開発パフォーマンスの評価結果を出力する手段、
として機能させ
前記開発活動に関する情報を取得する手段は、前記イシュー管理サービスの有するリポジトリであって、前記チームに関連付けられている第1リポジトリを特定し、前記チームに属するメンバーがイシュー管理サービスを利用することで前記第1リポジトリに保存された、当該メンバーによる開発活動に関する情報を取得する、
プログラム。
【請求項2】
コンピュータを、
チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段、
前記開発活動に関する情報に基づいて、複数の指標を生成する手段、
前記複数の指標に基づいて、前記チームによる開発パフォーマンスを評価する手段、
前記チームによる開発パフォーマンスの評価結果を出力する手段、
として機能させ
前記チームによる開発パフォーマンスを評価する手段は、前記チームのメンバーが最初のレビューをするまでの平均時間、プルリク作成からマージまたはクローズされるまでの平均時間、最初のコミットからプルリク作成までの平均時間、プルリク作成からレビューまでの平均時間、最初のレビューからクローズまでの平均時間、最初のレビューから最後のアプルーブまでの平均時間、最後のアプルーブからマージまでの平均時間、メインブランチへのマージされたプルリクの作成からマージまでの平均時間、またはメインブランチへマージされたプルリクに紐づく最初のコミットからマージまでの平均時間、の少なくとも1つに基づいて前記チームの開発効率を定量的に評価する、
プログラム。
【請求項3】
前記複数の指標は、開発ボリューム、開発効率、または開発クオリティの少なくとも1つに関する、
請求項1または請求項2に記載のプログラム。
【請求項4】
前記チームによる開発パフォーマンスを評価する手段は、前記複数の指標の少なくとも1つが特定の指標に該当する場合に、前記チームに含まれるメンバーの数に基づいて当該特定の指標を評価する、
請求項1または請求項2に記載のプログラム。
【請求項5】
前記チームによる開発パフォーマンスを評価する手段は、前記チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つを定量的に評価する、
請求項1または請求項2に記載のプログラム。
【請求項6】
前記チームによる開発パフォーマンスを評価する手段は、プルリク作成数、マージ済みプルリク数、レビュー数、レビューしたプルリク数、コーディング数、コミット数、またはメインブランチへのマージ回数、の少なくとも1つに基づいて前記チームの開発ボリュームを定量的に評価する、
請求項5に記載のプログラム。
【請求項7】
前記チームによる開発パフォーマンスを評価する手段は、レビューされずにマージされたプルリクの割合、変更障害率、1プルリクに対する平均コメント数、1プルリクあたりの平均変更行数、または1プルリクあたりの変更ファイル数、の少なくとも1つに基づいて前記チームの開発クオリティを定量的に評価する、
請求項5に記載のプログラム。
【請求項8】
前記コンピュータを、前記複数の指標の少なくとも1つが前記チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価に及ぼした影響を分析する手段としてさらに機能させる、
請求項5に記載のプログラム。
【請求項9】
前記コンピュータを、前記複数の指標の少なくとも1つが前記チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価に正負いずれの影響を及ぼしたかを分析する手段、としてさらに機能させる、
請求項8に記載のプログラム。
【請求項10】
前記コンピュータを、前記チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価に及ぼした負の影響が最も大きい指標を分析する手段、としてさらに機能させる、
請求項8に記載のプログラム。
【請求項11】
前記コンピュータを、前記チームの開発ボリューム、開発効率、開発クオリティ、または総合的な開発パフォーマンスの少なくとも1つの定量的な評価結果について所定の条件が成立する場合に、通知を行う手段としてさらに機能させる、
請求項5に記載のプログラム。
【請求項12】
前記チームによる開発パフォーマンスを評価する手段は、前記複数の指標の少なくとも1つについて基準値と比較することで、当該指標を個別に評価する、
請求項1または請求項2に記載のプログラム。
【請求項13】
前記コンピュータを、前記チームによる開発パフォーマンスの評価結果を、他のチームによる開発パフォーマンスの評価結果、または異なる期間における前記チームによる開発パフォーマンスの評価結果と比較する手段、としてさらに機能させる、
請求項12に記載のプログラム。
【請求項14】
前記コンピュータを、組織に属する全チームの各々について生成した複数の指標、または当該組織に属する全チームの各々の開発パフォーマンスの評価結果の少なくとも1つに基づいて、当該組織の開発パフォーマンスを評価する手段としてさらに機能させる、
請求項1または請求項2に記載のプログラム。
【請求項15】
前記コンピュータを、前記チームによる開発パフォーマンスの評価結果を含む、当該チームの属する組織の求人情報を公開する手段としてさらに機能させる、
請求項1または請求項2に記載のプログラム。
【請求項16】
前記開発活動に関する情報は、前記イシュー管理サービスに保存されているソースコードに関して、前記チームに属するメンバーにより行われた活動を特定可能な情報と、当該活動が行われた日時を特定可能な情報とを含む、
請求項1または請求項2に記載のプログラム。
【請求項17】
チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段と、
前記開発活動に関する情報に基づいて、複数の指標を生成する手段と、
前記複数の指標に基づいて、前記チームによる開発パフォーマンスを評価する手段と
前記チームによる開発パフォーマンスの評価結果を出力する手段と
を具備し、
前記開発活動に関する情報を取得する手段は、前記イシュー管理サービスの有するリポジトリであって、前記チームに関連付けられている第1リポジトリを特定し、前記チームに属するメンバーがイシュー管理サービスを利用することで前記第1リポジトリに保存された、当該メンバーによる開発活動に関する情報を取得する、
情報処理装置。
【請求項18】
クライアント装置と、サーバとを具備する情報処理システムであって、
前記サーバは、
チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段と、
前記開発活動に関する情報に基づいて、複数の指標を生成する手段と、
前記複数の指標に基づいて、前記チームによる開発パフォーマンスを評価する手段とを備え、
前記開発活動に関する情報を取得する手段は、前記イシュー管理サービスの有するリポジトリであって、前記チームに関連付けられている第1リポジトリを特定し、前記チームに属するメンバーがイシュー管理サービスを利用することで前記第1リポジトリに保存された、当該メンバーによる開発活動に関する情報を取得し、
前記クライアント装置は、前記チームによる開発パフォーマンスの評価結果を提示する手段を備える、
情報処理システム。
【請求項19】
チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段と、
前記開発活動に関する情報に基づいて、複数の指標を生成する手段と、
前記複数の指標に基づいて、前記チームによる開発パフォーマンスを評価する手段と
前記チームによる開発パフォーマンスの評価結果を出力する手段と
を具備し、
前記チームによる開発パフォーマンスを評価する手段は、前記チームのメンバーが最初のレビューをするまでの平均時間、プルリク作成からマージまたはクローズされるまでの平均時間、最初のコミットからプルリク作成までの平均時間、プルリク作成からレビューまでの平均時間、最初のレビューからクローズまでの平均時間、最初のレビューから最後のアプルーブまでの平均時間、最後のアプルーブからマージまでの平均時間、メインブランチへのマージされたプルリクの作成からマージまでの平均時間、またはメインブランチへマージされたプルリクに紐づく最初のコミットからマージまでの平均時間、の少なくとも1つに基づいて前記チームの開発効率を定量的に評価する、
情報処理装置。
【請求項20】
クライアント装置と、サーバとを具備する情報処理システムであって、
前記サーバは、
チームに属するメンバーがイシュー管理サービスを利用することで当該イシュー管理サービスに保存された、当該メンバーによる開発活動に関する情報を取得する手段と、
前記開発活動に関する情報に基づいて、複数の指標を生成する手段と、
前記複数の指標に基づいて、前記チームによる開発パフォーマンスを評価する手段とを備え、
前記チームによる開発パフォーマンスを評価する手段は、前記チームのメンバーが最初のレビューをするまでの平均時間、プルリク作成からマージまたはクローズされるまでの平均時間、最初のコミットからプルリク作成までの平均時間、プルリク作成からレビューまでの平均時間、最初のレビューからクローズまでの平均時間、最初のレビューから最後のアプルーブまでの平均時間、最後のアプルーブからマージまでの平均時間、メインブランチへのマージされたプルリクの作成からマージまでの平均時間、またはメインブランチへマージされたプルリクに紐づく最初のコミットからマージまでの平均時間、の少なくとも1つに基づいて前記チームの開発効率を定量的に評価し、
前記クライアント装置は、前記チームによる開発パフォーマンスの評価結果を提示する手段を備える、
情報処理システム。