エンジニアの技術志向を適切に把握する 〜採用担当が押さえるべきGitHubとQiitaの使い方セミナーレポート

エンジニア採用に携わったことのある方であれば、多くの方が「GitHub(ギットハブ)」や「Qiita(キータ)」を聞いたことがあるのではないでしょうか? なんとなくどういうものか把握はしていても、採用でどう活用すればよいかわからない、という採用担当者も多く見受けられます。

エンジニア採用を進めるにあたっては、エンジニアが日々活用するツールへの理解が必要不可欠です。求職者のスキルチェックや書類選考はすべてエンジニアに任せきりという方も、GitHubやQiitaを理解することで、その人がどんなスキルを持っていて、どんな技術志向なのかを把握することが可能となります。
 

Qiita Jobsでは、2021年6月2日に「採用担当が押さえておくべきGitHubとQiitaの使い方」というタイトルでセミナーを実施しました。GitHubやQiitaの仕組みや役割を理解することで、現場エンジニアとのコミュニケーションが非常にスムーズになります。

本記事では、こちらのイベント内容についてレポートします。そのエンジニアがどんなエンジニアで、自社とスキルや指向性の観点でマッチする人物なのか。これらの判断で悩みのある方は、是非ご覧ください。

セミナーの投影資料をみる

登壇者プロフィール

清野 隼史(きよの としふみ)
Increments株式会社 Qiita開発チーム リーダー

アルバイトを経て、2019年にエイチームに入社。Qiita Jobs開発グループでQiita Jobsの開発に携わる。2020年よりQiita プロダクトマネージャーに就任する。趣味はサウナ。

GitHubとは

--まず「GitHub(ギットハブ)」とは何でしょうか?

清野:「GitHub」とは、GitHub社によって提供されている、「Git」を利⽤したソースコー ドを管理するサービスの一つです。Gitとは、プログラムの変更履歴などのバージョンを管理するシステムの一つを示します。つまりGitHubは、このGitを使ったバージョン管理をクラウド上で行い、視覚的に認識できるようにしたものとも言えます。


--バージョン管理とは、具体的にどういうことですか?
 

清野:例えばソフトウェア開発を考えてみると、システムを作っておしまいではなく、段階的に機能をリリースしていくことになります。その際のリリースをバージョンとして管理していくことを、バージョン管理と言っています。柔軟かつ継続的に開発を進めることができるために必要な仕組みと言えますね。

世界中のエンジニアに利用されているGitHubは、上述のバージョン管理はもちろん、フォローしたり、他ユーザーの活動にリアクションをしたりする機能も備えています。また、公開されたリポジトリ(コードを格納する箱のようなもの)を元に、対象のユーザーがどんな開発を行っていて、どんな活動を行っているのかを把握することもできます。

Gitだけだと一人で開発しているものですが、それをみんなでやるためのプラットフォームがGitHubだと捉えてください。

GitHubを見るとわかること

このGitHubには、さまざまな情報がユーザーに紐付けられています。採用担当としては、たとえば以下のような項目から、対象者の属性情報や、書類選考時・スカウトサービス利用時のスキルチェック、その他の指向性を読み解くことができます。

  • 所属企業
  • 位置情報
  • ウェブサイト
  • Twitterアカウント
  • リポジトリ
  • プルリクエスト
  • スター、フォーク
  • Contribution

ここからは、以下の清野のGitHubユーザーページをもとに、解説がなされました。

プロフィール情報からわかること

清野:GitHubのユーザーページではユーザー名の他に、現在所属している企業や活動している国・地域などの位置情報、公開しているポートフォリオなどのWebサイト、Twitterアカウントの情報などの属性情報が表示されています。
また、どんなユーザーをフォローしているかだったり、フォロワー数やスターの数などもチェックできます。スターとは、他ユーザーのリポジトリに対して送る「いいね」のようなものと認識すると良いでしょう。

