株式会社リゾーム 業務ソリューション事業グループの水谷です。
私は BOND WORKS という製品のフロントエンド開発を担当しています。 私の所属する開発チームでは、コードレビューの一環として「モブレビュー」を取り入れています。 新人エンジニアである私は、チーム参加後からこのモブレビューに参加しており、気づけば約1年が経ちました。 今回は、私のチームでどのようにモブレビューを行っているのかを簡単に紹介しつつ、参加し始めた当時を振り返りながら、新人の立場でどのようなメリットを感じていたのかをまとめます。 本記事が、弊社に興味を持っている方にとって、現場の開発の雰囲気を知る一例になれば幸いです。
モブレビューの概要
モブレビューとは?
モブレビューとは、複数人で同時に同じコードを見ながら、会話をしつつレビューを進める取り組みです。 だれか一人がレビューする場合と比べて、一人では気づきにくい点に気づけたり、レビューの中で得られた気づきや決定した方針をチーム内で共有しやすいといった良さがあります。
私のチームでは、週に2回、各1時間の時間を設け、定期的にモブレビューを行っています。
モブレビューの流れ
レビュー対象は、レビュー待ちになっているプルリクエストです。
モブレビューでは進行役のメンバーが一人います。 その進行役と、プルリクエストを作成した実装者との対話を中心に、メンバー全員で画面の動きや、処理が複雑なコードを確認していきます。
その流れの中で、気づいた点があればその場で確認したり、必要に応じてコードへの指摘や改善案を共有したりします。
モブレビュー参加当初の不安
当時の私は、約半年間の学習期間を経て、開発チームに参加しました。 参加当初は、同じチームの先輩エンジニアとのモブプログラミングが中心で、一人で実装を進められるレベルではありませんでした。
また、開発に関するミーティングに参加した経験もなく、モブレビューが初めて参加するミーティングだったと思います。 そのため、初参加の際はかなり緊張しており、「ミーティングの内容についていけるだろうか」「自分の実装箇所をきちんと説明できるだろうか」といった不安を抱えていました。
実際にモブレビューに参加してみると、どうしても内容が理解できない場面はありましたし、自分の実装箇所についても、どこからどこまで説明すればよいのか分からず、難しさを感じることが多かったです。
それでも、そうした悩みや不安以上に、モブレビューを通して得られるものがありました。
新人目線で感じたメリット
担当外の機能も含めて、プロダクト全体の理解が深まる
チーム開発では、各メンバーがそれぞれ異なる機能の実装を担当します。 モブレビューでは、コードだけでなく実際に実装した画面の動きも確認するため、機能間で共通している処理や似たアクションが想像以上に存在することに気付きました。
それまでの私は、自分の担当機能の仕様を確認し、その機能について一からコーディングすることが多かったです。 しかし、どこが共通部分で、どこがその機能固有の部分なのかを知ることで、実装時に参考にできそうな箇所や、あらかじめ気をつけるべき点が自然に見えるようになりました。
もちろん、モブレビューに参加しなくても、コードをひとつひとつ確認すればこれらの情報にたどり着くことはできます。 それでも、実際に実装を担当した本人から実装の意図や考え方を直接聞ける点はとても勉強になりますし、理解のスピードや効率は大きく違うと感じています。
経験あるエンジニア同士の会話から学べる
モブレビューは対話形式で進められるため、聞いているだけでも多くの学びがあります。
個人でのレビューやモブプログラミングだと、どうしても自分と先輩エンジニアとのやり取りが中心になり、自分が疑問に思った点が会話のメインになることが多いです。
一方で、モブレビューでは、他のメンバー同士の会話を聞くことができるため、自分では意識していなかった分野や観点の知識に触れられるのが大きなメリットだと思います。
コードレビューで何を見るべきか明確になる
開発業務では、モブレビューだけでなく、個別にコードレビューを行う場面も多くあります。 自分が他のメンバーのコードをレビューする機会もあるため、その際に「どこに着目してレビューをすればいいのか」を知ることができました。
モブレビューでは先輩エンジニアが実際にどのような順番でコードを確認し、どんな観点に注目しているのかを見ることができます。 その場のやり取りを通じて、レビューの流れや視点が自然と掴めるようになり、自分自身の理解も大きく進みました。
自身の書くコードの質が上がる
反対に、自分のコードをレビューしてもらう際にも、「どのあたりを見られるのか」が分かってくるため、コーディングの段階から意識すべき点が理解できるようになります。
レビューで指摘されがちなパターンを学んだことで、指摘を受ける前に自分で問題に気づける場面が以前より増えました。
おわりに
モブレビューは最初は少しハードルが高く映るかもしれませんが、新人にとって得られる学びは多く、成長のきっかけになる場でもあります。 モブレビューに参加して1年以上経った現在では、コーディングやプロダクトについて理解できる範囲が広がり、自身の成長に繋がったと実感しています。 まだまだ学ぶことは多いですが、チームの一員として今後も成長を重ねていければと思います。