転職・求人DODAエンジニア IT/トップ > 転職情報・成功ガイド > ギークアカデミー > 有用性を証明できるなら、どんな技術でも使っていい 株式会社ユーザベース 竹内秀行 氏

GEEK ACADEMY 先端を走る技を、ギークに学ぶ

掲載日:2014.9.29
このエントリーをはてなブックマークに追加

有用性を証明できるなら、どんな技術でも使っていい

株式会社ユーザベース イノベーション担当 執行役員 チーフテクノロジスト 竹内秀行 氏

東京工業大学大学院数理・計算科学専攻でソフトウェア工学を学ぶと同時に、IT系学生ベンチャーを2社起業。経営者兼開発者として数多くのシステムを生み出す。その後、経営者の稲垣と知り合い、UZABASEの設立に参加。「SPEEDA」 「NewsPicks」の設計・開発を担当した。


後編では、ユーザベースのエンジニア文化を支える竹内秀行氏と、米国シアトルから参加したシニアエンジニアGregory Hazelbeck氏の対談の形で、同社のエンジニア文化を語っていただいた。

PROFILE

Gregory Hazelbeck(Greg) 氏

シニアエンジニア

Gregory Hazelbeck 氏(Greg)

アメリカのUniversity of Kansas卒業後、慶應義塾大学大学院に進学。そこで自然言語処理を研究し、博士号を取得した。ビジネスに関するあらゆるデータの整理を目指しているUZABASEに強い魅力を感じ入社。

ギークたちが活躍するインターネット業界の
エンジニア求人一覧は以下よりご確認いただけます。

エンジニア求人を見る

自然言語処理をサービスに活用

──竹内秀行さんの自己紹介は前編を見ていただくこととして、Gregory Hazelbeckさんの自己紹介をお願いします。
Gregory(以下、Greg) 米国出身で、カンザス大学を卒業して、自然言語処理をやりたかったこと、それに日本語の勉強もしていたことから、慶應義塾大学の大学院に進みました。5年半いて、博士を取得しました。大学院のときにベンチャー企業でアルバイトをしたり、大企業でインターンで働いたこともあります。自分としてはベンチャーぽい所に入りたいと思い、ユーザベースに応募しました。
仕事内容としては、SPEEDAとNewsPicksの両方のバックエンドの開発をしています。自然言語処理の技術も、両方で応用しています。例えばSPEEDAでは、企業の情報に「業界」の分類分けを自動的に紐付ける機能を開発しました。NewsPicksでは、配信された記事のカテゴリの自動分類の機能を作りました。
──Gregさんは米国シアトルからSkypeでこの取材に参加している訳ですが、こうしたSkype会議は日常的にあるのですか?
竹内 Gregは米国シアトルにいますが、東南アジアにもシンガポール、香港、上海と複数の拠点があります。そうしたことからSkype会議はよくあります。それに、全社ミーティングでは、Zoomというサービスを使っています。
実は、私たちの会社は出社義務がなく、在宅のメンバーと会社にいるメンバーがSkypeやSlackで連絡するようなことは日常的に行っています。海外だからといって違和感は特にありません。

メジャーかマイナーか、古いか新しいかではなく「目的に合うか」

──技術の選定についてのお考え方を、実例を挙げてお聞かせください。
竹内 例えば、私たちはWicketというフレームワークを使っています。これは日本では比較的マイナーで、業務システムで使う例はあまり見ません。ただし、私たちが作りたかったSPEEDAでは、ユーザーの入力に対応して動的に画面が変更されるAjax的なインタフェースが多いという事情がありました。画面ごとに共通した機能がある場合、Wicketはコンポーネントの再利用が容易という特徴があり、SPEEDAというサービスには適していると判断して採用しました。
──竹内さんはオープンソースソフトウェア「S2Wicket」(注:WicketとSeasar2を連携する機能群)のコミッタでもあるのですね。
竹内 はい。S2Wicketは僕がメンテナンスを引き継いだ形になっています。
Greg もちろんメジャーな技術も使っています。例えばMySQLですとか。僕の分野でいうと、評価基準が決まっていればなんでも使っていい感じです。
──技術の選び方のポイントはありますか?
竹内 僕の場合は、例えば新技術、新フレームワークなど、いろいろなものに触れて、それが「本質的に解決しようとしている」ものは何かを見極めるようにしています。
Greg いろいろな手法があり、その手法をどう評価すれば自分の目的に適しているか判断してから採用します。特に、この評価の部分を重視しています。
例えば機械学習の分野でもたくさんの手法があって、どれを使うのかを考えないといけない。その前に、必ず解決しないといけないタスクがある。どれぐらいタスクを解決しているのか、評価しないといけない。そこで、テストデータを作って、システムを作る時に評価をします。どれぐらい、問題/タスクを解決できているのかを調べるのです。
竹内 問題があれば、それを解決するために技術が生まれる。そこを先に調べます。私たちの問題を解決するのに使えるのかどうか、そこを見ます。
NewsPicksでも、データベース関連のソフトを5種類使っています。MySQL、Redis、DynamoDB、memcached、Elasticsearchです。それぞれ得意な分野、不得意な分野があります。MySQLはスケールすることが不得意なので、一貫性が重要で不整合が起こってはいけない分野に用途を限定して、例えば課金制御に使います。データが大きくてアクセスも大量である場合はDynamoDBを、データが小さくより高速なDBが欲しい場合はRedisを使う、といった具合です。
──伝統的な開発組織では、技術の選択肢を絞り込む場合が多いですよね。複数の技術を自由に使うことは、よほどエンジニアを信頼していないとできないと思います。技術の学習コスト、保守コストについてはどのように考えているのでしょうか。
竹内 まず、ある技術が解決したい目的は何か、そこに注目します。目的に合う技術を採用することで、その目的の達成は簡単になります。その場合、学習コストも低く抑えられます。汎用的な技術で工数をかけて実現する方が、コストが高くつくのです。
一方、複数の技術を使い分けると複雑性が増すのでは、という疑問についてですが、責任を分担させる、コンポーネントを独立させる、そのようなソフトウェア工学的な考え方で、保守コストも抑えることができます。
──技術や工学への信念があれば、問題ではない、ということですね。
Greg まあそうです。利点を証明できれば、例えば古い技術でも使っていい。新しい手法が出てきたとき、それが自分の問題解決にマッチしているかどうかは調べないといけない。SVM(サポートベクトルマシン、機械学習の手法の一つ)もある時期は流行っていましたが、最近はあまり聞かなくなりました。こうした流行はいつの時代にもあります。
──自然言語処理まわりでの、最近のお仕事はどんなものですか?
Greg SPEEDAでは、企業が属している業界を分類するのですが、最も細かい分類では600種類の業界があります。それぞれの企業がどの業界に紐付くのか、今は企業数が100万にもなっているので、そこを全部人手で分類することが難しくなっています。そこで、企業の記述文などを見て、どの業界に属しているのかを推定するシステムを作りました。
竹内 補足すると、人手で分類したものと、機械学習により分類したものは、分けて表示しています。ただ、人がいままで探せなかった情報を、機械学習の助けを借りて探し出せるようにしたわけです。

