見出し画像

GitHubApiを使ったエンジニアの能力の可視化

最近はGitHubApiを触っていてエンジニアの能力を測定する基準にしようと思っていました。ある程度どのような結果が出るかと言ったことがわかってきたため報告します。今回はデータの集め方言うよりもどのようなデータが集まりどのような考察が得られたかを重視して書きます。

どのようにデータを集めたか

今回の主な目的ではないためざっと説明します。言語としてはpythonを使用し、apiの操作はPyGithubを使用しました。乱数を使ってidを生成し、そのidのアカウント情報を取得することによってデータを集めました。

データの定義・内容

一人のアカウントから取得する情報としてはその人の総コミット数、公開リポジトリ数、取得スター数の3つです。また公開リポジトリの中でもフォークしたものはコミット数・リポジトリ数どちらも数えず、空リポジトリは一つの公開リポジトリとして数えました。

データは一度に100件集めることができるようにし、これを1セットとして定義しました。また生成された乱数のidを持つユーザーがいない場合(アカウントを消したor元々ないか)は再度乱数を生成することにより確実に一度の実行で100件集めることができるようにしました。

最終的に集めたデータとしては300件+1(自分)となりました。それぞれの3セット+全データに対してcsv形式で保存し平均値、標準偏差を計算、グラフを書き出すことにより可視化しました。

実際のデータ

グラフはそれぞれ総コミット数・公開リポジトリ数・スター数の順番で表示させています。また3回目に極端にコミット数が多いデータが入ってきたのでそれを除いたものを載せます。(グラフの横軸の値が大きくなってしまうため)ただし平均値、標準偏差については含めたものを表示します。

1セット目

画像1

画像2

画像3

平均
31.722772277227723
0.1485148514851485
1.4356435643564356

標準偏差
183.28388466048406
0.8530666868875071
4.276484167126445

2セット目

画像4

画像5

画像6

平均
4.930693069306931
0.0297029702970297
0.6534653465346535

標準偏差
15.79129977281324
0.22160530429366784
1.615151036679582

3セット目

画像7

画像8

画像9

平均
738.21
2.07
1.71

標準偏差
7146.704048261291
19.5056350314415
4.971220202629361

全てのデータ

画像10

画像11

画像12

平均
256.69867549668874
0.7450331125827815
1.2649006622516556


標準偏差
4114.049413494687
11.237006900651021
3.9079134073571224

考察

図からは0というより低いということしか読み取ることができないとは思いますが自分のcsvファイルを見たところ総コミット数、公開リポジトリ数が0の人がものすごく多いです。スター数が0が多いというのは何となく予想することができていましたが総コミット数、公開リポジトリ数が0の人が多いのは個人的に意外でした。これらはアカウントを作っただけで終わった、プライベートリポジトリや組織内でのみ使っていると言ったことが考えられます。それらの値は本人のトークンがないと取得することができないです。

図からわかることとしてコミット数はやはり人によってだいぶ変わりますね。多い人では10,20の人もいれば200~の人もいたりと様々です。リポジトリ数としては個人的に意外でしたあまり後悔していない人が多いですね。スターについてはどうしてもsnsのいいね感覚でするようなものではないというだけあって一つでもあればすごい言った感じになっています。

今回取得したデータでは1セット100件しかなかったということもありどうしてもデータセットどうしで差が激しいです。あまりにも差が激しく全体の数値予測としては参考にならないかもしれません。最終的にはWebシステムに組み込むことを目的としているのでもう少しデータ数を増やして精度をあげようと思います。また公開リポジトリが0の人はデータに含めない場合の値の取得もしようと思っています。

まとめ

どうでしたか?もしgitアカウントを持っていたら自分のそれぞれの値を計算して偏差値を計算すると自分がおおよそどれくらいのところにいるかということもわかるかもしれません。このとき必ずパブリックになっている値のみ数えてくださいね!

この記事が気に入ったらサポートをしてみませんか?