見出し画像

hidekのエンジニアと長話 第9-2回【全文書き起こし】~ゲスト:Autify CEO 近澤良氏~

stand.fmで配信中の「hidekのエンジニアと長話」9人目のゲストは、Autify CEOの近澤良さんです。

「hidekのエンジニアと長話」は、メルペイVPoEのhidek(木村秀夫)さんをメインパーソナリティにお招きし、ゲストエンジニアとともに作っていくスペシャルトーク番組です。

第9-2回の今回は、AutifyのCEOである近澤良さんをお招きして、Autifyにたどり着いた経緯やBurning needs、E2Eテスト自動化の魅力などについて語りました。

※本記事は、2021年9月17日にstand.fmで配信を開始した番組を書き起こしたものです。

ゲスト
近澤良 氏 @chikathreesix
オーティファイ株式会社 CEO

メインパーソナリティ
hidek(木村秀夫)氏 @hidek
株式会社メルペイ VPoE(Vice President of Engineering)

パーソナリティアシスタント
gami(池上)氏 @jumpei_ikegami
株式会社プレイド エンジニア

Autifyにたどり着いた経緯

hidekさん(以下、敬称略):そういう失敗を経ながら、でも、Autifyっていう、今、なかなか広がっているサービスにたどり着いたのって、どういうあれなんですか?

近澤さん(以下、敬称略):はい。転換点になったのは、サンフランシスコにある「Alchemist Accelerator」っていう、スタートアップのアクセラレーターに、プログラムに受かって入れたのが転換点にはなります。これは、いわゆるスタートアップアクセラレーターって、ご存じない方ももしかしたらいらっしゃるかもしれないんですけれども、アメリカにはすごくたくさんあって。で、すごい初期ステージのスタートアップに小額の資金を投じて、成功のノウハウを教えて、で、次につなげる、橋渡しをする、みたいな、そういうエデュケーションプログラムみたいな側面もあるようなプログラムなんですけれども。

hidek:ふーん。

近澤:Alchemist Acceleratorは、アメリカの中でもトップに入るとランクづけされているもので、トップ5とかに入る。特にAlchemist Acceleratorがおもしろいのが、BtoBのスタートアップのみを支援しているんですね。

hidek:そうなんですね。へー。

近澤:はい。一番有名なのだと「Y Combinator」とかあるんですけれども。これは、いわゆるDropboxとかAirbnbとか、ああいう企業を輩出したところですね。

hidek:はい。

近澤:エンジニア向けとかだとPagerDutyとかもY Combinatorだし。はい。結構、エンジニア向けのサービスも多く輩出していますね。で、そういうのもあるんですけど、Alchemist Acceleratorは、BtoBフォーカスっていうので、特に「営業」「マーケティング」とか、そういうところにすごく特化していて。

hidek:なるほど。

近澤:で、そこに最初に入るんです。そうですね、順を追って説明すると、Alchemist Acceleratorに合格したときは、まだ、翻訳をやってたんですよ。

hidek:そうなんですね。はいはい。

近澤:でも、入る直前になって、「これは、翻訳はうまくいかんぞ」ってわかって「やめよう!」ってなったんですよ。で、「じゃあ何やる?」って感じになって(笑)。

hidek:はいはい(笑)。

近澤:これが、2018年の6月・7月とかなんですけど、これが、僕の今までの起業の人生の中でも、本当にどん底の2ヶ月だったんですけど。

hidek:ふーん。

近澤:もう「次に何をしたらいいかわからない」みたいな(笑)。

hidek:あー。辛いですね。

近澤:で、「何をしよう?」って考えて考えたときに、テスト自動化に行き着いたんですよね。

hidek:その発想ってどうやって生まれたんですか?(笑)

近澤:「どうやって来たんでしょう?」って思うじゃないですか(笑)。

hidek:はい。

近澤:翻訳からつながってないこともなかったんですよ。はい。つながってないこともなかったんですけど、端的に説明すると、市場で選びました。

hidek:なるほど。

近澤:はい。やっぱり、市場がほとんど、成功の半分以上っていうか8割くらいは市場が決めると思っていて、スタートアップの。

hidek:うんうん。

