エンジニアインターン生から見たマイベスト
初めまして、23卒で株式会社マイベストのプロダクト開発部エンジニア職になる片田と申します!
今回は勤務先であるマイベストのプロダクト開発部がアドベントカレンダー企画を行うということで、昨日に引き続き2日目を担当することになりました!
8月下旬ごろからプロダクト開発部で研究と両立しながら週2で内定者インターンをしており、入ってから3ヶ月くらいになります!
本記事では23卒内定者としてエンジニアインターン生は実際に何しているのかについての解説させていただきます。
「お前誰?」みたいな話と就活の話は昨日の記事で取り上げているのでエンジニア就活で困っている方がいましたら是非見てください!
何をやっているか
マイベストのインターンでは、実際に現場に入りOJTでFBをいただきながら進めていきます。初めから責任感の仕事ではなく、実際にエンジニア組織にあるチームとは別にミッション外の課題を渡されて23卒同期の高橋くんと一緒に取り組んでいます!
まだまだわからないことがたくさんあるため、朝と夕方にCTOの渡邊さんや井上さんにやったことの報告や質問する時間を設けていただいたり、その他にも2週間に一度、仕事の進め方や2週間分の目標をメンターの井上さんと話し合いながら決める30分間の1on1の時間があります。
マイベストの内定者インターン参加(1ヶ月目)
初日は入社手続きを済ませ、環境構築しました。オンボーディングはスムーズで例え知識がなくても、すぐに環境構築は可能です。翌週からは簡単なチケット(課題)を渡され、まずはリリースまでの流れを理解していきました。マイベストではGithub flowでの開発を採用しており、1日に何度もデプロイやリリースが行われます。自分もインターン始めて1週間くらいで「はじめてのリリース」をしました。
次に渡された課題として日本語の文字列で書かれていたものをi18nメソッドに置き換えるといったことをしました。実装自体はドキュメント化されており、慣れてしまえばすぐに実装できるようになりましたが、動作確認用のGraphQLのクエリを叩いたり、「メソッドに対応している画面はどれだ…?」みたいな状態から始まりPull Requestに書く動作確認テストの作成に非常に苦戦していました。
その他、開発速度を上げるためにコードレビュー自動化の調査(Danger、Github Actionsなど)やその運用方法を考えることも並行して行っています。
マイベストの内定者インターン参加(2~3ヶ月目)
開発フローに徐々に慣れ、最初のチケットが完了したところで新しいチケットを渡されました。現在マイベストはフロントエンドでNext.jsに移行している最中であり、新たなインターン課題として今までフロントエンドで使用していたRailsのコードを動作確認しながら撤退していくというものが与えられました。23卒同期の高橋くんとフロントと管理画面の方で分担し、自分は管理画面の方を中心に担当することになりました。
対象のソースコードが結構あり、影響範囲も結構あるので、運用と保守を意識しながら細かくチケットを分けながら取り組んでいる最中です。実際にプロダクトの隅々まで触れるため、プロダクトの仕様の理解がこちらのチケットで結構進んだと実感しています。
苦労したこと
技術面
自分はインターンを始めるまでRailsに触れたことがなかったため、バックエンドの開発業務に慣れるまで苦労しました。最初はデバッグやログを見ること自体も苦戦してましたが、稼働日ごとに朝会、夕会を設定してくださったのと質問しやすい雰囲気だったので今では割と慣れてきたかなと思います。
それよりも苦労したことが、プロダクトの仕様を理解することです。コードを書いてGithub上でPull Requestを作成するのですが、mybestの仕様の理解がまだまだ不足しているため、確認テストやデグレードチェックテストなどを作成するのに苦戦しています。「個人開発や世に出さないデータ分析業務程度のコードならバグが起きてもあとで修正すればいいや」でなんとかなりますが、会社のコードは多くのユーザーが使うため(mybestだと月間3,500万ほどのユーザーが訪れます)、プロダクトの品質を保ちながら開発を行うことが求められ、責任感の違いを感じています。
技術面以外
技術的な面以外にも仕事面で課題が見えました。特に以下3点はこれから改善していきたいと考えています。
わかりやすいPull Requestの作成
ソースコードを修正して、他のエンジニアの方にコードレビューをいただくのですが、コードの修正依頼の他に「コード的には問題ないけど、〇〇の仕様には〇〇の確認は必要じゃないか?」や「レビュワーのことを考えてPRの書き方はこうした方がいいよね」などのPull Requestの書き方でご指摘いただくことが多いです。
レビュワーのエンジニアの方はレビュー以外にも開発業務があるため、なるべく早く正確にレビューしてもらうために、Pull Requestの粒度を小さくしたり、わかりやすいPull Requestを書かなければなりません。先日「セルフレビューをするとPull Requestのクオリティが上がった」というアドバイスをいただきました。以下のようにセルフレビューをしながらいいPull Requestを早く正確に書けるようにしていくのが課題です。
工数の見積もり
現在開発の中で、Jiraでストーリー(なぜやるか、何をやるか、どうなったら終わりか)を記載し、見積もりを立ててからソースコードを書いていくのですが、工数の見積もりが思っていたのと違うという場面によく遭遇します。理由としては、その他にもディレクターに仕様を確認したり、調査だったりの見積もりがどれくらいかかるのかわからないからです。この辺は経験にもよると思いますが、振り返りをしっかりとして見積もりの精度を上げていきたいなと思っています。
会議の回し方
普段自分はミッション外のことをしているため、チームのミーティングなどはほとんど参加しませんが、コードレビュー自動化のためにヒアリング調査を行いたく、ファシリテータとして会議を主催しました。その際に、「そもそもこの会議はどういう意図でやっているのかわからないかも」と終了後にFBをいただきました。
インターンに入る前はあまり意識してなかったのですが、会議は社員の時間をある意味拘束して開催されるため、5~6万のコストがかかっているため、会議では必ずゴールを設定し、それを達成する必要があります。
CTOの渡邊さんにシェアしてもらった記事があるのですが、会議には以下の3種類に分類されます。
意思判断を行う
情報の共有・伝達を行う
ディスカッション
普段研究室のゼミ発表を行う際は、時間の意識と会議の種類の分類、目的に応じた使い分けを意識せずになんとなくやっていましたが、現在のタスクを細かく分類して、課題のフェーズに合わせてこれらの会議を使い分けるのが自分の今後の課題です。
実際に働いてみて良かったこと
エンジニアが開発しやすい環境が整っている
開発環境だとPushした段階で自動テストが自動で走ったり、デプロイなどがbotコマンドで実行できたりと快適な開発体験ができる会社だと感じています。また、開発の困りごとがあれば相談会が定例で開催されたり、キャッチアップのための勉強会があるので、サポートし合える環境は整っていると感じます。
心理的安全性の高い組織である
プロダクト開発部の話にはなりますが、真面目で優しい方しかいない印象です。コードレビューやSlackの発言一つでも皆さん発言の仕方に心理的安全性を意識しているのを感じます。
後は社内のSlackに大量のmemo_channelがあるのですが、自分も作り、Twitterのように今日やることやインプットしたことを自由に投稿しているのですが、稀にCTOの渡邊さんや井上さんに反応してもらいアドバイスをいただけるので助かっています。他の人のアウトプットも見てたりしてこのmemo_channelの文化は面白いなと思ってます。
他部署の方々と交流する機会も何度かあり、皆さん親切で働きやすい場所だなと感じてます!
FBが丁寧
自分はCTOの渡邊さんとメンターの井上さんに仕事を進めていく上での困りごとや技術的相談事をすることが多いのですが、ティーチングとコーチングをうまく使い分けて伸ばしてくれているなと実感してます。自分は割と仮説を持って考えを言うタイプなので一旦話を聞いてくれて良さそうならそのまま自由にやらせていただけますし、間違っていたらすぐ指摘してもらえます。
また、言語化に困ったら拙く伝えてもわかりやすく整理し、言語化の手助けをしてくれる環境なので、FBを活かしながら成長できている実感があります。
技術的関心が高い
開発部では2週間に一度ランチどきにLTをする時間があったり、定期的に勉強会が開催されています。また、Slackでの知見共有が日々あったりと技術的関心の高い方が多いイメージです。
インターン開始後、2週間くらいで三重県で開催されたRubyKaigi2022に参加させていただきました!技術イベントの参加などの投資をきちんとしてくれるのは非常にありがたいなと思っています。
最後に
3ヶ月ほどインターンさせてもらいましたが、同期の高橋くんと日々並走しながら、技術面でのインプット、仕事の考え方など学びの多い環境でやらしていただいているなと実感してます!
まだまだ未熟者ではありますが、今後エンジニアとしてそして人間としても成長していきたいと考えています!
最後に少し宣伝で、マイベストでは「インターネットを使った“最高の選択体験”を実現する」をミッションに「選択」の課題を解決できるサービス作っています。
もし何か商品やサービスを選ぶときは使ってもらえると嬉しいです。
プロダクト開発部以外にも,マイベストのアドベントカレンダーも走っていますので興味ある方は是非見てください!
mybest Advent Calendar 2022 - Adventar
24卒の募集も始まっているので、興味のある方は是非応募して見てください!
https://my-best.com/company/recruitment