「スキルアップが図れるのはもちろんですが、私にとっては初対面の方とのコミュニケーションがとりやすくなるという点が大きいですね。OSSコミュニティでアウトプットしておくことで、それが話題の1つになります。込み入った説明が必要なときには、『Google先生に聞いてください』なんてかたちで済ませられたりもします(笑)」――LinuxカーネルおよびRubyのコミッターとして著名な小崎資広氏は、OSSコミュニティでの活動メリットをこのように語る。

小崎氏は、富士通 Linuxソフトウェア開発統括部に所属するエンジニア。LinuxカーネルとRubyの2つのコミュニティで活発に活動しており、その名は世界的に知られている。2009年には日本OSS貢献者賞を受賞。@ITでは連載「Linux Kernel Watch」を執筆し、Linuxカーネルのメーリングリストで熱く議論されているトピックスを紹介している。

ここでは、小崎氏がどのような経緯でコミュニティに参加し、どのような活動を行っているのかを紹介しながら、若手エンジニアの皆さんへの参考情報を提供する。

関連インタビュー


【インタビュー】言語は思考にも影響を及ぼす、だからRuby開発を選んだ--まつもとゆきひろ氏
【インタビュー】Rubyが大きくなれたのは、私に隙があるからかな - まつもと氏(後編)
【インタビュー】PHPでの活動がなければ今日の私はない - グリー CTO 藤本真樹氏
【インタビュー】10歳上は乗り越えなきゃいけない壁 - グリー CTO 藤本氏(後編)

――Linuxカーネルの開発に参加した経緯を教えてください。

小崎資広 - 富士通 Linuxソフトウェア開発統括部 所属。LinuxカーネルとRubyの2つのコミュニティでコミッターを務める。Linuxカーネルでは、主にメモリ管理を担当。組み込みシステムやHPCの開発経験を活かして、ハードウェアの進化に対応するためのコーディングを行っている。2009年には日本OSS貢献者賞を受賞。

小崎 : 私の現在の所属が「富士通 Linuxソフトウェア開発統括部」という部署で、課せられたミッションがLinuxカーネル開発へのコミットなんです。現在の会社に入ってから、Linuxカーネルのコミュニティに参加し、コミッターに認定してもらいました。

――元々、Linuxを扱う仕事をされていたんですか?

小崎 : 前職でテレビ向けの組み込みソフトウェアを開発していて、そこでLinuxを使っていました。

細かい作り込みが必要なソフトウェアを実装していると、OSのコーナーケースのバグに突き当たることがしばしばあります。この際の対応は開発者によってさまざまで、なんとなく回避するコードを書く人もいれば、とことん原因を追求して"元を断つ人"もいると思いますが、私は数ヵ月後に起こりうる"惨事"の影が怖くて、常に後者の対応をとっていたんです。そんな仕事の仕方をしていたため、Linuxカーネルのコードもたびたび参照しており、以前から馴染みはありました。

また、富士通入社直後は、HPC(High Performance Computing)を担当していており、そちらでもLinuxを活用していました。

――前職ではLinuxカーネルの開発に参加されていなかったんですね?

小崎 : 組み込み開発者にとって、Linuxカーネルの開発に参加するのはそう簡単な話ではないんです。というのも、組み込み分野のLinuxはユースケースが特殊であることが多いので、組み込み開発者は見聞を広めないと世間一般のニーズを知ったり、自分の状況をうまく伝えたりできないんです。

例えば、テレビ向けの組み込みソフトウェアを開発している人と、サーバを開発している人とでは、使う機能が違うし、突き当たる問題も違います。そんな状況なので、相手の言っていることを本当の意味で理解するのは難しいんです。そのうえ、OSSコミュニティのコミュニケーション手段は基本的にメーリングリストなので、理解しあうのがさらに難しくなります。