近澤:だから大きい市場を狙わないといけない、っていうのが、すごく感じたんですよね。翻訳やめた理由はそれで。市場の限界が見えちゃって。

hidek:なるほどね。

近澤:数人で楽しく開発して、それなりにハッピーでいることはできると思ったんですけど、じゃあ、スタートアップで本当にすごい成長曲線を上げて成長できるビジネスモデルが作れるか、って言ったらそういう市場じゃないな、っていうのを、頭ではわかっていたんですけど、完全に悟ってしまって。

hidek:なるほど。

近澤:これは無理だな、ってところで、やるフィールドを変えるしかないと思ったんですよ。

hidek:うんうん。

近澤:すごくハードな決断だったんですけど。翻訳のために作った会社なのに違うことやんのか、って。

hidek:そうですよね。

近澤:だから、紀平さんにも「それでいいのか?」みたいなことをすごく言われて。

hidek:言いそう(笑)。

近澤:「翻訳ではじめに作った会社でしょ?」って。「他のことやっていいの?」みたいなことはすごく言われて、僕もすごく悶々としたんですけど。はい。ただ、僕も、Co-Founderとして入ってくれた彼もエンジニアだったし、「エンジニアというバックグラウンドを活かして他にどこで何ができるのか」って考えたときに、やっぱり、「じゃあ、開発者周りの、開発ツール周りの市場って大きいし、ここで何かできるよね」っていうのは、結論として向かっていったんですよ。

hidek:なるほどなるほど。

近澤:で、そういったときに、テスト自動化って、テストって、やっぱり自動化すごく難しいのわかってるし、これって何か全然うまくできていないよね、っていうのはみんな合意していたので、「ここでなんかやろう!」みたいな(笑)。

hidek:なるほど。

近澤:という感じで、市場から決まりましたね。

hidek:なるほどですね。でも、そういった意味で言うと、そうなんですよね、エンジニアリングのエコシステムのところって、あまり、いわゆる言語だとか、国境を超えるじゃないですか。だから、そういった意味では、世界を相手にしやすいですし。そういった意味で言うと、マーケットの広さから言うと、おっしゃるとおりすごく広いですよね。しかも、チャレンジしやすいっていうか。はい。

近澤:そうなんですよね。だから、やっぱり「世界で勝負したい」みたいなのは、起業の前提、僕のキャリアの軸として、「起業して世界で」っていうところがあったので、そこは、もう、やっぱり外せなかったんですよね。っていう中で、エンジニアリングのバックグラウンドを活かして、エンジニアツールであれば、開発ツールであれば、世界で共通の課題があることは、僕も3か国で働いてわかっているので。

hidek:なるほどなるほど。

近澤:だから、「これならいけるぞ」っていうのはあった、っていう感じですね。ただ、Alchemistに入ったときは、Autifyではまだなかったんですよね。

hidek:あ、そうなんですね。なるほど。

近澤:はい。テスト自動化でも、ちょっと毛色が違うことをやっていて。「BDD」ってあるじゃないですか、「Behavior Driven Development」。

hidek:はい。

近澤:あの考え方にすごく共感して。だから、「BDDをもっとうまくできるツールを作れないか」っていうところから始まったんですよね。

hidek:なるほどなるほど。

Founderが売れない製品は売れない

近澤:はい。なんですけど、Alchemistのプログラムは6ヶ月で、そこで「最初にBurning needsを解決しろ」っていうのと「大きい市場を狙え」っていうのはすごく言われて。で、そのときに、結構マインドが変わって。僕は今までエンジニアだったんですけど、「お前が売りに行け」ってすごく言われたんですよね。

hidek:へー。

近澤:「Founderが売れない製品は売れない。だから、開発なんかしてないで売りに行け!」っていう風にすごく言われて(笑)。

hidek:おー(笑)。

近澤:「Founderが売れ」と。

hidek:なるほど。

近澤:で、そこでもう、ワッと切り替わって。全然ダメだったな、と。「俺は今日から営業になる」と思って、マインドを一気に変えて、その日にLinkedInのSales Navigatorのライセンス買って。

hidek:(笑)。

