2022年1月、テクノロジーを駆使した資産運用サービスを展開するインヴァスト証券株式会社の画期的な新サービス、AIによる自動売買サービス『マイメイト(MAiMATE)』がリリースを迎えた(一人でも多くの人に夢のある投資を!AIを搭載したマスコットが自己学習する画期的なトレードサービス『マイメイト』)。個性的なキャラクターの姿をしている「AIエージェント」がトレードを学習し、次第に頼れる取引パートナーとなるユニークなサービスには、2年間のR&Dと紆余曲折を経た開発プロセスがあった。
今回は、一度はとん挫しそうになったプロジェクトの救世主たちが集結。リリースまでのストーリーを語ってもらった。前編・後編の2回にわたってお届けする。
取締役副社長 鶴見 氏
両角 氏
汪 氏
Zack 氏
2年間のR&Dを経て『マイメイト』開発に着手。プロジェクト失敗「あるある」も
―『マイメイト』が誕生した経緯を教えてください。このユニークなサービスは、どうやって生まれたのでしょう。
鶴見: 元々、データサイエンスのチームを置いて、2年ほどかけてR&Dをしていました。いろいろなアプローチも試すなかで、いちばんワークしそうだったのが、今回つくったGoogle社のAIエンジン、A3Cを使った強化学習のモデルでした。しかもこれが、中身がブラックボックスで「人っぽい」。ならば、ユーザーにとって自分のトレードを替わりにしてくれる、でもユーザーも介入できる、育てるペットのようなものをつくろう。さらにそれを交換しあえるプラットフォームにしたらおもしろいのでは、と考えたのが最初です。
これをどう適応させるかと考え、当初は無機質な数字でも試してみました。が、次第にパフォーマンスを追求しきるよりはあえてユーザーに依存し、ユーザーの意図を汲んだトレードをしてくれるものにして、それがたくさん生まれて、ワークするものだけを利用する形にすればいいのではと思うようになり、それをコンセプトに据えました。
最初はMVP(Minimum Viable Product)的に、ユーザーが自分のAIをつくることを楽しめるか、という観点での検証を始めました。それが1年ほど。結果、約1万人のユーザーが使い、「早く取引したい」という声が出ていたので、本格的に開発を進めました。そのときはまだ、ここにいるみなさんは開発メンバーではありません。最初は、フロント側は海外の会社で、バック側は社内の外国人エンジニアのチーム。MVPはスムーズにつくってスタートできたのですが、次の段階の取引化が大変で、少しチーム編成を変えて、そこから1年半ほど取り組んでいました。
―その後、うまくいかなくて仕切り直すことになるのですね。
鶴見:はい。結局、プロジェクトが失敗する「あるある」だったのです。
ダメだった点を挙げると、まず、ビジネス側の要求が整理できていない。正確には整理していたのですが、開発側が別で管理していた。理由はわかります。開発側は日本語ができなくて、ドメイン知識も乏しい。でも、自分たちで解釈しないといけないので、つくり直してしまうのです。悪い意図があるわけではなく、むしろ頑張り過ぎたからそうなった。
そのギャップを埋めるのに会話が必要なのですが、技術は高いがドメイン知識が少なくて、英語の開発側に対して、ビジネス側は、技術はそこまでわからない。例えば「評価損益」など、ごく基本的な用語から説明しなくてはいけません。同等のドメイン知識があって、コミュニケーションも容易なら1秒で済むことが、1分かかる。それが積み重なると、面倒で会話をしなくなるのです。すると、要求に対して、まったく違うものができてくるということが起こるようになりました。
後に専門家の方に相談したら、「ああ、それは『あるある』ですよ」と。もう全体の問題です。そこで、まず外部のプロジェクトマネジメントのエキスパートを入れました。そのうえで、3カ月程かけて問題点を探っていきました。すると当然、ドメイン知識を持つ開発メンバーがいないし、ビジネス側とのコミュニケーションも不足という話になりました。ごまかしながらやってきましたが、これが致命的なギャップを生んでいたのです。ここを改めないなら、今後、開発を進めるのはやめようという話にまでなりました。
で、ビジネス側はまず両角さんに泣きついて来てもらいました。両角さんにしたら、既にいろいろなタスクがあるなかで「何だよ、これも見るのかよ」という感じだったと思います。そのあとに汪さんとZackさん。このあと、頃合いを見計らって開発体制や役割を総入れ替えして、約10カ月でリリースにこぎつけたという経緯です。結局、ドキュメントメントからやり直して、環境も作り直して、デプロイのプロセスなどもすべて見直しました。
Zack:そうでしたね。私が見ていたAIの部分はそこまでの状況ではないですが、汪さんのコアの部分は、結構変わりましたね。
鶴見:コアは汪さんが、本当に設計をすべてベースからやり直して、採用する技術も変えました。それも1、2カ月で。そこからですね。新しい体制での開発は。
両角・汪・Zack。3人の救世主が集結。リリースに向けて再始動
―最初に両角さんがアサインされたのですね。
両角:はい。そのときはまだ前の開発体制で進めていて、テストフェーズまで見込んでいました。しかし、テストをしてみると、要求と動きが食い違うところなどがあり、このままリリースはできないと思いました。
鶴見さんは、恐らくその時点で入れ替えを考えていたと思うのですが、私は、既にリリースが延び延びになっていたので、何とかリリースまで持っていけないかと、バグの修正など品質を上げるための対応をいろいろとやってみました。ただ、やはり直接、会話で伝えられないので、仕様の食い違いも発生し、思ったようにバグをつぶせません。結局、品質の面で不安で体制を総入れ替えする判断になり、5月に一新しました。
鶴見:このメンバーがいなかったら、多分、一度止めていたと思います。このメンバーなら、今、お話したような問題点は絶対に起きませんし、実績もある。3人とも、今までも社内で難しい案件があると駆り出されてきたメンバーです。この3人が快く、まあ快くかどうかはわかりませんが、引き受けてくれたから再スタートを切れました。
―アサインされたときはどのように思いましたか。
汪:私は、『マイメイト』が難航していて人が足りないと聞いて、手伝いのつもりで1月にジョインしました。そのときはまだ、前の開発のリーダーがいて、指示を受けて自分の開発を担当していたのですが、進めるうちにいろいろな問題点に気付きました。鶴見さんやここにいるみなさんに、「このまま開発を進めるのは大きな不安を感じるし、リリースした後、うまくいかなそうだ」と相談し、結局、総入れ替えになりました。
前の体制は、技術者としてはみなさん、本当に優秀なのですが、逆に技術に注力し過ぎて、ドメイン知識が弱かったのかと思います。ただ、スケジュール通りにリリースに持っていきたい気持ちはわかったので、引き継いだ後も何とか実現したいと思っていました。
鶴見:汪さんは、どんな案件でも必ずパチッと決めてくれるんです。汪さんとZackさんは、『マイメイト』の前は『トライオート』のリニューアルをしていて、それも大プロジェクトでした。そちらもパチッと終わらせてくれて。これは気合と根性か、それとも何か職人的な感覚があるのでしょうか。
汪:『マイメイト』については、自分としてはしっかり調査をしたので、正直、そこまで自信はなかったけど、頑張れば何とかなると思っていました。もっと実情に合ったスケジュールであれば、よく設計して、よりいいものができたと思いますが、もう何度も延期されていたので、やはり決めたスケジュールにきちんとリリースに持っていかなければという気持ちでした。
僕は目標に対して、まず何ができるかと考えています。だから「ここがクリアできていないとできない、やらない」ということはないです。今回も、スケジュールから逆算してできることを考えました。
鶴見:素晴らしいことを言っていますね。本当にありがたいです。このような感覚を持てる人は少ないので。
―本当に。みなさんはインヴァスト証券の宝ですね。Zackさんはいかがでしたか。
Zack:僕は多分、このメンバーのなかでは最後に参加しました。ミーティングに入ったのは3月ですね。その前からフィードバックは聞いていたので、やはり難しいのかな、とは思っていました。このままリリースしたらメンテナンスが難しいという話が聞こえて来て、今の体制では、特に運用が厳しそうだと感じていました。
その後、5月に新体制で本格的に開発が始まるときにジョインしました。汪さんは、僕より業務知識が豊富で業界も長いので、コアのところは彼にきちんと任せて、僕は手伝うくらい。基本的にはAIチームと連携してやっていました。これは、僕も専門ではないのですが、将来的にチャンスだし、しっかり勉強しながらサポートしようと決めました。なので、基本は汪さんのサポート役をしつつ、インフラも含めた全体的なAIの安定化とコスト削減のところで特に手を入れていました。
―サポートと言っても、カバー範囲は広そうですね。
Zack:要するに、汪さんがコアのところに注力できるようにして、ほかのところは僕が面倒を見る役回り。もちろん両角さんは全体を見て、そのような形でみんなで協力してやっていきました。スケジュールもタイトだし、いろいろと変わったところもありましたが、汪さんが自信を持って進んでいたので、こちらも全力で協力していました。
―両角さんのお役割は。
両角:体制変更してからは、要求からつくり直して整備していきました。なので、特に4月、5月の作業ボリュームが大きかったです。私たちが要求をきちんとまとめて進めないと、そのあとの開発に影響するので時間をかけました。
そこからリリースまでの間は、並行してEAチーム(インフラを担当するEnterprise Architecture)とインフラ環境を移行するプロジェクトを進めていたので、そちらとの調整もありました。インフラが完成しないと『マイメイト』のリリースにも影響が出てしまいます。移行後の環境構築自体は海外のベンダーに委託していて、現地との時間差もあるなかで、なかなか思ったように進みません。本来は10月中に完成するはずのものが、11月中旬までずれ込んでいたので、このままだとインフラ側の問題でリリース延期になってしまうのではと、そのときは随分と不安に思いました。
ほかは、できあがってきたもののテスト。障害テスト、ユーザー受入れテストなどですね。それとリリースのプランニングなどに対応していました。リハーサルは本番一発ではなく、随時リハーサルをしながらコントロールしていきました。10月中に完成させるスケジュールで開発が進んでいたので、11月からテストを開始。ここは予定通りでしたが、インフラ移行が遅れた影響も少しありました。ただ、結果的にはきちんとリリースできてよかったです。
開発体制総入れ替え、設計やり直し、前例のないシステム構成。数々の山場をクリア
―リリースまでの道のりで、「ここが山場だった」という難所はどこでしたか。
鶴見:自分は1つだけです。5月の開発体制を総入れ替えしたとき。あそこで決断できず、現状改善だけにとどめたら、大きな成果は生まなかったと思います。あのときは、経営陣が大目に見てくれたこともありがたかったです。「このままでは空中分解するので、時間をかけさせてください」とお願いしました。総入れ替えのあとはチームのみんなを信じて、この体制なら絶対にうまくいくと思えるようになりました。
―経営層の理解は重要ですね。リリースは、経営層の決断のおかげでもありますね。
鶴見:それは大いにあります。だって、当初予定からすると1年以上伸びているものを、普通は「どうぞ」とは言えません。
延期は、対外的には本当に大ごとでしたが、そこは「いい形でいいものをつくろう」という共通認識がありました。もし、経営陣の理解がなかったら、無理して進めて空中分解するか、撤退するかのどちらかだったと思います。インヴァストは、このあたりの理解がものすごくあります。
先ほど『マイメイト』はR&Dから始まったとお話しましたが、これも当時、社内にそんな機能はなく、つまり最初の段階は「R&Dでいい」としてくれていたのです。2年間、何もなくても、「いつか何か生まれるだろう」ということで、置いておいてくれた。懐の深い会社だと思います。これはインヴァストの文化です。
素晴らしいですね。ほかのみなさんはどうでしたか。
汪:やはり、設計の見直しの決断が難しかったです。新しい設計にすることは、かなりリスクがありますから。でも、今これを変えないといけない。このまま進めるとさらに難しくなることが明らかでした。なので、ビジネス知識や要件などは鶴見さんと両角さんに、運用についてはZackさんに相談しながら、最終的に決断しました。開発もそうですが、その後の運用に問題が出ると思ったのです。
Zack:僕は、最初の頃にメンバーが安定していなかったこと。でも、そこは鶴見さんが、僕と汪さんの意見を取り入れながらサポートしてくれました。チームメンバーも、みんな一丸となって頑張ってくれました。今は体制も整っています。ただ、今後の機能追加に備えてメンバーが必要なので、それはまさに今、相談しながら進めているところです。
個人的には、AIの部分で、やや不安がありました。運用の部分で見落としがあったのですが、そこは両角さんと協力して安定させられました。
両角:僕の場合は、『マイメイト』に注文を流し込むオーダーシステムに、外部のパッケージ製品を導入したので、その管理ですね。当社のほかのサービスでは、すべて外部委託先が管轄していたのですが、今回、初めて裏側も含めて当社のシステムの範疇になりました。
鶴見:『マイメイト』と関連するシステムは3つあって、顧客管理システム、FX取引プラットフォームの『Meta Trader』、リスク管理システムであるoneZero社の『Institutional Hub』。両角さんは、これをすべて見ないといけません。特に『Meta Trader』と『Institutional Hub』は初めての導入で、かつ外部のもの。想定していないことが起こると、逐一つぶしていく必要があります。これらが一つでも欠けるとサービスとして成立しないので、両角さんは大変だと思います。
『マイメイト』は、海外展開とマルチアセットを想定しているので、今後の展開を考えると、チャレンジングだけれども、海外で広く使われている『Meta Trader』と『Institutional Hub』を採用した経緯があります。
―両角さんは、いろいろなことを並行して進めていたのですね。
鶴見:そうですね。『マイメイト』というサービスを、お客様に安心して届けるためのものすべてが、両角さんの役割なので。例えば、コンプライアンス遵守の設計になっているか、きちんとエラーが上がる体制になっているか、などもそう。実装は開発のメンバーなので、そこと密に連携をとって進めるのですが、これが案外、うまくできる人が少ないのです。両角さんはそこがすごくいい。頼るのも、頼られるのも上手です。
両角:モニタリングに関しては、お二人(汪氏とZack氏)が主体的に動いてくれるので、本当に頼りにしていました。
鶴見:開発と保守で分かれている体制ではなく、DevOps的に運用を意図した開発をしてくれますからね。それはすごく助かるし、ドメインについてよく知っていないとできないことですね。
両角:まさにそうです。汪さんがつくり直す前の構成では、リリース後の運用ができないし、メンテナンスのこともあまり考えられていなかったので、そこを改善してくれました。Zackさんも、監視の設計自体はEAチームがやるのですが、そこに対しての要件整備などをやってくれました。お二人とも、運用の立場からするとすごくありがたい存在でした。
≪後編≫へ