(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023152767
(43)【公開日】2023-10-17
(54)【発明の名称】プログラム、情報処理装置および方法
(51)【国際特許分類】
G06Q 10/0639 20230101AFI20231005BHJP
【FI】
G06Q10/0639
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2023031676
(22)【出願日】2023-03-02
(62)【分割の表示】P 2022059310の分割
【原出願日】2022-03-31
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
2.Python
(71)【出願人】
【識別番号】516291402
【氏名又は名称】ファインディ株式会社
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】佐藤 将高
(72)【発明者】
【氏名】山田 裕一朗
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA09
(57)【要約】 (修正有)
【課題】プロダクト開発等を行うエンジニアチーム又はそのエンジニアチームに所属するエンジニアの開発活動を、比較対象となる企業毎に客観的に評価する。
【解決手段】企業活動評価システムにおいて、サーバ20が実行するプログラムは、イシュー管理サービスに蓄積される情報を企業に関連付けて第1の情報として取得するステップと、エンジニアチームの各構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータを、各企業毎に特定するステップと、複数の企業を構成する第1の企業との比較対象となる、複数の企業を構成する1以上の第2の企業を、第1の企業及び第2の企業にそれぞれ関連付けられる属性の情報に基づき特定するステップと、第1の企業のユーザに対し、第1の企業の第1のパラメータと、第2の企業の情報に基づき、第1のパラメータに対応して算出される第2のパラメータとを比較可能に提示するステップと、を実行させる。
【選択図】
図6
【特許請求の範囲】
【請求項1】
プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、
前記プログラムは、前記プロセッサに、
エンジニアに割り当てられた活動を管理するイシュー管理サービスにアクセスすることにより、評価対象企業である第1の企業のエンジニアチームを構成する各構成員が当該イシュー管理サービスを利用することにより当該イシュー管理サービスに蓄積される情報を前記企業に関連付けて第1の情報として取得するステップと、
前記第1の情報に基づいて、前記第1の企業のエンジニアチームの各前記構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータを特定するステップと、
前記第1の企業との比較対象となる1以上の第2の企業を特定するステップと、
前記第1の企業に対し、前記第1の企業の前記第1のパラメータと、前記第2の企業における前記第1のパラメータに対応する第2のパラメータとを比較可能に提示するステップと、を実行させる、プログラム。
【請求項2】
前記第2の企業を特定するステップにおいて、前記第1の企業に関連付けられる属性の情報、前記第2の企業に関連付けられる属性の情報、及び各企業における前記第1のパラメータに対応する第2のパラメータに基づき、前記第2の企業を特定する、請求項1に記載のプログラム。
【請求項3】
前記第2の企業を特定するステップにおいて、前記第1の情報に含まれ、前記第1の企業に関連付けられる前記属性の情報に基づき前記第2の企業を特定する、請求項2に記載のプログラム。
【請求項4】
前記属性の情報は、前記イシュー管理サービスにおける各前記構成員を識別するアカウントに関連付けられる情報を含み、
前記第2の企業を特定するステップにおいて、前記アカウントに関連付けられる情報を含む前記属性の情報に基づき前記第2の企業を特定する、請求項3に記載のプログラム。
【請求項5】
前記属性の情報は、前記第1の企業の前記アカウントの数、または前記第1の企業における各前記構成員の種別を示す前記アカウントの種別を含み、
前記第2の企業を特定するステップにおいて、前記第1の企業の前記アカウントの数、または前記アカウントの種別を含む前記属性の情報に基づき前記第2の企業を特定する、請求項4に記載のプログラム。
【請求項6】
前記属性の情報は、前記イシュー管理サービスにおける各前記構成員の成果物に関連付けられる情報を含み、
前記第2の企業を特定するステップにおいて、前記成果物に関連付けられる情報を含む前記属性の情報に基づき前記第2の企業を特定する、請求項3から請求項5のいずれか1項に記載のプログラム。
【請求項7】
前記属性の情報は、前記イシュー管理サービスにおける各前記構成員が使用するコードに関する情報を含み、
前記第2の企業を特定するステップにおいて、前記コードに関する情報を含む前記属性の情報に基づき前記第2の企業を特定する、請求項6に記載のプログラム。
【請求項8】
前記第2の企業を特定するステップにおいて、あらかじめ定められた前記属性の情報に含まれる、前記第1の企業の求人に関する情報、前記第1の企業における前記構成員のスキルに関する情報、前記第1の企業の経営状態に関する情報、前記第1の企業における各前記構成員に関する情報、または前記第1の企業の業績に関する情報に基づき前記第2の企業を特定する、請求項2から請求項7のいずれか1項に記載のプログラム。
【請求項9】
前記第1のパラメータと前記第2のパラメータとを比較可能に提示するステップにおいて、
前記第1のパラメータと、
単一の前記第2の企業の前記第1の情報に基づいて算出される前記第2のパラメータ、
複数の前記第2の企業の前記第1の情報に基づいて算出される前記第2のパラメータ、のいずれかまたは両方とを比較可能に提示する、請求項1から請求項8のいずれか1項に記載のプログラム。
【請求項10】
前記第1のパラメータと前記第2のパラメータとを比較可能に提示するステップにおいて、特定の前記第2の企業の前記第2のパラメータを基準とする、前記第1の企業の前記第1のパラメータの相対値を提示する、請求項1から請求項9のいずれか1項に記載のプログラム。
【請求項11】
前記第1のパラメータと前記第2のパラメータとを比較可能に提示するステップにおいて、前記第1の企業における前記エンジニアチームの前記第1のパラメータと、前記第2の企業における前記エンジニアチームの前記第2のパラメータとを比較可能に提示する、請求項1から請求項10のいずれか1項に記載のプログラム。
【請求項12】
前記第1の企業における前記エンジニアチームの前記第1のパラメータとしての統計値、または前記第2の企業における前記エンジニアチームの前記第2のパラメータとしての統計値を比較可能に提示する、請求項11に記載のプログラム。
【請求項13】
前記第1のパラメータと前記第2のパラメータとを比較可能に提示するステップにおいて、前記第1の企業における各前記構成員の前記第1のパラメータと、前記第2の企業における各前記構成員の前記第2のパラメータとを比較可能に提示する、請求項1から請求項12のいずれか1項に記載のプログラム。
【請求項14】
前記第1の企業における各前記構成員の前記第1のパラメータとしての統計値、または前記第2の企業における各前記構成員の前記第1のパラメータとしての統計値を比較可能に提示する、請求項13に記載のプログラム。
【請求項15】
前記第1の企業における各前記構成員の前記第1のパラメータと、前記第1の企業における各前記構成員に関連付けられる属性に対応する、前記第2の企業における各前記構成員の前記第2のパラメータと、を比較可能に提示する、請求項13に記載のプログラム。
【請求項16】
前記第1の企業の前記第1のパラメータと前記第2の企業の前記第2のパラメータとを比較し、前記比較の結果に基づいて所定の条件に該当する前記第1の企業における前記エンジニアチームを抽出するステップと、
抽出した前記エンジニアチームの情報を提示するステップと、を実行させる、請求項1から請求項15のいずれか1項に記載のプログラム。
【請求項17】
前記エンジニアチームを抽出するステップにおいて、前記第1の企業において、前記構成員の成果物を作成するための活動量が高い前記エンジニアチーム、または前記構成員の成果物を作成するための活動量が低い前記エンジニアチームを抽出する、請求項16に記載のプログラム。
【請求項18】
制御部と、記憶部とを備える情報処理装置であって、
前記制御部は、
エンジニアに割り当てられた活動を管理するイシュー管理サービスにアクセスすることにより、評価対象企業である第1の企業のエンジニアチームを構成する各構成員が当該イシュー管理サービスを利用することにより当該イシュー管理サービスに蓄積される情報を前記企業に関連付けて第1の情報として取得するステップと、
前記第1の情報に基づいて、前記第1の企業のエンジニアチームの各前記構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータを特定するステップと、
前記第1の企業との比較対象となる1以上の第2の企業を特定するステップと、
前記第1の企業に対し、前記第1の企業の前記第1のパラメータと、前記第2の企業における前記第1のパラメータに対応する第2のパラメータとを比較可能に提示するステップと、を実行する、情報処理装置。
【請求項19】
プロセッサと、記憶部とを備えるコンピュータに実行されるための方法であって、
前記方法は、前記プロセッサが、
エンジニアに割り当てられた活動を管理するイシュー管理サービスにアクセスすることにより、評価対象企業である第1の企業のエンジニアチームを構成する各構成員が当該イシュー管理サービスを利用することにより当該イシュー管理サービスに蓄積される情報を前記企業に関連付けて第1の情報として取得するステップと、
前記第1の情報に基づいて、前記第1の企業のエンジニアチームの各前記構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータを特定するステップと、
前記第1の企業との比較対象となる1以上の第2の企業を特定するステップと、
前記第1の企業に対し、前記第1の企業の前記第1のパラメータと、前記第2の企業における前記第1のパラメータに対応する第2のパラメータとを比較可能に提示するステップと、を実行する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、情報処理装置および方法に関する。
【背景技術】
【0002】
企業活動におけるプロダクト開発は、複数のエンジニアによるチームで進められることが多い。プロダクト開発を行うチームでは、当該企業内における人材を適切に配置し、当該企業としてパフォーマンスを最大化させるためのチームを構成する必要がある。
【0003】
特許文献1には、企業活動における活動の組織性、単独性を分析する活動分析技術が開示されている。この技術は、同時に複数人の介在が可能な活動、例えば会議等について、その活動が発生する場に同時に介在した参加者の情報を参加者の位置情報より取得し、組織を分析する手法である。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、企業内において、プロダクト開発等を行うエンジニアチーム、またはそのエンジニアチームに所属するエンジニアのパフォーマンスを評価する場合、各種パラメータを用いて定量的な評価をすることは可能である。一方、企業活動としてのパフォーマンスを評価する場合、比較対象として競合企業のパフォーマンスが参照できることが望ましい。しかしながら、従来技術では、競合企業のパフォーマンスを参照して自社のパフォーマンスを客観的に把握することが困難であった。
【0006】
そこで、本開示では、プロダクト開発等を行うエンジニアチーム、またはそのエンジニアチームに所属するエンジニアの開発活動を客観的に評価する技術について説明する。
【課題を解決するための手段】
【0007】
本開示の一実施形態によると、プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムが提供される。プログラムは、プロセッサに、エンジニアに割り当てられた活動を管理するイシュー管理サービスにアクセスすることにより、評価対象企業である第1の企業のエンジニアチームを構成する各構成員が当該イシュー管理サービスを利用することにより当該イシュー管理サービスに蓄積される情報を企業に関連付けて第1の情報として取得するステップと、第1の情報に基づいて、第1の企業のエンジニアチームの各構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータを特定するステップと、前記第1の企業との比較対象となる1以上の第2の企業を特定するステップと、第1の企業に対し、第1の企業の第1のパラメータと、第2の企業における第1のパラメータに対応する第2のパラメータとを比較可能に提示するステップと、を実行させる。
【発明の効果】
【0008】
本開示によれば、比較対象となる他の企業との比較を通じて、自社に課題、改善点等があるとチーム運営者や企業の経営層等に認識させることができる。これにより、自社の課題、改善点等を改善するための施策を検討する材料を提供することが可能になる。
【図面の簡単な説明】
【0009】
【
図1】実施の形態1の企業活動評価システム1の全体の構成を示す図である。
【
図2】実施の形態1の企業活動評価システム1を構成する端末装置10の機能的な構成を示すブロック図である。
【
図3】実施の形態1の企業活動評価システム1を構成するサーバ20の機能的な構成を示す図である。
【
図4】サーバ20が記憶するリポジトリデータベース2021のデータ構造を示す図である。
【
図5】サーバ20が記憶するパラメータデータベース2022、企業属性データベース2023のデータ構造を示す図である。
【
図6】実施の形態1の企業活動評価システム1による比較対象企業特定処理を行う流れの一例を示すフローチャートである。
【
図7】実施の形態1の企業活動評価システム1による比較対象企業提示処理を行う流れの一例を示すフローチャートである。
【
図8】端末装置10に表示する比較対象企業の表示画面の例を示す図である。
【
図9】端末装置10に表示するエンジニアチームのパラメータ表示画面の例を示す図である。
【発明を実施するための形態】
【0010】
以下、図面を参照しつつ、本開示の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。従って、それらについての詳細な説明は繰り返さない。
【0011】
<概要>
以下、本開示に係る企業活動評価システムについて説明する。この企業活動評価システムは、企業活動としてのプロダクト開発等を行うエンジニアチーム、またはエンジニアチームを構成する各エンジニア(構成員)の活動(パフォーマンス)を評価するため、比較対象となる他の企業を特定して提示するシステムである。ここで、エンジニアチームとは、複数人のエンジニアにより構成され、特定のプロダクト、例えば,いわゆるSaaS(Software as a Service)によって提供されるWebサービス,Webサイト等の開発を進めるためのチームであり、チーム内でそれぞれのエンジニアが当該サービスの機能ごと、アウトプットごと等に役割分担して開発を進めている。また、チーム内のエンジニアは、特定の1つの企業に雇用されている会社員だけとは限らず、複数の企業が共同で開発を進める開発プロジェクトにおけるそれぞれの会社員でもよく、さらには、チーム内のエンジニアには、個人事業主、いわゆるフリーランスのエンジニアが含まれてもよい。
【0012】
本開示に係る企業活動評価システムは、エンジニアの活動状況を特定するため、例として、ソフトウェア開発のプラットフォームであるGitHub(登録商標)にアクセスし、エンジニアチームの構成員であるエンジニアとしての成果を示す各種パラメータを取得する。GitHubは、エンジニアの成果物であるソースコードの管理、ソースコードに対するレビューの管理等を行うソフトウェア開発プラットフォームである。なお、本開示に係る企業活動評価システムにおいて、各種パラメータを取得するためのアクセス先は、ソフトウェア開発プラットフォームの例であるGitHubに限られず、GitLab(登録商標)またはBitbucket(登録商標)等であってもよい。さらに、本開示に係る企業活動評価システムのアクセス先は、ソフトウェア開発プラットフォームに限られず、ソフトウェア開発における課題管理ツールであるJira(登録商標)、タスク管理ツールの例として、Trello(登録商標)またはbacklog(登録商標)等であってもよい。本明細書では、上記のようなソフトウェア開発プラットフォーム、またはタスク管理ツールを総称して、イシュー管理サービスという。すなわち、本開示に係る企業活動評価システムは、外部サーバ(クラウドサーバ)で管理しているイシュー管理サービスから成果物に関するパラメータを取得するものである。以下、各種パラメータを取得するためのイシュー管理サービスとして、GitHubを例として説明する。
【0013】
GitHubは、ソースコードホスティングサービスであり、成果物であるソースコードのバージョン管理を行うためのリポジトリ(管理手段)を有し、ある時点におけるソースコードの一覧を管理している。また、GitHubは、プロジェクトやソースコードの課題を管理するためのイシュー(作成)、エンジニアのローカル環境(ローカルリポジトリ)で作成又は修正を行ったソースコードをリモート環境(リモートリポジトリ)へアップロードするプッシュ、ソースコードへの変更内容を登録するためのコミット、プッシュがされたことを通知してレビュー依頼するプルリクエスト、及びレビュー結果を確定させて履歴を統合するマージ等の機能を備えている。ここで、ソースコードとは、Pythonのようなプログラミング言語、JavaScript(登録商標)のようなプログラミング言語の一種であるスクリプト言語を含む概念である。
【0014】
また、プログラミング言語とは、ソフトウェア開発に用いられる言語であり、具体的には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などがある。
【0015】
本開示に係る企業活動評価システムは、評価対象である企業のエンジニアチームを構成する各構成員について、GitHubで管理している情報を、第1の情報として、所属する企業に関連付けて取得する。第1の情報の例は、各構成員について、GitHubに対するプッシュ数(アップロード数)、GitHubでのソースコードの作成コード数、修正コード数、コミット数、プルリクエスト数(レビュー依頼数)、マージ数(統合数)、プッシュ時刻(アップロード時刻)、コミット時刻、プルリクエスト時刻(レビュー依頼時刻)、マージ時刻(統合時刻)、コメント時刻等の値である。
【0016】
また、本開示に係る企業活動評価システムは、評価対象である企業のエンジニアチームを構成する各構成員について、第1の情報として取得したGitHubで管理している各値から、当該構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータとして、所属する企業毎に特定する。第1のパラメータの例は、マージ済プルリクエスト数、最初のコミットからプルリクエストまでの平均時間、プルリクエスト作成からレビューまでの平均時間、1プルリクエストあたりの平均クローズ時間、等である。これらの第1のパラメータは、上記のGitHubから取得した第1の情報から算出する。
【0017】
さらに、本開示に係る企業活動評価システムは、この企業活動評価システムのユーザである企業(第1の企業)との比較対象となる1以上の企業(第2の企業)を、各企業にそれぞれ関連付けられる属性の情報に基づいて特定する。属性の情報の例は、上記の第1の情報に含まれる、企業活動評価システムにおける当該企業のアカウントの数(当該企業のアカウントに紐づく構成員のアカウント数)、アカウントの種別(自社要員/他社要員の別等)、使用するコード(ソースコード)に関する情報(例えば、種類)である。また、属性の情報の例は、あらかじめ定められた各企業の求人に関する情報(賃金情報を含む)、構成員に関する情報(構成員のスキルに関する情報を含む)、各企業の業種に関する情報、経営状態に関する情報(企業価値情報、株価の情報、サーベイ情報を含む)、構成員に関する情報である。そして、ユーザ企業の上記第1のパラメータと、第1のパラメータに対応して算出される、1以上の競合企業の第2のパラメータとを比較可能に提示する。これにより、企業における開発活動を、比較対象となる企業ごとに客観的に評価することを可能にしている。
【0018】
<第1の実施の形態>
以下、第1の実施の形態である企業活動評価システム1について説明する。以下の説明では、例えば、端末装置10がサーバ20へアクセスすることにより、サーバ20が、端末装置10で画面を生成するための情報を応答する。端末装置10は、サーバ20から受信した情報に基づいて画面を生成し表示する。
【0019】
<1 企業活動評価システム1の全体構成>
図1は、企業活動評価システム1の全体の構成を示す図である。
図1に示すように、企業活動評価システム1は、複数の端末装置(
図1では、端末装置10Aおよび端末装置10Bを示している。以下、総称して「端末装置10」ということもある)と、サーバ20と、リポジトリサーバ30とを含む。端末装置10と、サーバ20と、リポジトリサーバ30とは、ネットワーク80を介して相互に通信可能に接続されている。ネットワーク80は、有線または無線ネットワークにより構成される。
【0020】
端末装置10は、各ユーザが操作する装置である。ここで、ユーザとは、端末装置10を使用して企業活動評価システム1による、比較対象となる他の企業の提示を受ける者であるが、当該エンジニアチームの構成員とは限らず、所属企業の(チームに属さない)マネージャ、人事部門担当者、経営陣などを含む者である。端末装置10は、据え置き型のPC(Personal Computer)、ラップトップPC等により実現される。この他、端末装置10は、例えば移動体通信システムに対応したタブレットや、スマートフォン等の携帯端末であるとしてもよい。
【0021】
端末装置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とを備える。
【0022】
通信IF12は、端末装置10が外部の装置と通信するため、信号を入出力するためのインタフェースである。入力装置13は、ユーザからの入力操作を受け付けるための入力装置(例えば、キーボードや、タッチパネル、タッチパッド、マウス等のポインティングデバイス等)である。出力装置14は、ユーザに対し情報を提示するための出力装置(ディスプレイ、スピーカ等)である。メモリ15は、プログラム、および、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。記憶部16は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。プロセッサ19は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
【0023】
サーバ20は、GitHubにおける各種管理上の値(第1の情報)、エンジニアチームの各構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータの情報を管理する装置である。サーバ20は、ユーザから所属する企業(第1の企業)を識別する情報を受け付け、当該企業の第1のパラメータと、比較対象となる1以上の企業(第2の企業)を特定し、第1のパラメータに対応して算出される比較対象企業の第2のパラメータとを比較可能に、当該ユーザへ提示する。
【0024】
サーバ20は、ネットワーク80に接続されたコンピュータである。サーバ20は、通信IF22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備える。
【0025】
通信IF22は、サーバ20が外部の装置と通信するため、信号を入出力するためのインタフェースである。入出力IF23は、ユーザからの入力操作を受け付けるための入力装置、および、ユーザに対し情報を提示するための出力装置とのインタフェースとして機能する。メモリ25は、プログラム、および、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。ストレージ26は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。プロセッサ29は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
【0026】
リポジトリサーバ30は、GitHubにおけるリモートリポジトリ(管理手段)を管理する装置である。リポジトリサーバ30は、ユーザがプッシュしたソースコードを受け付けて格納および管理を行い、コミット、プルリクエスト、コメント、マージ等を受け付ける。
【0027】
<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に含まれる各ブロックは、バス等により電気的に接続される。
【0028】
アンテナ111は、端末装置10が発する信号を電波として放射する。また、アンテナ111は、空間から電波を受信して受信信号を第1無線通信部121へ与える。
【0029】
アンテナ112は、端末装置10が発する信号を電波として放射する。また、アンテナ112は、空間から電波を受信して受信信号を第2無線通信部122へ与える。
【0030】
第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へ与える。
【0031】
操作受付部130は、ユーザの入力操作を受け付けるための機構を有する。具体的には、操作受付部130は、キーボード131と、ディスプレイ132とを含む。なお、操作受付部130は、例えば静電容量方式のタッチパネルを用いることによって、タッチパネルに対するユーザの接触位置を検出する、タッチスクリーンとして構成してもよい。
【0032】
キーボード131は、端末装置10のユーザの入力操作を受け付ける。キーボード131は、文字入力を行う装置であり、入力された文字情報を入力信号として制御部170へ出力する。
【0033】
ディスプレイ132は、制御部170の制御に応じて、画像、動画、テキスト等のデータを表示する。ディスプレイ132は、例えばLCD(Liquid Crystal Display)や有機EL(Electro-Luminescence)ディスプレイによって実現される。
【0034】
音声処理部140は、音声信号の変復調を行う。音声処理部140は、マイク141から与えられる信号を変調して、変調後の信号を制御部170へ与える。また、音声処理部140は、音声信号をスピーカ142へ与える。音声処理部140は、例えば音声処理用のプロセッサによって実現される。マイク141は、音声入力を受け付けて、当該音声入力に対応する音声信号を音声処理部140へ与える。スピーカ142は、音声処理部140から与えられる音声信号を音声に変換して当該音声を端末装置10の外部へ出力する。
【0035】
カメラ150は、受光素子により光を受光して、撮影画像として出力するためのデバイスである。カメラ150は、例えば、カメラ150から撮影対象までの距離を検出できる深度カメラである。
【0036】
記憶部160は、例えばフラッシュメモリ等により構成され、端末装置10が使用するデータおよびプログラムを記憶する。ある局面において、記憶部160は、ユーザ情報161と、ローカルリポジトリ162とを記憶する。
【0037】
ユーザ情報161は、端末装置10を使用して当該企業の第1のパラメータと、比較対象として特定された他の企業(第2の企業)の第2のパラメータとの提示を受けるユーザの情報である。ユーザ情報としては、ユーザを識別する情報(ユーザID)、ユーザの氏名や名称、ユーザが所属している企業等の組織情報、GitHubにサインインするためのID情報やパスワード等が含まれる。
【0038】
ローカルリポジトリ162には、GitHubによるソフトウェア開発を行う際に、ユーザが自己のローカル環境で作業を行うためのソースコード等の情報が格納されている。ユーザは、作成したソースコードをローカルリポジトリ162に格納し、ローカルリポジトリ162に格納されているソースコードに対して修正を行う。作成および修正の完了後、ユーザは、ソースコードをリポジトリサーバ30へプッシュする。なお、ローカルリポジトリ162は、端末装置10を所有する当該ユーザがエンジニアチームの構成員であり、GitHubを使用している場合に記憶されるものであり、端末装置10を所有するユーザがそれ以外の者である場合には、ローカルリポジトリ162を記憶していなくてもよい。
【0039】
制御部170は、記憶部160に記憶されるプログラムを読み込んで、プログラムに含まれる命令を実行することにより、端末装置10の動作を制御する。制御部170は、例えば予め端末装置10にインストールされているアプリケーションである。制御部170は、プログラムに従って動作することにより、入力操作受付部171と、送受信部172と、データ処理部173と、通知制御部174としての機能を発揮する。
【0040】
入力操作受付部171は、キーボード131等の入力装置に対するユーザの入力操作を受け付ける処理を行う。
【0041】
送受信部172は、端末装置10が、サーバ20等の外部の装置と、通信プロトコルに従ってデータを送受信するための処理を行う。
【0042】
データ処理部173は、端末装置10が入力を受け付けたデータに対し、プログラムに従って演算を行い、演算結果をメモリ等に出力する処理を行う。
【0043】
通知制御部174は、ユーザに対し情報を提示する処理を行う。通知制御部174は、表示画像をディスプレイ132に表示させる処理、音声をスピーカ142に出力させる処理、振動をカメラ150に発生させる処理等を行う。
【0044】
<1.2 サーバ20の機能的な構成>
図3は、第1の実施の形態の企業活動評価システム1を構成するサーバ20の機能的な構成を示す図である。
図3に示すように、サーバ20は、通信部201と、記憶部202と、制御部203としての機能を発揮する。
【0045】
通信部201は、サーバ20が外部の装置と通信するための処理を行う。
【0046】
記憶部202は、サーバ20が使用するデータおよびプログラムを記憶する。記憶部202は、リポジトリデータベース2021と、パラメータデータベース2022と、企業属性データベース2023等を記憶する。
【0047】
リポジトリデータベース2021は、企業活動評価システム1においてリポジトリサーバ30から取得したGitHubで管理している各値である、リモートリポジトリに対するソースコードの作成コード数、コミット数、コミット時刻、プルリクエスト数、プルリクエスト時刻等の各種情報を保持するためのデータベースである。詳細は後述する。
【0048】
パラメータデータベース2022は、企業活動評価システム1において第1の情報として取得したGitHubで管理している各値から算出した、構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータの情報を保持するためのデータベースである。詳細は後述する。
【0049】
企業属性データベース2023は、企業活動評価システム1の導入企業について、各企業にそれぞれ関連付けられる属性の情報を保持するためのデータベースである。詳細は後述する。
【0050】
制御部203は、サーバ20のプロセッサがプログラムに従って処理を行うことにより、各種モジュールとして受信制御モジュール2031、送信制御モジュール2032、リポジトリ取得モジュール2033、パラメータ特定モジュール2034、比較対象企業特定モジュール2035、チーム抽出モジュール2036、および提示モジュール2037に示す機能を発揮する。
【0051】
受信制御モジュール2031は、サーバ20が外部の装置から通信プロトコルに従って信号を受信する処理を制御する。
【0052】
送信制御モジュール2032は、サーバ20が外部の装置に対し通信プロトコルに従って信号を送信する処理を制御する。
【0053】
リポジトリ取得モジュール2033は、エンジニアに割り当てられた活動を管理するイシュー管理サービスにアクセスすることにより、評価対象企業である第1の企業のエンジニアチームを構成する各構成員が当該イシュー管理サービスを利用することにより当該イシュー管理サービスに蓄積される情報を企業に関連付けて第1の情報として取得する処理を制御する。イシュー管理サービスとは、例えば、ソフトウェア開発のプラットフォームであるGitHub(ソースコードホスティング)、GitLab、Bitbucket、ソフトウェア開発における課題管理ツールであるJira、タスク管理ツールであるTrello、backlog等である。イシュー管理サービスがGitHubである場合、エンジニアチームを構成する各構成員は、GitHubによりソースコードの開発を行っているため、GitHubに蓄積される第1の情報として、具体的には、GitHubに対するプッシュ数(アップロード数)、GitHubでのソースコードの作成コード数、ソースコードの修正コード数、ソースコードへの変更内容を登録するためのコミット数、レビューを依頼するプルリクエスト数、レビュー結果を確定させて履歴を統合するマージ数等の各値がリポジトリサーバ30に記録されている。そのため、リポジトリ取得モジュール2033は、リポジトリサーバ30にアクセスして、GitHubに蓄積される上記の第1の情報を取得する。
【0054】
リポジトリサーバ30では、ソースコードのバージョン管理を行うため、あるユーザがソースコードをローカルリポジトリ162からプッシュした場合、そのユーザの情報、およびそのときの日時をログ情報として記録している。同様に、ソースコードについてコミットがあった場合、ソースコードについてプルリクエストがあった場合、コメントが作成された場合、コメントに対する回答が作成された場合、マージがあった場合等それぞれのアクションについて、当該アクションを行ったユーザの情報、およびそのときの日時をログ情報として記録している。これらの情報は、エンジニアチームを構成する構成員ごと、エンジニアチームごと、そのプロジェクト内で作成されたソースコードのファイルごとに記録されている。リポジトリ取得モジュール2033は、リポジトリサーバ30からこれらのログ情報を取得している。
【0055】
また、リポジトリ取得モジュール2033は、取得した第1の情報を、導入企業に関連付けてリポジトリデータベース2021に格納する。
【0056】
パラメータ特定モジュール2034は、リポジトリ取得モジュール2033が取得した第1の情報に基づいて、第1の企業のエンジニアチームの各構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータを特定する処理を制御する。ここで、パラメータとは、具体的な数値を意味する。パラメータ特定モジュール2034は、第1の情報として取得したGitHubで管理している各値に基づいて、例えば、各値を演算することにより第1のパラメータを算出して特定する。
【0057】
パラメータ特定モジュール2034が算出する第1のパラメータの例は、マージ済プルリクエスト数、最初のコミットからプルリクエストまでの平均時間、プルリクエスト作成からレビューまでの平均時間、1プルリクエストあたりの平均クローズ時間、セルフマージ率、プルリクエストあたりの平均コメント数、である。マージ済プルリクエスト数は、GitHubにおいてすでにマージされたプルリクエストの所定期間における数である。最初のコミットからプルリクエストまでの平均時間は、コミットがされてからプルリクエストまでの時間の所定期間における平均時間である。プルリクエスト作成からレビューまでの平均時間は、プルリクエストが作成されてからレビューが実施されるまでの時間の所定期間における平均時間である。1プルリクエストあたりの平均クローズ時間は、プルリクエストされてからクローズされるまでの時間の所定期間における平均時間である。セルフマージ率は、レビューされずにマージされたソースコードの割合である。プルリクエストあたりの平均コメント数は、プルリクエストされたソースコードへのコメント数の平均値である。パラメータ特定モジュール2034は、これらの値を第1の情報から算出する。
【0058】
また、パラメータ特定モジュール2034は、特定した第1のパラメータを、導入企業ごとにパラメータデータベース2022に格納する。
【0059】
比較対象企業特定モジュール2035は、ユーザ企業との比較対象となる1以上の企業(第2の企業)を特定する処理を制御する。第2の企業は、第1の企業とは異なる導入企業、例えばユーザ企業と業種や規模が類似する企業である。また、第2の企業として単一の企業が特定されてもよいし、複数の企業が特定されてもよいし、さらには導入企業全てを第2の企業としてもよい。ユーザ企業に関連付けられる属性の情報、または比較対象となる企業に関連付けられる属性の情報とは、リポジトリ取得モジュール2033が取得した第1の情報に含まれる情報、例えば、エンジニアチームの構成員を識別するアカウントに関連付けられる情報、または構成員の成果物に関連付けられる情報を含んでもよい。アカウントに関連付けられる情報とは、具体的には、当該企業のアカウント数、またはアカウントの種類別(自社要員/他社要員の別等)の情報(それぞれのアカウント数またはそれぞれの割合)である。成果物に関連付けられる情報とは、具体的には、開発に使用されるソースコードの種類、成果物であるソースコードの作成コード数、プルリクエスト数、レビューにおけるコメント数、修正コード数、コミット数、マージ数等である。
【0060】
また、属性の情報とは、あらかじめ定められたユーザ企業の情報を含んでもよい。ユーザ企業の情報とは、具体的には、各企業の求人に関する情報(賃金情報を含む)、構成員のスキルに関する情報、経営状態に関する情報(企業価値情報、株価の情報、サーベイ情報を含む)、各企業の業種に関する情報である。
【0061】
比較対象企業特定モジュール2035は、ユーザ企業に関連付けられる属性の情報、比較対象となる企業に関連付けられる属性の情報、及び各企業における第1のパラメータに対応する第2のパラメータに基づき、比較対象企業(第2の企業)を特定してもよい。例えば、比較対象企業特定モジュール2035は、ユーザが選択した情報に関連付けられる属性の情報に基づき、第2の企業を特定する。具体的には、比較対象企業特定モジュール2035は、ユーザ企業の属性の情報を示す各項目について、すべての項目のうちの所定の割合以上(例えば、50%以上)の項目についてユーザ企業の属性の情報と近似する企業を、第2の企業として特定してもよく、特定の項目については必ず近似する企業を第2の企業として特定するようにしてもよい。属性の情報を示す項目が近似する場合とは、具体的には、ユーザ企業の属性の項目と比較して、当該項目の値が所定の値または割合以内の値である項目を、近似するものとしてもよく、当該項目の値と桁数が一致する項目を、近似するものとしてもよい。例えば、ユーザが属性の情報として企業規模を選択した場合には、ユーザ企業および各企業の属性の情報に基づいて、ユーザ企業のアカウント数や売上、企業価値などが同一または類似する企業を第2の企業として特定し、ユーザが属性の情報として業種を選択した場合には、ユーザ企業および各企業の属性の情報に基づいて、ユーザ企業の業種と同一または類似する業種の企業を第2の企業として特定すればよい。
【0062】
また、比較対象企業特定モジュール2035は、各企業における第1のパラメータに対応する第2のパラメータとして、例えば、第2のパラメータの中央値、または第2のパラメータの所定の条件に基づき、比較対象企業(第2の企業)を特定してもよい。具体的には、例えば所定の第2のパラメータが中央値に近似する(平均的な)比較対象企業を特定してもよく、所定の(一部またはすべての)第2のパラメータが上位25%に該当する(優位な)比較対象企業を特定してもよく、所定の第2のパラメータについて突出した(圧倒的に優位な)比較対象企業を特定してもよい。例えば、比較対象企業特定モジュール2035は、各企業における第1のパラメータに対応する第2のパラメータに基づいて、ユーザ企業の作成コード数のパラメータを比較する際には、作成コード数が上位25%に含まれる企業を第2の企業として特定する。ここで、各企業における第1のパラメータに対応する第2のパラメータとは、ユーザ企業の複数のパラメータのうち特定の第1のパラメータ(例えば上記例では第1の企業の作成コード数)について比較を行う際は、他のユーザ企業における第1のパラメータと同一のパラメータ(上記例では他の企業の作成コード数)または関連するパラメータ(上記例では第1のパラメータが作成コード数というコードに関連するものであるため、コードに関連するプルリク数、修正コード数等)とする。
【0063】
比較対象企業特定モジュール2035は、第2の企業を特定するための属性の情報を、企業属性データベース2023を読み取ることにより取得する。
【0064】
また、比較対象企業特定モジュール2035は、特定した比較対象企業の情報を、導入企業ごとにパラメータデータベース2022に格納する。
【0065】
なお、比較対象企業特定モジュール2035は、比較対象企業を1つ抽出してもよく、複数抽出してもよい。
【0066】
チーム抽出モジュール2036は、ユーザ企業(第1の企業)の第1のパラメータと、比較対象企業(第2の企業)の情報に基づき、第1のパラメータに対応する第2のパラメータとを比較し、比較の結果に基づいて所定の条件に該当する第1の企業におけるエンジニアチームを抽出する処理を制御する。第1のパラメータに対応する第2のパラメータは、第2の企業について特定されるパラメータであり、具体例は第1のパラメータのように、マージ済プルリクエスト数、最初のコミットからプルリクエストまでの平均時間、プルリクエスト作成からレビューまでの平均時間、1プルリクエストあたりの平均クローズ時間、セルフマージ率、プルリクエストあたりの平均コメント数であるが、第1のパラメータと第2のパラメータとは同一のパラメータ種類でもよく、異なるパラメータ種類でも第1のパラメータと関連するものであればよい。所定の条件に該当するエンジニアチームとは、例えば、ユーザの操作により、または設定により、活動量に応じて抽出されるパラメータが優れた(活動量が高い)エンジニアチーム、または活動量に応じて抽出されるパラメータが劣る(活動量が低い)エンジニアチームであり、活動量の比較により抽出してもよく、一定以上乖離しているものを抽出してもよい。ここで、活動量とは、例えばエンジニアチームの構成員に割り当てられた活動を示す数値、具体的には第1のパラメータをエンジニアチームごとに集計した値である。
【0067】
提示モジュール2037は、ユーザ(ユーザ企業)に対して、ユーザ企業(第1の企業)の第1のパラメータと、第2の企業における第1のパラメータに対応する第2のパラメータとを比較可能に提示する処理を制御する。提示モジュール2037は、例えば、ユーザ企業の第1のパラメータの例であるマージ済プルリクエスト数、最初のコミットからプルリクエストまでの平均時間といったパラメータを、比較対象企業の第2のパラメータの例であるマージ済プルリクエスト数、最初のコミットからプルリクエストまでの平均時間といったパラメータと比較可能にするため、端末装置10に並列に表示して提示する。提示モジュール2037は、第1のパラメータ、第2のパラメータのいずれかまたは両方について、第1の情報に基づいて特定された値を提示してもよく、第1の情報に基づいて特定された値から算出された統計値を提示してもよい。ここで、統計値とは、平均値、中央値、最大値、最小値、移動平均値を含む。
【0068】
このとき、提示モジュール2037は、単一の比較対象企業の第2のパラメータを提示してもよく、複数の比較対象企業の第2のパラメータを提示してもよい。なお、このとき、比較対象企業の企業名を伏せて提示してもよい。複数の比較対象企業の第2のパラメータとは、複数の比較対象企業それぞれのパラメータ(複数のパラメータ)でもよく、複数の比較対象企業のパラメータの統計値であってもよい。また、提示モジュール2037は、比較対象企業の第2のパラメータを基準とする、ユーザ企業の第1のパラメータの相対値を提示してもよい。さらに、提示モジュール2037は、比較対象企業特定モジュール2035が特定した複数の比較対象企業の第2のパラメータの中央値や、所定の第2のパラメータについて優位な比較対象企業(例えば、上位25%)の第2のパラメータ、第2のパラメータについて圧倒的に優位な比較対象企業の第2のパラメータを提示してもよい。これにより、ユーザ企業では、他社のパラメータとの比較や、複数の他社のパラメータの中央値や優位な他社群のパラメータとの比較により、自社の立ち位置を認識し、改善の幅を認識することが可能になる。
【0069】
また、提示モジュール2037は、ユーザ企業における特定のエンジニアチームの第1のパラメータと、比較対象企業における特定のエンジニアチームの第2のパラメータとを比較可能に提示してもよい。このとき、提示モジュール2037は、特定のエンジニアチームの第1のパラメータの統計値、または特定のエンジニアチームの第2のパラメータの統計値を提示してもよい。なお、提示モジュール2037は、比較対象企業における特定のエンジニアチームを、ユーザ企業のエンジニアチームに関連付けられる属性(アカウント数等)に対応するように抽出してもよい。
【0070】
さらに、提示モジュール2037は、ユーザ企業のエンジニアチームにおける特定の構成員の第1のパラメータと、比較対象企業のエンジニアチームにおける特定の構成員の第2のパラメータとを比較可能に提示してもよい。このとき、提示モジュール2037は、特定の構成員の第1のパラメータの統計値、または特定の構成員の第2のパラメータの統計値を提示してもよい。なお、提示モジュール2037は、比較対象企業における特定の構成員を、ユーザ企業の構成員に関連付けられる属性(役職等)に対応するように抽出してもよい。
【0071】
<2 データ構造>
図4は、サーバ20が記憶するリポジトリデータベース2021のデータ構造を示す図である。また、
図5は、サーバ20が記憶するパラメータデータベース2022、企業属性データベース2023のデータ構造を示す図である。
【0072】
図4に示すように、リポジトリデータベース2021のレコードのそれぞれは、項目「組織ID」と、項目「リポジトリID」と、項目「アドレス」と、項目「リポジトリ情報」等を含む。
【0073】
項目「組織ID」は、企業活動評価システム1にてリポジトリサーバ30から取得する第1の情報の対象であるユーザ企業等の組織それぞれを識別する情報である。
【0074】
項目「リポジトリID」は、企業活動評価システム1にてリポジトリサーバ30から取得する第1の情報の対象である、ユーザ企業内のエンジニアチームごとに設定されるリポジトリそれぞれを識別する情報である。
【0075】
項目「アドレス」は、企業活動評価システム1にて第1の情報を取得するリポジトリサーバ30のアドレス(URL)を示す情報であり、プロジェクトごとに作成されたリモートリポジトリのアドレスが格納されている。このアドレスにより、プロジェクトごとに共通するファイル名(README.txt等)を識別することが可能である。
【0076】
項目「リポジトリ情報」は、企業活動評価システム1にて第1の情報を取得する、リポジトリサーバ30に格納されているGitHubに対するアクションに関する情報であり、具体的には、項目「アクション」と、項目「作業者」と、項目「タイトル」と、項目「ソースコード」と、項目「作成日時情報」等を含む。この項目「リポジトリ情報」は、GitHubにおけるソースコードのバージョン管理及びコメント等のアクション管理情報である。
【0077】
項目「アクション」は、リポジトリサーバ30に格納されているソースコードに対するアクションの種類の情報である。
【0078】
項目「作業者」は、リポジトリサーバ30に格納されているソースコードに対するアクションを行った構成員それぞれを識別する情報である。
【0079】
項目「タイトル」は、当該アクションのもとになる案件、改修、修正等の名称を示す情報である。
【0080】
項目「ソースコード」は、当該アクションを行ったソースコードのファイル名を示す情報である。
【0081】
項目「作成日時情報」は、リポジトリサーバ30に格納されているソースコードに対するアクションを行った日時の情報である。
【0082】
サーバ20のリポジトリ取得モジュール2033は、リポジトリサーバ30から第1の情報を取得することに伴って、リポジトリデータベース2021を更新する。
【0083】
図5に示すように、パラメータデータベース2022のレコードのそれぞれは、項目「組織ID」と、項目「パラメータ情報」等を含む。
【0084】
項目「組織ID」は、企業活動評価システム1にて第1のパラメータを取得した対象であるユーザ企業等の組織それぞれを識別する情報であり、リポジトリデータベース2021の項目「組織ID」に対応している。
【0085】
項目「パラメータ情報」は、企業活動評価システム1にて特定した第1のパラメータである、エンジニアチームの各構成員について割り当てられた活動の活動量に応じて変化する値に関する情報であり、具体的には、項目「イシュー数」と、項目「イシュー~クローズ時間」と、項目「マージ済プルリクエスト数」と、項目「コミット~プルリクエスト平均時間」と、項目「プルリクエスト~レビュー平均時間」と、項目「1プルリクエストあたり平均クローズ時間」と、項目「セルフマージ率」と、項目「プルリクエストあたり平均コメント数」等を含む。
【0086】
項目「イシュー数」は、当該企業による、GitHubにおいて設定されたイシューの作成数を示す情報である。
【0087】
項目「イシュー~クローズ時間」は、当該企業による、GitHubにおけるイシューの作成からクローズされるまでの平均時間を示す情報である。
【0088】
項目「マージ済プルリクエスト数」は、当該企業による、GitHubにおいてすでにマージされたプルリクエストの所定期間における数を示す情報である。
【0089】
項目「コミット~プルリクエスト平均時間」は、当該企業による、コミットがされてからプルリクエストまでの時間の所定期間における平均時間を示す情報である。
【0090】
項目「プルリクエスト~レビュー平均時間」は、当該企業による、プルリクエストが作成されてからレビューが実施されるまでの時間の所定期間における平均時間を示す情報である。
【0091】
項目「1プルリクエストあたり平均クローズ時間」は、当該企業による、プルリクエストされてからクローズされるまでの時間の所定期間における平均時間を示す情報である。
【0092】
項目「セルフマージ率」は、当該企業による、レビューされずにマージされたソースコードの割合を示す情報である。
【0093】
項目「プルリクエストあたり平均コメント数」は、当該企業による、プルリクエストされたソースコードへのコメント数の平均値を示す情報である。
【0094】
サーバ20のパラメータ特定モジュール2034は、第1のパラメータを特定することに伴って、パラメータデータベース2022を更新する。
【0095】
図5に示すように、企業属性データベース2023のレコードのそれぞれは、項目「組織ID」と、項目「企業属性情報」等を含む。
【0096】
項目「組織ID」は、企業活動評価システム1にて第1のパラメータを取得した対象であるユーザ企業等の組織それぞれを識別する情報であり、リポジトリデータベース2021の項目「組織ID」に対応している。
【0097】
項目「企業属性情報」は、企業活動評価システム1にて比較対象企業を特定するための属性の情報であり、具体的には、項目「アカウント数」と、項目「内部/外部人数」と、項目「開発言語」と、項目「求人提示賃金」と、項目「平均スキル偏差値」と、項目「売上」と、項目「株価」と、項目「サーベイ情報」等を含む。なお、上記の属性の情報における当該企業のアカウント数として項目「アカウント数」を、アカウントの種類別の情報として項目「内部/外部人数」を、開発に使用されるソースコードの種類として項目「開発言語」を、各企業の求人に関する情報として項目「求人提示賃金」を、構成員のスキルに関する情報として項目「平均スキル偏差値」を、経営状態に関する情報(企業価値情報、株価の情報、サーベイ情報を含む)として項目「株価」及び項目「企業価値情報」を、各企業の業種に関する情報として項目「売上」を、それぞれ例示している。
【0098】
項目「アカウント数」は、GitHubに登録されている、当該企業に所属する構成員のアカウント数を示す情報である。
【0099】
項目「内部/外部人数」は、GitHubに登録されている、当該企業に所属する構成員のアカウント数のうち、自社要員のアカウント数と、他社(外部)要員のアカウント数を示す情報である。
【0100】
項目「開発言語」は、GitHubに登録されている、当該企業が開発に使用しているプログラミング言語の情報である。
【0101】
項目「求人提示賃金」は、ユーザによりあらかじめ設定された、当該企業が求人情報にて提示した賃金の金額を示す情報である。
【0102】
項目「平均スキル偏差値」は、ユーザによりあらかじめ設定された、当該企業におけるエンジニアのスキルの程度を示す数値(エンジニアのスキルについて数値化した値について統計処理を行い、偏差値として示した値)の情報である。
【0103】
項目「売上」は、ユーザによりあらかじめ設定された、当該企業の所定期間(四半期、年間等)における売上金額を示す情報である。
【0104】
項目「株価」は、ユーザによりあらかじめ設定された、当該企業の所定時期における株価を示す情報である。
【0105】
項目「サーベイ情報」は、ユーザによりあらかじめ設定された、当該企業のサーベイ情報であり、具体的には当該企業における構成員の健康状態、またはマインド状態に関する調査結果の情報である。
【0106】
なお、項目「企業属性情報」には、エンジニアチームの構成員ごとの情報を格納してもよく、例えば、構成員のスキルに関する情報、開発言語の情報、役職の情報、アカウント種別等の情報が含まれてもよい。
【0107】
サーバ20のリポジトリ取得モジュール2033は、リポジトリサーバ30から第1の情報を取得することに伴って、企業属性データベース2023の項目「アカウント数」、項目「内部/外部人数」を更新してもよい。また、企業属性データベース2023の項目「企業属性情報」は、あらかじめ当該企業の従業員等により設定された値であってもよい。
【0108】
<3 動作>
以下、
図6および
図7を参照しながら、第1の実施の形態における企業活動評価システム1による比較対象企業特定処理及び比較対象企業提示処理について説明する。
【0109】
図6は、実施の形態1の企業活動評価システム1による比較対象企業特定処理を行う流れの一例を示すフローチャートである。
【0110】
エンジニアチームを構成する各構成員は、端末装置10を操作して、GitHubのローカルリポジトリからリポジトリサーバ30のリモートリポジトリに対して、プッシュやコメント等のアクションを行い、端末装置10の入力操作受付部171は、当該アクションの指示をユーザから受け付ける。ステップS111において、送受信部172は、受け付けたアクションの情報をサーバ20へ送信する。サーバ20は、アクションの情報を、通信部201を介して受け付ける。
【0111】
ステップS112において、サーバ20のリポジトリ取得モジュール2033は、エンジニアチームを構成する各構成員について、リポジトリサーバ30に記録されている、GitHubに対するプッシュ数(アップロード数)、GitHubでのソースコードの作成コード数、ソースコードの修正コード数、ソースコードへの変更内容を登録するためのコミット数、レビューを依頼するプルリクエスト数、レビュー結果を確定させて履歴を統合するマージ数等の各種情報を第1の情報として取得するため、リポジトリサーバ30にアクセスして要求信号を送信する。リポジトリ取得モジュール2033は、リポジトリサーバ30から第1の情報を、通信部201を介して取得する。また、リポジトリ取得モジュール2033は、取得した第1の情報を、導入企業に関連付けてリポジトリデータベース2021に格納する。
【0112】
ステップS112で取得する第1の情報は、例えば、各構成員がエンジニアとしての成果物を作成するために一定期間内にオンライン上にアップロードした情報であり、GitHubに対するプッシュ(アップロード)、GitHubでのソースコードの作成コード、修正コード、ソースコードへの変更内容を登録するためのコミット、レビューを依頼するプルリクエスト、レビュー結果を確定させて履歴を統合するマージ等のアクションを一定期間についてカウントした値である。
【0113】
ステップS113において、サーバ20のパラメータ特定モジュール2034は、ステップS112で取得したGitHubで管理している第1の情報に基づいて、エンジニアチームの各構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータを特定する。また、パラメータ特定モジュール2034は、特定した第1のパラメータを、導入企業ごとにパラメータデータベース2022に格納する。
【0114】
ステップS113で特定する第1のパラメータは、例えば、マージ済プルリクエスト数、最初のコミットからプルリクエストまでの平均時間、プルリクエスト作成からレビューまでの平均時間、1プルリクエストあたりの平均クローズ時間、セルフマージ率、プルリクエストあたりの平均コメント数である。
【0115】
ステップS114において、サーバ20の比較対象企業特定モジュール2035は、ユーザ企業(第1の企業)に関連付けられる属性の情報に基づき、ユーザ企業との比較対象となる1以上の企業(第2の企業)を特定する。比較対象企業特定モジュール2035は、第2の企業を特定するための属性の情報を、企業属性データベース2023を読み取ることにより取得する。また、比較対象企業特定モジュール2035は、特定した比較対象企業の情報を、導入企業ごとにパラメータデータベース2022に格納するが、図示を省略する。
【0116】
以上のように、企業活動評価システム1では、GitHubに記録されているエンジニアに割り当てられた活動についての情報である第1の情報を取得し、第1の情報に基づいて、エンジニアチームの各構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータを特定し、ユーザ企業との比較対象となる比較対象企業を特定する。これにより、ユーザ企業のパフォーマンスについて客観的に評価するための比較対象となる企業を特定することが可能である。
【0117】
図7は、実施の形態1の企業活動評価システム1による対象抽出提示処理を行う流れの一例を示すフローチャートである。
【0118】
ステップS211の処理を行う前提として、企業活動評価システム1にサインインするためのユーザ登録を行う(
図7において不図示)。端末装置10の入力操作受付部171は、企業活動評価システム1にサインインするため、当該ユーザを識別するユーザID(仮のものでもよい)およびパスワードの情報入力を、ユーザから受け付ける。送受信部172は、受け付けたユーザIDおよびパスワード、当該ユーザのエンジニアチームの情報をサーバ20へ送信する。サーバ20は、送信されたユーザIDおよびパスワードを、通信部201を介して受け付けてユーザ情報の登録を行う。端末装置10の入力操作受付部171は、連携するサービスとしてGitHub、またはその他のサービスの選択を受け付け、当該サービスに登録されている組織(企業等)の選択、当該組織に紐づくエンジニアチーム、メンバ(構成員)、リポジトリの選択を受け付けてサーバ20へ送信する。サーバ20は、送信された各種選択情報を、通信部201を介して受け付けて選択情報の登録を行う。
【0119】
ステップS211において、端末装置10の入力操作受付部171は、企業活動評価システム1にサインインするための情報として、当該ユーザの組織を識別する組織ID、当該ユーザのユーザ情報(ユーザIDおよびパスワード)の入力を、ユーザから受け付ける。送受信部172は、受け付けた組織ID、ユーザ情報をサーバ20へ送信する。
【0120】
ステップS221において、サーバ20は、端末装置10から送信された組織ID、ユーザ情報を、通信部201を介して受け付けて所定の認証を行い、当該ユーザのサインインを受け付ける。
【0121】
ステップS222において、サーバ20の提示モジュール2037は、ユーザ企業(第1の企業)の第1のパラメータと、ステップS114で特定された比較対象企業(第2の企業)の第2のパラメータとを、パラメータデータベース2022から読み出す。
【0122】
ステップS223において、サーバ20の提示モジュール2037は、ステップS222で読み出した、ユーザ企業の第1のパラメータ及び比較対象企業の第2のパラメータを、端末装置10へ通信部201を介して送信する。
【0123】
ステップS213において、端末装置10の送受信部172は、サーバ20から送信されたユーザ企業の第1のパラメータ及び比較対象企業の第2のパラメータの情報を受け付ける。通知制御部174は、受け付けたユーザ企業の第1のパラメータ及び比較対象企業の第2のパラメータの情報を、ディスプレイ132に表示させる。このとき、通知制御部174は、受け付けたユーザ企業の第1のパラメータと、比較対象企業の第2のパラメータの情報とを、比較可能にするために、例えば並列に表示させる。
【0124】
ステップS214において、端末装置10の入力操作受付部171は、ユーザが所定の条件に該当する第1の企業におけるエンジニアチームを抽出する指示操作を行うので、指示情報の入力を、ユーザから受け付ける。送受信部172は、受け付けた指示情報をサーバ20へ送信する。端末装置10の送受信部172は、サーバ20から送信された抽出したエンジニアチームの情報を受け付ける。通知制御部174は、受け付けたエンジニアチームの情報を、ディスプレイ132に表示させる。
【0125】
ステップS224において、サーバ20は、端末装置10から送信された指示情報を、通信部201を介して受け付ける。サーバ20のチーム抽出モジュール2036は、指示情報の所定の条件に該当する第1の企業におけるエンジニアチームを抽出し、抽出したエンジニアチームの情報を、端末装置10へ通信部201を介して送信する。
【0126】
以上のように、企業活動評価システム1は、ユーザ企業との比較対象となる比較対象企業について、ユーザ企業の第1のパラメータと、比較対象企業の第2のパラメータとを比較可能に、ユーザに提示する。これにより、ユーザ企業のエンジニアの開発活動を、比較対象となる企業と比較することで客観的に把握することが可能である。
【0127】
<4 画面例>
以下、
図8及び
図9を参照しながら、企業活動評価システム1による比較対象企業提示処理の画面例について説明する。
【0128】
図8は、端末装置10に表示する比較対象企業の表示画面の例を示す図である。
図8の画面例は、ユーザ企業の第1のパラメータと、比較対象企業の第2のパラメータとが、比較可能に提示されている画面例を示す。
図7のステップS213に相当する。
【0129】
図8に示すように、端末装置10のディスプレイ132には、一定期間におけるユーザ企業の第1のパラメータと、比較対象企業の第2のパラメータとが表示されている。ディスプレイ132に表示されている比較対象企業の表示画面は、ユーザ企業の名称を表示する企業名表示欄1031aと、第1のパラメータ及び第2のパラメータの対象期間を表示する期間表示欄1031bと、ユーザ企業の第1のパラメータ及び比較対象企業の第2のパラメータを表示するパラメータ等表示欄1031cとが表示されている。
【0130】
パラメータ等表示欄1031cに表示されている第1のパラメータ及び第2のパラメータは、パラメータデータベース2022に格納されている企業ごとのパラメータであり、列1031c1にユーザ企業の第1のパラメータが、列1031c2に比較対象企業の第2のパラメータが表示され、それ以外に導入企業全体の中央値と、データの傾向を示す文言が表示されている。パラメータ等表示欄1031cに表示されている第1のパラメータ及び第2のパラメータは、例として、マージ済プルリクエスト数、最初のコミットからプルリクエストまでの平均時間、プルリクエスト作成からレビューまでの平均時間、1プルリクエストあたりの平均クローズ時間、セルフマージ率、プルリクエストあたりの平均コメント数が表示されている。これにより、ユーザ企業の第1のパラメータと、比較対象企業の第2のパラメータとを比較可能に参照することが可能である。
【0131】
図9は、端末装置10に表示するエンジニアチームのパラメータ表示画面の例を示す図である。
図9の画面例は、ユーザ操作による所定の条件に該当する、第1の企業におけるエンジニアチームの第1のパラメータが表示された状態の画面例を示す。
図7のステップS214に相当する。
【0132】
図9に示すように、端末装置10のディスプレイ132には、一定期間におけるユーザ企業の第1のパラメータと、抽出されたエンジニアチームの第1のパラメータとが表示されている。ディスプレイ132に表示されているエンジニアチームのパラメータの表示画面は、ユーザ企業の名称を表示する企業名表示欄1032aと、第1のパラメータの対象期間を表示する期間表示欄1032bと、ユーザ企業の第1のパラメータ及び抽出されたエンジニアチームの第1のパラメータを表示するパラメータ等表示欄1032cとが表示されている。
【0133】
パラメータ等表示欄1032cに表示されている第1のパラメータは、パラメータデータベース2022に格納されている企業ごとのパラメータであり、列1032c1にユーザ企業全体の第1のパラメータが、列1032c2にエンジニアチームごとの第1のパラメータが表示され、それ以外にユーザ企業内のエンジニアチームの中央値が表示されている。パラメータ等表示欄1032cに表示されている第1のパラメータは、
図8と同様に、マージ済プルリクエスト数、最初のコミットからプルリクエストまでの平均時間、プルリクエスト作成からレビューまでの平均時間、1プルリクエストあたりの平均クローズ時間、セルフマージ率、プルリクエストあたりの平均コメント数が表示されている。これにより、エンジニアチームごとの第1のパラメータを比較可能に参照することが可能である。
【0134】
<小括>
以上のように、本実施形態によると、GitHubに記録されているエンジニアに割り当てられた活動についての情報である第1の情報を取得し、第1の情報に基づいて、エンジニアチームの各構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータを特定し、ユーザ企業との比較対象となる比較対象企業を特定する。そして、特定したユーザ企業との比較対象となる比較対象企業について、ユーザ企業の第1のパラメータと、比較対象企業の第2のパラメータとを比較可能に、ユーザに提示する。そのため、ユーザ企業のエンジニアの開発活動を、比較対象となる企業と比較することで客観的に把握することが可能になる。これにより、比較対象となる他の企業との比較を通じて、自社に課題や改善点があるとチーム運営者や企業の経営層等に認識させることができるため、自社の課題や改善点を改善するための施策を検討する材料を提供することが可能になる。
【0135】
また、本実施形態によると、所定の条件に該当する第1の企業におけるエンジニアチームを抽出し、抽出したエンジニアチームの第1のパラメータを、ユーザに提示する。これにより、例えば、活動量に応じて抽出されるパラメータが優れた(活動量が高い)エンジニアチーム、または活動量に応じて抽出されるパラメータが劣る(活動量が低い)エンジニアチームを把握することが可能になる。これにより、エンジニアチームの個別の状況把握が可能になる。
【0136】
以上、開示に係る実施形態について説明したが、これらはその他の様々な形態で実施することが可能であり、種々の省略、置換および変更を行なって実施することができる。これらの実施形態および変形例ならびに省略、置換および変更を行なったものは、特許請求の範囲の技術的範囲とその均等の範囲に含まれる。
【0137】
<付記>
以上の各実施形態で説明した事項を、以下に付記する。
【0138】
(付記1)プロセッサ29と、記憶部202とを備えるコンピュータに実行させるためのプログラムであって、プログラムは、プロセッサ29に、エンジニアに割り当てられた活動を管理するイシュー管理サービスにアクセスすることにより、評価対象企業である第1の企業のエンジニアチームを構成する各構成員が当該イシュー管理サービスを利用することにより当該イシュー管理サービスに蓄積される情報を企業に関連付けて第1の情報として取得するステップ(S112)と、第1の情報に基づいて、第1の企業のエンジニアチームの各構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータを特定するステップ(S113)と、第1の企業との比較対象となる1以上の第2の企業を特定するステップ(S114)と、第1の企業に対し、第1の企業の第1のパラメータと、第2の企業における第1のパラメータに対応する第2のパラメータとを比較可能に提示するステップ(S223)と、を実行させる、プログラム。
【0139】
(付記2)第2の企業を特定するステップにおいて、第1の企業に関連付けられる属性の情報、第2の企業に関連付けられる属性の情報、及び各企業における第1のパラメータに対応する第2のパラメータに基づき、第2の企業を特定する、(付記1)に記載のプログラム。
【0140】
(付記3)第2の企業を特定するステップにおいて、第1の情報に含まれる属性の情報に基づき第2の企業を特定する、(付記2)に記載のプログラム。
【0141】
(付記4)属性の情報は、イシュー管理サービスにおける各構成員を識別するアカウントに関連付けられる情報を含み、第2の企業を特定するステップにおいて、アカウントに関連付けられる情報を含む属性の情報に基づき第2の企業を特定する、(付記3)に記載のプログラム。
【0142】
(付記5)属性の情報は、第1の企業のアカウントの数、または第1の企業における各構成員の種別を示すアカウントの種別を含み、第2の企業を特定するステップにおいて、第1の企業のアカウントの数、またはアカウントの種別を含む属性の情報に基づき第2の企業を特定する、(付記4)に記載のプログラム。
【0143】
(付記6)属性の情報は、イシュー管理サービスにおける各構成員の成果物に関連付けられる情報を含み、第2の企業を特定するステップにおいて、成果物に関連付けられる情報を含む属性の情報に基づき第2の企業を特定する、(付記3)から(付記5)のいずれかに記載のプログラム。
【0144】
(付記7)属性の情報は、イシュー管理サービスにおける各構成員が使用するコードに関する情報を含み、第2の企業を特定するステップにおいて、コードに関する情報を含む属性の情報に基づき第2の企業を特定する、(付記6)に記載のプログラム。
【0145】
(付記8)第2の企業を特定するステップにおいて、あらかじめ定められた属性の情報に含まれる、第1の企業の求人に関する情報、第1の企業における構成員のスキルに関する情報、第1の企業の経営状態に関する情報、第1の企業における各構成員に関する情報、または第1の企業の業績に関する情報に基づき第2の企業を特定する、(付記2)から(付記7)のいずれかに記載のプログラム。
【0146】
(付記9)第1のパラメータと第2のパラメータとを比較可能に提示するステップにおいて、第1のパラメータと、単一の第2の企業の第1の情報に基づいて算出される第2のパラメータ、複数の第2の企業の第1の情報に基づいて算出される第2のパラメータ、のいずれかまたは両方とを比較可能に提示する、(付記1)から(付記8)のいずれかに記載のプログラム。
【0147】
(付記10)第1のパラメータと第2のパラメータとを比較可能に提示するステップにおいて、特定の第2の企業の第2のパラメータを基準とする、第1の企業の第1のパラメータの相対値を提示する、(付記1)から(付記9)のいずれかに記載のプログラム。
【0148】
(付記11)第1のパラメータと第2のパラメータとを比較可能に提示するステップにおいて、第1の企業におけるエンジニアチームの第1のパラメータと、第2の企業におけるエンジニアチームの第2のパラメータとを比較可能に提示する、(付記1)から(付記10)のいずれかに記載のプログラム。
【0149】
(付記12)第1の企業におけるエンジニアチームの第1のパラメータの統計値、または第2の企業におけるエンジニアチームの第2のパラメータの統計値を比較可能に提示する、(付記11)に記載のプログラム。
【0150】
(付記13)第1のパラメータと第2のパラメータとを比較可能に提示するステップにおいて、第1の企業における各構成員の第1のパラメータと、第2の企業における各構成員の第2のパラメータとを比較可能に提示する、(付記1)から(付記12)のいずれかに記載のプログラム。
【0151】
(付記14)第1の企業における各構成員の第1のパラメータの統計値、または第2の企業における各構成員の第1のパラメータの統計値を比較可能に提示する、(付記13)に記載のプログラム。
【0152】
(付記15)第1の企業における各構成員の第1のパラメータと、第1の企業における各構成員に関連付けられる属性に対応する、第2の企業における各構成員の第2のパラメータと、を比較可能に提示する、(付記13)に記載のプログラム。
【0153】
(付記16)第1の企業の第1のパラメータと第2の企業の第2のパラメータとを比較し、比較の結果に基づいて所定の条件に該当する第1の企業におけるエンジニアチームを抽出するステップ(S224)と、抽出したエンジニアチームの情報を提示するステップと、を実行させる、(付記1)から(付記15)のいずれかに記載のプログラム。
【0154】
(付記17)エンジニアチームを抽出するステップにおいて、第1の企業において、構成員の成果物を作成するための活動量が高いエンジニアチーム、または構成員の成果物を作成するための活動量が低いエンジニアチームを抽出する、(付記16)に記載のプログラム。
【0155】
(付記18)制御部203と、記憶部202とを備える情報処理装置であって、制御部203は、エンジニアに割り当てられた活動を管理するイシュー管理サービスにアクセスすることにより、評価対象企業である第1の企業のエンジニアチームを構成する各構成員が当該イシュー管理サービスを利用することにより当該イシュー管理サービスに蓄積される情報を企業に関連付けて第1の情報として取得するステップ(S112)と、第1の情報に基づいて、第1の企業のエンジニアチームの各構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータを特定するステップ(S113)と、第1の企業との比較対象となる1以上の第2の企業を特定するステップ(S114)と、第1の企業に対し、第1の企業の第1のパラメータと、第2の企業における第1のパラメータに対応する第2のパラメータとを比較可能に提示するステップ(S223)と、を実行する、情報処理装置。
【0156】
(付記19)プロセッサ29と、記憶部202とを備えるコンピュータにより実行されるための方法であって、方法は、プロセッサ29が、エンジニアに割り当てられた活動を管理するイシュー管理サービスにアクセスすることにより、評価対象企業である第1の企業のエンジニアチームを構成する各構成員が当該イシュー管理サービスを利用することにより当該イシュー管理サービスに蓄積される情報を企業に関連付けて第1の情報として取得するステップ(S112)と、第1の情報に基づいて、第1の企業のエンジニアチームの各構成員について割り当てられた活動の活動量に応じて変化する第1のパラメータを特定するステップ(S113)と、第1の企業との比較対象となる1以上の第2の企業を特定するステップ(S114)と、第1の企業に対し、第1の企業の第1のパラメータと、第2の企業における第1のパラメータに対応する第2のパラメータとを比較可能に提示するステップ(S223)と、を実行する、方法。
【符号の説明】
【0157】
1 :企業活動評価システム
10 :端末装置
10A :端末装置
10B :端末装置
13 :入力装置
14 :出力装置
15 :メモリ
16 :記憶部
19 :プロセッサ
20 :サーバ
25 :メモリ
26 :ストレージ
29 :プロセッサ
30 :リポジトリサーバ
80 :ネットワーク
81 :無線基地局
82 :無線LANルータ
111 :アンテナ
112 :アンテナ
121 :第1無線通信部
122 :第2無線通信部
130 :操作受付部
131 :キーボード
132 :ディスプレイ
140 :音声処理部
141 :マイク
142 :スピーカ
150 :カメラ
160 :記憶部
161 :ユーザ情報
162 :ローカルリポジトリ
170 :制御部
171 :入力操作受付部
172 :送受信部
173 :データ処理部
174 :通知制御部
201 :通信部
202 :記憶部
203 :制御部
1031a :組織ID入力欄
1031b :メールアドレス入力欄
1031c :パスワード入力欄
1031d :ログインボタン
1032a :チーム名称表示欄
1032b :構成員氏名表示欄
1032c :パラメータ等表示欄
1032d :期間変更入力欄
1032e :条件変更入力欄
1033a :氏名表示欄
1033b :パラメータ等表示欄
1033c :グラフ表示欄
1033d :期間変更入力欄
1034a :事業者名称表示欄
1034b :チーム名称表示欄
1034c :パラメータ等表示欄
1034d :期間変更入力欄
1034e :条件変更入力欄
2021 :リポジトリデータベース
2022 :構成員パフォーマンスデータベース
2023 :チームパフォーマンスデータベース
2031 :受信制御モジュール
2032 :送信制御モジュール
2033 :リポジトリ管理モジュール
2034 :パラメータ特定モジュール
2035 :対象抽出モジュール
2036 :ユーザ属性情報取得モジュール
2037 :提示モジュール