コロナ禍でも経済的な影響を最小限にできた「Visionary」
フュートレックが提供している「Visionary」は、約15年に渡り、BtoBからBtoCまで200社以上の企業に導入してきた実績を持つ統合CRMシステムである。同システムの特徴は、顧客情報を一元管理しマーケティング施策の実施から効果検証までをワンストップで実現すること。
「例えば、いつ会員登録して、いつ来店してどんなものを購入したかなど、お客さまのいろいろなアクションを一元的に管理し、そのアクションに応じてメールを送信したり、ポイントやクーポンを発行したりと、さまざまなマーケティング施策をワンストップで実現します。施策の実行から結果分析、その結果の反映までを一元管理することで、マーケティングのPDCAを回していけるプラットフォームなのです」
こう説明するのは、Visionaryリニューアルプロジェクトのマネージャーを務める大塚氏である。元々、Visionaryはメルマガやアンケート配信などオンライン顧客向けのマーケティング機能の提供を主軸としていた。だが近年はO2O(オーツ―オー)やオムニチャネルなど、オンラインとオフラインの顧客情報を一元管理する考え方が不可欠となり、「そこに注目してVisionaryを強化していきました」と大塚氏は明かす。そのため、これまでは自社の顧客に対しメルマガ配信やアンケート配信等、機能の利用を目的とした企業が多かったが、現在は、ECやリアル店舗、さまざまな自社サービスの顧客情報を統合し、オンライン/オフライン問わず顧客体験の向上を目指すいろいろな業種業態の企業で使われている。特にここ数年は問い合わせも多く、売り上げは倍増。導入実績は200社以上と、認知度も上がっているプロダクトである。
Visionaryは、ホテルやアパレルなどを中心に多くの企業に導入されているが、これらの企業において、新型コロナウイルス感染症の影響は大きかったものと想像する。しかしVisionaryを導入したことによって、顧客の損害を最小限にすることもできたのだという。
大規模リニューアルを決めた理由
そんなVisionaryがなぜ、このタイミングでリニューアルするのか。実は現行のVisionaryは、「個社カスタマイズを売りにしてきた」と大塚氏は話す。つまりプロダクトを拡張してカスタマイズし、そのお客さま専用のCRMを開発してきたのである。
「各社向けのカスタマイズの工数が非常に大きくなっていました。そこで各社に対してそれぞれカスタマイズして提供していくのではなく、共通した製品をいろいろな会社に使っていただけるようなマルチテナントのCRMにしたいと考えました。そのためにリニューアルが必要だったのです」(大塚氏)
今後はこれまでの強みであるカスタマイズのしやすさを残しつつ、拡張性を考えてアーキテクチャをマイクロサービス化し、UI/UXの向上を図っていくという。
「業種業態が異なっても、マーケティングの視点からみると、求められる機能はある程度決まっています。そういった機能を標準化し、それ以外は個社に対応する。PaaSのような形でVisionaryを拡張していきたい。これがリニューアルで実現したいことです」(大塚氏)
マイクロサービス化にあたり、Kubernetes × TypeScript × React.jsを選定
リニューアルに伴い、採用する技術も一から見直すこととなった。
「現行のVisionaryはPHPを採用していました。PHPは記述もしやすく習得も簡単で、開発者の確保もしやすい。ですが、課題もありました」と、現行のVisionaryの立ち上げからチーフアーキテクトとして参画し、リニューアルプロジェクトでも開発チームを率いている杉能氏は語る。
PHPが持つ課題として杉能氏は、NginxなどのWebサーバーとの併用が必ず必要であること、prefork型のアーキテクチャを採用していること、言語レベルの非同期のI/Oに対応していないこと、サーバーリソースの利用効率が悪いこと、C10K問題が起こりやすいなどバーストトラフィック対応に適さないことなどを挙げる。
新Visionaryの要件では、管理する顧客の数が数100万件におよび、SNSの連携に伴うバーストトラフィックが予測されていた。サービスを止めないで機能をリリースするため、マイクロサービス化を採用。その実行環境として主要なクラウドで利用でき、特定のベンダーに依存しない環境が良いと杉能氏は考えた。
そこで、Kubernetesの採用を決めたという。Kubernetesは、Podという単位でコンテナをデプロイできるため、システムの障害時や高負荷時でも負荷分散できる仕組みを持っているからである。
「次に言語はTypeScriptを採用しました。TypeScriptなら非同期のI/Oを使うことで、限られたリソースだけでバーストトラフィックにも対応できます。また、他の言語に比べて圧倒的にサードパーティー製のライブラリが多いです。さらに、TypeScriptはUIにもバックエンドの実装にも使えることも採用の決め手となりました」(杉能氏)
そのほか、TypeScriptはJavaScriptの上位互換言語のため、既存のJavaScriptエンジニアはもちろん、型を作るコーディングになれているJava開発者も、少し学習するだけで案件に参画できることも採用された理由の1つである。
そして、新Visionaryに採用されたもう1つの技術がReact.jsである。これは総合的に比較した結果採用されたという。これらの理由により新Visionaryは、KubernetesとTypeScript、React.jsで開発されることとなった。
技術選定までの道のり、検証や調査に苦労
とはいえ、これらの技術選定は容易だったわけではない。同社にとってマイクロサービス化は初めての取り組みだったからだ。そのため、「事前に何が必要なのかを徹底的に調べました。設計のパターン、Kubernetesの実行環境がどういうものなのか、言語やフレームワーク、開発フローなど社内関係者で調査、比較検討を行いました」(杉能氏)
例えば、プログラム言語であれば必要な機能はあるか、習得しやすいか、ライブラリは充実しやすいかなどを考え、設計のパターンについては、適切な粒度で負荷分散ができるか、いろいろなカスタマイズに対応できるか、障害時に全体のサービスへの影響を抑えられるかを検討した。
技術検証については、TypeScriptでサンプルコードを作成し言語の記述力、動きを確かめるなどマイクロサービスを構成するコンテナ群をひな形レベルで作成。バックエンドのデータベースやサービスバスなどと連携して負荷テストを実施し、どのくらいのスループットが期待できるのかを検証した。
「とにかく技術選定までの検証や調査が大変でしたね。というのも今回選定した技術はほとんど社内で扱ったことがなかったので、調査や検討する項目は膨大でした。検証や調査にかけられる時間は限られているものの、社内だけでは人員が足りないので、社外から各分野にたけた技術者を募ってサポートしてもらいました」(杉能氏)
働き方が変化し、在宅ワークでのプロジェクト進行に
こうして技術選定も終わり、プロジェクトはスタートしたのだが、新型コロナウイルス感染症拡大を防ぐため、同社では3月から働き方を在宅ワークへと切り替えた。働き方が変わったことでプロジェクトの進行に影響はなかったのか。
「移動時間がなくなったこと、働く時間が自由になったことで、以前と比べ効率的に働けるようになったと思います」と大塚氏は明かす。また、もう1つ良い変化があったという。それは毎日ミーティングをするようになったことだ。
「当プロジェクトには20~30人ものメンバーが参加しています。オフィスだとそれだけの人数が集まって、毎朝ミーティングをすることは場所的にも難しく現実的ではありません。オンラインなら場所を気にすることなく、ミーティングしたいときにできます。通勤や客先に行く移動時間がなくなったからこそ、できていると思います」(大塚氏)
プロジェクトの設計チームのマネジメントを担当している竹村氏も「在宅ワークになって以降のほうが、コミュニケーションが取れていると思います。スケジュールの遅延もありませんし、順調に進んでいます。レビューの効率は上がったと思います」と付け加える。
もちろん、在宅ワークでもプロジェクトが滞りなく進むような環境整備を行っている。例えば、社員にはハイスペックのPCやリモート操作用のノートPCをそれぞれ1台ずつ配布。従来はツールを自由に使えなかったが、在宅ワークに切り替えて以降は、SlackやSkype、Microsoft Teamsなどのコミュニケーションツールを自由に使えるようにした。「私たちのプロジェクトでのやり取りは、ほぼSlackで行っています」と竹村氏は言う。
新しいことに貪欲に取り組んでくれる仲間を増やしたい
現在、同社ではVisionaryリニューアルプロジェクトを進めていくため、メンバーを募集している。
「リニューアルプロジェクト後も、Visionaryはどんどん拡張していくので開発は続きます。その開発の中では要素技術も増えていく。したがって、新しい技術、新しいことに貪欲に取り組むことができる人と一緒に働きたいですね。TypeScriptやKubernetesの経験があればうれしいですが、経験がなくても新しい技術などにチャレンジする精神のある方を歓迎します」(大塚氏)
「大規模なマイクロサービスシステムの開発を経験したい、興味を持っている、という方にぜひ仲間になってほしいと思います」(杉能氏)
「いろいろ考えていただける人。どんどん自分の意見を持ってアイデアを出すことができる、そんな方と働きたいです」(竹村氏)
柔軟性、拡張性を持った製品にリニューアルし、統合CRMシステムとして新たなステージに進むVisionary。Visionaryは会員組織を持つ企業のビジネスに貢献できるだけの製品ではない。そのサービスを通して、会員である一般消費者の生活を豊かにし、便利にすることもできる。Visionaryというプロダクトに関心を持った人はもちろん、大規模なマイクロサービスのシステムを開発したいという方も、ぜひ一度フュートレックの採用情報をチェックしてみてはいかがだろう。