tetsunosukeのnotebook

tetsunosukeのメモです

コードレビュー会をやってみた

アジャイル開発とか、チームビルディングに興味のある今日この頃。とりあえず社外で勉強会とかやってるのに、社内はいまいちだよな、というわけで、どういう成り行きだか忘れたけど、コードレビュー会をやってみることになった。

お題は、ジョジョということで(違:ちなみに弊社の開発機の名前はdioといいます)素数判定をするプログラム。

書かせてみると、数値の判定にis_intを使っている人とか(is_int("1")===falseですよ)、trueと書くのが正しいのか、TRUEと書くのが正しいのかなどとプチもめ(違)するなど、なかなか楽しいレビューとなりました。(ちなみに、PHPではTRUEが定数として定義されており、true, falseについてはbooleanの説明に(http://jp.php.net/boolean)大文字小文字に依存しないという記述がありますので、TRUEが最良ではないかという結論になりました)

お題があいまいだったこともあり、見た目のキレイさにこだわる開発者や、実行結果の速度にこだわる開発者などがいて、面白かったです。

さて、コードレビューの運営にあたり、工夫したことがあります。ちなみにメンバーは、テストエンジニア、新入社員、アルバイト(学生含む)というメンバーです。

  • 誰が書いたコードなのか、は基本的に明かさないこと
    • 最終的に投票を行って、最も良いコードと投票された人は明かすルールにしました。(その方が質問をできるから)
  • 順番にそのコードに対して、質問もしくはコメントをしていくこと

レビューをしようとすると、どうしても「〜は良くない」などの意見を持ちがちのような気がしますが、目的からして学生アルバイトや新入社員の底上げ、テストエンジニアがコードへなじむこと、ということを掲げたいと思ったので、特に宗教論争を避けたい、という意図がありました。

というわけで、レビューをする際に、このようなことに気をつけると良いのかなと思いました。

ちなみに、事前に質問やコメントの例、というのを明示しました。

  • この$aに-1を入れたらどうなる?(深堀り)
  • この関数の名前はどうしてxxxxにしたの?(素朴な疑問)
  • この関数は最初に入力値をチェックしていていいね。(褒める)

あまり「なぜ?」というのも、相手を責めている論調になるので注意ですが、細かい気づきを得るというのは良いことだと思います。また、この「褒める」を習慣として取り入れることで、普段のコード以外にも「褒める」という行為を増やして行くことができるのではないかと思いました。

次回はお題を曖昧にしないで、やってみようと思います。

ちなみに弊社では入社選考の過程で、これらのお題の中から興味深いものを実技試験として出題します。