近澤:コールドメッセージを送りまくって(笑)。電話かけて、Zoomミーティングして、みたいなことをめちゃめちゃやりまくって。で、最初の3ヶ月はそういう営業にあてたんですよ、僕は。Co-Founderは開発していましたけど。

hidek:うんうん。

近澤:で、3ヶ月、それで100社くらい話をしても、全く売れなかったんですよね。

hidek:ふーん。

近澤:「製品がなかったから売れなかった」って言えるかもしれないんですけど、「買おう」っていう、次のステップにはやっぱりならなかったので。「100社話して何もないって、これは何か間違ってるだろう」と思って(笑)。

hidek:(笑)。

近澤:ただ、100社の話を聞いたので、みんなが何に困っているかわかっているはずだ、と思って。

hidek:うんうん。

近澤:なので、今までのミーティングノートを全部引っ張り出してきて、「みんなが何に困っているか」っていうのを引っ張り出したんですよ、抜き出して。「この人はメンテナンスが大変」って言っていて、「この人はテストの自動化の実装が追いつかない」みたいなことを言っていて「リソースが足りない」みたいな、そういうことを言っていて、みたいなことを抜き出していくと、さっきのふたつの課題に行き着いたんですよね。結局、みんな「エンジニアのリソースが足りないから自動化が進まない」って言っていて、「やれたとしてもメンテナンスが大変だからメンテナンスができない」っていう、この2点に集約されたんですよ、ほとんど。

hidek:なるほどなるほど。

Burning needsを発見

近澤:ってことは、このふたつ解決できれば、ものすごく大きいビジネスになるんじゃない、みんな言ってるから、と思って、そこから逆に、そこで「Burning needsを見つけた」って思ったんですよ。はじめて。

hidek:なるほど。

近澤:「これだ!」と。なんで、これからひっくり返して、ソリューションを「ノーコードとAIがメンテナンスする」っていう感じでプレゼン資料を完全に作り直して。で、簡単なポチポチのHTMLを作って、動画を撮って、それを一晩で作り上げて、次の日のミーティングに持って行ったら、お客さんの反応が、もうまるっきり変わって。

hidek:へー。

近澤:「買います!」ってなったんですよ。「え、買うの?」って(笑)。

hidek:そのときは、もうプロダクトはあったんですか?

近澤:ないですないです。何もないです。

hidek:わお!(笑)

近澤:(笑)。何もないけど、「3ヶ月後に出ます」って言って。反応が全く違うんですよね。見せた瞬間に、「これはいけるね」「いつできるの?」「いくらなの?」「買うにはどうしたらいいの?」って、そういう質問になるんですよ(笑)。

hidek:へー。

近澤:全然反応が違って。今までって、できたものを持って行っても、「これがあるといいですね」「あれがあるといいですね」「もうちょっとできたら教えてください」みたいな感じで。みんな悪いことは言わないので、そういう感じで、「わかりました。作ります」って作っても結局買ってくれない、みたいなことがずーっと続いていたので。

hidek:あー。

近澤:全然反応が違って。「あれ、これはいけるのでは?」みたいな(笑)。

hidek:それはすごい。まさにプロダクトアウトからマーケットインへ移して行って。で、結果、Burning needsを見つけて。それで、3ヶ月でプロダクトを作るってすごく大変な気がするんですけど(笑)。しかも、Co-Founderの方、ひとりなんですよね?

近澤:そうです(笑)。死にましたね。本当に、みんなで鼻血出しそうになりながらやってましたね。

hidek:(笑)。

近澤:すごく大変でした。それで、もう、契約が取れちゃったんですよ。

hidek:なるほどなるほど。

近澤:プロダクトがない状態で。はい。それが2018年の11月の頭くらいで。で、「もう来年出します!」みたいな感じで。2018年中に契約が3本取れて。

hidek:うわー、すごい!

近澤:「え、プロダクトないのに本当に取れた」みたいな(笑)。

hidek:(笑)。すごいですねー。

近澤:「作らねば!」っていう感じで。はい。

hidek:まさに納期ドリブンというか(笑)。

近澤:納期ドリブンですね!(笑)

hidek:めちゃくちゃ炎上案件なにおいがするんですけど(笑)。

