コードレビューのためにうちでやっていること

コードレビューに費やす時間を短くする - クックパッド開発者ブログを大分前に読んで、最近うちではこうやってるなぁというのを記しておこうと思ってたらすっかり書くのを忘れていた。

うちの会社ではアトラシアンのJIRA、StashとConfluenceという3点セットを使用しているのだけど、以下の問題が発生していた。

  • プルリクエストのコメントがみんなまちまちで、そのプルリクエストでどういう修正が行われたのか、どういう意図で修正されたのかなどなど情報不足に陥っていた
  • おかげで色々不具合発生
  • さらにそれに対する修正で意図が読めない……
  • ついでに仕様が変更されていても、ドキュメントがそれに追従できない

という悪循環スパイラルに陥っていたのであります。このあたりみんなストレスを感じていて、どうしようかということを話しているところで、導入されたのが以下の方法。

  • JIRAにバグや新機能などのタスクがきられ、担当者が決まったあとはそのJIRAタスクに紐付いたドキュメントをConfluenceに作成
  • その詳細な内容やバグの原因、また新機能なら仕様を記載していく
  • 粛々とコードを書く
  • プルリクエスト時にConfluenceのURLを同時に提示
    • この時のルールとしてプルリクエストには必ずこのURLをつけることを必須とする、ないとレビューを受けられない

ひとまず導入されてしばらく続けていますが、個人的には結構効果あるなという印象。他のメンバーもよいよねという話になっているので、これからもしばらく続けていく予定。

  • 仕様のたたき台が作りやすくなった
    • 今の会社だとそういう文化があまりなく、ドキュメントもまちまちだったのでまず意識的にそういうものを書こうという意味付けになった
    • フォーマットも決めているので、それにのっとって書いていくことで新規参加する人もわかりやすい
  • レビューの速度はあがった
    • 機能の面であまり知らなかったところでも、取っ掛かりができるのでしっかり見られるようにはなったかな
  • Stash上だと流れていってしまう情報をConfluenceにまとめておくことができる
    • これが一番大きいかな。あとあと見返したときにStashだと調べるのが大変なのが、軽減できている

あとは、仕様まとめる時間をつくらないとなぁ。