新卒とメンターリングについて考えてみた
このエントリはEx CyberAgentアドベントの24日の記事です。
こんにちは、@huydx です。今年の4月で、新卒で入ったサイバーエージェントを退職しました。学生時代は技術を重視して採用していただきたいので「Github採用」という素晴らしい企画(https://www.cyberagent.co.jp/recruit/fresh/program_detail/id=8965)に参加して、採用きっかけになりました。
新卒でよかった
サイバーエージェントに新卒として入社しましたが、私は「新卒」というタイトルを付けられるのは初めてでした。その体験はよかったかと聞かれると考えずに「めっちゃいい」という返事をすぐ出せます。その理由は
- 最高の同期ができる
- メンターがついてくれる
- 失敗しても良い
新卒入社を経験した方だとすぐわかると思いますが、中途入社と比べたら圧倒的に人間関係を作りやすく、すごく過ごしやすい生活ができました。同期も人それぞれで、競技プロが強い人、コンパイラが好きとかネットワークが好き人とかみんな自分の強さを持ってびっくりしました。退職のあとでもslackで毎日わいわいして同期最高しかいえません。
入社するときはサイバーエージェントのアドテクスタジオというところ、基本的にブラックじゃない広告を出せる技術を日々研究したりしている部署です。配属されたのは Right Segment の会社で、ビッグデータの活用などをして広告品質をよくするための会社です。会社に入って一番嬉しかったことはなんでもやらしてくれます。大きいな Aerospike クラスターをスケールするための取り組み、秒間1万ぐらいリクエストのアプリケーショインサーバを shadowプロキシー使って本番でテストできる仕組みの実験など、すごく貴重な経験になって、マネージャーの方々に感謝します。
ではやっとこの記事の本題に入りますが、新卒の大きなメリットとしては、自分の成長につながるメンターが一人ついてくれます。私はメンターは@kakakakakkuさんです。下の文章はちょっと長いので先に結論を出しますと:
- メンターはかならず必要(技術がすごい人でも)
- メンターシップは双方向的な関係である
- シニアエンジニアになるためにはメンターシップの能力を身につけないといけない
- @kakakakakkuさんを感謝します
メンターのこと
Good engineers write good code. But the best engineers cultivate and inspire their junior colleagues.
日本の会社では、メンターリング==OJTとか、メンターリングは講師が授業で一般的の知識を教えたりするとか、のイメージを持っている方が多いでしょう。ただ、人の成長をつながるために、短期のOJT、研修などではなく、1対1のメンターが必ず必要だと思います。
1980年代で心理学研究者のBenjamin Bloom氏の研究でメンターが付いていくと、学生の学習力が98%向上できたという。
それでメンターってどういう役割なんだろと、@hirokidaichiさんが素晴らしい記事を書いていましたので参考してみると
メンターというのは、特定の分野において経験を持つ人が「世話焼き兄貴・姉貴」として、キャリアや仕事の進め方、トレーニング、コーチングなどをしていく人のことです。その対象のことをメンティと言います。
そのため、目的は対象となる人の迷いを取り除き、成長させ一人前にしていくことです。また、メンターを経験することでより大きな人数での指導的立場やサポートをしていくことの足がかりとしても大変有用です。
つまり、メンターは技術の質問を回答するする、社内ルールを教えるだけではなくて、最終ゴールとしては「成長させる」です。
個人の話に戻ると、私が会社に配属され、最初Rails管理画面などを機能作ったりして、リニューアルに参加させていただいたんですが、管理画面だけ数ヶ月やって技術力はあんまり伸びなかった。そこで@kakakakakkuさんが自分の担当じゃない部分(javaのアプリケーションサーバ、hadoopのバッチなど)を私移動許可しました。管理画面で人が足りないし、Railsの経験を持っている私は普通のメンターだと絶対仕事の速度を優先して、どんどんタスク振ると思いますが、私の成長悩みを感じて移動させていただくのは本当に@kakakakakkuさんのメンター力だと思っていました。
またscalaが強いアドテクに配属しているが、RightSegmentもともとはほとんどレガシーjavaとRailsであんまりscalaを触る機会がなかった。@kakakakakkuさんが他の部署のエンジニアをつながるいろいろチャンスを作っていただいて、scalaを触って始めるきっかけになって、ブログも書き始めて
-
Principles of Reactive Programmingコースに参加している話 Week.1 | Scala Tech Blog
-
Principles of Reactive Programmingコースに参加している話 Week.2 | Scala Tech Blog
- GCメモリ初心者の新卒がScalaでGCメモリを勉強してみた | Scala Tech Blog
Scala将軍達の後の祭り - connpassの登壇などにもできました。
そのあとRight Segmentにもやっとscala導入ができて、私が退職するあとに作った AI Messenger もscalaの最新技術で作られたそうで、うれしかったです。
現職でもjavaを主に使っていますので、配属されたときのメンターの決断のおかげで自分の成長だけじゃなくて自分のキャリアパスにも大きな影響を受けて深く感謝します。
他には、自分の成長につながることをリストしてみると
- ゴールを明確で、小さいゴールから始まる。小さいなゴールからゴール設計することにより、達成を体験することもでき、もっと大きいなゴールを向けて自信もって実現可能になります。
- 双方向的な関係を作る:私は割りとRubyを数年やっているので、メンターから作業の進め方、トラブルシューティングなどの技術を勉強しながら、Rubyを勉強はじめたメンターに逆に教える事ができました
良いメンターシップを作るの大事さ
自分の体験からも、世界のトップクラスの企業みても、メンターシップは絶対かかせないことだと思います。Effective Devopsの本から、メンターシップはシニアの人がジュニアをメンターするだけではなく他の種類もあります。
-
Senior-to-Junior
-
Junior-to-Senior
-
Senior-to-senior
-
Junior-to-Junior
つまり、メンターは二人だけではなく、会社一人一人の義務にも言えます。入ったばかりの人たちもお互いにメンターすることもできるし、社歴が高い人たちもお互いにメンターできるという。自分にアサインされない人でも積極的にメンターできる人を探したほうよいということもグーグル社の文化となります。
いいメンターシップの性質としては、quoraからいい回答がありますので貼っておきます:
Mutually understood goals. お互いが納得するゴールを設計せよ
Mentee-driven. : メンティが積極的にやることを探せ
Bandwidth-appropriate : メンター時間が無理せず設定しよう
A focus on approaches, not tactics. : アップローチが大事
A focus on listening. : お互いに聞け
Transparency : 透明性が大事
Dissolved appropriately : いらない会議とか政治とか避けよ
もちろんいいメンターシップを作るためにもちろん人は一番大事ですが、会社からもちゃんとサポートしないといけないです。サポートは、面白い企画を設計するとか、材料のお金サポートとか いろいろありますが、何にしてもメンターする人を本業として評価をインセンティブを与えなければなりません。
長くなりましたがみんなさんメンターシップを大事にしましょう!
他に参考できる記事