近澤:もう、炎上も炎上ですよ。もう、大変な感じでした。

hidek:でも、スタートアップってそんなもんですよね。

近澤:はい。こうやって始めなきゃいけなかったんだな、っていうのが、振り返るとすごく思って。それで、あのBurning needsのブログを書いたんですよね。

hidek:なるほどなるほど。ちゃんとキャリアが積み重なっていくのがすごくて、そこでちゃんとBurning needsが見つけられるっていうのが、これもまたすごいですね。

近澤:ラッキーでしたね(笑)。2018年のおわりは、「このままやめようかな」と思っていて。最後のチャンスかな、と思ってたんですよね。

hidek:なるほど。今って何社くらいとお付き合いあるんですか?

近澤:社数は公開はしていないんですけれども、今までの累計は400〜500社くらいはお付き合いしてきた、っていう感じです。

hidek:わー。それは国内外?

近澤:国内外ですね。アメリカにもお客さんがついてきています。

hidek:DeNAも使ってますよね、たぶん。

近澤:そうそう。DeNAもQAチームでガッツリご利用いただいて。はい。「もう、標準ツールになってる」みたいに言っていただいて。

hidek:私、実はあれなんですよ、DeNAに一番最後にいたとき、品質管理部の部長も兼任していて(笑)。

近澤:あ、そうですか!

hidek:はい。最後に部長さん入ってくれてバトンタッチしたんですけど、2016年とか2017年、Autifyができる前だと思うんですけど、スウェットとかあの辺のマネジメントをやっていました。

近澤:おー、なるほど。まさしく今、お付き合いさせていただいている方々ですね。

hidek:そうですよね。プラットフォームのところで、どうしても品質の管理は絶対しなきゃいけなくて、僕らも現場デベロッパーに機能を提供する、というところで、やっぱり影響力大きいじゃないですか?

近澤:そうですね。

hidek:僕らのチームがダメだと、障害を起こしてしまうと、彼らのおまんまの食い口がなくなるというか、結構影響力が大きいな、と思って、ありがちだと思うんですけど。なので、品質の維持っていうのは非常に大切である、と。ただ、そこを手でやっていくのはしんどい、というところだったので、そこを自動化するチームというのでスウェット立ち上げたのが僕らのチームでしたね。なので、実は「テストの自動化」っていうところに関して言うと、結構、僕も敏感というか。はい。やってました(笑)。

近澤:なるほど。ちょっとその辺もいろいろお聞きしたいですね(笑)。

E2Eテスト自動化の魅力

hidek:そうですね。でも、テストの自動化って、僕、いろいろ試し甲斐……。いろいろなレイヤーであるじゃないですか。サーバートゥサーバーとかエンドツーエンドテストもあれば、おっしゃったようにクライアントのところのエンドツーエンドテスト、ブラックボックステストみたいなのもあるし、その中でも結構、工夫のし甲斐があるというか。

近澤:うん。

hidek:デバイスも移り変わってくる中で、いろいろなテスト手法が出てきていると思うんですけど。近澤さんが思う「エンドツーエンドテストの自動化のおもしろさ・やりがい・魅力」みたいなのって、端的に言うとどういうところなんですかね?

近澤:やっぱり、エンドツーエンドテストって、一番大事なんだけど一番面倒くさいと思っていて(笑)。

hidek:(笑)。

近澤:結局、個々のユニットとユニットの組み合わせのインテグレーションで、完全に機能が提供できていることを保証することって、やっぱり限界があるので。

hidek:うん。

近澤:UIを触って「ちゃんと動いている」っていうのを見ない限りは、「できている」っていうのは完全に保証した状態だとは言えないと思うんですよね。ただ、やっぱりコストがかかるので、「いかにエンドツーエンドテストをしないで済むか」っていうことを、これまで結構考えてきたので、そういう文脈からテストピラミッドが生まれたと思うんですよ。

hidek:うんうん。

近澤:つまり、「E2Eテストは一番コストがかかるので一番量を少なくして、インテグレーションとユニットのボリュームを上げて、ピラミッドとして構成しましょう」というのがテストピラミッドだと思うんですけど。

hidek:はい。