これらの情報は検索クエリを利用し、ユーザーの検索をすることができるため、該当条件のエンジニアがどれくらいいるのかを把握することにも役立てられます。

そして、GitHubのユーザーページで最初に見るべきは「contribution(以下、コントリビューション)」でしょう。GitHubでコードを書いたりレビューをしたりする場合、それらのログがコントリビューションとして溜まっていくことになります。ここで表示されている「2,842」という数字は、直近一年間でそういう活動をどれだけ僕が行ったかということを示すものです。下にはカレンダーが表示されているので、どの日にそれだけ活動しているかがわかり、経年での比較チェックできます。

コントリビューションカレンダーの下には、具体的にどんな活動をしたのかを示す4象限マトリクスも表示されています。コード改善活動を示す4つの指標「Commits」「Code review」「Issues」「Pull requests」に基づいた活動の分布が示されることになります。

--この4つの指標はそれぞれ何を示しているのでしょうか?清野:Commitsとは要するに自分でコードを書くことで、Code reviewは人が書いたコードのチェックに該当します。またIssuesはタスクをどれだけ作ったかを示すもので、Pull requestはリリースするチェックをするときに作るPull request数を示します。ここを見るだけでも、その人がエンジニアとしてGitHub上でどんな活動をしているのかが、ざっくりとですがわかります。

ちなみに僕の場合、2016年の頃はCommitsが100%だったので趣味レベルでコードを書いていることがわかるのですが、現在はCode review が60%でIssuesが40%なので、よりエンジニアマネジメントに振り切っていることがわかります。

理解しておくべき「OSS」文化

エンジニア文化を理解する上で大事なキーワードの一つが「OSS」です。これは「Open Source Software」の略称で、ソースコードの改変や再配布が自由に認められている、みんなが使えるようにされている無償のソフトウェアです。

例えばプロフィール情報からも参照できる企業情報では、その会社が参加するさまざまなリポジトリを確認できます。例えばここで、その企業が外部に対してどれだけ便利なツールを出しているか、を確認することができるわけです。

--なぜ、そんな自社の開発物を外に出すのでしょうか?

清野:そもそも前提として、ソフトウェアってOSSで成り立っています。例えば何かプログラミングを始めようと思ったら、大体はパソコンの中にプログラミング言語がプリインストールされているか、もしくは無料でダウンロードしてすぐに始めることができるでしょう。つまり、そういう言語は有志で作られていることが多く、ソフトウェアの質自体をみんなで上げていこうという文化が、そもそもあると言えます。
みんな使っていいから、その代わりにメンテナンスや改善もやっていってね、ということです。

--なるほど。そうなると、そのソフトウェアに携わる人も多くなりますね。

清野:そういうことです。自社だけで閉じちゃうと、開発もメンテナンスも自社リソースだけでしかできませんが、オープンにすることで関係人口が一気に増えることになります。なので、基本的に会社独自の特許とかでない限りは、みんなで出し合うという文化があります。

--そうなると、会社としてOSS活動に参加していることが、すなわちエンジニアへのPRにもつながるものでしょうか?

清野:それだけで「いい!」とはならないかもしれませんが、間違いなく判断材料にはなると思います。

コードはあくまで参考情報

清野:ユーザーページのPopular repositoriesでは、ユーザー自らがピン留めしたリポジトリが表示されており、その人がどんなソースコードを書いているのかを確認することができます。また、ここでは送られたスターの数やフォーク(他ユーザーが自分で編集する用にコピーすること)された数を確認することもできます。

とはいえ、コードからその人のプログラミングスキルを定量的に把握するのは、なかなか難しいと感じます。言語も千差万別であれば、絶対に正しいという書き方があるわけでもないので、あくまで参考情報として見るのが良いでしょう。中身だけでなく、量などを見て大きなプロジェクトに携わっているのかも、といったことを把握できるのも、役立つ情報になると思います。

