見出し画像

大規模プロジェクトがローンチ エンジニアが語るマネーフォワード×Xard開発秘話

2021年9月、当社プロダクトであるXardを利用した「マネーフォワード ビジネスカード」が、ローンチされました。今回は、この導入プロジェクトに携わったエンジニア2名へのインタビューを通じて、Xardというプロダクトと開発チームの魅力をお伝えします。

須田  Xard事業部 エンジニアリングチーム マネジャー(写真左)

2020年インフキュリオンに参画。同年11月よりカード発行事業プラットフォーム「Xard(エクサード)」の開発に携わる。

三井  Xard事業部 エンジニアリングチーム エンジニア(写真右)
2020年にインフキュリオンに参画。2021年4月からXardの開発にサブリーダーとして携わる。

※この記事は2022/03/17に公開されたものです
※所属や業務などは取材時点の内容です。


「Xard」はオープンAPIで機能を提供するカード発行プラットフォーム

Xardは、企業が自社オリジナルのVisa / JCBカードを簡単&低コストで発行できる次世代カード発行プラットフォームです。利用企業は、XardのAPI機能を自社のサービスに組み込むことで、新しいサービスが実現可能になります。たとえば、経費精算システムにXardを組み込むことで、経費精算システムと一体化したプリペイドカード発行が可能に。利用ユーザの立替を減らし、支払い後の経費精算システムへの金額入力の手間を省くことができます。

「マネーフォワード ビジネスカード」のバックエンドとしてXardが採用された

2021年9月、マネーフォワード社は、多様な決済手段を通じてキャッシュレス化を促進し、企業のバックオフィス業務を効率化する「マネーフォワード Pay for Business」というサービスを開始しました。

同時に、このサービスの第1弾として「マネーフォワード ビジネスカード」という法人・個人事業主向けプリペイドカードを発行するサービスをリリースしています。このサービスにより、マネーフォワードを使っている企業は、マネーフォワード上の自社のウォレットに資金を預け(プリペイド)、そこからカード支払いができるサービスです。

この「マネーフォワード ビジネスカード」の裏側の仕組みをオープンAPIで提供しているのが、Xardということになります。

ここからは、今回の「マネーフォワード ビジネスカード」に向けた開発に携わったマネジャーの須田と、エンジニアの三井に話を聞いていきます。


少数精鋭エンジニアチームでタイトなスケジュールを乗り越えローンチへ

─どのような経緯でインフキュリオンが開発を担うことになったのでしょうか。

須田:マネーフォワード社が「マネーフォワード ビジネスカード」をスタートするにあたり、サービスの基盤となるシステム面での中長期的なパートナーシップを結ぶ上で、機動性、柔軟性のある協力体制が作れるということで当社を選んでいただきました。

─プロジェクトの概要を教えていただけますか。

須田:マネーフォワード社から頂いた要件の大きなものとして、プリペイドカードの残高管理をマネーフォワード側システムで行いたい、というものがありました。それまでのXardでは、Xard側にプリペイド残高を保有する仕組みでしたが、今回のプロジェクトで、決済リクエストが来た時にXardからマネーフォワード上の残高をリアルタイムで参照しに行く方式を追加しました。これにより、パートナー側のファンディングソースによって、プリペイド・クレジット・デビットなどの決済に対応できるようになりました。

そのほかには、接触ICチップやタッチ決済付のカードを発行できるようにすること、それからプラスチックカードだけではなくバーチャル専用カードも発行できるようにすることがありました。加えて、パートナー側のWebサイトやアプリでバーチャルカードに必要な機密情報(カード番号、有効期限、セキュリティコードなど)を表示できる機能を提供できるようにする必要もありました。
これが、このプロジェクトのスコープです。

─かなりボリューミーなプロジェクトですね。どのような体制で開発されたのでしょうか。

須田:2021年4月の時点では、パートナー企業のメンバーを含む30名近くの開発チームを組成しました。

三井:私はその少し前の3月頃にチームに加わりました。最初の頃は、Xardの仕様などに関するドキュメントがまだ十分ではなかったので、コードを読んだ上での仕様把握からドキュメント化まで、必要度の高いものから進めていきました。

須田:複数のチームに分かれ、ICチップ付きカードの発行、決済、バーチャルカード発行、パートナーのファンディングソースを原資に決済する機能、カードウィジェットなどの機能を各チームで、分担して開発を進めました。

三井:私は一つのチームのサブリーダーとして、パートナー企業の管理のほか、決済シミュレーションAPIの開発を中心に担当しました。まとまった単位の機能は他開発チームにお任せし、我々のチームは海外マークアップ手数料の処理など、比較的細かい機能改修を引き取った形でした。タスク管理しながら自分でも手を動かし、さらに仕様把握できていない部分がまだありましたので、そのキャッチアップを並行して進めていきました。

須田:私はプロジェクト全体の開発を見つつも、事業譲受*に伴うシステム切り替えチームの方に入って、オンプレミスのサーバー構築などインフラ面の作業を並行して進めていきました。

*Xardは、2020年10月にKyash社から事業譲受

─2021年2月に開発メンバーが揃って同年9月にリリースとなると、開発期間が短いように思えますが、納期に間に合わせるためにどのような工夫があったのでしょうか。

須田:開発ボリュームに対して、期間がタイトだったのは確かです。そこで、機能によってフェーズ分けを行い、優先度・重要度の高い機能は内部結合テストが入った早い段階からマネーフォワード社に協力頂き、当社の内部結合と平行して外部結合を実施頂きました。その他の主要な機能も早めに、プラスアルファの機能は後を追う形で開発を進め、順次追加でテスト範囲を広げていきました。

