新卒エンジニアが今年悩んだこととメンターに教わったこと
4月からWebエンジニアとしてとある会社で働いています。うちの会社では、新卒研修がなく、いきなり業務に入ります。その代わり、新卒に対して一人の先輩エンジニアが付いてサポートしてくれる「メンター制度」というものがあります。サポートの内容はコードの書き方とか設計といった業務に直結するようなものや、有休のとり方のような会社の制度の使い方などさまざまで、基本的にメンターにはなんでも相談できる環境です。メンターとの関わり方は人それぞれですが、自分の場合は最初の2ヶ月は毎日夕方にミーティングをいれてもらい、それに加えてわからないことをSlackで聞いていました。3ヶ月目以降は、2週間に1回のミーティングで相談ごとをまとめて聞いてもらっていました。
この記事では、自分が4月から悩んだことと、それに対してメンターからもらったアドバイスを備忘録的に書いていきます。
チームの人に質問していいかわからない
新卒あるある問題だと思いますが、自分も例に漏れず「15分考えたけど聞いていいのかわからない」とか「そもそも15分経ってないけど明らかに自分一人じゃ無理」という状況に良くなっていました。が、(主に質問サイトの影響で)質問への抵抗感が拭えなかったり、質問をつくるための文章が支離滅裂になったりしてよくパニックになっていました。くわえて、上司の面談では「質問の質を上げてみよう!」みたいなことを言われたので、メンターに「どう質問したらいいか」を聞いてみました。
メンターは、
・問題や起こっていることが明らかで、
・その上で自分がどうしたいかをある程度書ける
質問なら、聞いても良いと回答してくれました。また、すぐ頭がぐちゃぐちゃになることについては、自分に対する質問も書いてみて、問題の本質を明らかにすることもすすめてくれました。
質問当時から半年たった今では、「15分考えたか」ルールは無視するようになりました。コードに慣れてわかることが増えたというのもありますが、
・自分で考えられそう、あるいは
・自分で解決した方が早そう
という問題は自分で解決します。一方、詰まったり明らかに自分の知らないことが含まれていそうな問題はチームに聞いています。また、質問の仕方も、無理に文章で全部質問しようとせず、要点だけ書いて「今通話いけますか?」と聞くようにしました(これが上手くいくかはチームによると思いますが)。
頭がこんがらがる問題は、主にバグ対応で起きていたのですが、これはインデントつきの箇条書きやテーブルに問題と調査結果を書いていくことで、「どういう条件で」「どういう事象が起きているか」を整理できるようにして、その上で頭の中では解決したい問題を意識しています。こうすること、横道に逸れたりズレた対応になることが減りました。
まとめると、質問していいから迷ったときは、
・問題と期待する結果を整理して、
・質問する場合としない場合の効率を考え、
質問したほうがチーム全体の効率が上がるなら遠慮なく質問してよさそうです。
やり忘れが多い
もともと注意力が散漫なのですが、仕事で難しいところはできたのにしょーもない抜けがあって Hotfix を投げるハメになる問題がよくありました。これに対しては、
・やってる瞬間はそこに集中する
・やることをリストにする
という自分へのアドバイスのほか、
・そもそもそのためにレビューや受け入れテストがある
という見方もメンターに教わりました。
今は、やることをパソコンの付箋や Slack の自分宛ての DM に書いたりしてやることを管理できるようになったので、だいぶ抜け漏れが減った気がします。また、万が一あっても「でもレビューで指摘されなかったしな…」と考えられるようになり、メンタルも楽になりました。
営業さんからの質問が来すぎてしんどい
自分のチームはやや特殊な体制なのですが、そのせいで「営業チームからの質問が新卒の自分にばっかり来る」という状況になっていました。たまにならいいのですが、毎日のように Slack でメンションが自分にだけついた質問が飛んできたり、DM でバグの報告が来たり、質問に回答したところにさらに質問がついたりして、「まだコードもちゃんとわかってないのに…」としんどくなっていました。
上記をメンターに相談したら、まずカスタマーサポート用の Slack チャンネルを作ることを勧められました。そうすることで、開発チームのほかの人にも質問が見えるようになるし、回答も手伝ってもらえるので、「自分ひとりでやらなくちゃいけない」という状況を変えられるとのことでした。
回答をもらったその日にチャンネルを作って、その上で上司に相談したところ、現在は「営業さんからの質問やバグ報告に対応する人」が持ち回り制になり、だいぶ楽になりました。
営業さんからの質問に答えられてるか不安
質問の物量もそうなのですが、入って数ヶ月はコードの理解や挙動が把握しきれてなかったので、「コード見て動かした感じこうだと思うんだけど、ほんとにそうなのか…?」と不安になりながら質問に答えていました。この悩みについては、調べた結果と、その結果についての確度もあわせて回答するというアドバイスをもらいました。
最初は慣れませんでしたが、今は「とりあえずここについてはこうです」「ただし、その先については調べてないです」みたいな書き方をしてみたり、通話で質問が来たら「一回持ち帰りますね」と言えたりできるようになりました。
本番エラーとの付き合い方
自分のチームでは、本番エラーはチームの「本番エラー通知チャンネル」に飛ぶようになっています。リリース前はちらほらでる程度だったのが、公開後は毎日出るようになっていたのですが、これも営業からの質問と同じようにチームでほとんど自分だけ対応している状況でした。本番エラーの対応に追われ、開発タスクが進まなかったり、自分一人で解決できなそうなものがでてきたりしてしんどくなりました。
メンターに相談したところ、「本番エラーが出てる = お客さんが使えてない」なので、最優先で対応すべきだし、「本番エラーの確認はプロとして必要」との言葉ももらい、とりあえず自分が本番エラーに対応してたのは間違ってなかったのを確認して安心しました。
チーム内のバランスについては、自分しか見ていないんだったら、適宜他のチームメンバーに仕事を振っていいとのことでした。
現在は上司にも相談して、他のメンバーも見るように定期的にミーティングで周知がありますが、自分が最初に見つけた場合は、朝のミーティングでみんなにエラーがあることを伝えたり、他の人に一緒に見てくれるように頼んだりして、なるべく一人で抱えないようにしています。
他の同期みたいにライブラリや言語細かい仕様を調べられない
同じ新卒で入ったほかのエンジニアの様子を見ていると、わからないことがあったときにライブラリのコードまで遡ったりしているのですが、一方自分は適当にググったりドキュメントを読んだりしながらコンソールであれこれ動かしてみて、それで動いたら次に行ってしまいます。自分から見ると、前者のような人があるべき「エンジニア」の姿な気がして、「このままで大丈夫なのか?」と思うことがありました。かといって、興味のないことをやるのもツライのでメンターに相談してみました。
メンターはユニークな表現で説明してくれて、プログラミングをゲームに例えて、エンジニアには
・ゲームの武器そのものが好きな人
・武器をつかってゲームを進めるのが好きな人
の2タイプがいると教えてくれました。そして、自分やメンターは後者のタイプなので、前者のタイプのように細かく調べないし、両方のタイプのエンジニアが開発には必要と言ってもらえました。自分のようなタイプは、細かく調べた人の報告を見てみたり、週に1回くらいそういう人の真似をしてみると良いとのアドバイスももらえました。
現在、「週に1回くらい調べてみる」はあまり達成できていませんが、とりあえずエンジニアにもいろんなタイプがいるとわかって気が楽になりました。
手が空いたら何をしたらいいかわからない
入社して最初の3-4ヶ月は、今週やるべき開発タスク(正確にはスプリント内でアサインされた開発タスク)が終わって、ほかにレビューやテストもなかったら次のスプリントから開発タスクをとってきていました。しかし、最近はこれをやると「自分のタスクは終わっていてもチー厶全体で見るとタスクが終わっていない」とか「午前中手が空いていただけなのに、新しくとりかかったタスクが丸1日かかる量だった」とか「新しいタスクの最中にバグ対応が差し込まれる」とかいうことが起こり、必ずしも新しいタスクをとってくるのが正解ではない気がしていました。
メンターに相談すると、まず常に稼働しているのが最も効率的なわけではないということを教わりました。チームの生産量の増加より、チームの「流量」を増やすほうが大事で、開発タスク以外にもコミュニケーションのサポートやドキュメント整備などもこの流量に貢献するとのことでした。
暇になった瞬間に新しいタスクを取りに行くのをやめたところ、結局ぼーっとしている間に営業さんからの問い合わせが来たり、やり忘れたことを思い出したり、他の人から手伝ってほしいと言われたりするので、タスク消化だけを目標にするのをやめてよかったと思ってます。
まとめ
以上が4月からメンターに相談してきた新卒の悩みでした。このほかにもいろいろ細かいことは話していますが、重なものをこの記事で書いてみました。多くの悩みで共通しているのが、「一人で抱え込まない」というアドバイスで、自分だけが知っているタスクが減ると、しんどさも比例して減っていきました。また、上司からも「自分の問題をチームに問題にするといい」と先週くらいに言われたので、積極的に仕事を他人に振り、来年は残業時間を半分くらいにしたいです。