2023年5月6日(土) ·8分で読めます

Remoteにおけるフォームとデータ検証のスケーリングにJSON Schemaを活用する

課題

フォームです。法的フォーム、雇用フォーム、給与フォーム、あらゆる種類のフォームです!様々な国からの採用は、多くの異なる要件を生み出し、Remoteはそれらすべてを処理する必要があります。一つの国で常に進化する法律や規制に対応するだけでも大変なのに、100近い国々となるとさらに大変です!

「アルゼンチン、ドイツ、ナイジェリアで誰かを雇用したいと想像してみてください。これらはすべて、異なる法律や要件を持つ非常に異なる国であり、私たちはそれらすべてを処理する必要があります。」- Remote.comのスタッフフロントエンドエンジニア、サンドリーナ・ペレイラ。

オランダ向けのオンボーディングフォームの一つで、すべての国向けの500以上のユニークなフォームのうちの一つです。

Remoteが最初にスタートしたとき、同社は数カ国のみを対象とし、国ごとにいくつかの特定のフォームしかありませんでした。複雑な要件を持つ数百の国向けのフォームにスケールすることは印象的です。勤務時間や週末の日が国や雇用形態によって異なることに気づいていましたか?一部の国では、週末は金曜日と土曜日です。また、従来の9時〜5時以外にも、さまざまな種類のスケジュールがあります。誰かの給与支払いでそれを間違えると、大きな影響が生じる可能性があります。

フルHTML形式(またはフロントエンドコンポーネント)でハードコードされたフォームを管理および保守することは、Remoteが望むスケーリングには実行可能ではありませんでした。

「ハードコードされたソリューションは、私たちのビジネスのスケールを妨げていました。重複したコード、一貫性のないサーバー/クライアント検証、巨大なJavaScriptバンドル…」とサンドリーナは説明します。

Remoteは、サーバー側でフォームを構成し、サーバーとクライアント間で共有できる集中検証を含め、Remote APIで使用できるようにする方法を必要としていました。

解決策

JSON Schemaは、特にJSONデータの検証のために設計されましたが、それによって新しいユースケースが生まれています。JSON Schemaを入力として受け取るフォーム生成ライブラリはいくつかありますが、Remoteは完全に制御できるようにしたいと考え、必要に応じてソリューションを進化させる自由が必要でした。

「それらのすべてが、今ではJSON Schemaで解決されています」とサンドリーナは続けます。彼らは当初、開発基盤チームでフォームと検証のためのJSON Schemaに取り組み、その後、会社の「オンボーディング」部門の一部として取り組みました。多くのデータを必要とするオンボーディングプロセスは、データの安全性や正確性を損なうことなく、完了を妨げないように、可能な限り最高のエクスペリエンスである必要があります。

Remoteは、必要に応じてフォームフィールドの表示に関連するJSON Schemaに追加のカスタムキーワードをレイヤー化できるようにする、独自のフォーム生成ツールを作成することを決定しました。「コンセプト実証による徹底的な調査の後、コア製品におけるフォームの重要性を考慮して、私たちは思い切って試してみることにしました…」このライブラリの最初のバージョンはごく最近オープンソース化されたため、今すぐ試すことができます!@remoteoss/json-schema-formをチェックしてみてください!

JSON Schemaがサーバーとクライアントに統合される方法の図。

データはフォームからだけでなく、通常はサードパーティを含むAPIからも取得されます。「私たちはこの取り組みをRemote APIの一部として、それ自体が水平ツールとして開始しました。徐々に、それはRemoteのあらゆる領域に影響を与えるでしょう。最終的に、私たちのビジョンは、JSON Schemaの上に「ヘッドレスフォーム」によってAPIとやり取りするすべてのフォームを搭載することです」とサンドリーナは説明します。データの境界を正しく設定するのは難しい場合がありますが、その作業を行う価値はあります。クライアントで再利用するサーバーでの検証を行うことは、開発を簡素化するだけでなく、セキュリティの観点から攻撃対象領域を減らします。

スタックに新しいテクノロジーを追加する場合と同様に、それが長期的に実行可能かどうか、既存のスタックの変更に対してどれほど柔軟であるかを批判的に評価する必要があります。サンドリーナと彼女の同僚は調査を行いました…

「JSON Schemaは「公式標準」ではありませんが、大手企業が採用してその成熟に貢献しているのを見ることは、私たちにとって大きな信頼のポイントです。JSON Schemaは、JavaScriptやElixirなど、私たちが使用する多くの言語で成熟したライブラリを含め、多くの企業で高い採用率を持つ強力なコミュニティによって活発に開発されています。」

「JSONオブジェクトを記述および検証する方法を探していたとき、他の確実な代替案はありませんでした。JSON Schemaは自信を持って採用されました。」- Remote.comのスタッフフロントエンドエンジニア、サンドリーナ・ペレイラ。

影響

JSON SchemaをSSoT(Single Source of Truth)として使用することで、多くの可能性が開かれました。「JSON Schemaは、Remoteのあらゆるレベルでデータ検証とフォーム生成の問題を解決するための最初のステップでした」とサンドリーナは説明します。

