「開発を続けられるコード」
西村:須藤さんといえば、株式会社クリアコードの代表取締役であり、書籍『リーダブルコード』(オライリー)の解説も書かれていますよね。また、今回はアジャイルアカデミーで「実践リーダブルコード」の講座を担当されることになりました。そこで、まずは須藤さんとリーダブルコードとの関わりを教えていただけますか?
須藤:私はプログラムを書き始めた当初から、オープンソースの開発に携わっています。オープンソースには長く開発が続くものも多く、私が関わっている中にも10年以上にわたって開発を続けているものがあります。また、リリースして開発がいったん落ち着いても、例えば半年経ってから問題を報告されたので直す、ということがよくあります。そんなときに、いざ直そうとしても、コードを見ても何をやっているのか分からないと辛いですし、直したくても直せないという状況に陥ります。だからそのような状況だけは避けたいと思っていました。
西村:なるほど。それらの経験から、ご自身がコードを書くときに気をつけていたことや意識していたことがありましたら教えてください。
須藤: 学生の頃から「開発を続けられるコード」を書くことが大事だと感じていました。クリアコードに入って、仕事でコードを書くようになってからは、よりいっそう「開発を続けられるコード」を意識するようになりましたね。日々たくさんのコードを書くようになると、少し前に自分の書いたコードのことでも、なかなか思い出せない(笑)。
だからこそ、見たらすぐに思い出す・見返したときにすぐ分かるようなコードにしておくことが大切だと思います。それに加えて、チームで開発しているので、みんなの書くコードもすぐ分かるものになっていないと大変です。そのため、いまではクリアコードの開発者全員が、「開発を続けられるコード」を書くことに、意識的に取り組むようになっていますね。
西村:『リーダブルコード』の中で<きれいなコード><美しいコード><より良いコード><読みやすいコード>といったようないろいろな表現が出ていると思うのですが、須藤さんの中ではどれが一番しっくりきますか?
須藤:これは社名のクリアコードにもつながります。クリアというのは<意図が明確である>とか<はっきりした>とかいう意味です。<書いた人が何をしたかったのかが分かるコード>というのが、私には一番しっくりくる表現ですね。
西村:なるほど。オープンソースだと<書いた人が何をしたかったのかが分かるコード>が当たり前というか、特に旧き良き時代のオープンソースは割とそうでしたね。最近、クリアコードさん以外でも『リーダブルコード』というのが世の中的に注目されてきているように感じますが、なぜでしょう?
須藤:やっぱりアジャイルがあたりまえになってきたからじゃないですかね! アジャイル開発ではフィードバッグを受けながらどんどん良くしていくという進め方をします。直そうと思っても、ぱっと直せないようなコードだと、せっかくフィードバッグをもらっても無駄になってしまいます。もし、これがリーダブルなコードだったら対応しやすいですよね。
結局コードを書かないことには挙動は変りません。せっかく良いアイデアや、「これがいる」「これはいらない」といったようなフィードバッグをもらっても、それを実現できなければ意味がない。アジャイルが広まったことによって「開発を続けられるコード」が重要視されるようになったのではないでしょうか。
西村:確かにそうですよね。ソーシャルゲームのほうとかはもう落ち着いてきた感じはありますが、相変わらずWebサービスなどはバンバン機能追加していきますし、今は作って終わりではなくて継続して開発していくスタイルのものがどんどん増えていますからね。
須藤:オープンソースの開発スタイルと似ていますよね。オープンソースも完成があるわけではなくて、ユーザからのフィードバックを受けてどんどん良くしていきますから。
リーダブルコードを広めたい!
西村:それでは、春からいよいよ開講となる「実践リーダブルコード」について、講座開催の経緯を教えてください。元々は勉強会か何かでされていたものだと聞いたのですが。
須藤:『リーダブルコード』の解説に、リーダブルコードを個人だけで終わらせるだけでなくチームにも広めていきましょうということを書きました。解説を書いたらそれをもっと押し進めたくなりました(笑)。
そこで、まず他社の開発チームに伝えることにしました。ある会社さんに対して、一緒に開発しながらリーダブルコードをチームに広めるという試みをしたんですね。3か月あまりやってみて、その開発チームからは、確かに開発がしやすくなったし、自分たちでも良くなっているのを実感したという感想をいただきました。その後、SEプラスの方から1日でリーダブルコードを題材としたセミナーをしませんかというお話をいただきまして、リーダブルコードを実践するための最初の一歩を踏み出すことを目標に開催したのが、リーダブルコード勉強会です。
リーダブルコード勉強会は学生向けのものだったので、今回アジャイルアカデミーで開催する「実践リーダブルコード」は社会人向けにアレンジを加え、パワーアップした内容にしています。
西村:須藤さんのことは前から存じていたんですが、あまり周りに教えるタイプには見えなかったんですが、講師をされるとは意外ですね(笑)。
須藤:講座では、コードを読むことと、コードを書くことを通じて自分で『リーダブルコード』を身に付けるというやり方を、体験してもらいます。受講したあとも、そのやり方を継続していくことで、リーダブルなコードが書けるようになると考えています。自分がこれまでやってきたことを伝えるので、私が講師をすることに違和感はないですね。
実践リーダブルコードを受講される皆さんにも、いずれは自分がリーダブルなコードを書くことにより、「これがリーダブルなコードなんだよ」と周りの人に勧められるようになっていただきたいと思っています。
西村:昔はオープンソースのコードを見ていたら「こういうのがお手本なんだ」と分かったけれども、今はそんなに見てないですからね。お手本にしているのは自分が使っているライブラリのコードぐらいかも(笑)。皆さんもコードを読む機会があまりないかもしれませんね。
須藤:そうですね。オープンソースの世界では同じ開発チームのコードを普段から読んでいます。皆さんにも同じ開発チームのコードを読む習慣を取り入れて、開発チームにとってのリーダブルなコードを見つけてほしいですね。