Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CodeRevieweeが求められること

onopon
February 10, 2024

 CodeRevieweeが求められること

https://fortee.jp/phpcon-kansai2024/proposal/1ece99f8-82c3-4a87-a684-6649350fdf74
誰かの書いたコードが世に出る過程で、コードレビューを行う組織は多いのではないでしょうか。
コードの質を担保するため。属人化を防ぐため。知識共有や認識合わせのため。チーム内のスキルアップのため。
コードレビューは様々な意味や目的を持って行われます。

先日発表したPHP Conference2023「CodeReviewerが求められること」の続編です。
https://fortee.jp/phpcon-2023/proposal/25891e6c-7762-47b5-8cb3-e3db7f056abc

前回のおさらいや、PHPコード上でのコミュニケーション例の紹介、
そしてどんなコーディングやPullRequestの出し方がCodeReviewerに求められるものとなっているのかに迫ります。

少しでもお役に立てると幸いです。

対象者: コードレビューに携わる全エンジニア(役職問わず)

onopon

February 10, 2024
Tweet

More Decks by onopon

Other Decks in Programming

Transcript

  1. 自己紹介 株式会社ウエディングパーク Photorait 本部 おのぽん(@onopon_engineer) ・2022年6月にウエディングパークに入社 ・前職では   - 大規模ソーシャルゲームのサーバエンジニア   -

    人工知能コミュニケーションロボットのサーバ全般   - Androidアプリ開発  を行い、業務でのPHP開発は未経験 ・エンジニア以外の時は大体卓球をしています🏓 ・パラ卓球選手のコーチもしており、  今年のパリパラリンピックでの活躍を目指し日々奮闘中 3
  2. • 対象:20-30代の弊社のいろんな役職のPHPerエンジニア • 人数:10名 • インタビュー時間:10分 • 内容 25 Reviewerの理解を深めるインタビュー

    PRをReviewする際、 • レビューをする時にどのような点・内容に意識を向けているか? • 指摘部分をコメントする際、気をつけている点はあるか? • レビューしていて大変だなと思う時は? • どのようなPRだと嬉しい? • どのようなPRだと見たくない?(テンションが下がる?)
  3. 33 一見矛盾した要望のように見える KAカードの心の声 • レビューにかけるパワーを抑えたい • 理解しやすいコードを読みたい • レビューの回数を抑えたい ->

    基本的にReviewerは忙しい(≒作業を中断し たくない) KAカードの心の声 • 概要を書いて欲しい • 意図を素早く理解したい • より適切なレビューを届けたい -> ReviewerはRevieweeの考えを理解したい Reviewee・Reviewerがお互いを理解し合う必要がある 迅速にレビュー を終わらせたい レビューの質を向上 させたい
  4. • 1PRにおけるファイル数を10ファイル程度に抑える • 軽量なPRであることを伝える ◯ 忙しいReviewerがサクッと見ることのできるような工夫を施す 40 Revieweeが求められているPRの出し方はもの意外にシンプル ◯ Reviewerに自分の考えや意図を伝える

    • レビューを依頼する前に自らPR内にコメントを残しておく • 処理を簡単に書く(一目で理解できるようなコードを書く) • 事前にReviewerと実装方針のすり合わせを行う
  5. • 1PRにおけるファイル数を10ファイル程度に抑える • 軽量なPRであることを伝える ◯ 忙しいReviewerがサクッと見ることのできるような工夫を施す 41 Revieweeが求められているPRの出し方はもの意外にシンプル ◯ Reviewerに自分の考えや意図を伝える

    • レビューを依頼する前に自らPR内にコメントを残しておく • 処理を簡単に書く(一目で理解できるようなコードを書く) • 事前にReviewerと実装方針のすり合わせを行う レビュー依頼外のポイントなので今回の発表では割愛
  6. 46 Reviewerの苦悩〜組織を乱さずプロダクトの質の改善につなげるために〜 コメントをしなければプロダクトの質の改善には繋がらず、 Revieweeを傷つけることもまたプロダクトの質の改善には繋がらない プロダクトの質を 向上させたい 組織を 乱したくない KAカードの心の声 •

    コードの質を落としたくない • 属人化を防ぎたい • 運用に耐えうるコードとなっていてほしい KAカードの心の声 • Revieweeへの気遣い • ギスギスしたくない ◦ 度重なる指摘コメントはRevieweeの気が滅入ってしまったり、 傷つけてしまう恐れがある (人格否定や攻撃的なコメントは論外) Reviewerの苦悩 → Reviewerにとってコメントしやすい状況を作ってあげよう!
  7. 47 Reviewerにとってコメントしやすい状況を作った例 • 「教えてほしい」というスタンスを伝える → Reviewerにとってコメントしやすい状況を作る • Reviewerは悩みポイントも理解することができる → Reviewerは明確にコメントを残すことができ、

     レビューの質・レビュー速度UP • 方向性が定まり一旦の解決策がある場合は、 とりあえず進めるという行動はGOOD! ◦ 依頼のタイミングで疑問点を聞くことで他エンジニ ア(≒Reviewer)の作業を中断する回数を減らすこ とができる → Reviewerから奪う時間を最小限に抑える
  8. 50 Reviewerが求めるPR・レビュー依頼 ①サクッと見ることができるもの ②Revieweeの考えや意図が伝わるもの レビュー依頼術 • 1PRにおけるファイル数を10ファイル程度に抑える • 軽量なレビューであることを伝える •

    レビューを依頼する前に自らPR内でコメントをつけておく ◦ 第三者が悩みそうな点は先回りしてコメント ◦ Reviewerにとってコメントしやすい状況を作る ◦ 迷ったり相談したい点もあらかじめコメントしておく • 処理を簡単にする(一目で理解できるようなコードを書く) • 事前にReviewerと実装方針のすり合わせをする 今日からできる!Reviewerから求められるレビュー依頼術 https://engineers.weddingpark.co.jp/review_request_technique/
  9. 51 まとめ • Reviewerの気持ちを知るために、インタビューを行った • インタビュー結果を分析することで、レビュー依頼に工夫を凝らせば Reviewerの求める下記2点の要望を満たせることがわかった ◦ 迅速にレビューを終わらせたい ◦

    レビューの質を向上させたい • RevieweeがReviewerにとってコメントしやすい状況を作ることで、 レビューの速度・質は向上し、プロダクトの質の向上につながる • 本セッションでは、上記を満たすコメント例やレビュー依頼術を紹介