前々から「日本にソフトウェアエンジニアって何人ぐらいいるのかな?」「ソフトウェアエンジニアだと定義が曖昧だけど、例えば"Githubアカウントを持ってる日本人"は何人いるんだろう」と気になっていました。
最近ふとそれを調べる方法を思いついたので、調べてみた結果を書きます。
ちなみに
政府統計無いのかな?と調べたら「IT人材を巡る現状について」という資料がありました。
ここでは「情報サービス業とインターネット付随サービス業の総人数」は**「約100万人」**と書かれていますが、その内コードを書く人が何人いるのかは依然不明です。
調べ方
Githubのユーザー検索を使います。
調べ方1: Locationの存在比で調べる
「ユーザー検索でlocation:Tokyoを調べた結果が18000人だった。東京の人口:日本の人口=1:10なので、日本人Githubユーザーは約18万人!」という考え方です。
しかしこの方法には困った問題があります。
1.Locationは任意入力で、全体の何割が入力してるか分からない
入力率によって結果は大きく異なってしまいます。
しかしこの問題に関しては、既知の日本人ユーザーアカウントを調べてLocation入力率を調べれば、ある程度推定は可能です。
2.地域偏在性が激しい
日本の人口は東京:大阪:名古屋=13:9:7なのに対し、Githubユーザーの"Location"は東京:大阪:名古屋=20:2:1ぐらい偏っています。存在比による推計はある程度一様に分布してることが前提なので、この方法は使いにくいです。
3.Locationは自由文入力で、人によって国名を書いたり都市名を書いたりまちまち
トドメ。もうめんどくさいですね。
調べ方2: 苗字の存在比で調べる
「"Tanaka"でユーザー検索したら1200人ヒットした。"田中"さん人口:日本人口=1:100なので(参考)、日本人Githubユーザーは約12万人!」という考え方です。
この考え方であれば偏在性を心配する必要はありません。
任意入力なため入力率が不明なのはLocationと同様ですが、Github Awardsで日本人ユーザーを無作為に見た感じ、入力率は30〜40%といったところでしょうか。
この場合ユーザー数=12万*2.5〜3ということになります。
調べた結果(2017/05時点)
ノイズを無くすため、日本語の音韻に独特な文字列を含む、ある程度長くてポピュラーな苗字をピックアップしました。itoさんとかは別の言語圏の名前も引っかかりそうだからです。
苗字 | 人口 | Githubユーザー検索ヒット数 |
---|---|---|
Suzuki | 189万 | 1288 |
Takahashi | 180万 | 880 |
Tanaka | 134万 | 1200 |
Watanabe | 107万 | 897 |
Nakamura | 106万 | 774 |
Yoshida | 83万 | 597 |
Sasaki | 68万 | 581 |
Kimura | 58万 | 459 |
(人口の参照元) |
Family Name入力率 | 30〜40%ぐらい? |
(ざっくり目視確認) |
ということで、プライベートアカウントとか考えたらキリはないですが、日本人Githubユーザーは概ね20〜40万人ぐらいと言えるのではないかと思います。
追記: おまけ
たくさん読まれてるようなのでおまけ。
「存在比から全体を推定する」というのは色んな分野で使われていて、考古学なら化石などの年代を測定する放射性炭素年代測定法、生物学なら個体数を測定する標識再捕獲法などがあります。
ソフトウェア開発でも、テスト手法に「バグ埋め込み法」というのがあって、これは「バグをわざと10件埋め込んでテストしたら、埋め込んだバグが5件、埋め込んでない自然バグが7件見つかった。見つかってない自然バグはあと7件あるぞ!」という考え方をします。
......と遠い昔学んだ記憶があるのですが、実際に使った話は聞いたことがありません。どこかで使ってるのかな。