最近ではモバイルでの採用が増えましたが、当時のLinuxの主戦場は完全にPCやサーバだったので、組み込み開発者の私はなかなかLinuxカーネルの開発に踏み込めませんでした。ただし、いろんな経験を積んだ今なら、例えサーバのことをあまり知らなかったとしても、うまくコミュニケーションがとれる気はします。

――OSSコミュニティでコミュニケーションをとるにはテクニックも必要なんですね。

小崎 : そういうことになりますね。相手が何をわかっているのかを理解し、何から話すのかを考える。そういったプロセスを踏んで、相手の"勘所"を掴むことが大事です。

――コミッターにもなると、膨大なメールに目を通さなければなりませんよね。毎日、どのくらいのメールを読んでいるんですか?

小崎 : Linuxカーネルの開発では、1日1000通くらいに及んでいますね。私はRubyのコミュニティにも参加しているのですが、そちらは開発関係だけであれば1日20通程度なので、Linuxカーネルの開発コミュニティはやはり規模が大きいと言えます。

――Linuxカーネルでの小崎さんの主な開発分野は「メモリ管理」とうかがいました。そちらに携わることになったのはどういった経緯からなんでしょうか?

小崎 : 組み込み、HPCと、メモリ使用量にシビアな分野の開発を経験してきたので、その影響からですね。また、メモリに関しては、ご存知のとおり、ハードウェア1台あたりの最大積載量がどんどん伸びていますが、それに合わせてOSのアルゴリズムも変更しなければならないんです。そのため開発者の手が足りていない状況だったので、参加しやすかったというのもありますね。

余談になりますが、CPUに関しては、クロック数が伸びただけではOS側の対応は不要であることが多いんです。テストを行って、自動的に対応できていたというケースも少なくないようです。

――小崎さんはRubyのコミュニティにも参加されていますが、こちらはどういう経緯があったんですか?

小崎 : 先述のとおり、私は、組み込みやLinuxカーネルの開発をずっとやってきていて、ユーザーランドのプログラミング経験はほとんどありませんでした。そちらの経験を積むうえで適したコミュニティを探したときに、候補としてあがってきたのがRubyだったんです。そこそこ規模が大きいうえに、雰囲気も参加しやすそうでした。使った経験のある言語で、馴染み深かったのも大きな要因のひとつでしたね。

――OSSコミュニティに参加して、よかったことがあれば教えてください。

小崎 : いろいろありますが、まずは初対面の方とのコミュニケーションがとりやすくなるという点ですね。OSSコミュニティでアウトプットしておくことで、それが話題の1つになりますし、私が何者なのかを理解してもらえるようになります。相手もOSSコミュニティで活動している開発者だったりすると、さらに話が弾みます。

また、OSSコミュニティで活動するようになってから、いろいろな方の話を聞く機会が増え、人脈が広がりました。もちろん、スキルの高い開発者のコードを大量に見ることになりますし、常に新しい技術に触れていくことになるので、プログラミング能力の向上にも役立ちます。

――OSSコミュニティは直接お金に結びつくわけではないので、素人考えでは、モチベーションの維持が難しいのではないかと思ってしまうのですが、小崎さんはそのあたりをどうお感じですか。

小崎 : 私もそうですが、OSSコミュニティで活躍している開発者の多くは、プログラミングが好きだから参加しているだけだと思います。なので、お金にならないからモチベーションが落ちるという状況は少ないのではないでしょうか。

プログラミングは結構な重労働なので、正直、好きじゃないと続けられないと思うんです。プログラミング作業がはかどらなくなったときに自分の状況を振り返って、「時間があるのにやらない」という状態になっていた場合は問題です。これは、おそらく「プログラミングが嫌」という状況なのでしょう。「しがらみなどが原因で作業時間が確保できない」というのであれば、環境を変えるなど、対策はいくらでもとれると思いますが、単純に嫌いなのであれば解決策はほぼないと言えます。これはOSSに限らず言えることではないでしょうか。

>> 後編に続く