プログラミング学習

【初心者必見】コードレビューはバグ発見だけじゃないよ – Microsoftの調査結果が興味深い

コードレビューに求めることは?

みなさん、こんにちは。どんぶラッコです。

エンジニアのみなさんは、働いているときにコードレビューをすること、ありますよね?

ただ、一番最初エンジニア見習いの頃は「コードレビュー?何それ?」状態だと思います。

また、先日プログラミングについて教えている際、「コードレビューってバグを発見するってことですか?」という質問を受けました。

今回はそんな皆様にうってつけの記事があったのでご紹介します!

コードレビューはバグを発見することだけではない!

2016年に出された記事なのでやや古いですが、Microsoftが自社の社員に実施したアンケーを基に”コードレビュー”に関する記事を公開しています。

その名も、「コードレビューとは、(主に)バグを見つけることだけじゃない。」

Code reviews are not (primarily) for finding bugs

では、エンジニアはコードレビューに何を求めているのか。そのグラフがこちらです。

FIGURE 1. DEVELOPER'S MOTIVATIONS FOR PERFORMING CODE REVIEWS. SOURCE:<img class="ranking-number" src="https://blog.proglearn.com/wp-content/themes/jin/img/rank01.png" />

これを読むと、Finding Defects (欠陥の発見), つまりバグの発見の数多くある目的のうちの一部であることがわかりますね。

Finding Defects と同じくらい重要視されているのが Code Improvement (コードの改善), 次いで Alternative Solutions(代替案) です。

このように、エンジニアにとってコードレビューは単なるバグの発見ではなく、コード自体の改善をすることも目的であることがわかります。

こうすることで、長期的に保守運用ができる仕組みを構築していくのですね。

コードレビューには時間がかかる

また、先ほどのMicrosoftの記事では「コードレビューには時間的なコストがかかる」ということにも言及しています。調査では、1エンジニアあたり、平均2時間〜6時間/週の時間を割いているということがわかっています。

だからこそ、コードレビューの意義をしっかり固めないと無駄に時間を過ごすことに繋がりかねないという警告をしています。

この点に関しては、様々な企業が”仕組み化”を行うことで解決を図っています。

ここでは一例をご紹介します。

https://techlife.cookpad.com/entry/2018/06/19/110000
http://tech-blog.rakus.co.jp/entry/20190115/code-review/development
https://techlife.cookpad.com/entry/2015/03/30/174713

この他にも色々な手法があるので、ぜひみなさんでも探してみてください!


以上、記事のご紹介でした。

これを機会に、「なんのためにコードレビューがあるのか」、改めて定義してみるのもいいかもしれませんね!