株式会社SonicGarden(ソニックガーデン)
お問合せ

ブログ

Pkwtatyyt8

どうすればコードは美しくなる!?コードレビュー交流会に潜入!【前編】 2014年12月08日

【不定期連載:突撃!隣のソニックガーデン】
ママライター岡田による、ソニックガーデンの人や文化を探るためのインタビュー企画。この連載は、その時その時の熱い人、熱い話題、だけではなく、個人的に気になるアノ事ソノ事についてまで、楽しく聞き出してしまおうという企画です。


精鋭揃いの技術者集団として名を馳せるソニックガーデン。 彼らがコードレビュー交流会を開催するという情報をキャッチし、今回もカメラと娘を小脇に抱えて行ってきました。 「コード」を「レビュー」する、という事前情報から妄想するに、「これは、ソニックガーデンの技術を盗む絶好のチャンス!娘(2歳)の英才教育にもなるかもしれない!」と期待大です!

大型モニターを通して、学生さんとコードレビュー

ソニックガーデンからはリモート勤務の社員も含めて7名が参加されていました。交流会という名の通り、今日のコードレビューは社外の方と行うようです。 そのお相手とは…。

大型モニターの向こう側にいらしたのは、北九州市立大学の山崎進先生と、院生3名、学部生4名の皆さんでした。なんとリモートでのコードレビューです。ハイテクな世の中になりました。

和気あいあいとした雰囲気で自己紹介が始まりました。

今回、ソニックガーデンからメインでコードレビューを行うのは、取締役CTO 松村 章弘さんだそうです。

上の写真、挙手している方が松村さんです。

本日の流れは、1時間交替でお互いのプログラムのコードを品評し合うとのことで、前半で院生の方たちが書いたコードをソニックガーデンメンバーがレビューし、後半はソニックガーデンのコードをレビューして貰うそうです。 Skypeやら何やらを駆使して画面を共有し、音声チェックをして、準備万端です。

真剣に、笑顔でレビュー!

そして始まりました。コードレビュー! 正面の大画面にも、エンジニア個人のパソコンの前にも、コードらしきものがびっしりと表示されています。

うーん…全然分からない!

画面に出ているコードも、聞こえてくるレビュー内容もほぼ100%理解できないため、途中からは皆さんの声がBGMになっていました…。学生さんからは「おー!」とか「なるほど~」とか「すごい」という言葉が飛び出ていましたので、きっとソニックガーデンの皆さんはすごいことを言っているのでしょう…。

英才教育のために連れてきた娘も、まったく興味を示さず、オフィスに用意されている玩具の車を乗り回しています。

何が何だか分からないので、コードレビューが終わり次第、皆さんにインタビューさせて貰うことにしました。 今しばらく、コードレビューの様子を写真でご覧下さい。

皆さん真剣な表情ですね。

ソニックガーデンの方は、普通にしているときは皆さん優しそうというか、どちらかと言えば物静かな雰囲気なんです。が、レビューが始まると、スイッチがOFFからONに切り替わったような感じを受けるときがありました。厳しいとか辛辣というわけではないんです。でも、ブレないし揺るがない。場当たり的な仕事の仕方ではなく、常に美しいコードを書き続けているからこそ、答えに迷うことはないんでしょうね。

真剣とは言え、たまには笑いも起こります。

突撃インタビューしてみました

3時間ほどして、本日のコードレビューは終了となりました。

皆さんに少しお時間を頂戴して、お話を聞いてみました。 コードレビュー中の写真と共に、インタビューをお楽しみ下さいませ。

ソニックガーデンメンバーへ質問

Q1.今日の感想を教えて下さい。

A1.初めての試みでドキドキしながら当日を迎えましたが、コードレビューでの交流を通じて色々な部分に驚きと発見を感じてもらえたり、また純粋に楽しんで 頂いているのが伝わってきて、良いイベントを開催することができたなと嬉しいのと、ホッとしているのと半分半分という感じです。

Q2.今後もこういった機会(学生とレビュー)を提供する予定はありますか?

A2.積極的にやっていきたいと思っています!企業間でのコードレビュー交流会というのも、とても面白そうです。

Q3.コードを見るだけで、どんな風に動くプログラムを作ったのか分かるものなんですか?料理の手順だけで、完成品が想像ができる、と言うか…。

A3.さすがにコードを見るだけでは分かりません(笑)今回もあらかじめ動いているアプリケーションを見せて頂いていて、仕様を理解した上でコードレビューに望みました。

Q4.学生さん相手のコードレビューということで、社内で行うコードレビューとやり方や目的が異なりましたか?

A4.特に変えたところはないですが、この先コードを書いていくにあたって知っておくと嬉しいポイントなど、できるだけお伝えできるように配慮しました。

Q5.コードレビューをすることで人間関係に悪影響はありませんか?(笑)

あんまりマサカリを投げまくっている(*1)と、あるかも知れませんねー(笑)みんな職人なので、人格攻撃ではなくあくまでコードの話をしている、ということは分かってくれていると思いますよ!

