読者です 読者をやめる 読者になる 読者になる

if コードレビューの障害 == コミュニケーション能力 then ...?

 「コードレビューはどうやるのが良いか」という話を、最近チョイチョイ見聞きします。その中で参加者のコミュニケーション能力がトピックになります。レビューの中で行う指摘が参加者の心を傷つけ、萎縮させてしまい、円滑にレビューが行えなくなるのって問題だよねー、的な話です。

 

コードレビューに参加する態度

 コードレビューでは誰かが書いたコードを別の誰かが確認・指摘するワケなので、肯定的な言葉よりも否定的な言葉を使う場面はやはり多いです。指摘を受けたからといっていちいち凹んで業務に支障が出るようではレビューをやる意義が薄れるように思います。とはいえ「間違いを指摘されたときに凹まない強靭な精神を持とう」とか言うのはアレなので、いちいち凹むような状況をつくらないように最低限の配慮をしていくのがベターでしょう。

 

原因はコードレビューの方法が悪いからでは無い

 参加者がいちいち凹まないようにするため、コードレビューの方法を工夫してルールを敷設する企業があるそうです。例えばこんなの。

 △「ここは××より○○の方が速い」

 ◎「[提案]ここは××より○○の方が速くなりそうなので○○の方が良いかなと思うんですが、どうでしょう?」

  こうしたルール付けはある程度の効果を上げそうですが、あんまり長続きしないような気もします。というのも、言葉には感情がにじみ出るものだろうからです。ルールで表現の幅を狭めたとしても、しばらく運用すれば、レビュー参加者はその狭い表現範囲の中に互いの感情の起伏を読み取るようになっていくと思います。まあだからと言って「ここ、エンバグしてるよバカじゃねーの?」とか書くのは問題外ですけども。

 で、「こういうルールを敷いたら以前より上手く回るようになったよ」という成功談があるからといって、「ああいうルール敷設をやっていないからウチではレビューがうまくいかないんだ」と考えるのはちょと違うだろうと思います。多分そういう環境ではコードレビュー以外の議論の場でも同じような問題が発生してるんじゃないでしょうか。コミュニケーションがうまくいかない現実を、コードレビュー方法の選択という小さい領域の中で解決しようとするのは、問題を過度に矮小化して認識してしまっている証左であって、それってちょっと残念な感じがします。問題はもっとずっと大きい領域にあるんだっていう認識を持つ事が大事でしょうね。

 

よく語られてる問題その2

 それとは全く別の問題で、「レビュアーが居ない問題」もよく語られてる気がします。レビュイーが最もそのプログラムに精通していて、一人たりともレビュアーとしてふさわしい人間が居ない状況って割とあるよねー、という話です。こういう場合にどうするか?

 ... というのはいくら検討しても無駄なので早々に人を増やしてもらいましょう。コードレビュー云々の前にそれはトラックナンバー1、すなわち開発組織の急所です。

 

結局のところ

 コードレビューの障害がコミュニケーション能力にある場合にどうしたら良いかっていう最初の問いですが、その答えとしては「ちゃんと開発チームの空気作りをやってコミュニケーション能力をある程度まで伸ばしましょう」という凡庸な結論に着地するのが良いと思います。総論としてそうしておいて、末論として現場の実情に応じた手を打つべし、打つべし、です。