進化を先取る現場から

第3回 Preferred Networks 久保田展行―研究とエンジニアリングの両輪で開発を進める現場

この記事を読むのに必要な時間:およそ 3.5 分

先進的なとりくみを続ける現場に訪問し,チームや個人としてどう成長していくべきかを取材するインタビューの第3回です。

今回はPreferred Infrastructureからスピンアウトし,機械学習技術を軸に事業を展開されているPreferred NetworksのCTO 久保田さんにお話を伺いました。研究起点での開発ということで,Webサービス開発とはまた違ったチーム体制,改善の取り組みをされています。

画像

【インタビューされた人】
久保田展行(くぼたのぶゆき)
⁠株⁠Preferred Networks
Twitter:@nobu_k

開発者よりも研究者の多い組織体制

─⁠─Preferred Networks(以下PFN)さんは現在,何名いらっしゃるんでしょうか。

久保田:全部で50名います。そのうち研究者が30名で,エンジニアが10名,そのほかはバックオフィスや経営陣などです。

─⁠─研究者の方の割合がかなり高いですね。

久保田:研究者といっても,純粋な研究者というよりは自分でものを作りたいタイプの人が多いので,研究者とエンジニアの境界がはっきりあるわけではないです。ただ,それでもタイプとしては違っていて,そういった研究者気質の人が30人くらいいるという感じです。研究者だからといって理論を作って終わりではなく,コードも書くし実験もする。お客さんのところに行って一緒に話すこともありますね。

─⁠─なるほど。研究寄りの方が30名いらしゃるということですが,その人たちのチーム構成はどう分かれているんでしょうか。

久保田:割り方にはいくつかあって,お客さんごとの区切りと,得意分野ごとの区切りがあります。たとえば研究者だと,ディープラーニングをコアでやっている人たちのチームや,異常検知のような特定のアルゴリズムに詳しい人たちのチームなど,それぞれ得意分野を持っています。縦軸としてお客さんごとのチームで分かれつつ,専門分野のつながりという横軸でも情報共有ができるような,マトリックス型に近い体制にしています。

CTOとCROの両輪でマネジメントする

─⁠─日常的な仕事としてはお客さん単位でプロジェクトが立ち上がり,それをチームとして実行していくということですね。Webサービスとは違い研究開発は長期的なプロジェクトになるイメージがあるのですが,1プロジェクトにどの程度の期間がかかるものなんでしょうか。

久保田:流れとしては「お客さんがすでに何かしら問題を抱えた状態で来てくださり,それに対して研究を行い解決策を提供する」というものなので,立ち上がりは早いです。研究自体はおよそ3ヵ月くらいのスパンでスピーディに終わるのですが,そのあと研究成果が製品になるまでには品質保証や検証などさまざまな作業が入ってくるため時間がかかります。この開発の部分をどうするのかが現在の課題です。

─⁠─その3ヵ月間で研究者とエンジニアとが協力してプロジェクトを進めていくイメージですか? どのようなチーム構成でプロジェクトを進められるんでしょう か。

久保田:プロジェクトによって違いますが,1チームはだいたい7人から10人くらいですね。タスクによって,研究者だけでやるときもあれば,最初から製品化を見越してエンジニアを交えて開発を進めていくこともあります。

─⁠─研究から,実際に製品として動くところまでを見るのは大変そうですね。

久保田:実は研究から製品化というのは道のりがすごく長いので,1人ではなく2人で分けて見ています。私はCTOChief Technology Officer最高技術責任者)として製品寄りの立場からプロジェクトを見ている一方で,比戸将平さんという方がCROChief Research Officer最高研究責任者)というポジションを別に構えているという体制です。私は研究の動きに応じて人を付けたり,研究開発が終わったものを製品化するための道筋を立てたりといった仕事を,比戸さんは研究の方面で何を優先するか,どうプロジェクトを進めていくかといった仕事を……という感じでマネジメントを分担し,2人で全体をカバーするイメージですね。

画像

─⁠─求められるものが違うわけですね。次に個別のプロジェクトについて聞きたいのですが,あるプロジェクトに対してどういうチームを組むかとか,プロジェクトマネジメントや進行管理などはどうされているんでしょうか。たとえばWebサービスだと最近プロダクトマネージャーという職種が確立されつつあって,スタートアップの開発チーム構成としてプロダクトマネージャーがプロダクト全体に責任を持って,プラスエンジニアとデザイナーでチームを組むというのがよくある構成なんですが,PFNさんでは研究開発におけるプロダクトマネージャーのような立場の人はいらっしゃるんでしょうか。

