リクルートグループならではの取り組みの一つとして、リクルートのエンジニア育成の考え方を取り入れているニジボックス。要件開発だけではなく、サービス開発全体を意識することで、個々人のフロントエンド開発スキルを高めていく人材育成を行っています。
前期より技術顧問としてニジボックスに参画されたJapan Node.js Association代表理事であるリクルートテクノロジーズの古川陽介さんが、今期よりニジボックスのマネジャーに就任!これにより、以前に増してメンバーの技術力向上に力を入れています。
リクルートテクノロジーズでフロントエンドエンジニアの新卒・中途採用者の育成を行ってきた古川陽介さん。そして、ニジボックスのフロントエンドグループ、グループリーダー小嶋優希さん。主に未経験で入社した新人メンバーの育成を担当しています。
今回はお二人に、普段実際に行っているフロントエンド領域での育成について語っていただきました。
プロフィール
古川陽介さん:リクルートテクノロジーズのアプリケーションソリューショングループのグループマネジャー兼シニアソフトウェアエンジニアを担当。Japan Node.js Associationの日本ユーザーグループコミュニティの代表理事を務め、Node学園祭など主宰。今期より、ニジボックスのマネジャーとして就任し、メンバー育成に力を入れている。
小嶋優希さん:ニジボックス入社3年目。リクルートグループでの大規模案件の開発を経験し、フロントエンドグループのグループリーダーとしてメンバーのマネジメントを中心に、新人育成に注力している。
ニジボックスのフロントエンド育成施策と課題
古川さん(以下、敬称略)「僕もリクルートテクノロジーズで新卒や中途採用者の育成を行ってきたんだけど、小嶋さんもフロントエンドエンジニアの育成を担当してますよね。実際、どんなふうに新人育成をやっていますか?」
小嶋さん(以下、敬称略)「私は主に未経験者の育成を担当していて、1ヶ月間で用意したカリキュラムが全て終わるようにスケジュールを組んでいますね。
基本的には、最初にコーディング研修を2週間行い、続いてJavaScript研修を2週間実施しています。具体的には、LPのデザインを1枚用意していて、最初の2週間はそれをいきなりマークアップしてみよう、という感じで進めていきます。」
古川「最初から、実践形式で進めていくんですね!」
小嶋「そうなんです。タスクの優先順位をつけて、「ここから実装してね」という感じで。もちろん実装に入る前にCSS設計のBEMとは何かとか、基本的なことを教えます。
3週目以降のJavaScript研修も同じようにHTMLは用意しておいて、案件で使うことの多いドロップダウンメニューとかハンバーガーメニューとかメジャーなパーツにそれぞれJavaScriptで動きをつけてみよう、ということをやります。
同じ時期に入社する新人フロントエンドエンジニアが2、3人いる場合は、それぞれ分担してパーツを実装してもらって、最後に一つのファイルにまとめてマージするというところまでやっていきます。
そこで、Gitの怖い面を実際に体験してもらうことも大切にしています。」
古川「なるほど、Gitの研修も兼ねている訳か。」
小嶋「そうです。
最初の1ヶ月で業務に必要な要素を広く浅く一通り網羅できるようなメニューにしていますね。
コーディングやJavaScriptも毎日プルリク(※プルリクエスト)ベースでレビューをしつつ、先輩メンバーの中でスキルアップ研修改善チームというものを作っているんですが、そのメンバーが中心となって毎日1時間ほど集まって、全員でレビューをするということもやっています。
そこで、育成に使う資料はこういう風に改善したほうがいいねとか、どんどんアップデートしていっています。」
古川「やっぱり、現場で活躍する先輩に指導してもらいながら、実践的に作って学ぶことができるのはいいですよね。
これまで僕もリクルートテクノロジーズで新人研修をしてきたけれど、実は現場の人間が指導役として研修を行うようになったのは、3年くらい前から。
それまでは人事担当者が考えたプログラムを行っていたんだけど、実際の現場で活躍するメンバーから学ぶ研修に切り替えました。
というのも新人とひとくくりで言っても、スキルにはばらつきがあるから、通り一遍のカリキュラムじゃまかないきれないということもあるので。」
小嶋「リクルートに入社する新卒者や中途採用の方は、入社する前に何かしらの経験を積んでいるという人も多いですもんね。」
古川「そういう方にはゼロから教える必要はないから、むしろ専門的なものや難しい内容を教えてあげる、というようにこの数年である程度カスタマイズされながら育成プランが整ってきた感じなんですよね。JavaScript以外にもCSSやHTML、TypeScriptのBootcampがあって、最後にフロントエンドのスピードハッカソンも開催して、基礎的なところから実用的なところまで、けっこう幅広くやったりしていますね。ニジボックスで小嶋さんが感じている新人育成の課題って、例えばどんなものがあります?」
小嶋「新人研修を受けたメンバーの理解度に、ばらつきが出てきてしまうことですね。
特にリモートワークが進んでいる今は、気軽に横の人に話しかけることもできない状況でもあるので、理解できていなくても「わかりません」と言えないメンバーが出てきてしまったりすると思うんですよね。分かったのか分からなかったのかが見えにくい、そこは課題だなあと思っています。」
古川「その課題に対して、何か対策はとっていたりしますか?」
小嶋「いかに気軽に質問してもらえる環境を作ることができるか、これに尽きると思っています。
先ほどお話しした毎日のレビュー会もそうですし、Slack内で分報チャンネルを作って、誰でも発言しやすい場を作ったりしていますね。」
古川「分報文化があるのは、いいですね。
リクルートでも分報を取り入れているけど、質問するだけじゃなくて、botを作っているメンバーとかもいて。ある意味発表の場にもなっていて、みんな積極的に発信してますよ。
ニジボックスの分報チャンネルを覗いてみても、積極的に発言するメンバーが増えていて、それが他のメンバーへの刺激になって、良い雰囲気が生まれているんじゃないかな。
もともとリクルートとニジボックスはグループ会社だから、社内の文化とか風土も似てますよね。メンバーがお互いに刺激し合いながら成長できる環境は整っているんだと思います。」
「仕事を覚える」の先を目指す、スキルアップへのアプローチ
古川「フロントエンジニアの中途採用者でさらに上を目指したい、というメンバーには、リクルートでやっているような専門的なことを学べるBootcampを随時開催したいなあと。」
小嶋「確かに…中級以上のスキルアップって、エンジニア間では自分で調べながらスキルを磨いていく風潮もありますけど、イベントとして機会を提供できると、横でつながりながら切磋琢磨できそうですね。」
古川「僕自身、プログラミングのイベントとかをこれまでやってきて思うのは、初心者向けのイベントは数多くあるけれど、中級者以上向けのイベントってあんまりないということが気になりますね。
それで今思ったのは、初心者からステップアップして中級者以上になった人は、初級者向けのイベントで教える側に回る仕組みが、あってもいいのかなあと。」
小嶋「ニジボックスではレビュー会をやる時に、これまでレビューされる側の立場だったメンバーも順番に、レビューする側にも立ってもらっていますね。」
古川「教えることって、実は一番勉強になるんですよね。
自分の中で言語化できていない知識があって、教えるためにはそれを言葉にしなきゃならない。
どんな伝え方なら理解してもらえるのだろう、とかを考える。
この時間が一番成長するタイミングだと思う。
教える側に回ることが、中級者が上級者になるために一番いい方法なんじゃないのかな。」
理想のフロントエンドエンジニアとは?
古川「僕がイベントや勉強会を開くたびに、自分自身も一エンジニアとして、身をもって体験してきたからこそ伝えたいなと思っていることがあるんだけど、エンジニアは日常的に自分から貪欲に知識を吸収し続ける姿勢が大切だということ。
自分で意欲的に知識を吸収したり、手を動かしている人を数年後に見ると、そうでない人と比べて差が歴然としてますね。
そもそもフロントエンドエンジニアというものは、最新のどんな言語を使うのかとか、どんなツールを使うのかとか、そういう話だけではなくて、もっと視野を拡げて学ぶことを探してゆく必要があると思います。
本当の意味でのフロントエンドエンジニアになるために学ぶべきことは、それこそ無限にあるので、普段の生活の中で自発的にアプリケーションを作って学んだり、知識を吸収し続けていこうというモチベーションこそが大事だと思うんです。実際、僕もそうしてきたので確信がありますね。」
小嶋「なるほど。そうしてきた結果が古川さんだと思うと、納得できますね!」
古川「いやいや…。
もしかしたら、ちょっと偉そうに聞こえてしまっているかもしれないですけど、できるだけ多くのメンバーにこのことに気づいてほしいから「探して学び続けよう」ということは必ず伝えるようにはしているかなあ。
趣味でも良いから、自分で一通りアプリケーションを作ったりしてみると、普段の業務の中での、機能要件を達成するための開発では学べないようなことにも気付ける楽しさがある。
一つのアプリケーションを作るのにも、サーバをどこに置こうとか、考えますよね?」
小嶋「そうですね。自分でサービスを作るってなった時に、それこそドメインってどうやってとるんだっけ? とか、必要性から、自発的に考えを巡らしますよね。」
古川「そうそう。そもそもドメインって何だっけ?とか。
理想的なフロントエンドエンジニアの姿ってなんだろう?って考えたときに、
Reactを使ってリッチなクライアントを作る人とかっていうわけでは全然なくて、
まず、課題を抱えて困っているお客さんがいて、
自分たちがユーザインタフェースやシステムを改善したり、新しく作ってあげることで、
その困りごとを解決することが本質だと思います。
そういう意識を持って物事に取り組めば、
時にはバックエンドを触る必要も出てくるし、Node.jsも触らないといけない場合も出てくる。
突き詰めるほどに業務の幅は広がっていくから、インプットを継続しながらしてアウトプットをして行く必要があると思うんです。」
小嶋「いろんなことにチャレンジしながら、エンジニアとしての総合的なスキルを向上する機会を自ら作り出していく。そういうことをチーム全体で意識していきたいですね。」
古川「そうですね。とはいえ、そういうことができる時間が、全員に平等にあるわけではないし、個々での工夫が必要になると思いますけどね。」
サービス開発の幅広い知見も強みに、最強のフロントエンドエンジニアチームへ
古川「メンバーを育成する時に大切なことって、小嶋さんも言っていたけど、メンバー同士が、お互いに意見交換ができる環境をいかに作るか、ですよね。」
小嶋「そうですね、自分の考えを言語化する機会は大事ですよね。
ある時から、メンバーのコードレビューをする時に、コードを1行ずつ説明してもらうようにしたんです。
そうすると、メンバーは自分の考えをまとめながら言語化するプロセスで、理解が深まったり、自らの課題箇所に気付いたりできて、単なるコードチェックで終わらない、生産的な会話ができるようになりました。」
古川「確かに、それはいいですね!
僕らがやっていることでは、やはりペアプロ形式の研修かなあ。
教えるメンバーが8人いる場合、全員を一気に見ることは難しいけど、2人1組にしてチームでの進捗状況を見ることで、教える側にとっても見やすいし、ペアプロで組んでいるメンバー同士でレビューし合えるから自然と会話も多くなっていくと思いますね。」
小嶋「ニジボックスでも、古川さんのBoot Campで体験したメンバーもすでにいますが、日常的にペアプロ形式は取り入れたいですね。」
古川「ペアプロ、いいと思うな。強制的にペアになった相手とコミュニケーションを取らなきゃいけなくなるので言語化の機会も圧倒的に増えていくはずですし。」
小嶋「あとは、リクルートグループ間での連携を強め、古川さんのような専門分野のプロたちからもっとたくさん学ぶ機会を増やしたいですね。
事業会社の大規模サービス運営で培われた、イキのいい知見を共有し合うことで、フロントエンドエンジニアとしてのキャパシティーが深まっていくと思います。」
古川「そうですね。スキルアップの為のもう一段階上のカリキュラムとして、僕がこれまでやってきたようなJavaScriptやTypeScriptをより深く学べる研修をしていく。研修の質を上げていくことによって、社員の質も上げていく。そういう会社を目指していきたいですね。
そういうチャレンジができる立場に僕も小嶋さんもいるはずなので。」
古川「あとは、リクルートとニジボックス、お互いに教えあう機会を増やしたいですね。
ニジボックスはリクルートグループの中でデザインが強い会社だから、そこの面でリクルートグループをリードできる立場にあると思っていて。
リクルートグループの会社に常駐する時も、ニジボックス出身のフロントエンドエンジニアはぜひ、その強みを活かして活躍してくれるといいなぁ。
デザイン観点に理解のあるフロントエンドエンジニアは、かなり即戦力になると思います。」
小嶋「そうですね。デザインが分かるフロントエンドエンジニアを育てて、リクルートグループの第一線で活躍できるようなメンバーも育てていきたいですね。」
今回はリクルート、ニジボックスそれぞれの新人育成の具体的な内容から研修の考え方、そこから見えてきた課題や、今後の在り方までを語ってもらいました。
リクルートのメンバー育成の考え方を取り入れつつ、独自の育成を行うニジボックス。
古川さんを始めとしたサポーターのバックアップを受け、さまざまな領域の知見に触れながらニジボックスのならではの強みをもつフロントエンドエンジニアを育成し続けていく。
そんな熱い思いを、お二人に語っていただきました。
お二人ともありがとうございました!