近澤:じゃあ、もし、その一番大事なものがもっと簡単に大量にできるんだとしたら、「テストピラミッドの概念って本当に正しいのか」っていうところはあるような気はしていて。

hidek:なるほど。

近澤:今までは、コストがかかるしやりたくないからやらないようにしてきたんだけど、それがコストかからずにいくらでもやれるんだったら、もちろんバランスは大事ですよ、E2Eで全部ができるわけではないし、E2Eで全部やる必要もないと思うんですけれども、もしかしたらもっとE2Eのボリュームって増やしてもいいんじゃないか、って。そこは一番重要だけど一番コストがかかる、っていうところなので、ここにチャレンジし甲斐があるな、って思ったんですよね。

hidek:なるほどですね。E2Eテストのメンテナビリティっていうのはすごく課題で。でも、そこをやらないと、特に私は金融事業をやっているんですけど、やっぱり品質っていうのは非常に重要で。

近澤:うん。

hidek:で、そこのリグレッションテストとか死ぬほどやるんですよね。変な話、障害を起こすと、お客様の大切な財産を失ったりだとか。結果、金融庁に怒られる(笑)、っていうことが起こりうるので。ただ、メンテナビリティが結構大変で。だから、その辺が自動化されるってすごく魅力的ですよね。

近澤:そうですねー。はい。

hidek:一方で、課題も多いんじゃないかな、と思っていて。

近澤:はい。

hidek:たとえば、ゲームみたいなものって、たぶん相当難しいんじゃないかな、と思っていて。

近澤:ゲームはすごく難しいですね(笑)。「最後の島」って感じだと思います。

今後の課題とは?

hidek:うーん。なるほどですね。その辺って、今後、可能性というか、「課題はこういうものがあるんだけど、その辺をこういう技術で変えていきたいなー」とか、なんかあったりするんですか?

近澤:そうですね。それなので、まさしくおっしゃっていただいたような、ゲームみたいなものってやっぱり難しいんですよね。ただ、だから、自動化ってできるものとできないものというか、やる必要がないものもあると思うんですよ。自動化をする必要がないものもある。

hidek:はい。

近澤:なので、全部が全部、自動化するべきだとは全然思っていなくて。たとえば、お客さんのテストケースの例とかだと、動画を配信しているサイトで、動画が崩れなく、音声とずれなく表示されていることを確認する、みたいなテストケースがあったんですけど。これって、人がやった方が絶対に正確で早いと思うんですね。

hidek:はい(笑)。

近澤:ただ、そういうテストケースの中には、「ログイン・ログアウトができる」とか「ちゃんと商品が購入できていることを確認する」みたいなのもあって、そういうのは全然簡単に自動化できるんですよね。

hidek:なるほど。

近澤:だから、そういう人がやった方が早い、自動化する方がコストがかかる、みたいなやつは、別に手でやればいいし、人が見た方が正確っていう領域もあるけれども、そうじゃないところって、結構、掘り出すと8割とかもっと大きく出るんですよね。

hidek:うーん。

近澤:下手すると9割とか。なので、基本方針として、まず、我々の第一ステップとしては、「自動化できるものを増やしていこう」というのがフェーズ1なんですね。我々が定義する。フェーズが3まであるんですけど。フェーズ1は「自動化できるものを増やす」。マニュアルテストの中にある自動化率を上げる、っていうのが我々のフェーズで。なので、今までできなかったもの・自動化しにくかったものを自動化してあげましょう、っていうので、たとえば、うちはメールテストの自動化の機能もあったりして。メールテストって、結構、自動化するのすごく難しいと思うんですけど、そういうのを自動化したりとか。あとは、ファイルのアップロードをできるようにしたりとかダウンロードできるようにしたりとか。

hidek:はい。

近澤:モバイルのネイティブのテストの自動化も、ちょうどベータ版が出て、そろそろ正式版が出るんですけれども、これもフェーズ1に入るんですよね。モバイルのテストの自動化ってすごく難しかったけど、それを簡単にできるようにしよう、という。

hidek:うんうん。

近澤:そういう形で、結構、徐々にできるものを増やしていく、っていうのが、まず、目下の目標ですね。