久保田:はい,副社長の岡野原大輔さんがやっています。お客さんにとって良いアルゴリズムや成果物のインタフェースがどういうものかを考えたり,そもそもどういう解き方をすればよいかという全体のデザインや方向性を決めています。

─⁠─領域を広く理解していないとできないことですね。

研究と開発の良さを相互に取り入れる

─⁠─それにしても,CTOとCROという体制はおもしろいですね。

久保田:PFNは研究の会社であるという認識があって,いろいろと研究ありきでことが進んでいるんです。何をやるにしても研究が起点になるんですが,最終的に製品化までもっていかないとビジネスとしてはスケールしません。CTOの自分は製品化までをどう最短化するかという部分の面倒を見ています。たとえば研究者とエンジニアはけっこうインセンティブが違っていて,研究者は目先の問題をいかに速く解決するかという能力に特化されています。そのためCIContinuous Integration継続的インテグレーション)だったりコードのきれいさだったりも大 事ですが,最優先事項じゃないんですよ。

─⁠─インセンティブの違い,おもしろいですね。

久保田:うちはそういう人は少ないですが,人によってはGitも触ったことがないということもあります。こうした研究者とエンジニアとのギャップを埋めて,研究でできあがったものをうまく製品に落とし込めるようになることが最終的なゴールだと思っているんです。ただ一方でエンジニアのやり方を研究者に押し付けても効率が悪いと言われるだけなので,⁠じゃあ,どういうふうにすれば気持ちよく研究してもらいながら,できあがったものをすぐに製品として形にできるか?」というのが僕のテーマですね。

─⁠─その2つの領域をどうつなぐのかは難しそうですね。そういう意味では,エンジニア的な考えやツールで,研究にも取り入れたら良いものや,実際に取り入れて効果があったものって何かありますか?

久保田:まずバージョン管理の徹底は基本ですね。コードは全部GitHubで管理しているので,何かあったときに皆がコードを見られて,周りが支援に入りやすい態勢になっています。研究ってどうしても属人性が高いタスクになるんですが,それでも冗長化をしておかないとお客さんに迷惑がかかってしまう。⁠この人がいなくなったら突然何もことが進まなくなる」というのは商売として駄目だと思っているので,そこはうまくWebから発展した技術を活かしています。Dockerもすごく活躍しています。

─⁠─研究でDockerを使うんですか。おもしろいですね。

久保田:研究の過程で,すばやく作業を進めるために自分用のツールをたくさん作っちゃうんですが,逆にそのツールを使えないと速度が出ない。そして,そのツールをほかの人が使えるようにするのは難しい。そんなときにDockerを使えば,1回どこかで動けばほかの人の環境でも再現できて,実験の再現性を持たせられるんですよ。環境の再構築を支援する,みたいな。

─⁠─たしかにまったく同じ環境を立ち上げられるっていうことですよね。逆に研究者の仕事の進め方でエンジニアも取り入れるとよいようなことはあるでしょうか。

久保田:どれだけコードを書く量を減らすか,持っている道具を組み合わせて最短で課題を解決するという姿勢はとても参考になりますね。たとえば何かを自動化するときに,エンジニア的発想だと新しいツールを作ろうとするところで,研究者は普段使い慣れているものをちょっと変えたり組み合わせるだけで解決してしまう。プログラミングコンテストのようなマインドに近いですね。課題を最短時間で解くことに命をかける。

─⁠─問題解決をいかに短くやるか,速くやるかというところでいろいろ工夫されるんですね。

著者プロフィール

海野弘成(うみのひろしげ)

京都大学工学部にて情報工学を専攻。在学中にはてなやGoogleにてソフトウェアエンジニアとしてインターン,アルバイトを経験。iOSアプリ開発などを担当する。2011年,友人2人と作ったプログラマーのための技術情報共有サービス『Qiita』を公開。大学卒業後の12年2月,Increments株式会社を設立し,代表取締役に就任。主なサービスに,『Qiita』のほか,チーム内情報共有ツール『Qiita:Team』がある。

Qiita:http://qiita.com/yaotti

コメント

コメントの記入