三井:須田さんが的確にタスクを起こしてメンバーを動かしたことでローンチを達成することができました。また、開発メンバーの技術力が高く実装スピードも早いので、テストの時間を十分に確保することができ、品質の担保にもつながっているなと感じましたね。

─どういうところを見て「技術力が高い」「実装スピードが速い」と思いましたか。

三井:追加開発にしても改修にしても、開始からリリースまでを当初の見積もりと比べて短い工数で完了することが実際に非常に多いことです。しかも、レビュー会や入念なテストを行い、品質が担保された上で早く完了するので、開発者としてのレベルの高さに驚きました。

また、運用・保守の話になりますが、データ解析用のシェルや複雑なSQL、リカバリ用のコマンドなどを、正確かつ即座に作れるメンバーがいて、常日頃勉強させてもらっています。

モダンなアーキテクチャを取り入れたXard開発の難しさと魅力

─プロジェクトで、大変だったのはどのような点ですか。

須田:最も難しかったのは、プロダクトの受け入れ・引き継ぎ作業とマネーフォワード社に向けた新規機能開発を同時並行で進めたことです。十分に理解してから設計することができず、途中で何度か方針転換をしなければなりませんでした。

三井:Xardで使用している技術のレベルが高く、キャッチアップに苦労しましたね。

須田:Xardはチャレンジングな構成にしてあるんですよね。マイクロサービス化されていてクリーンアーキテクチャが採用されています。技術スタックもGo言語とAWSを使っています。Go言語を採用した理由は、実行速度が速いためカードのオーソリ(与信情報の照会〜決済の承認)などのようなリアルタイムで低レイテンシが求められる処理に向いているからです。また今後のエンジニア需要から見てGo言語は伸びていくだろうという点も、採用した理由の1つです。
大変な部分もありますが、モダンなアーキテクチャの動いているシステムに触れるという意味ではモチベーション高く取り組めると思います。

三井:私はAWSは触ったことがありませんでしたし、マイクロサービスは触ったことはあったのですが、今のXardは複雑な構成になっていて、そういう意味ではキャッチアップに時間がかかりました。ただ、それは私の問題ですし、インフキュリオンに入る前はこんなモダンな環境でエンジニアをできていなかったので、今触っている技術や環境は自分にとって最高だと思っています。

特にXardのような、速度と安定性が求められる決済系サービスをGo言語で開発する経験は高レベルで、エンジニアなら多くの人が面白味を感じると思います。

Xardはまだまだ成長中のサービスですので、今後も新機能開発の機会は多くあります。今からジョインしていただくエンジニアの方も、マイクロサービス化されたアーキテクチャとGo言語やAWSといったモダンな開発環境でサービスを生み出していく経験が可能です。

開発プロジェクトを振り返って

─今回のプロジェクトで、インフキュリオンだから成し遂げられたと思うことはありますか。

須田:全メンバーが当事者意識を持ち、フラットな関係の中で「プロジェクトを成功させる」というただ1つの目標に向けて協力し合い、開発スピードを上げることができたのはインフキュリオンならではのことだったと思います。

三井:Go言語の経験者は多くなかったのですが、適応力の高いエンジニアばかりで、設計から実装までのスピードが非常に早かったんですね。おかげでテストの時間を十分に確保できました。リリース後もこれといって大きな障害は起きておらず、余裕があったわけではない開発期間のなかでこれだけの品質を担保できたのは、インフキュリオンだからこそだと私は思っています。

もう1つは、リーダーが的確にタスクを起こしてメンバーを動かしてくれたことです。プロジェクトの最初の頃は手探り状態だったにもかかわらず、予定通りにローンチすることができたのは、須田さんのマネジメントのおかげだと思っています。

須田:あれ、僕の話?(笑)

三井:はい(笑)。先ほど須田さんが話されていたように、何をしたらいいか分からない状況から、具体的にやるべきことを決めていくことは大変なことです。サービスのローンチから逆算してタスクとスケジュールを決め、エンジニア目線で各チームに的確に仕事を振ったからこそ、それぞれのパワーが発揮されたのだと思います。

須田:確かに、私もエンジニアですので、仕事を振る際には「どういう振り方をされると、エンジニアが動きやすいか」という点は常に考えていますね。

あまり説明しすぎても、あとは言われた通りにやるだけになってしまって考える部分がなくなってしまいますし、かといって説明が足りなすぎると何度も質問させることになってしまいます。その辺りのバランスは意識的に取っていると思います。

すべての新しいカードビジネスをXardが支える世界づくりへ

─現在のXardの課題と展望について教えてください。

須田:Xardは共通のプラットフォームですので、現在は、もともとXardとして実装を予定していた機能の開発を順次進めています。本当に、まだまだ「これから」という感じです。技術的な課題としては、同期/非同期処理の見直し・マイクロサービスの粒度の再考の2点が大きな課題で、まずはパフォーマンスを改善するため同期/非同期処理の整理をしていこうと考えています。

三井:新しい機能の開発に目が行きがちではありますが、今後機能を追加していく上での土台となる既存のシステムの見直し・改善にも力を入れていくことも重要な課題だと思っています。マイクロサービス化の構成の見直しも含めリソースを割いて、処理速度と安定性を高めていきたいです。あとビジネス面では、売上を伸ばしていきたいですね。

須田:Xardの強みは、金融系以外の業種でも自社ブランドのカードを発行できることです。これまでになかったサービスなのでユースケースをイメージしにくいかもしれませんが、DXを促進できる、社会に大きなインパクトを与えられるプロダクトだと思っています。まずは国内において、新しいカードビジネスのバックグラウンドには必ずXardがある、そのような世界をまずは目指していきたいと思っています。

インフキュリオンでは一緒に働く仲間を募集しています