サイタでの定期コードレビュー運用

毎年思うのですが、花見のシーズンってすぐに終わっちゃいますね。今年は、オフィスから徒歩圏内の代々木公園で2度ほどお花見ランチができたので、だいぶ春を味わっている感があります。花粉つらいですが。

さて、社内文書を晒すシリーズ第2段。今回は、社内のコードレビュー運営について書いてみたいと思います。

早速ですが、以下が、当社の定期コードレビュー運用に関するドキュメント(無修正)です。



定期コードレビュー

目的

言語化されていない、コーディング/設計ノウハウや文化/価値観の洗い出しと共通認識の形成

哲学

  • レビュー対象はコードであり、プログラマではない
  • コードレビューでは、設計やコードの修正を求めない
  • 自分のことは棚に上げ理想論を振りかざすのが善、現実論は聞き流す程度に
  • 発言が善、沈黙は悪

運用の設計

  • 週1、30min
  • 進行は当番制
  • 進行役が、責任をもって、開催までに、レビュー対象のコミットやコードを選定する
  • 選定の候補は、自薦もしくは他薦で事前に募る。この募集プロセスも進行役の役目
  • 毎回5min、KPT (Keep, Problem, Try)のふりかえりをする
  • 随時レビューは、これまで通りおこなう


このドキュメントを書いたとき、つまりコードレビューを定期的にやろう、と思い至ったときに考えていたことは以下のようなことでした。

  • コードレビューが個人攻撃の場にならないようにしよう
  • かといって、現実を見つめて傷を舐め合うような場にはしたくない
  • むしろ前向きで、かつ、プログラマであることが楽しいと思えるような場にしよう

また、こういうのは、書きっぱなしになって忘れられることもままあるため、プリントアウトしたものをデスクの前の窓に貼っています。既にこの運用になって、進行の当番も何周かまわっていますが、今のところ、当初の目標から外れること無く運用できているように思います。

なお、このドキュメントを書いたり、コードレビューを運用するにあたって、いろんな会社さんのやり方を参考にさせていただいています。

たとえば、「自分のことは棚に上げ、理想論を振りかざす」というフレーズは、以前 Google さん主催の Startup Tech Night に LT 参加した際に、スピーカーの足立さん(カブク)が仰っていたものです。コードレビューを楽しむという点において、このフレーズのキャッチーさは素晴らしいなと感銘を受け、早速当社でも使わせていただきました。

また、各人が自身の仕事を持っているなか、コードレビューのような時間をしっかり確保することは、ついついなおざりになってしまいがちです。そこで、当社では、定期コードレビューの時間を bot から Slack に通知させるようにしました。



このアイデアをいただいたのは、ご近所スタートアップ Bracket さんとのランチのときです。(その節はありがとうございます。また行きましょう :)

さて、書き出すと、もうちょっと補足したいところ(とくに「設計や修正を求めない」の箇所)や、じっさい運用してみて思ったこと、変えていっていることなども書きたいのですが、長くなってしまいそうなのでまたの機会にしたいと思います。

当社としてはわりと普通のことを書いているつもりですが、こうやっていろんな会社さんのやり方を取り入れつつ、「うちはこうやってるよ」を晒していくことで、同業者さんに少しでも参考にしていただけるところがあれば嬉しいです。

最後に、毎回の告知で恐縮ですが、当社では、開発を楽しみつつ、現場をぐいぐい改善していきたいエンジニアを絶賛募集中です。よろしければ、ぜひ募集をご覧になってください。

それでは、また。