コードリーディングはつまらないという話

第100回カーネル読書会にLinusが来た件

2001年の来日時にLinusに会ったとき、カーネル読書会というのをやっているんだという自己紹介をして、いつか参加してねと言ったら、コードを読むなんて退屈なんじゃないのかなどとコメントをもらったのは覚えているので、

すごい重いことを言っている。職業プログラマだとコードを書く量は本当に少ないことが多い。すでに動いてる何万行っていうコードがあって、そこにたった数百行書き足したり書き換えたりするだけなんてのが仕事のメインだったりする。でもその数百行書き換えるためには、何万行を読まなければならない。そうしないと新しいコードが既存のものを壊さないか保障できないからだ。そもそも修正量が数百行だと確定できたのは何万行を読んだ結果である。でもコードを読む作業ってのは、得るものは大きいけどやっぱり退屈なのだ。この退屈という感情は大事なのだ。技術者のセンスとして必要なものの一つに含まれるだろう。何かをおもしろいととことん突き詰める情熱と同じくらい、何かをつまらないと思って突き放すことは大切なのだ。例えば今やっている仕事をつまらないと感じたのならば、それは無視してはいけないのかもしれない。つまらないことを我慢して続けるようになってしまったら、もう技術者として成長はないのかもしれない。上記のページの著者は、ちょっと有名な高齢技術者で、バリバリのバイナリアンなのに、これからはWebだとかいって最近楽天に転職したらしい。しかしはてなは大量に技術者が去っていってたりする。手当たり次第に受託開発しまくるというのも、退屈しのぎという観点では効果がある。受託開発に未来はないと思って自社開発をしても、退屈さから逃げられるとは限らない。Linusは退屈していないようだが、その秘訣を教えて欲しいものである。