ちなみに、GitHubではここまで見てきたような属性情報などを、さまざまな条件で検索することができます。例えば、日本におけるRubyを使っているエンジニアの人口やどんなユーザーがいるのか、などを確認したい場合は、検索ウィンドウで、以下のように入力することで確認ができます。

例:【 language:ruby location:japan 】また特定ユーザーのプルリクエスト(他者への編集のリクエストやコメント)なども検索することができるため、そのユーザーのOSS活動なども確認することができます。

例:【 is:pr author:ユーザーID 】

Qiitaとは

清野:GitHubがコードだったのに対して、「Qiita(キータ)」は、エンジニアに関する知識やノウハウを記録・共有するためのサービスです。ユーザーはテキスト記事の投稿・閲覧や、質問の投稿・閲覧をすることができるので、エンジニアにとっては、実装方法やバグの解決方法など何か分からないことがあった時に閲覧するサイトとして機能しています。

またプログラミングに関するものだけではなく、エンジニアのキャリアや学習方法、マネジメントなど、エンジニアにまつわる幅広いテーマの記事が投稿されているので、純粋な読み物としても楽しめるサイトになっています。

先ほどGitHubのところで、コードからだけではその人が何を知っていてどんなスキルがあるのかが読みにくいとお伝えしましたが、Qiitaだとその辺りがより見えるようになると言えます。


--Qiitaって、現在どれくらいのエンジニアが使っているのでしょうか?
 

清野:会員数は60万人を突破しています。日本のIT人材が110万人ちょっとなので、2人に1人以上がQiitaの会員だということになります。ちなみに、Qiitaに投稿された累計文字数が25億くらいになる、とのことです。(※いずれの数字も、2021年6月2日時点)

Qiitaを見るとわかること

前述のとおり、Qiitaの登録ユーザーはほとんどがエンジニアなので、記事を投稿したり、積極的に活動しているユーザーから読み取れることはたくさんあります。例えば以下のような項目から、採用担当者は、書類選考時やスカウトサービス利用時のスキルチェックや指向性を読み解くことができます。

  • フォロー中のタグ
  • 投稿した記事
  • LGTMした記事
  • 回答した質問
  • Contribution
  • 所属Organization

まずは、以下の清野氏のQiitaユーザーページをもとに、解説がなされました。

Qiitaのユーザーページからわかること

清野:Qiitaのユーザーページでは、会員ユーザー情報や投稿した記事、LGTM(後述)した記事、回答した質問、フォローしているユーザー、タグなどの様々な情報を確認することができます。
Qiitaのユーザーページで最初に見るべきところは、ページ上部にあるこの部分です。

--ここは何を表しているのでしょうか?

清野:これは、ユーザーの統計情報を表示したものです。

例えばユーザーが記事を投稿する時には、必ずタグを紐つけることになります。Rubyやブロックチェーン、スクラム、アルゴリズムなど、その記事がどういった技術にまつわるものなのかを明確にするために用意されています。これらのタグを集計した上位5つが、ここに表示されることになります。

僕の場合、左側の「投稿した記事」列を見てみると、Rubyという言語に関する投稿をよくしていることが分かりますね。また、tipsやpm(プロダクトマネジメント)も上位にあるので、よりプロマネに近い業務をやっている可能性がある、とも読めるでしょう。


--なるほど。真ん中列の「LGTM」とは何のことですか?

清野:LGTMとは「Looks Good To Me」の略称で、要するに「読んでよかった」「面白かった」と思った記事やコメントに対して行える評価アクションです。つまり、この列では僕が他の記事に対してLGTMしたもののタグを集計したものです。

読んでいてかつ評価している記事なので、その人がどういう情報をどれくらいインプットしているかが分かります。

僕の場合はJavascroptについて一番多く読んで反応してて、その次はReactになっています。アウトプットとインプットが全然違うことが分かりますね。

