品質を高めるためのコードレビュー① ~レビュアーの心構え~
2024 年 8 月 7 日 by setoh業務経験を積んでいくと、レビューを依頼する側(レビュイー)から、依頼される側(レビュアー)になります。レビュアーには、経験則から基づく技術力が必要になりますが、人によって技術力に差がでてしまいます。今回は、技術力の差に関係なく、レビュアーの心構えを学ぶことで、レビューによる品質を高めることに繋げたいと思います。
初めに、レビューとは、”成果物の曖昧な点や問題を洗い出すための討議や評論のことを指し、目的や手段・手法が明確になっていること”と言われています。レビュアーの経験則から、曖昧な所を探すのではなく、正しい手法を知ることが大切になります。また、レビューの誤解としては、”会議のようなもの”と認識してしまい、”曖昧な点や問題点の洗い出し”と逸れ、時間がかかったり、”テストの方が効率的”とレビューよりテストを優先してしまうことがあります。
そして、レビュアーで最重要なのは、敬意と礼儀になります。
レビューを受ける人への敬意を第一に意識できず、攻撃的なコメントでは、技術的な正しさや有用性よりも、人格を傷つけ、品質を低下させ、本来の目的を阻害してしまいます。敬意と礼儀を意識しながら指摘することが、目的を達成するための最短経路です。
GoogleのChromiumプロジェクトのレビュー指針、「尊敬に満ちたコードレビュー」を紹介します。
この指針は、”すべきこと”と”いけないこと”を決めています。
【すべきこと】
- 能力と善意を想定する
- 会って話し合う
- 理由を説明する
- 理由を聞く
- 終わりを見つける
- 適度な時間内に返信する
- ポジティブに述べる
【いけないこと】
- 人を辱めない
- 極端な言葉やネガティブな表現を使わない
- ツールの使用を思いとどまらせない
- 自転車置き場の議論をしない
※各項目の説明は、引用元のサイトをご確認ください。
https://chromium.googlesource.com/chromium/src/+/HEAD/docs/cr_respect.md
次に、コードレビューの一例を記載します。
[技術的には正確ですが、敬意と礼儀に欠けるレビュー]
・ここで〇〇メソッドは使わないでください。パフォーマンスが悪いです。
[敬意と礼儀を踏まえたレビュー]
・動作できて、いい変更です。ただ、パフォーマンスを改善することができます。〇〇メソッドでも実装できますが、××メソッドの方が、実行速度が速くなります。
同じ指摘ですが、敬意と礼儀を持ってレビューすることで、本来の目的を達成し易くなります。
レビュアーは、レビューの他に業務を任されていることもあり、忙しいことが多いです。忙しい中でも、レビュアーとしての心構え(敬意と礼儀)を大切にすることで、品質の向上に繋がることを学びましたので、投稿させていだきました。
次回は、レビュー手法について、投稿したいと思います。
参考書籍:「良いコード/悪いコードで学ぶ設計入門」