hidek:なるほどですね。結構、課題の一個として、これ別にエンドツーエンドテストだけではなくて、普通にユニットテストもあり得るんでしょうけど、時間が飛ぶテストの難しさ。

近澤:難しいですね(笑)。

hidek:非同期性のあるものだとか。あとは、カレンダーいじらなきゃいけないものだとか。あの辺、めちゃくちゃ難しくて、結構苦戦するんですよね。

近澤:そうですねー。カレンダーもそうなんですけれども、やっぱり、エンドツーエンドテストって、データの用意がすごく課題としては大きくて。で、特に自動テストの場合って、やっぱり「べき等性を担保しなきゃ行けない」っていう、「何回まわしてもちゃんと同じ状態でなければならない」っていうのがあるので。それを作るためのテストデータの用意が難しい、っていうは課題のひとつ。それを端的に表すのが、やっぱり日付っていうデータだったりすると思うんですけれども。そこは難しいですね。僕らとしては、JavaScriptでちょっとモックするようなステップを入れてもらったりとか。そういう形でうまく動くように、っていうのをサポートさせてもらったりはしていますね。

hidek:なるほど。今、ちょうどおっしゃってた「テストデータの用意」っていうのは、結構、現場のエンジニアリングでは課題で。あの辺も、でも、自動化できるような気がするんですけどね(笑)。

近澤:いや、そうなんですよ……。

hidek:データって、結構、そこのプロダクトだとか、データベースのあれにロックインされているので、あんまり汎用化っていうのは難しいのかもしれないですね。

近澤:そうですねー。本当は、すべてのアプリケーションが、たとえば、コンテナ化されているとか、フロントエンドとバックエンドがきれいにわかれているとかだったら、「そのレイヤーの部分で全部をモックする」みたいなことで、「モックの部分のテストデータをこっちで管理しちゃう」みたいなことはできるんじゃないかな、みたいな。理論上の話ですけれども。

hidek:はい。

近澤:とか、「コンテナ化されていれば、そこをデータ込みで立ち上げて」みたいなこととかができたりすると思うので。なんか、そういう未来にそのうちならないかなー、みたいな妄想はしてたりはします。

hidek:なるほどねー。これ、ちょっと話が変わるかもしれないですけど、BtoBのビジネスだと、どうしてもお客様の声が大きいじゃないですか(笑)。

近澤:うん。

hidek:で、特に、「僕らのためにこういう機能を追加してくれ」とか、結構言われることがあると思うんですけど。会社によっては、お客さん向けの機能をそのお客さん向けにはカスタマイズして出すだとか。Salesforceとかああいうところは、まさにそういうところだと思うんですけど。一方で、Googleみたいに「そこは一切しません」というところとあると思うんですけど。Autifyって、どういうポリシーでBtoBのサービスってやってらっしゃるんですか?

近澤:結構、うちの場合は、「個社のカスタマイズはしない」という方針ではあります。

hidek:なるほど。

近澤:というのも、別にしてもいいとは思っているんですけれども、あんまり必要なかった、っていうのが結果で。やってみてわかったんですけれど。結構、Webのアプリケーションでやることって、大体、業種・業態は変わったとしても、結局、「何かクリックして、何か入力して」みたいな、そういうアクションに落とされるので、個社ごとに、そんなにやること変わらなかったんですよね。

hidek:「解決する課題自体の抽象度が高い」っていうところなんですかね。

近澤:そうですね。はい。で、それを、超具体に落とし込むと、「ボタンのクリック」と「入力」と「選択」と、みたいなところに落とされるので。当然、アプリケーションの実装によって、「なんかこれ通りにくい」とか「よく落ちる」みたいなことはあったりするので、そういうのは、割りと大きいお客様の場合は、「ちょっと割りと優先度高めに対応しましょうか」みたいなところはあったりはするんですけれども。基本的には、みなさんのフィードバックを……。「この会社のためにこれを作ります」みたいなのは、基本方針としてはあまりやっていなくて。

hidek:なるほど。

近澤:はい。なので、みなさんがほしいものを優先度つけて作っていく、っていう感じであります。

hidek:なるほどなるほど。

この記事が気に入ったらサポートをしてみませんか?