2016年2月17日。
自動家計簿サービス「マネーフォワード」やビジネス向けクラウドサービス「MFクラウドシリーズ」などを提供する株式会社マネーフォワードが、あるプレスリリースを発表しました。それは、フルタイムのRubyコミッター職として、Ruby1.8.5/1.8.6/1.8.7のリリースマネージャ(※)を務めた卜部昌平(うらべ しょうへい)さんを招聘したこと。
<マネーフォワード、フルタイムRubyコミッターを採用~Ruby1.8.6/1.8.7のリリースマネージャである卜部昌平氏が就任~>
https://corp.moneyforward.com/news/release/corp/20160217-mf-shyouhei/
これはつまり、マネーフォワード社が「卜部さんを社員として雇用し、かつフルタイムでRuby言語の開発・改善に注力できる環境を提供した」ことを意味します。まだまだ日本ではオープンソース開発者を支援する企業が少ない中、同社がこうした取り組みを行ったことは画期的でした。
卜部さんがRubyと最初に出会ってからマネーフォワードへ入社するまでに、いったいどのようなドラマがあったのでしょうか。今回は、その軌跡を辿ります。
※リリースマネージャ…プログラミング言語やアプリケーションなどの、特定バージョンのリリース責任者。
Rubyを書き始めたきっかけは、“ブログ”
――卜部さんが、Rubyと最初に出会ったのはいつ頃だったんですか?
卜部:大学時代です。私は読書家なのでよく色々な本を探しては読んでいたんですが、たまたま大学の生協でRubyの教則本『オブジェクト指向スクリプト言語 Ruby』を見つけました。理系の学生でプログラミングを学んでいたこともあり、その本を購入してみたんです。
まつもと ゆきひろ (著), 石塚 圭樹 (著)
『オブジェクト指向スクリプト言語 Ruby』アスキー
▲卜部さんが出会った書籍がこちら。俗に「マヨネーズ色の本」と呼ばれている。
――その本と出会って、すぐRubyにのめり込んだんですか?
卜部:いえ、そのころはまだRubyにそれほど興味を持っていませんでした。
――Rubyに注力するようになったきっかけは?
卜部:それからしばらく経って、2003年ごろにブログブームが起こったんです。それを機に、多くの人がブログを設置し始めました。
当時はまだワードプレスのような便利なものはありません。ブログを設置するには、パソコンを買ってきて自宅でサーバを立て、Web上に配布されているブログツールを用いて自分でコーディングをする必要がありました。
私が利用していたのはRubyで開発されたtDiaryという日記ツールでした。ツールを使いこなすため、Rubyのコードを書き始めたんです。
――その後、どうやってRubyスキルを磨いていきましたか?
卜部:当時のtDiaryやRubyは今と比較するとまだまだ粗削りで、不具合が多かったんです。それが原因で、よく自分のサーバが動かなくなったり動作が重くなったりしていました。
そうした問題に直面したときどうするかというと、自分の日記に「重い」などと書いておくんです。そうすると、誰かが「こう修正すればいいんじゃないか」とコメント欄で回答してくれました。もちろん、ときには自分が回答する側になることもあって。
そうしたやり取りをくり返すうち、Rubyの仕様に詳しくなっていきました。そして段々と、Ruby開発そのものにも携わるようになったんです。
※CGI…コモン・ゲートウェイ・インタフェース。Webサーバ上でユーザプログラムを動作させるための仕組み。
リリースマネージャを務めて得られた、達成感と嬉しさ
▲マネーフォワード社は「金融業界やプログラミング言語など、自分たちがお世話になったものに対して還元したい」という理念を持っているのだという。フルタイムのRubyコミッター職を採用したのは、その想いに起因しているそうだ。画像は、株式会社マネーフォワード公式Webサイト(https://corp.moneyforward.com/)より。
――卜部さんがRuby1.8.5/1.8.6/1.8.7のリリースマネージャを担当した際のエピソードもぜひ聞かせてください。そもそも、なぜ卜部さんはリリースマネージャを務めることになったのでしょうか?
卜部:私がリリースマネージャを担当する前、その役割はまつもとゆきひろ(※)さんご本人が担っていたんです。でも、まつもとさんは新機能の開発もしていたので、徐々に「開発」と「マネジメント」の両方をやるのが大変になっていました。
それで、他の誰かがマネジメントを担当することが必要になっていたため「私がやります」と立候補したんです。
※まつもとゆきひろ…言わずと知れた、Rubyの創始者。
――リリースマネージャを務めるにあたり、大変だったことはありますか?
卜部:色々なことがありますが、たとえば「直してよいバグとそうでないバグの見極め」が大変でした。
どういうことかというと、ある機能がバグの微妙な挙動に依存していて「バグを直すと別の問題が発生する」ケースがあるんです。だからこそ、その改修が他の機能に影響を及ぼさないことを綿密に調査しなければいけませんでした。
――非常に神経を使う作業なんですね。
卜部:それから、セキュリティ問題の対応も大変でした。
これは何かというと、セキュリティの専門家などから、ある日突然「Rubyのこのコードはセキュリティ上の問題があるから、直してほしい」という内容のメールが送られてくるんです。
それとセットで「これを読めば意味がわかります。読んでください」と暗号学の論文などが送られてくるんですが、正直とても難解な内容なのでどう直せばいいのか悩みに悩むわけです(笑)。
――おおお、聞いているだけで頭が痛くなってきそうです……。
卜部:かつ、やっとの思いで直しても、簡単には修正内容を外部に公開できません。
なぜなら、公開することで「どの箇所にバグがあったのか」が明らかになってしまうため、修正が不十分だった場合にハッカーからその箇所を集中的に攻撃されてしまうからです。だから、直すなら一度で正確に直さなければいけません。
――リリースマネージャ特有の、さまざまな苦労があったのですね。
卜部:そうですね。加えて、Ruby関連のさまざまなタスクはまつもとさんに属人化していた部分が大きかったので、それを徐々に剥がしていくのは大変な作業でした。
でも、自分が担当したバージョンのRubyをみなさんに使ってもらえるのは純粋に嬉しかったですし、達成感がありましたね。
言語コミッターを採用する企業が、もっと増えると嬉しい
――そしてその後、マネーフォワード社からの招聘を受け、卜部さんは現在フルタイムのRubyコミッター職として働いています。これによって、卜部さんと同社にはどのようなメリットがあったと思いますか?
卜部:言語の開発者は、そもそも「言語を開発してご飯を食べていく」のが非常に難しいんです。だからこそ、Ruby開発をしながらお金をいただけるのはそれだけで大きなメリットですね。
――言語の開発者としては、本当にありがたい環境ですね。
一方、会社側のメリットは「言語の詳細仕様がわかる人間が社内にいること」と「企業が必要とする機能が言語に反映されること」だと思っています。
――前者はイメージしやすいのですが、後者は具体的にどういうことですか?
卜部:たとえば最近、Rubyに雇用保険の被保険者負担額の計算をするためのある機能を実装しました。この機能は、マネーフォワード社内から挙がってきたニーズに対応したものなんです。
Ruby開発者は「そういう計算の需要はない」と思っていたんですが、実際には必要とされていました。これは、金融系のサービスを扱うマネーフォワードにいたからこそ気づけたことだと思っています。
――話を聞いていると、企業が言語のコミッター職を雇用するのは非常に意義のあることのように感じます。
卜部:そうですね。今のところそれを実現している企業は少ないですが、メリットはとても大きいと思うので今後増えていってくれるといいなと思います。
そうすれば、言語の開発に注力できる人が増えて言語自体も発展していくでしょうし、「言語を開発して生計を立てる」というキャリアプランも生まれてくるでしょう。そうなってくれたら、言語の開発者としては本当に嬉しいですね。
取材協力:株式会社マネーフォワード