先日より、ミクシィグループの新卒社員研修のプログラム職種別研修について3回にわけてお送りしています。1回目はエンジニアの研修についてです。新卒エンジニアの皆さんが高度な知識を専門的に学ぶというよりも、苦手分野を無くす目的で研修を実施しています。
前編では、「Unity 入門」についてレポートしました。今回は「不具合調査」の講義内容、および担当講師にインタビューした内容をレポートします。
※『新卒エンジニア研修をのぞいてみた。』は、前編 後編の2記事となります。
【エンジニア研修項目】
※研修講義内容の右記は講師名 URLは過去の研修内容のエントリ
1.「Unity 入門」 (YuukiARIA)
新卒エンジニア研修をのぞいてみた。前編
2.「データベース」 (@isaoshimizu)
新卒研修の受講レポート~データベース編~ 2017年版
3.「テスト駆動開発」 (@halhorn)
4.「不具合調査」 (@otoyo0122)
5.「セキュリティ」
新卒研修受講レポート~セキュリティ編~2017年版
6.「AWS」
新卒研修の受講レポート~AWS編~ 2017年版
「不具合調査研修」って聞いたことある?
こちらの講師を務めたのは、CREを担当しているエンジニアの豊川。まずは、この研修をなぜやるのか、の説明からスタートしました。
「通常であれば、事業部やサービスには、それぞれで言語やフレームワークが選ばれているから、研修では業務に必要な知識を効率的に学ぶことが優先される。そのため、業務を進める上で土台となるようなエッセンスのみを、研修では扱っている」と始めました。続けて「Git、DB、セキュリティなどのみなさんが研修を受ける理由は、何となくでも理解できると思う。しかし不具合調査研修って何だろうと思う人が、この中にはいらっしゃるのでは」とのこと。
「どんなプロダクト・サービスでもバグ無し不具合無しは、存在しない。もし、不具合が発生すれば、早急にコードを読み解く必要性がでてくる。だからこそ、普段からコードを綺麗に書く意識を持ってほしい」と不具合調査研修の重要性についてメッセージがありました。
「他人のコードを読む仕事は骨がおれる」「バグを発見するためにあたりをつける必要がある」など実際の不具合調査というタスクが難しい点も指摘。これには参加しているエンジニアも頷く様子。
※事前アンケートの結果、参加者の70.6%が人のコードを読むのに自信がないと回答。
不具合の原因には「ユーザーによる意図しない入力」「APIの意図しないレスポンスによるもの」など初歩的な部分や、「ソフトウェアの不具合や悪意のある攻撃による多重リクエスト」、「高負荷によるサーバーダウンや遅延」など、エンジニアにとって耳が痛くなる説明も…。
しかし、不具合調査のメリットとして、「膨大なコードを読むことになるのでコードリーディングのスキルが習得できる」「勘が研ぎ澄まされ、それによって不具合の要因について仮説をたてやすくなり、検証・解決までスピーディーに実行できる」「まれに不具合の原因にライブラリの仕様が想定され、OSSに貢献できるチャンスがある」などエンジニアとしてベーススキルの向上につながる点も語りました。
座学での説明を一通り行った後、実際に不具合調査の演習がスタート。
演習は二人一組のペアプログラミングで進めていきます。
問題は全部で3問、おまけで1問用意しました。
使えるツールはGitHub、Amazon RDS、Google formのみです。シンプルに問題、コードを読み、DBのユーザーデータとログを調べ、原因を特定して被害状況を知らせる。そして、不具合修正の差分をPRするという内容です。
回答時間は1問あたり20~40分、一筋縄ではいかないようです。
おっ、うまくいったのでしょうか。回答がみつかりそうな予感がします。
「難問を用意した」とのことでしたので、エンジニアの皆さん苦戦している様子。
これからサービス・プロダクトを作っていく上で、「不具合の原因を探す・見つける」という業務は、切っても切れないものです。不具合自体、不名誉なことでもありますが、発生次第速やかに対応するためにも、日頃から如何にコードを綺麗に書くかという意識が芽生えてもらえばと思います。今回の演習を通して、新卒エンジニアの学び・気付きになれば嬉しい限りです。
「不具合調査」の講師を担当した豊川にどのような想いで講義を組み立てたかインタビューしました。
適応力に脱帽
━━━━今回のテーマ「不具合調査」はどのような意図で決定されたのでしょうか。
私が所属しているCREの得意分野と新卒のみなさんがどこに配属しても役立つスキルの公約数を考えた結果、不具合調査研修を実施することにしました。どのプロダクトでも不具合はありますからね。その難しさに触れてほしいと思いました。
━━━━緊張やプレッシャーはありましたか。
初めての研修科目だったので、実際新卒が楽しんで受講できるか、問題の難易度設定が適切かどうかは苦心しました。研修終了後にはみんなやりきったと笑顔だったので一安心です。
━━━━今回の研修でどのような点を工夫しましたか。
「不具合調査研修」はあまり一般的ではないかと思います。そのため、なぜ必要なのか?という動機付けに気を配りましたし、しっかり丁寧に伝えたつもりです。 普段からコードを綺麗にかく意識が芽生えてくれればと思います。
━━━━ペアプログラミングやコードを読むという体験を活かして、綺麗なコードを心がけてほしいですね。
そうですね。それが、不具合を防ぐ一つの手段にもなりますからね。
━━━━演習の結果は非常によかったと聞いています。
そうですね。1問目が終わった時点で、少し難易度が高いかと思っていましたが、2問目、3問目と進んでいくにつれ驚くべき適応力をみせてくれました。2組はおまけの問題にも到達していましたし。非常に優秀かと。
実際に不具合調査を通して難しさを体験してもらうことで、普段からコードを綺麗に書いたり、最低限の英語の語彙力をつけたり、ログを残すことの重要性を理解いただけたので、研修して良かったと思っています。
━━━━新卒エンジニアと接してみていかがだったでしょうか。
わからない問題や不明点があっても、仲間とコミュニケーションをとり、まわりを巻き込みながら課題に挑戦する姿には感動すら覚えました。ミクシィグループならではのエンジニアだと思いますし、今後の会社を支えていく仲間として非常に頼もしいと思っています。
以下「不具合調査」を受講したエンジニアの声を紹介します。
・答えのある課題にしてくれたり、コードを読みやすくしておいてくれたりと、楽しんで取り組めるような工夫があってよかった。
・非常にわかりやすい内容で,楽しく取り組むことができた。
・ペアで取り組むことで,1人で悩み続ける時間がなかったのはとても良かった。
・これまで経験がなかったことだったので研修として経験できて良かった。コードを読む経験を通してコードを書く時に大事なことを学べたので、今後この分野にあまり携わらないエンジニアでも大事なことを学ぶことができたと感じた。
最後に
前編、後編と2回にわたってエンジニア研修についてレポートしてきました。
社内のリードエンジニアが講師となり専門研修を実施することで、新卒エンジニアの急成長を促進しています。配属が決定すると、現場で活躍する先輩エンジニアが様々なことを教えてくれると思います。しかし、テクニックだけでなく、講師の想いや「教えてもらう」という謙虚な気持ちを忘れることなくキャリアを歩んでほしいと思います。
– – – – – – – – – ※※※ - – – – – – – – –
■ pick up! ■