いつかやろうと思っていたのですが、社内インタビューしてみました。CTOの加藤とは、創業期の混乱の中で出会い、僕のアイデアを具現化してくれるという形でgluはできた気がします。
----------------------
杉原:広告APIを使ったシステムの開発者である、アタラ合同会社の取締役CTO 加藤大樹さんにお話を伺います。まず、加藤さんの今までの経歴を簡単にお話しいただけますか。
加藤:自分の会社、テクノプラスが2015年で10年目になりました。テクノプラスの前は、個人事業主でプログラマーを数年やっていたので、開発者、エンジニアとしては15年ぐらいですね。
杉原:テクノプラスの前は何をされていたんですか。
加藤:テクノプラス初期の開発事業と同じようなことです。お客さんも基本的には同じで、PLMや部品管理やサプライチェーンマネジメントとかです。ちょうどITバブルが始まった1999年、2000年ぐらいかな。サプライチェーンマネジメントというのが流行っていて、企業のスループットをどう改善するかということころで、企業にITがどんどん入ってきました。当時は、いわゆるフリーランスで、趣味でパソコンをしていました。
杉原:昔、シェアウェアを売っていましたよね。
加藤:そうですね。音度計のMIDIシーケンサーを見よう見まねで作ってみたら、それがけっこう売れたので、調子に乗って「パソコンって楽しいな」と(笑)
加藤:趣味で、そういうこともやっていて生活の足しにもなりました。あるとき、家族のこともあり、ちゃんと定職に就こうとしまして。僕はパソコンでプログラミングができるので、プログラマーにはなれるだろうと。当時はフリーランスの開発者でも募集をかけているところが多かったので、そういうところに応募していました。それで打診はくるんですが、経歴が全くないので3回ぐらい面接をして全部断られて。「技術はあっても経歴で全部断られるわけ?」と思い、それからは少し工夫して、経歴よりも「できます!シェアウェアを作っていました!」のような感じで仕事をもらっていったのが、この業界に入った経緯です。
最初の仕事は、知り合いがいた会社から渡されました。そのとき、C++はできたのですが、ExcelもWordも使ったことがなくて。しかも、フリーランスということで、自宅でやる仕事だったので、紙の資料を束でもらい「あとは2週間後によろしく」という感じで全く仕事内容が分からない。
杉原:(笑)まだまだ波乱ですね。それで、どうしたんですか。
加藤:どうにもならないので、自分なりに考えました(笑)最初の仕事は、どうしても落とすわけにはいかなかったので、資料の表を見て、自分なりに考えて工夫して「たぶん、こういうことだろう」と仕上げて持って行ったらいきなり「お客さんにプレゼンしてくださいね」と言われて。作っていったものもよく分からないまま、直接エンドユーザーにプレゼンするという、いま思えばムチャクチャなことを言われていたのですが、僕はIT業界が初めてだったので、最初のうちは「そういうものなのかなぁ」と思っていましたね。
杉原:かなりスパルタで鍛えられてきたんですね。
加藤:スパルタといえばそうだったんでしょうけど、僕は会社員だったこともないし、IT業界も初めてだったので「仕事っていうのは、そういうものか」と思いました。よく分からないまま資料を渡されて、できあがったものは自分で説明して。よく分からないまま説明したら「まぁ、こんな感じでいいんじゃない」とか「想定していたものとは違うけどこれのほうがいいね」とか言われて。ハズレだけどアタリあたりみたいな(笑)
杉原:何年かフリーランスをやった後に、テクノプラスを作ったのでしょうか。
加藤:そうですね。1年ぐらい、その会社から仕事をもらっていました。がむしゃらにやっていたので1年経った頃には評価されて、他の会社からお呼びをいただくようになりました。結局、その会社の親会社へ行き4年ぐらい働いていました。
そうこうしているうちにITバブルが下火になってきて、チャレンジングな仕事が減り、つまらなくなっていきました。そこで、ちょっとITから離れました。2年ぐらい。業界の勉強もして、仕事というものがどういうものかもなんとなく分かってきたので、企業経営とかにちょっと首を突っ込んでみようかなと思いまして。
杉原:経営コンサルですか。
加藤:はい。それが、あんまりいい思い出ではなくて。結果としては失敗だったんです。自分なりには頑張っていたけど、事業はうまくいかないし、お金はなくなっていくし。自分の得意分野ではないなぁと。プログラミングが懐かしくなって、東京に戻ってきました。
それで会社を立ち上げたんです。昔の人脈に打診したら、以前のように仕事ができるようになって。最初は、食いぶちをなんとかするためにテクノプラスを立ち上げたんですが、街で偶然、一緒に仕事をしたことがある人に会って「久しぶりに飲みに行こうか」となり、飲んでいるうちに「この業界に戻ってきたなら、ぜひまた一緒に仕事をしてください」と言っていただけたりして。わらしべ長者じゃないですけど、仕事をもらえるようになっていきました。
杉原:製造業向けのシステムをやっていたのですか。
加藤:そうですね。生産管理とか、部品管理とか在庫管理といった仕事の人脈が多かったです。
杉原:加藤さんと僕の出会いは、アタラとしては2年目、テクノプラスとしては5年目ぐらいのときなので、2010年でしょうか。
加藤:そうでうね。
杉原:当時、アタラとしては社運をかけた受託案件がありました。
加藤:gluの前身になる、gluの下地、土台部分の、いまでいうエンジンと呼んでいる広告API接続部分ですね。最初、アタラの開発担当の方からは「受託でできないか」と言われ、僕も新しいことをやりたかったので「そんな仕事があるんだ」ということで引き受けました。
杉原:いまもよく思い出します。渋谷のとあるカフェで一時間ぐらいでしたかね。正直あのときは、プロジェクトの雲行きが怪しくなっていたこともあって、僕は必死に加藤さんにマーケティング広告業界におけるシステム開発の可能性について、まくし立てるように話して、それを「ふんふん」と聞いてくれて。興味があるのかないのか分からなかったけど(笑)最終的に「興味ある」と言ってくれて「検討してみます」ということで別れました。次の日に連絡があって「一緒に協力したい」って言ってくださったんですよ。
加藤:杉原さんがそんなに熱意をもって話してくれた記憶は全くない(笑)
杉原:ひどい!おかしいなぁ(笑)僕は相当、必死でしたよ。
加藤:僕は逆の立場で、杉原さんが何を言っていたかは全然覚えてないんですが「この仕事を取りたいな」って思っていたんですよ。杉原さんの話はそっちのけで、どうやったらこの人から仕事をもらえるかばかり考えていました。
杉原:面白いなぁ(笑)いま明かされる話。結果オーライだけど。そのプロジェクトを皮切りに、一緒に仕事をするようになったんですが、最初はいまの関係ではありませんでしたね。
加藤:最初は請負業者という位置付けでした。
杉原:広告業界とマーケティング業界のシステム開発に参入して、実際にどうでしたか。
加藤:最初は正直言って「ひどいな、なんにもないな」と。
杉原:(笑)業界がね。
加藤:いや、業界もだけど、アタラも(笑)誰も何も教えてくれないんですよ。杉原さんとも話す機会がなかなかないし。僕としては、やるなら出資もしてガッツリやりたい、失敗しても本気でやりたいというのがありました。せっかくネット広告という当時から華やかそうに見えたところにコミットするんだから、出資も含めて二つ返事でしたが、始めてみたら本当に何にもなくて、けっこう大変でした(笑)
僕がシステム開発を始めたときと同じで何もないなぁと。ということは「ここは僕の実力を発揮するところだろう」、「自分の好きなようにやらせてもらえるかな」と思いました。だいぶ自分の思い通りに、ある程度は杉原さんやエンドユーザーの話を聞きながらですが、思いのままに開発を始めたという感じですね。
杉原:最初は受託で始めましたね。当時はATARA Appsというツール群で、Keyword Generator(キーワード調査支援)やCreative Scheduler(クリエイティブスケジューラー)、Competitive Analyzer(競合分析ツール)と、最終的にはいまのgluの前身になるReport Automator(レポートオートメーター)といったところですね。
結局、他のツールはATARA Appsとしてもディスコンということになったんですよね。Report Automatorも一定のところまで作ってリリースしていなかった。レポーティングは広告代理店さんや一部広告主にとって必要なツールであることは確信があるけれど「ちょっと合わないなぁ」ということで、そのときはやめたんですよ。
僕が覚えている限りでは「これはなんとなく市場に合わないな」と思っているときに加藤さんがglu、当時はIMCと呼んでいましたが、そのアルファ版を作ってきたんです。「こんな感じじゃないですかねぇ」って。たぶん、Report Automatorの設計をしているときに疑問を持っていて「こういう目的ならこういう感じじゃないかな」というのを具現化して持ってきたという記憶があります。
加藤:その前に、Creative Schedulerを僕の方でちょっと作っていて、ふと気付いたんです。Creative Schedulerとかってネット広告やリスティング広告の構造という型にはまっている気がして。これをもっと柔軟にすると、レポーティングやデータ分析のところにも柔軟性が出てくるんじゃないかなと。これが最初のアイデアになりました。
僕の中では何も無いところから作っていくのが癖になっていました。でも、何も無いところから説明するのは、実はよくないことも分かっていました。できあがっていない、アイデアや構想、僕が考えた小さなアイデアを先に出しちゃうと、特に杉原さんたちは業界のプロフェッショナルだから、悪い言い方をすれば否定されるんじゃないかなと思ったんです。どんな業界でもプロフェッショナルの人っていうのはそうだから。
それで、いつも作ってから話をするんです。有言実行じゃなくて無言実行。ちょっと古い考え方かもしれないけどコミットなしでやる。これはなかなか難しい。でも、コミットするときにできていればタイミングも合うかなと思い、2週間ぐらいかけて、こっそり作っていました。
杉原:2週間でやったんだ。
加藤:思い立ったらで、たぶん2週間もかけずにやりました。とりあえず、プレゼンできるところまでガーッと作って、その後ゆっくりやればいいかなと思って。
杉原:たぶんそうだと思う。最初にプレゼンしてもらったとき、僕だけでなく他のアタラメンバーもいたけど、さっぱり分からなかった。
加藤:みんなの顔が無反応で「ふーん」みたな。「いや、でもあるからね」みたいな雰囲気を感じちゃって。たぶん、そうなるだろうなとは思っていたんですが。これでアイデアだけを出したら「いや、そうじゃなくて」と絶対に言われるなと思いました。
杉原:そうだったと思うな。
加藤:だから作っていって「これ、一応、動いているんでどうですか」みたいな。そうすると「じゃあ、そのまま進めてもらおうか」みたいな雰囲気になるので。だいぶチャレンジングなアイデアを入れていったので。それまでのネット広告のレポーティングにはない概念をたくさん入れていました。
杉原:それが正しかった。程なく、それを使った大手広告代理店さんの受託システムがとれて、あれをiMCとして提案したんですよね。
加藤:そうですね。僕が作り始めたときに「レポーティングシステムの改変をしたいので、アタラさんできませんか」と言われて。
杉原:それで提案をして。当時は、まだあまりできていないレベルでしたが信用していただいて、作らせてもらいながら本格的に導入や開発を進めていきましたね。
加藤:ファーストユーザーが決まったから、これは作らなきゃなと。
杉原:いまでこそ、DSPやFacebook広告など、いろいろなデータをつないでレポーティングできるツールになっていますが、当時は、リスティング広告から始めて、Yahoo!とGoogleの広告APIをつないでデータをとって、レポーティングすることにフォーカスしていました。我々はもう何年も広告APIをやっていますが、最初はいろいろと課題や工夫が必要だったのではないでしょうか。
加藤:広告APIでぶつかった最初の壁はデータ量です。初期はそれを全く考えていなくて。というか何も情報がなくて。ただ広告APIにつないでデータを取ってくればいいのかなという感じで単純に作ったんですが、やり始めたらえらい量のデータが落ちてくる。そのわりには広告APIの耐久性もないし。5年前は広告API自身のパフォーマンスもよくなかった。つながるにはつながってデータも取れるけど、本当にできあがるのかな、使う側のことを考えて作っているのかなと思いましたね。
とっつきはいいけどやり始めると「こんなにデータが落ちてくるのか」、「どうやってデータベースにデータをつっこんでいくのか」と。当時のお客さんとも相談しながら、毎月のように大量のデータをどうやって突っ込むかが最初の課題でした。
実は、僕もmySQLは初めてでした。オラクルとかでやっていたけど、mySQLの癖と異常なデータ量と。当時、EC大手の会社かどこかが「mySQLを使って3億レポートを作ってすごい」とありましたが「こっちは5億とか10億とか入るぞ、これ」みたいな。
杉原:超えていたんだ(笑)
加藤:そうですね。「どうしよう、できあがらない」というときに前から考えていたことがあって。O/Rマッパーを使って、オブジェクト指向とリレーショナルデータベースをどうつなげるか。そのときにパフォーマンスをどうするかというのは、僕の中で1つのテーマだったんです。
どうやって、オブジェクト指向で作って柔軟性を確保しつつパフォーマンスを低下させずにデータベースにアクセスするか、データベースにデータを入れるか。これを研究していた時期でもあるので、その研究で培ったことを適応するタイミングかもしれないと思い、前の仕事でモヤモヤしていたものをトライしてみたんです。
杉原:研究としてはいい課題だったんだ。
加藤:データ量としても手頃にあるし。
杉原:データ量以外の課題はありましたか。そもそも、取れないこともあるじゃないですか。うまくレスポンスが返ってこないとか。
加藤:細かい技術レベルというか、癖というか、広告APIの使い勝手の悪さみたいなところもあったんですが、一番の問題点は最終的なイメージがわかないことでした。この広告APIを使ってデータをどう使っていくのか。エンドユーザーのイメージが当時は全くわかなくて。最終的にどう設計したらいいのかも分からないというのが、プログラムを書くよりも全体設計の中で一番頭を使ったところです。それが決まらないと、各広告APIの違いをどういう方向で吸収していったらいいか、方向性が定まらない。
そんななか、聞くとか研究するとかじゃなく、思いつきで「こっちだろう」とセンスで進んでいきました(笑)最終的には「たぶん広告APIを使う人は、こういう風に使うはずだ」という僕の思い込みですね。逆に言うと「こういう風に使ってほしい」みたいな。広告APIのGoogleとかYahoo!の違いは、こう合わせれば最終的にはうまくいくんじゃないかと。
杉原:それプラス、まだ、お客さまも広告マーケティング業界のシステム化が進んでいなかったので、どこまでシステム化できるのか分かっていないお客さまも、けっこういたと思うんですよね。
加藤:当時は、たぶん誰も分かっていなかったんじゃないですかね。
杉原:となると、普通に現場経験のある人だと「データは最小粒度でほしい」とか、リスティング広告でいうと「キーワード別で日付別で」とか「全種類のデータをとにかくぶっこみたい」といったニーズがあったと思うんですが、できるときとできないときってあるじゃないですか。ある程度、お客さまのやりたいことは満たしつつも、ある程度はシステムでバランスを取らなきゃいけない。いまでこそ、知識や経験がついてきたから、だいぶできるようになってきたけど当初は大変だったんじゃないですか。
加藤:なんで乗り切れたのか、よく分からないですね。僕としては、最小粒度は確かにそうだけど、GoogleとかYahoo!でいうと、アカウントキャンペーンや広告グループ、キーワードとかある中で、最小粒度から積み上げてデータができていることは分かったので、積み上げる仕組みや、どのレポートがほしいとかは、自分がレポートを見る側にたって勝手に想像しました。
最小粒度っていうのは、たぶんこういうことで、Yahoo!とGoogleの違いっていうのも、お互いの共通点ではここぐらいだろう。想像しながら、お客さんや杉原さんとかに聞きながら、いったんあててみて、やりながら調整していきました。それを前提として、たぶんこのあたりは少し変わるだろうと柔軟に開発していたのが工夫といえば工夫ですね。
杉原:いま、広告APIや広告に関連したツールなども含めて、何種類ぐらい扱っていますか。
加藤:広告APIとしてつながっているのは15ぐらいだと思います。
杉原:これが使いやすい、これは使いにくいとかって、あったりするんですか。開発者視点で、どんな広告APIだと開発者のことを考えていることになるのでしょうか。
加藤:例えば、Google AdWordsの初期は、上限がいつも決まっていました。こちらが、これだけほしいのに、広告APIとして同時に接続できるのは1つです、15までですとか。そういう制限をかけられるのが一番辛いところ。一定時間にデータを取らないといけないから、同時接続としては50ぐらいほしいんだけど、15に制限されているとか。
当初、AdWordsのレポーティングは最大15っていうのがあって。しかも、ちゃんとプログラムを終了させないと、レポートを作る広告APIのスロットが埋まってしまうという。それを、また回復させなきゃいけないし。15っていうのは本当に狭いんです。そういう制限が最初の苦しいところです。
もし、僕達が広告APIとしてお願いすることができるなら、そういう制限を撤廃してほしいですね。他社広告APIでも50という制限があります。結局、その制限にあたるとエラーや予期しないことが起きるので、こちら側で制御しないといけない。制御も大変です。1つの媒体だけならいいですが、こっちの媒体はこういう制約があって、こっちの媒体はこういう制約あってと、個別の処理をしていかなくてはならないので、そういう制約はない方がいいなぁと。
杉原:アーキテクチャとかは気にならないですか。
加藤:AdWordsがいろいろな意味で先駆者なので、どの広告APIもAdWordsっぽくなるというか。一番大きいのはデータ構造で、アカウントからキャンペーン、広告グループというのが、みなさんだいたい同じ。4構造や3階層になっていて、そこはある意味、楽なところです。gluはその階層を制限なしに持てるけど、逆に媒体からそれをされると、対応はたぶん大変だったんじゃないかと思う。
杉原:僕が広告APIを見ていて思うのは、提供者側からのレファレンスやサンプル、ドキュメントが足りない、情報が足りない。ここは気にならないですか。
加藤:とても気になります。媒体によっては整備されているほうだったり、全然ない媒体も多くて情報に常に飢えています。あるだけマシなのかもしれませんが、ほぼ全ての媒体さんで情報が間違っているんですよ。情報が古い、とか間違っている、その通りやってもうまくつながらない、つながったとしても返ってくるデータが違うとか。
最初の頃は、自分たちも間違っているのかどうなのか分からないんですよ。広告APIに接続できてデータが落ちてきたけど、項目が足らない、入っている値が想定と違う、金額をとってみたら「100万」って入っているけれど「100万円」なのか「100万倍されている」のか単位が別なのか、判断ができないんです。そういう知識がないし、ちゃんと書いてなくて。いろいろやってみるなかで、やっと分かってくるというのが時間的にも一番辛いですね。
杉原:でも、結局そのやり方しかないというか、自分でやってみて解決していますよね。
加藤:最初は僕一人でやっていたから時間がかかって辛かったですが、いまは調べるスタッフもいるので、ドキュメントが正しいかを確認してから始められるようになりました。あ過去のノウハウから「こういうふうに書いてあるということは、こういうことじゃないか」と想像ができるようになりました。いまは人材もいるので、そういうところは楽になってきました。でも、いずれにせよ、間違いであるとかないとかは、あんまり改善してないかもしれません。
杉原:そこは改善してほしいところですよね。たぶん、僕らはいろいろな広告APIを取り扱っている実績からしても多いし、ノウハウにしても日本の中で一番詳しい部類に入ると思うんですよ。
加藤:そうですよね。いろいろ調べましたもん。ドキュメントを見て、あーだこーだ言うのではなく、実際にいろいろなことを試していますから。
杉原:制約や制限についても、だいぶノウハウがたまってきたと思います。
加藤:端っこの方の広告APIとか、他の方がやらないようなところも触っているので。
杉原:今後、加藤さんとしてはgluやそれ以外のところで、どんな展開をしていきたいですか。
加藤:前身のエンジンのときとgluを開発して、足掛け5年ぐらいですが、当初からそれなりのユーザーに広まることを考えて設計しています。こういう媒体もどんどん増えていくだろう、頑張ればユーザーも有名なところが使ってくれるだろうと。拡張性とかは意識して作っていました。
将来構想も5年ぐらい先を考えて作っていたけど、これをうちのスタッフはなかなか理解してくれない。僕が頭のなかで考えていたことが伝わらずに苦労します。構想として5年先を考えてきて、いま5年が経ちました。あのとき考えていた漠然とした構想が半分ぐらいしかできていません。全部やろうとするとあと5年ぐらいかかるのかな。
当時、考えていたのは、例えば、ためたデータをユーザーがどうやって使っていくのか。ダイスという名前を付けていて、ユーザーがサイコロを転がすようにデータを転がせるという意味だったんですが、そこまでは至っていません。
もっと柔軟に、いろいろな側面を見せられるデータ構造、いろいろなデータの見せ方、そういうのもできていません。あと5年ぐらいはいまのgluを拡張して、もともと持っている構想をやっていくしかないと思っています。
杉原:加藤さんが持っている開発者像というか、一緒に働く人に必要なスキルってなんですか。
加藤:エンジニアとして、一番やりやすいのはビジョンが共有できているってことです。ただ、困ったことに、僕自身がビジョンをあまり共有しないタイプなんですよ。ビジョンを共有して一緒にできるのはいいことなんですが、人に言うと壊れちゃうイメージがあって。
杉原:(笑)じゃあどうすればいいんですか。
加藤:その裏返しで「なんかこの人よく分からないけど一緒についていったら面白いことが起きるんじゃないかな」という期待感を持ってくれると、やりやすいと思います。
杉原:(笑)そこは信頼して、とりあえずついて行ってみようかなと。
加藤:僕も実績ができてきたから、そういうことを言ってもいいかなと思うわけです。「なんか、すごそうな人だ」と期待感を持ってくれれば。
加藤:あとは、ちゃんと勉強してくれる人。なんとなくプログラムを書いている人はたくさんいるんだけど、コンピュータやコンピュータ言語を、意外と勉強していないんですよね。「10年間実績があります」と言ってもちょっと突っ込むと「いままで、なんとなくやってきたので」とか。コンピュータ言語や開発を愛してくれていないと感じます。趣味でやっている人の方がよく調べていたり、興味を持っていたりするので、最近は仕事でやっている人よりは、趣味でやっている人の方が僕は合うというか。
杉原:それ、僕じゃないですか(笑)
加藤:そうですね(笑)コンピュータ言語の面白さを感じてくれている人ですね。
杉原:なるほどね。ある程度一定のスキルは必要かもしれないけど、好奇心が必要というかな。
加藤:自分が使う鉛筆やノートとかのツールを愛しているっていう感じですかね。アウトプットよりは自分が取り組んでいるツール、エンジニアの場合はコンピュータ言語にちゃんと興味を持っていて、調べたり勉強したりしている。そういう人の方が僕はどちらかというと好みで、結果よりは手段だったりしますね。スキルとしてはそんなところです。結果としてはオタクな人。英語でいうならgeekな人。ある会社の社長に言われたらしいです。アタラってギーキーだよねって。
杉原:(笑)僕には褒め言葉だったりしますけどね。最後に、これからこの業界を検討している開発者の方に一言どうぞ。
加藤:自分が取り組んでいる、使っているツールをもっと大切にしてほしいですね。仕事としてこなすのではなく。僕は、プログラミングがとても楽しいと思っています。材料のないところから製品が作れるなんて、プログラミングしかないじゃないですか。一応、コンピュータ一台あれば、もしかしたら世界に通用するような製品が作れるかもしれない。そういう夢や楽しさを感じてほしいですね。
杉原:この業界はどうですか。
加藤:せっかくエンジニアとして入るんだったら、ネット広告業界は最先端だから面白いんじゃないかな。GoogleやTwitter、Facebookとかデータも増えるし、いろいろな技術が投入されて成長しているところでもあるので。プログラマーとして、開発者として、ITをやるんだったら、ネット広告業界のIT開発はとっても面白いんじゃないかな。たとえば、Googleの人に出会えるとか、彼らよりすごいものを作れるとかもありますから。
杉原:ありがとうございました。
----------------------
杉原:広告APIを使ったシステムの開発者である、アタラ合同会社の取締役CTO 加藤大樹さんにお話を伺います。まず、加藤さんの今までの経歴を簡単にお話しいただけますか。
加藤:自分の会社、テクノプラスが2015年で10年目になりました。テクノプラスの前は、個人事業主でプログラマーを数年やっていたので、開発者、エンジニアとしては15年ぐらいですね。
杉原:テクノプラスの前は何をされていたんですか。
加藤:テクノプラス初期の開発事業と同じようなことです。お客さんも基本的には同じで、PLMや部品管理やサプライチェーンマネジメントとかです。ちょうどITバブルが始まった1999年、2000年ぐらいかな。サプライチェーンマネジメントというのが流行っていて、企業のスループットをどう改善するかということころで、企業にITがどんどん入ってきました。当時は、いわゆるフリーランスで、趣味でパソコンをしていました。
杉原:昔、シェアウェアを売っていましたよね。
加藤:そうですね。音度計のMIDIシーケンサーを見よう見まねで作ってみたら、それがけっこう売れたので、調子に乗って「パソコンって楽しいな」と(笑)
独学でプログラミングを習得
加藤:趣味で、そういうこともやっていて生活の足しにもなりました。あるとき、家族のこともあり、ちゃんと定職に就こうとしまして。僕はパソコンでプログラミングができるので、プログラマーにはなれるだろうと。当時はフリーランスの開発者でも募集をかけているところが多かったので、そういうところに応募していました。それで打診はくるんですが、経歴が全くないので3回ぐらい面接をして全部断られて。「技術はあっても経歴で全部断られるわけ?」と思い、それからは少し工夫して、経歴よりも「できます!シェアウェアを作っていました!」のような感じで仕事をもらっていったのが、この業界に入った経緯です。
最初の仕事は、知り合いがいた会社から渡されました。そのとき、C++はできたのですが、ExcelもWordも使ったことがなくて。しかも、フリーランスということで、自宅でやる仕事だったので、紙の資料を束でもらい「あとは2週間後によろしく」という感じで全く仕事内容が分からない。
杉原:(笑)まだまだ波乱ですね。それで、どうしたんですか。
加藤:どうにもならないので、自分なりに考えました(笑)最初の仕事は、どうしても落とすわけにはいかなかったので、資料の表を見て、自分なりに考えて工夫して「たぶん、こういうことだろう」と仕上げて持って行ったらいきなり「お客さんにプレゼンしてくださいね」と言われて。作っていったものもよく分からないまま、直接エンドユーザーにプレゼンするという、いま思えばムチャクチャなことを言われていたのですが、僕はIT業界が初めてだったので、最初のうちは「そういうものなのかなぁ」と思っていましたね。
杉原:かなりスパルタで鍛えられてきたんですね。
加藤:スパルタといえばそうだったんでしょうけど、僕は会社員だったこともないし、IT業界も初めてだったので「仕事っていうのは、そういうものか」と思いました。よく分からないまま資料を渡されて、できあがったものは自分で説明して。よく分からないまま説明したら「まぁ、こんな感じでいいんじゃない」とか「想定していたものとは違うけどこれのほうがいいね」とか言われて。ハズレだけどアタリあたりみたいな(笑)
テクノプラス設立の経緯
杉原:何年かフリーランスをやった後に、テクノプラスを作ったのでしょうか。
加藤:そうですね。1年ぐらい、その会社から仕事をもらっていました。がむしゃらにやっていたので1年経った頃には評価されて、他の会社からお呼びをいただくようになりました。結局、その会社の親会社へ行き4年ぐらい働いていました。
そうこうしているうちにITバブルが下火になってきて、チャレンジングな仕事が減り、つまらなくなっていきました。そこで、ちょっとITから離れました。2年ぐらい。業界の勉強もして、仕事というものがどういうものかもなんとなく分かってきたので、企業経営とかにちょっと首を突っ込んでみようかなと思いまして。
杉原:経営コンサルですか。
加藤:はい。それが、あんまりいい思い出ではなくて。結果としては失敗だったんです。自分なりには頑張っていたけど、事業はうまくいかないし、お金はなくなっていくし。自分の得意分野ではないなぁと。プログラミングが懐かしくなって、東京に戻ってきました。
それで会社を立ち上げたんです。昔の人脈に打診したら、以前のように仕事ができるようになって。最初は、食いぶちをなんとかするためにテクノプラスを立ち上げたんですが、街で偶然、一緒に仕事をしたことがある人に会って「久しぶりに飲みに行こうか」となり、飲んでいるうちに「この業界に戻ってきたなら、ぜひまた一緒に仕事をしてください」と言っていただけたりして。わらしべ長者じゃないですけど、仕事をもらえるようになっていきました。
杉原:製造業向けのシステムをやっていたのですか。
加藤:そうですね。生産管理とか、部品管理とか在庫管理といった仕事の人脈が多かったです。
アタラとの出会い
杉原:加藤さんと僕の出会いは、アタラとしては2年目、テクノプラスとしては5年目ぐらいのときなので、2010年でしょうか。
加藤:そうでうね。
杉原:当時、アタラとしては社運をかけた受託案件がありました。
加藤:gluの前身になる、gluの下地、土台部分の、いまでいうエンジンと呼んでいる広告API接続部分ですね。最初、アタラの開発担当の方からは「受託でできないか」と言われ、僕も新しいことをやりたかったので「そんな仕事があるんだ」ということで引き受けました。
杉原:いまもよく思い出します。渋谷のとあるカフェで一時間ぐらいでしたかね。正直あのときは、プロジェクトの雲行きが怪しくなっていたこともあって、僕は必死に加藤さんにマーケティング広告業界におけるシステム開発の可能性について、まくし立てるように話して、それを「ふんふん」と聞いてくれて。興味があるのかないのか分からなかったけど(笑)最終的に「興味ある」と言ってくれて「検討してみます」ということで別れました。次の日に連絡があって「一緒に協力したい」って言ってくださったんですよ。
加藤:杉原さんがそんなに熱意をもって話してくれた記憶は全くない(笑)
杉原:ひどい!おかしいなぁ(笑)僕は相当、必死でしたよ。
加藤:僕は逆の立場で、杉原さんが何を言っていたかは全然覚えてないんですが「この仕事を取りたいな」って思っていたんですよ。杉原さんの話はそっちのけで、どうやったらこの人から仕事をもらえるかばかり考えていました。
杉原:面白いなぁ(笑)いま明かされる話。結果オーライだけど。そのプロジェクトを皮切りに、一緒に仕事をするようになったんですが、最初はいまの関係ではありませんでしたね。
加藤:最初は請負業者という位置付けでした。
何も無いところからスタート
杉原:広告業界とマーケティング業界のシステム開発に参入して、実際にどうでしたか。
加藤:最初は正直言って「ひどいな、なんにもないな」と。
杉原:(笑)業界がね。
加藤:いや、業界もだけど、アタラも(笑)誰も何も教えてくれないんですよ。杉原さんとも話す機会がなかなかないし。僕としては、やるなら出資もしてガッツリやりたい、失敗しても本気でやりたいというのがありました。せっかくネット広告という当時から華やかそうに見えたところにコミットするんだから、出資も含めて二つ返事でしたが、始めてみたら本当に何にもなくて、けっこう大変でした(笑)
僕がシステム開発を始めたときと同じで何もないなぁと。ということは「ここは僕の実力を発揮するところだろう」、「自分の好きなようにやらせてもらえるかな」と思いました。だいぶ自分の思い通りに、ある程度は杉原さんやエンドユーザーの話を聞きながらですが、思いのままに開発を始めたという感じですね。
gluの前身ATARA Apps
杉原:最初は受託で始めましたね。当時はATARA Appsというツール群で、Keyword Generator(キーワード調査支援)やCreative Scheduler(クリエイティブスケジューラー)、Competitive Analyzer(競合分析ツール)と、最終的にはいまのgluの前身になるReport Automator(レポートオートメーター)といったところですね。
結局、他のツールはATARA Appsとしてもディスコンということになったんですよね。Report Automatorも一定のところまで作ってリリースしていなかった。レポーティングは広告代理店さんや一部広告主にとって必要なツールであることは確信があるけれど「ちょっと合わないなぁ」ということで、そのときはやめたんですよ。
僕が覚えている限りでは「これはなんとなく市場に合わないな」と思っているときに加藤さんがglu、当時はIMCと呼んでいましたが、そのアルファ版を作ってきたんです。「こんな感じじゃないですかねぇ」って。たぶん、Report Automatorの設計をしているときに疑問を持っていて「こういう目的ならこういう感じじゃないかな」というのを具現化して持ってきたという記憶があります。
無言実行でアイデアを通す
加藤:その前に、Creative Schedulerを僕の方でちょっと作っていて、ふと気付いたんです。Creative Schedulerとかってネット広告やリスティング広告の構造という型にはまっている気がして。これをもっと柔軟にすると、レポーティングやデータ分析のところにも柔軟性が出てくるんじゃないかなと。これが最初のアイデアになりました。
僕の中では何も無いところから作っていくのが癖になっていました。でも、何も無いところから説明するのは、実はよくないことも分かっていました。できあがっていない、アイデアや構想、僕が考えた小さなアイデアを先に出しちゃうと、特に杉原さんたちは業界のプロフェッショナルだから、悪い言い方をすれば否定されるんじゃないかなと思ったんです。どんな業界でもプロフェッショナルの人っていうのはそうだから。
それで、いつも作ってから話をするんです。有言実行じゃなくて無言実行。ちょっと古い考え方かもしれないけどコミットなしでやる。これはなかなか難しい。でも、コミットするときにできていればタイミングも合うかなと思い、2週間ぐらいかけて、こっそり作っていました。
杉原:2週間でやったんだ。
加藤:思い立ったらで、たぶん2週間もかけずにやりました。とりあえず、プレゼンできるところまでガーッと作って、その後ゆっくりやればいいかなと思って。
杉原:たぶんそうだと思う。最初にプレゼンしてもらったとき、僕だけでなく他のアタラメンバーもいたけど、さっぱり分からなかった。
加藤:みんなの顔が無反応で「ふーん」みたな。「いや、でもあるからね」みたいな雰囲気を感じちゃって。たぶん、そうなるだろうなとは思っていたんですが。これでアイデアだけを出したら「いや、そうじゃなくて」と絶対に言われるなと思いました。
杉原:そうだったと思うな。
加藤:だから作っていって「これ、一応、動いているんでどうですか」みたいな。そうすると「じゃあ、そのまま進めてもらおうか」みたいな雰囲気になるので。だいぶチャレンジングなアイデアを入れていったので。それまでのネット広告のレポーティングにはない概念をたくさん入れていました。
杉原:それが正しかった。程なく、それを使った大手広告代理店さんの受託システムがとれて、あれをiMCとして提案したんですよね。
加藤:そうですね。僕が作り始めたときに「レポーティングシステムの改変をしたいので、アタラさんできませんか」と言われて。
杉原:それで提案をして。当時は、まだあまりできていないレベルでしたが信用していただいて、作らせてもらいながら本格的に導入や開発を進めていきましたね。
加藤:ファーストユーザーが決まったから、これは作らなきゃなと。
広告APIでぶつかる最初の壁
杉原:いまでこそ、DSPやFacebook広告など、いろいろなデータをつないでレポーティングできるツールになっていますが、当時は、リスティング広告から始めて、Yahoo!とGoogleの広告APIをつないでデータをとって、レポーティングすることにフォーカスしていました。我々はもう何年も広告APIをやっていますが、最初はいろいろと課題や工夫が必要だったのではないでしょうか。
加藤:広告APIでぶつかった最初の壁はデータ量です。初期はそれを全く考えていなくて。というか何も情報がなくて。ただ広告APIにつないでデータを取ってくればいいのかなという感じで単純に作ったんですが、やり始めたらえらい量のデータが落ちてくる。そのわりには広告APIの耐久性もないし。5年前は広告API自身のパフォーマンスもよくなかった。つながるにはつながってデータも取れるけど、本当にできあがるのかな、使う側のことを考えて作っているのかなと思いましたね。
とっつきはいいけどやり始めると「こんなにデータが落ちてくるのか」、「どうやってデータベースにデータをつっこんでいくのか」と。当時のお客さんとも相談しながら、毎月のように大量のデータをどうやって突っ込むかが最初の課題でした。
実は、僕もmySQLは初めてでした。オラクルとかでやっていたけど、mySQLの癖と異常なデータ量と。当時、EC大手の会社かどこかが「mySQLを使って3億レポートを作ってすごい」とありましたが「こっちは5億とか10億とか入るぞ、これ」みたいな。
杉原:超えていたんだ(笑)
加藤:そうですね。「どうしよう、できあがらない」というときに前から考えていたことがあって。O/Rマッパーを使って、オブジェクト指向とリレーショナルデータベースをどうつなげるか。そのときにパフォーマンスをどうするかというのは、僕の中で1つのテーマだったんです。
どうやって、オブジェクト指向で作って柔軟性を確保しつつパフォーマンスを低下させずにデータベースにアクセスするか、データベースにデータを入れるか。これを研究していた時期でもあるので、その研究で培ったことを適応するタイミングかもしれないと思い、前の仕事でモヤモヤしていたものをトライしてみたんです。
杉原:研究としてはいい課題だったんだ。
加藤:データ量としても手頃にあるし。
杉原:データ量以外の課題はありましたか。そもそも、取れないこともあるじゃないですか。うまくレスポンスが返ってこないとか。
広告APIをどう使っていくか、最終的なイメージがわかない
加藤:細かい技術レベルというか、癖というか、広告APIの使い勝手の悪さみたいなところもあったんですが、一番の問題点は最終的なイメージがわかないことでした。この広告APIを使ってデータをどう使っていくのか。エンドユーザーのイメージが当時は全くわかなくて。最終的にどう設計したらいいのかも分からないというのが、プログラムを書くよりも全体設計の中で一番頭を使ったところです。それが決まらないと、各広告APIの違いをどういう方向で吸収していったらいいか、方向性が定まらない。
そんななか、聞くとか研究するとかじゃなく、思いつきで「こっちだろう」とセンスで進んでいきました(笑)最終的には「たぶん広告APIを使う人は、こういう風に使うはずだ」という僕の思い込みですね。逆に言うと「こういう風に使ってほしい」みたいな。広告APIのGoogleとかYahoo!の違いは、こう合わせれば最終的にはうまくいくんじゃないかと。
広告マーケティング業界のシステム化は未開な分野
杉原:それプラス、まだ、お客さまも広告マーケティング業界のシステム化が進んでいなかったので、どこまでシステム化できるのか分かっていないお客さまも、けっこういたと思うんですよね。
加藤:当時は、たぶん誰も分かっていなかったんじゃないですかね。
杉原:となると、普通に現場経験のある人だと「データは最小粒度でほしい」とか、リスティング広告でいうと「キーワード別で日付別で」とか「全種類のデータをとにかくぶっこみたい」といったニーズがあったと思うんですが、できるときとできないときってあるじゃないですか。ある程度、お客さまのやりたいことは満たしつつも、ある程度はシステムでバランスを取らなきゃいけない。いまでこそ、知識や経験がついてきたから、だいぶできるようになってきたけど当初は大変だったんじゃないですか。
加藤:なんで乗り切れたのか、よく分からないですね。僕としては、最小粒度は確かにそうだけど、GoogleとかYahoo!でいうと、アカウントキャンペーンや広告グループ、キーワードとかある中で、最小粒度から積み上げてデータができていることは分かったので、積み上げる仕組みや、どのレポートがほしいとかは、自分がレポートを見る側にたって勝手に想像しました。
最小粒度っていうのは、たぶんこういうことで、Yahoo!とGoogleの違いっていうのも、お互いの共通点ではここぐらいだろう。想像しながら、お客さんや杉原さんとかに聞きながら、いったんあててみて、やりながら調整していきました。それを前提として、たぶんこのあたりは少し変わるだろうと柔軟に開発していたのが工夫といえば工夫ですね。
杉原:いま、広告APIや広告に関連したツールなども含めて、何種類ぐらい扱っていますか。
加藤:広告APIとしてつながっているのは15ぐらいだと思います。
広告APIへの想い
杉原:これが使いやすい、これは使いにくいとかって、あったりするんですか。開発者視点で、どんな広告APIだと開発者のことを考えていることになるのでしょうか。
加藤:例えば、Google AdWordsの初期は、上限がいつも決まっていました。こちらが、これだけほしいのに、広告APIとして同時に接続できるのは1つです、15までですとか。そういう制限をかけられるのが一番辛いところ。一定時間にデータを取らないといけないから、同時接続としては50ぐらいほしいんだけど、15に制限されているとか。
当初、AdWordsのレポーティングは最大15っていうのがあって。しかも、ちゃんとプログラムを終了させないと、レポートを作る広告APIのスロットが埋まってしまうという。それを、また回復させなきゃいけないし。15っていうのは本当に狭いんです。そういう制限が最初の苦しいところです。
もし、僕達が広告APIとしてお願いすることができるなら、そういう制限を撤廃してほしいですね。他社広告APIでも50という制限があります。結局、その制限にあたるとエラーや予期しないことが起きるので、こちら側で制御しないといけない。制御も大変です。1つの媒体だけならいいですが、こっちの媒体はこういう制約があって、こっちの媒体はこういう制約あってと、個別の処理をしていかなくてはならないので、そういう制約はない方がいいなぁと。
杉原:アーキテクチャとかは気にならないですか。
加藤:AdWordsがいろいろな意味で先駆者なので、どの広告APIもAdWordsっぽくなるというか。一番大きいのはデータ構造で、アカウントからキャンペーン、広告グループというのが、みなさんだいたい同じ。4構造や3階層になっていて、そこはある意味、楽なところです。gluはその階層を制限なしに持てるけど、逆に媒体からそれをされると、対応はたぶん大変だったんじゃないかと思う。
広告APIの情報が足りない
杉原:僕が広告APIを見ていて思うのは、提供者側からのレファレンスやサンプル、ドキュメントが足りない、情報が足りない。ここは気にならないですか。
加藤:とても気になります。媒体によっては整備されているほうだったり、全然ない媒体も多くて情報に常に飢えています。あるだけマシなのかもしれませんが、ほぼ全ての媒体さんで情報が間違っているんですよ。情報が古い、とか間違っている、その通りやってもうまくつながらない、つながったとしても返ってくるデータが違うとか。
最初の頃は、自分たちも間違っているのかどうなのか分からないんですよ。広告APIに接続できてデータが落ちてきたけど、項目が足らない、入っている値が想定と違う、金額をとってみたら「100万」って入っているけれど「100万円」なのか「100万倍されている」のか単位が別なのか、判断ができないんです。そういう知識がないし、ちゃんと書いてなくて。いろいろやってみるなかで、やっと分かってくるというのが時間的にも一番辛いですね。
杉原:でも、結局そのやり方しかないというか、自分でやってみて解決していますよね。
加藤:最初は僕一人でやっていたから時間がかかって辛かったですが、いまは調べるスタッフもいるので、ドキュメントが正しいかを確認してから始められるようになりました。あ過去のノウハウから「こういうふうに書いてあるということは、こういうことじゃないか」と想像ができるようになりました。いまは人材もいるので、そういうところは楽になってきました。でも、いずれにせよ、間違いであるとかないとかは、あんまり改善してないかもしれません。
杉原:そこは改善してほしいところですよね。たぶん、僕らはいろいろな広告APIを取り扱っている実績からしても多いし、ノウハウにしても日本の中で一番詳しい部類に入ると思うんですよ。
加藤:そうですよね。いろいろ調べましたもん。ドキュメントを見て、あーだこーだ言うのではなく、実際にいろいろなことを試していますから。
杉原:制約や制限についても、だいぶノウハウがたまってきたと思います。
加藤:端っこの方の広告APIとか、他の方がやらないようなところも触っているので。
加藤さんの展望
杉原:今後、加藤さんとしてはgluやそれ以外のところで、どんな展開をしていきたいですか。
加藤:前身のエンジンのときとgluを開発して、足掛け5年ぐらいですが、当初からそれなりのユーザーに広まることを考えて設計しています。こういう媒体もどんどん増えていくだろう、頑張ればユーザーも有名なところが使ってくれるだろうと。拡張性とかは意識して作っていました。
将来構想も5年ぐらい先を考えて作っていたけど、これをうちのスタッフはなかなか理解してくれない。僕が頭のなかで考えていたことが伝わらずに苦労します。構想として5年先を考えてきて、いま5年が経ちました。あのとき考えていた漠然とした構想が半分ぐらいしかできていません。全部やろうとするとあと5年ぐらいかかるのかな。
当時、考えていたのは、例えば、ためたデータをユーザーがどうやって使っていくのか。ダイスという名前を付けていて、ユーザーがサイコロを転がすようにデータを転がせるという意味だったんですが、そこまでは至っていません。
もっと柔軟に、いろいろな側面を見せられるデータ構造、いろいろなデータの見せ方、そういうのもできていません。あと5年ぐらいはいまのgluを拡張して、もともと持っている構想をやっていくしかないと思っています。
エンジニアに必要なスキル、アタラが求める開発者像
杉原:加藤さんが持っている開発者像というか、一緒に働く人に必要なスキルってなんですか。
加藤:エンジニアとして、一番やりやすいのはビジョンが共有できているってことです。ただ、困ったことに、僕自身がビジョンをあまり共有しないタイプなんですよ。ビジョンを共有して一緒にできるのはいいことなんですが、人に言うと壊れちゃうイメージがあって。
杉原:(笑)じゃあどうすればいいんですか。
加藤:その裏返しで「なんかこの人よく分からないけど一緒についていったら面白いことが起きるんじゃないかな」という期待感を持ってくれると、やりやすいと思います。
杉原:(笑)そこは信頼して、とりあえずついて行ってみようかなと。
加藤:僕も実績ができてきたから、そういうことを言ってもいいかなと思うわけです。「なんか、すごそうな人だ」と期待感を持ってくれれば。
コンピュータ言語に興味があるか
加藤:あとは、ちゃんと勉強してくれる人。なんとなくプログラムを書いている人はたくさんいるんだけど、コンピュータやコンピュータ言語を、意外と勉強していないんですよね。「10年間実績があります」と言ってもちょっと突っ込むと「いままで、なんとなくやってきたので」とか。コンピュータ言語や開発を愛してくれていないと感じます。趣味でやっている人の方がよく調べていたり、興味を持っていたりするので、最近は仕事でやっている人よりは、趣味でやっている人の方が僕は合うというか。
杉原:それ、僕じゃないですか(笑)
加藤:そうですね(笑)コンピュータ言語の面白さを感じてくれている人ですね。
杉原:なるほどね。ある程度一定のスキルは必要かもしれないけど、好奇心が必要というかな。
加藤:自分が使う鉛筆やノートとかのツールを愛しているっていう感じですかね。アウトプットよりは自分が取り組んでいるツール、エンジニアの場合はコンピュータ言語にちゃんと興味を持っていて、調べたり勉強したりしている。そういう人の方が僕はどちらかというと好みで、結果よりは手段だったりしますね。スキルとしてはそんなところです。結果としてはオタクな人。英語でいうならgeekな人。ある会社の社長に言われたらしいです。アタラってギーキーだよねって。
杉原:(笑)僕には褒め言葉だったりしますけどね。最後に、これからこの業界を検討している開発者の方に一言どうぞ。
加藤:自分が取り組んでいる、使っているツールをもっと大切にしてほしいですね。仕事としてこなすのではなく。僕は、プログラミングがとても楽しいと思っています。材料のないところから製品が作れるなんて、プログラミングしかないじゃないですか。一応、コンピュータ一台あれば、もしかしたら世界に通用するような製品が作れるかもしれない。そういう夢や楽しさを感じてほしいですね。
杉原:この業界はどうですか。
加藤:せっかくエンジニアとして入るんだったら、ネット広告業界は最先端だから面白いんじゃないかな。GoogleやTwitter、Facebookとかデータも増えるし、いろいろな技術が投入されて成長しているところでもあるので。プログラマーとして、開発者として、ITをやるんだったら、ネット広告業界のIT開発はとっても面白いんじゃないかな。たとえば、Googleの人に出会えるとか、彼らよりすごいものを作れるとかもありますから。
杉原:ありがとうございました。