Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

顧客データHub開発の裏側(後編)

CTO藤倉です。今年3月、法人向けクラウド名刺管理サービス「Sansan」の新機能「顧客データHub」を発表しました。

これは、Sansanがこれまで蓄積してきた技術とノウハウを応用したテクノロジーで、独自の「名寄せエンジン」を用いて社内のあらゆる顧客データを統合できる機能です。

今回は、顧客データHubの開発を牽引したエンジニアである千田智己に話を聞きました。前中後編の3回に分けて紹介します。

後編では、顧客データHub開発の経緯やプロジェクトにかける思いについて語ってもらいました。

プロジェクトはどうやってスタートしたか?

藤倉:顧客データHubのプロジェクトがスタートした経緯として、「Sansan・Eightという2つのメインプロダクト以外にも、僕らの持つテクノロジーを活用することでユーザーさんに新しい価値を提供したい」という話が経営層のなかで出てきた。

いろいろな案が出てくる過程で「企業が持っている膨大な顧客データを、僕らのテクノロジーで“名寄せ”できたら、大きな価値を提供できるんじゃないか」という軸が定まって、プロジェクトがスタートしたんだよね。

千田:プロジェクトの開始時点では、仕様はほとんど決まっていなかったですよね。正直にいうと、モチベーションは最初すごく低かったです。プロジェクトに参画してから1か月くらいは低空飛行していました。

藤倉:そうだったんだ。どうして?

千田:もともと自分は、「名刺管理」で世界を目指すという姿勢に魅力を感じて、この会社に入ったんです。自分以外にもそういう社員は多いと思います。だから、それ以外のものを扱う機能を開発するのは複雑な気持ちでした。

けれど、徐々にですけど、このプロジェクトによって自分たちが目指してきた方向が変わるわけではないし、「Sansanがこれまで培ってきたテクノロジーと新しい価値を結びつけることで、会社を次のフェーズに進めたい」という(代表取締役の)寺田さんの思いが理解できるようになり、だんだんとやる気が出てきたんです。


顧客データHubのアーキテクチャ

藤倉:アーキテクチャはどうやって考えていったの?

千田:最初の頃は、「多種多様なデータが大量に入ってくるので、そのデータをどこかに書き出して使いやすい状態にする」くらいのざっくりとした仕様しか決まっていませんでした。まずはそれを前提として、並列分散処理の方法や多種多様な形式のデータをどうやって保存するかという部分のアーキテクチャから考えていきました。

藤倉:データストアは何を使ってる?

千田:データの永続先としては、Azure Table Storageを使っています。Amazon DynamoDBのような、KVS(Key-Value Store)形式のデータストアですね。

藤倉:データ構造そのものが多種多様だから、スキーマレスな状態で持った方がいいということだね。

千田:Azure Table Storageはあくまでデータを永続化しておくための保管場所という意味合いが強くて、ここに格納されているデータを直接的に使うことはないですね。

ユーザーが使える状態に加工する際には、Azure Table StorageからElasticsearchに読み込んでいます。汎用性高く文章データを扱うにはElasticsearchはすごく便利ですけど、データを永続させることはElasticsearchだと難しいので、両方で補い合っている形ですね。

藤倉:今回のプロジェクトではAWSやGCPではなくAzureを選定したけど、良かったと思う?

千田
:選んで良かったです。これまでと同じようにAWSを使っていたら、良くも悪くも設計やインフラの使い方がSansanの既存仕様に引っ張られていたと思います。自由な発想が出にくくなったというか。過去のプロジェクトでAzureを使ったことはなかったですけど、未知の領域に踏み込んだことで、自由な発想でアーキテクチャ構築ができました。


f:id:sansantech:20190515103542j:plain


個人の意見が反映されやすい環境

藤倉:一緒に働いているチームメンバーや、プロジェクトの雰囲気はどう?

千田:優秀なメンバーと一緒に働けているな、と感じますね。具体的な個人名は伏せますけど、めちゃくちゃ実装スピードが速い人や、細かい部分に気づいて良い提言をしてくれる人、みんなのことを取りまとめてくれる人、機能のあるべき姿を真剣に考えている人などがいて。1人ひとりの個性がかみ合って、各々が自分で考えて自分で動ける状態になっています。

それから、顧客データHubのプロジェクトは1人ひとりの意志が機能に反映されやすいのも良いところですね。少ないメンバーでやっているので、会社のなかでも特にそれぞれの意見が反映されやすいプロジェクトになっていると思います。

顧客データHubをどう成長させたいか?

藤倉:じゃあ最後に、顧客データHubを今後どう育てていきたいかを語ってほしい。

千田
:多くのユーザーさんにこのサービスを使ってほしい。膨大な量のデータを入れてほしいです。何億、何十億、何百億という数のデータが入ってきても、完璧に捌けるようなシステムを構築したいですね。その目標を実現するために、ユーザーさんがデータを取り込みたくなるような、「もっと使いたい」と思ってもらえるような体験づくりをしていきたいです。

ETLやデータウェアハウスなどのシステムって「カスタマイズが便利にできるものは、使い方を覚えるのがすごく難しい」という永遠の課題があると思っています。でも、顧客データHubはそうではなく、直感的に、自然に使えるけれど便利なものを目指していきたいです。

Sansanが提供している名刺のスキャナーに近い概念かもしれません。Sansanがこだわっているのって、「スキャナーからの名刺取り込みは簡単だけれど、生成されるデータの精度は高い」という体験じゃないですか。それと同じように、顧客データHubも「簡単に使えるのに、超便利」というSansanらしい機能にしていきたいです。


前編中編


interview:中薗昴
photo:ブランドコミュニケーション部 高橋淳

© Sansan, Inc.