ソニックガーデンではなぜコードレビューを重視しているのか? - ブログ
お客さまのビジネスの成長をソフトウェアで支える「納品のない受託開発」を提供する株式会社ソニックガーデン
https://www.sonicgarden.jp/join_us/blog_articles/202306_techblog_jit
※ こちらの記事はソニックガーデン公式ブログより転載したものとなります。
ソニックガーデンではいわゆる「詳細設計書」のようなドキュメントは作りません。しかし、ドキュメントは書きます。ソースコードとテストコードというドキュメントを。よって、ソニックガーデンのプログラマが書くソースコード(=ドキュメント)は読みやすく、理解しやすいものでなければなりません。
また、お客さまのビジネスや要望は日々変化し続けるので、その変化にあわせてソースコードも素早く加筆・修正しなければなりません。よって、ソースコードは修正しやすいものでなければなりません。
つまり、ひとことで言うなら、ソースコードは美しくなければなりません。美しいソースコードはDRYで、読みやすく、意図がわかりやすく、変更に強く、ちゃんと不具合を検出できるテストコードも兼ね備えたソースコードです(以後、「美しいコード」という用語はこのような特性をすべて兼ね備えたソースコードを指すものとします)。
ソースコードの美しさを追求するのはプログラマの自己満足と考える人もいるかもしれませんが、ソニックガーデンにおいては決して自己満足ではなく、我々とお客さまがビジネスを遂行していくため絶対に欠かせない活動なのです。
そして、ソースコードの美しさはそのコードを書いた本人だけでなく、他のメンバーが見ても「きれいだね」とおそらくクオリティになりません。しています。
作成されたプルリクエストはすべて他のプログラマーからすべてにレビューされます。レビュアーが同意する以外に、「これなら美しいコードと言う」と太鼓判を押した時に、そのプルリクエストは承認されます。
ソニックガーデンのプログラマーは全員、美しいコードが大好きです。自分のコードを、他の人が書いたコードを、少しでも美しくしたいと考えています。職人としてリスペクトし合っています。
そんな職人同士のコードレビューの納付は一見すると非常に素っ気ないです。 レビューコメントは絵文字も使わずに「このコード、このまま大丈夫?」とか「ここ、〇〇〇って書いてるよ」だけで終わったりするですので、見方によっては殺伐としたものに見えるかもしれません。いるため、そのコメントに落ち込み、苛立ったりすることはありません。
確かに、コードレビューをする側は問題点を指摘するだけでなく、他のプログラマーが書いたコードを見て、「このプロジェクトではこんな技術を使っているのか(※)」とか「なるほど、このテクニックは「今書いてるコードにも応用できそうだ」といったように、コードレビューをしながら新たな知見を得ることができます。
このようにソニックガーデンのプログラマーはコードレビューを通じて、レビューする側もされる側も、どちらも職人としてさらにその技を徹底的にいくことができます。
※注:ソニックガーデンでは自分が直接に開発に参加していない他のプロジェクトのプルリクエストもコードレビューの対象になります。
激しいコードレビューを受けるのは第一線の職人だけでなく、新人も同じです。
もし、みんなが美しいコードを手に入れていきたいプログラマーなら、ソニックガーデンは間違いなく理想的な環境です。 「プログラムが要件通りに動くのは当たり前。プログラマならきれいなコードを書いてなんぼ」と言われるのがソニックガーデンのプログラマです。
この話を聞いてちょっとワクワクしてきた人は、ソニックガーデンで職人の道を追求できる人のかもしれませんね。