プログラミング言語を「作っちゃった」

竹内 古い技術でも良ければ使う、という話をしたばかりですが、私たちの会社は新しいもの好きの人間が多いですよ。採用面接でも、「新しい技術が好きかどうか」は毎回聞いています。
それから、既存の技術に良いものがあればもちろん使いますが、目的にマッチする既存の技術がなければ、当然のように新たに作ります。例えばSPEEDAでは、数式を評価して値を返す簡単な言語を作っています。
──プログラミング言語を作っちゃったのですか?
竹内 はい。式を構文解析して実行するインタプリタを作っちゃいました。ただ数式を評価したいだけでなく、その計算の内訳を表示する必要があり、一度抽象構文木の形でデータを扱う必要があったためです。変数と関数の展開ぐらいまでは出来ます。
Greg 目的、解決したいことが決まっていれば、新しい技術でも何でも使って良い文化だと思います。僕も、会社のイノベーションチームに入っていて、新しい技術を導入することは歓迎されています。
ただ、新しい技術が出てきたので適当に使ってみるとか、そういうことはありません。他のタスクはたくさんあるので(笑)。あくまで目的が決まっていることはやる、ということです。
竹内 イノベーションチームというのは、高い技術で面白いことを作ってもらうことが期待されている(笑)チームですね。僕の場合はデータの可視化に注目していて、Gregは自然言語処理を使ってデータをどう探してもらうかに注目しています。ユーザーにデータをどう見せ、どう探させ、どう気づきを与えるかがテーマです。
──目的が合えば新技術を使える、面白いことにチャレンジできるのは、エンジニアにとって魅力的な環境だと思いました。本日はありがとうございました。

自由なエンジニア文化の力で、世界一の経済メディアを作る:インタビュー前編へ戻る

「ギークアカデミー」バックナンバーはこちら

ココが今回のギークの学びどころ

  • 目的が合えば、あらゆる技術を使う。合理的な理由があれば技術の採用でむしろコストは低くなる。
  • 技術の評価はしっかり行う。他人の書いた情報を鵜呑みにせず、自分たちの目的に対して本当に合理的なのか検証する。
  • 自己管理できるチームを作る。エンジニア各人がそれぞれ計画を立てられる方が、良い成果が得られる。
DODAエージェントサービス 専任のキャリアアドバイザーが、キャリアアドバイスから求人紹介、退職フォローまでを一貫してサポートします。ご利用になりたい方は、こちらからご登録をお願いします。はじめて退職する方のために3分でわかるエージェントサービスのメリットを紹介 エージェントサービスに申し込む(無料) 3分でわかるエージェントサービスのメリット

無料エージェントサービスに申し込む

IT業界に精通した専任のキャリアアドバイザーが、エンジニアの転職活動を無料でバックアップします。

イベント情報

転職のプロに相談できる DODAエンジニア個別相談会

おすすめ診断コンテンツ

ITエンジニア・クリエイター合格診断

あなたの“本当の年収”や今後の“年収推移”も分かる!年収査定サービス[無料]

インタビュー、コラム

アプリケーションエンジニアのための転職力アップ法

アプリケーションエンジニアのための転職力アップ法

エンジニア特有の転職成功ノウハウや市場動向をご紹介

インフラエンジニアのための転職力アップ法

インフラエンジニアのための転職力アップ法

インフラ領域特有の転職成功ノウハウや市場動向をご紹介

業界専任キャリアアドバイザーの連載コラム Webクリエイターのための転職力アップ法

Webクリエイターのための転職力アップ法

クリエイター転職特有のノウハウ・事例などご紹介!

未来を創る 意志あるエンジニアたち

未来を創る 意志あるエンジニアたち

最前線で活躍するエンジニアのこだわりに迫る

GEEK ACADEMY

GEEK ACADEMY

先端を走る技術を、ギークに学ぶ

メールマガジン無料配信

簡単登録で最新の転職情報、
希望の求人が届く