--最後の列の「回答した質問」とは、どういうことですか?清野:QitaにはQ&A機能もあって、そこでの回答状況のタグを集計したものが「回答した質問」列の表示になっています。

Qiitaのユーザーページには、「フォロー中のタグ」を表示する部分もあるのですが、投稿やLGTMはQiita上での実際のアウトプットに基づいたデータであるという点で、違うものとなっています。実際の行動に基づいているからこそ、各自が持っているスキルを把握することに役立てられると言えます。

ContributionとOrganizationとは

Contribution(コントリビューション)とは、Qiita上での貢献度を意味する指標です。投稿した記事がLGTMされたり、編集リクエスト(他ユーザーが投稿した情報を修正したり、情報を追記して投稿者に知らせることができる機能)が受け入れられた記事がその後LGTMされること、コメントに対してLGTMされることで、ここの数値が上がっていくことになります。

Qiitaでは、他ユーザーに対して有益な活動や貢献をしたユーザーのContributionが上がるため、ここの数値を閲覧することで、そのエンジニアのスキルレベルをある程度定量的に把握することができます。

--どれくらいの数値だと、Qiitaの中の上位何%になるのでしょうか?

清野:200を超えると、かなりの上位層だと考えて良いでしょう。少し前だと、100で上位20%程度というデータでした。

--そうなると、例えばスキルレベルのある程度高いエンジニアにコンタクトしたいなと思ったら、ここの数値が3桁を超えていることが、一つの目安になるということですね?

清野:はい、そういうことになります。

もう一つ、Organization(オーガナイゼーション)とは、会社や組織といった団体メンバーの投稿をまとめることができる機能です。無料で作成でき、組織の様子や注目技術などをMarkdownなどで自由記述することができます。

マイページの左下スペースや、記事の投稿者プロフィールから閲覧することが出来るので、Organizationを確認することで、該当のエンジニアが所属している企業やコミュニティを把握することができます。

--ここでも、よく投稿されているタグの集計がありますね。その会社が注力している技術である可能性が高い、ということですね?

清野:そうですね。例えばIncrementsの場合はRailsとReactを使っているので、まさに、ということになりますね。

候補者のことを知るのに便利な「ピックアップ記事」

--例えば複数のエンジニアが候補者になっている場合、全員の記事を全部読むのって、非現実的だと思います。その場合、最低限何をチェックすれば良いのでしょうか?

清野:その場合は、ユーザーページにある「ピックアップ記事」が良いでしょう。これはユーザー自身で自分の記事をチョイスして、ここに固定表示させている投稿になります。

候補者がここの設定をしている場合は、まずはここを見るのが良いかなと思います。

清野:もし、この設定がされていない場合は、記事の一覧を見て、その中からLGTMの数値が高いものを見るのが良いかなと思います。それが、その人がアウトプットしたものの中で一番評価されたものなので、その人の上限のスキルが分かることになると思います。

現場エンジニアとのコミュニケーションをよりスムーズにしましょう

今回は「採用担当が押さえておくべきGitHubとQiitaの使い方」というテーマで、GitHubやQiitaの概要や、それぞれの画面の見方、そして人事担当がエンジニア候補者をチェックする場合のポイントについて、それぞれお伝えしました。本記事の内容を理解することで、GitHubとQiitaをより効果的に使えるようになり、エンジニアの技術志向を適切に把握して、結果として現場エンジニアとのコミュニケーションもよりスムーズになるでしょう。

Qiita Jobsでは、今回のようなオンラインセミナーイベントを定期開催しております。本テーマ以外にも、エンジニアリングの基礎知識やスカウト対象の広げ方、採用戦略やブランディングなど、幅広いテーマで開催しているので、興味のあるものがあればぜひご参加ください。

取材/文:長岡 武司

\ Qiitaに関するご相談もOK /

お気軽にご連絡ください

Qiitaへの広告出稿やQiita Oraganizationのサポートも積極的に行なっております。
お気軽にご相談ください。