*1:“マサカリを投げる”–プログラマーに使われるネットスラングの一種。技術的な誤りや問題に対して、辛辣な意見を言ったり、過ちを指摘することを意味する。

北九州市立大学の皆さんに質問

Q1.コードレビューは、定期的にしますか?行う相手は誰ですか?

A1.不定期に適宜行っています。プロジェクトメンバーや、顧客の方と行っています。

Q2.これまでしてきたコードレビューと、ソニックガーデンと行ったコードレビューに違いはありますか?あるとしたら、どんな点ですか?

A2.違いはありました。これまでしてきたコードレビューでは、処理の仕方についてのコードレビューが主でした。ソニックガーデンさんと行なったコードレビューでは処理の仕方以外にも設計の部分までコードレビューが行えたので、コードレビューの質が全然違うんだと感じました。

Q3.ソニックガーデン側からの指摘はどうでしたか?感想を教えてください。

A3.ソースコードの差分を比較して、どこが悪いのか、どうしてそうコーディングするのかといったことを具体的に聞けたので、とても勉強になりました。なかなか自分達では気づけないところや冗長な処理を行っている部分の解決法を学べてよかったです。

Q4.ソニックガーデンとコードレビューを行ったことで、今後書くコードがどのように変わりそうですか?

A4.達人が書くソースコードを見て、もっと洗練させていけるんだとモチベーションがあがりました。メソッドを更に短く、クラスの役割を明確にする、コードの意図がわかりやすいようにする、などのことを考えながらコードを書いていこうと思います。 コードレビューを行なう時の新しい視点にも気付くことができたので、今後のコードレビューの質を高めるヒントを頂けました。

山崎進先生に質問

Q1.今日のコードレビューはいかがでしたか?今までと違いはありましたか?

A1.大きく異なりました。単に口頭で指摘するだけでなく、リアルタイムで具体的なコード改善の例を書きながらのレビューだった点が最も印象的です。具体的なコードを元に議論が進むので、理解しやすく、テンポが速くてもついていけます。レビューコメントに対する質問もしやすかったです。 また、RubyやRuby on Railsに特化しているので、より深い議論ができました。プラットフォームを統一したほうが深い理解につながることを実感できました。 今回は学生向けということもあって、学生の書いたコードの良い点を指摘して頂いたのが、学生だけでなく、私自身の自信に繋がりました。ソニックガーデンさんが実際に書いたコードを見せて頂き、かつそのコードを学生がレビューする機会が持てたのも大きな違いです。 今後、学生の書くコードの質が上がることを期待しています。加えて、私自身も教材などをプログラミングするときに、特にDRY (*2)を意識したいです。レビューを受けてリファクタリング(*3)する過程も記録して、教材として活用したいとも思いました。

*2:“DRY”–Don't Repeat Yourself の略称。プログラミングにおいて、同じ機能のコードが複数箇所に書かれてしまう事を避ける考え方。
*3:“リファクタリング”–外部から見た動作を変えずに、内部のコードを整理する手法。


レビューを受けた先生、学生さんたちからお話を聞くと、今日のコードレビューが有意義だったことがよく分かりました。 ソニックガーデンでは社内文化となりつつあるコードレビューをさらに広めたいという野望が彼らにはあるそうです。我こそはと腕に自信がある方、またはソニックガーデンから学びたいという方、ぜひぜひ挑戦してみてはいかがでしょうか!(私もいつの日か!)

後半に続く

あわせて読みたい


インタビュアー/ライティング:岡田由美子
株式会社ジェントルワークス所属。早稲田大学第一文学部在学中より、物書きを目指してひたすらに原稿用紙に文字を埋める日々を過ごす。卒業後、EC系のベンチャーで新規事業の開発に取り組む。現在は二児の育児の傍ら、インタビュー記事や、商品紹介のキャッチなど、また文字の世界へと戻る。いつか起業すること、ヨガの達人になること、長生きすることが目標。

【お知らせ】ソニックガーデンの本が出ました!

リモートチームでうまくいく~マネジメントの"常識"を変える新しいワークスタイル

企業に所属することで得られる安定と、自分の好きな場所で働く自由を両立できる新しいワークスタイルとして注目を集めている「リモートワーク」。本書はそのリモートワークが抱える問題に対してソニックガーデンが実践してきた取り組みと、そのノウハウから生まれた「リモートチーム」というマネジメントの手法についてまとめています。あらゆる組織、チームのマネジメントと個々人の働き方を考えるヒントとなる一冊です。(著者:倉貫義人 出版:日本実業出版社)

「納品」をなくせばうまくいく~ソフトウェア業界の"常識"を変えるビジネスモデル
「納品」をなくせばうまくいく 表紙

本書は、IT業界の、とりわけソフトウェア開発の業界で〝常識〟とされているビジネスモデルを変えてしまおうという試みです。ソフトウェア業界にはびこる多くの問題を解決するために取り組んだ新しいビジネスモデル「納品のない受託開発」について書いています。「受託開発」なのに「納品」をしない、なぜそんなことをやっているのか、そして、なぜそんなことが実現できるのか、その秘密について解説したのが本書です。(著者:倉貫義人 出版:日本実業出版社)