JSON Schemaから始めると、複数の用途を発見するのは珍しくありません。RemoteはサーバーでJSON Schemaを作成し、APIペイロードの検証、定期的な検証レポートの実行(法的要件に基づいて)、およびコードの自動補完に使用します。さらに、クライアントはこれらのスキーマを使用して、フォームやテーブルなどの視覚的な表現を生成します。

SSoTを備えたRemoteは、フォームの作成と保守にかかる時間を短縮するだけでなく、データの一貫性と不正な検証に関連するサポートチケットの測定可能な削減も実現しています。Remoteにとって最も重要なことは、新しい海外従業員と契約者のオンボーディングにかかる時間も短縮したことです。JSON Schemaの統合と同時に他の改善も行われましたが、JSON Schemaが極めて重要であったと確信していました。

主な影響結果

大規模に適応および進化し、より迅速にサービスを提供し、オンボーディングを数週間から数日に短縮しました。これまでの最大の成果のリストを以下に示します。

  • サーバーとクライアント間での共有検証
  • JSバンドルとコードの重複を削減し、APIリクエストに置き換え
  • 一貫性のない検証を報告するチケットの数を削減。
  • チケットをより迅速に完了
  • フォームの作成と保守が容易
  • 社内運用チームが自分でフォームを作成できるようにする扉を開きました

「JSON Schemaは、大規模にデータの正確性を維持し、顧客に提供する多くのサービスを高速化するためのコネクタです。場合によっては、新しい国向けのフォームの実装にかかる時間が数週間からわずか数日に短縮されました。」

Remote - 会社概要

Remoteは、海外の従業員と契約者のオンボーディングと支払いを容易にします。Remoteは、物理的なオフィスを持たない、人事業界のグローバルで完全に分散された企業です。「当社の従業員は、世界中の自分の選んだ場所で自由に働くことができます!」

サンドリーナ・ペレイラ:「私はオンボーディング部門で働くスタッフフロントエンドエンジニアであり、私たちは新しい人材を採用するために必要なすべてのデータを運ぶ、最大かつ最も動的なフォームを持っている人たちです。」Remoteが提供する価値提案を可能にする上で、間違いなく重要な立場です。

多くの企業が可能な限りリモートワークの手段を提供しなければならなくなった今、人材プールを1つの地理的な場所に限定する理由は何でしょうか?

Remoteは従業員を力づけたいと考えています。「才能はどこにでもありますが、機会はそうではありません。Remoteは、雇用主がどこからでも誰でも雇用できるようにし、誰にでも機会を提供し、最終的にはより良い生活を送れるようにします。」これらはRemoteにとって単なる言葉ではありません。

2021年、Remoteは難民プログラムを開始し、雇用主が費用対効果の高い方法で投資できるようにすると同時に、難民が生活を再建するのを支援しています。Remoteはまた、避難したウクライナ人向けの専用リソースを設定しました。

Remoteは2022年に3億ドルのラウンドCを調達し、評価額は30億ドルを超えました。

さらなる利点

「JSON Schemaは、私たちにデータの一貫性(アノテーション)とデータセキュリティ(サーバー検証)をもたらしています。」- Remote.comのスタッフフロントエンドエンジニア、サンドリーナ・ペレイラ。

ビジネスの中核部分を移行した後、Remoteは運用チームが自分自身でフォームを編集できるようにするインターフェースを作成し、検証のメリットを享受するためにJSON Schemaとして保存しました。静的なJSON Schemaファイルはうまく機能しましたが、最終的には変更に迅速に対応できる必要がありました。

JSON Schemaを搭載した、国別フォームを作成するためのバックオフィスツール。

知識共有もJSON Schemaの恩恵を受けており、Remoteはナレッジベースを刷新しました。サポートされているVISAオプションやオンボーディングのタイムラインなどの国固有のデータは、データ構造にエンコードでき、サーバー側とクライアント側の両方で検証できます。

最初はJSON Schemaがどこまで進むことができるか不明確でしたが、RemoteがJSON Schemaでできることの限界を押し進めたにもかかわらず、Remoteのスケーリング能力に重要な影響を与えていることが証明されています。

"JSON Schema は、データの検証や、フォームやテーブルなどの視覚的な表現の生成を行うためのコアツールエコシステムの一部として、その価値を証明してきました。これは、正確性、スピード、そして最も重要な顧客満足度を損なうことなく、当社のサービスを大規模に展開するための基本的な要素です!" JSON Schema に価値を見出していただき、嬉しく思います。今後も継続してご活用ください。

このケーススタディを共有させてくださった、Staff Frontend Engineer のSandrina Pereira氏と、Remote.com に感謝いたします。Sandrina氏は、1年以上前にこの取り組みを開始した同僚である、André Albuquerque氏、António Capelo氏、António Silva氏、Livia Barbosa氏、そしてJoão Almeida氏にも感謝の意を表したいと考えています。