Microsoft Clarityは、Switasのような企業が直面する課題を理解している、実際のプロダクト担当者によって、実用的で現実的なユースケースを念頭に構築された製品として高く評価されました。レイジクリックやJavaScriptエラー追跡といった機能は、ユーザーの不満や技術的な問題を特定する上で非常に役立ち、ユーザーエクスペリエンスとコンバージョン率に直接影響を与える、的を絞った改善を可能にしました。
フィーチャーフラグ(フィーチャートグルとも呼ばれる)は、アプリケーションコード内の条件式であり、実行時に特定の機能が特定のユーザーまたはリクエストに対して有効か無効かを決定します。機能の有無がデプロイされるコードのバージョンによって決まるのではなく、機能自体はコード内に存在し、設定によってオン/オフが切り替わります。これにより、デプロイとリリースが分離されます。コードは継続的に本番環境にデプロイでき、コードに含まれる機能は、誰かが公開を決定するまで目に見えない状態のままです。
実験においては、フィーチャーフラグがサーバーサイドテストの基盤となるメカニズムです。ユーザーをフラグバリアントに割り当てることは、実質的に実験アームに割り当てることと同じです。また、この決定はブラウザではなくアプリケーション内で行われるため、価格設定ロジック、検索ランキング、レコメンデーションアルゴリズム、メール配信トリガー、チェックアウトルール、バックエンド動作など、クライアントサイドテストツールではアクセスできないアプリケーションが制御するあらゆる要素に影響を与えることができます。さらに、クライアントサイド操作で発生する視覚的なちらつきを排除し、広告ブロッカーやスクリプトブロック機能を持つブラウザ設定からも見えません。
フラグにはそれぞれ異なる目的があり、その有効期間も大きく異なるため、区別して扱う価値があります。リリースフラグは未完了の作業を隠蔽し、機能が完全にリリースされると削除されます。実験フラグはバリアントの割り当てを制御し、テストが完了すると削除されます。運用フラグ(キルスイッチとも呼ばれる)は、本番環境で問題が発生した場合に機能を即座に無効化することを可能にし、無期限に存続する場合があります。パーミッションフラグは、顧客の階層や契約に基づいて機能を制限し、実質的に永続的です。これら4つすべてを同じものとして扱うと、組織は誰も削除しようとしない何百もの古い条件フラグを抱え込むことになります。
その蓄積こそが最大のリスクです。フラグはそれぞれ分岐であり、フラグが蓄積されるにつれて、可能なコードパスの数は乗法的に増加します。あらゆる組み合わせをテストすることは不可能になり、フラグ間の予期せぬ相互作用によって再現困難な欠陥が発生し、コードの理解は次第に困難になります。規律あるチームは、フラグの削除を完了の定義の一部として扱い、各フラグの所有者と有効期限を記録したインベントリを保持し、数か月間固定値になっているフラグを定期的に監査します。
機能フラグを使用すると、実験とは無関係にリスクを軽減するリリース戦略も可能になります。段階的ロールアウトでは、トラフィックの1%、5%、20%と順に機能を公開し、各段階でエラー率とビジネス指標を監視します。リングベースのデプロイメントでは、まず社内ユーザー、次にベータ版ユーザー、最後にすべてのユーザーに公開します。カナリアリリースでは、新しいバージョンを古いバージョンと並行して実行し、運用指標を比較してからリリースを進めます。これらはすべて、コードをデプロイすることなく、誰が何を見るかを変更できるという同じ機能のバリエーションです。
フラグは、複数の市場で事業を展開する組織にとって重要な、地域別およびセグメント別の制御された展開メカニズムも提供します。変更はまず単一の国で公開され、言語、支払い方法、税金の表示、規制要件など、市場固有の問題がないか監視され、その後、有効性が証明されたら拡張されます。これはグローバルリリースよりもはるかに安全であり、改善が市場間で適用できるかどうかの証拠が得られます。これはしばしば想定され、ほとんどテストされません。ツールの問題は規模から生じます。小規模なチームは構成ファイルとシンプルな管理インターフェースでフラグを管理できますが、複数のサービスで多数のフラグを同時に実行する組織は、通常、専用の管理プラットフォームが必要になります。これは、レイヤー間で評価が一貫していないと、ユーザーは機能の半分しか見ることができないためです。
フラグの導入は、特にプレゼンテーション層ではなくアプリケーション層に存在する機能の場合、本格的な実験を行うための前提条件となることが多い。 製品開発 作業中、フラグインフラストラクチャは通常、デリバリーパイプラインと並行して構築されるため、実験、段階的ロールアウト、および緊急ロールバックはすべて同じメカニズムを使用します。一度それが存在すると、 CROサービス このプログラムは、ブラウザで変更できる範囲に限定されなくなったため、通常はバックログの中で最も価値の高いテストアイデア、つまり価格設定、パーソナライゼーションロジック、購入フロー自体の仕組みに関わるアイデアが実現可能になった。
Microsoft Clarityは、Switasのような企業が直面する課題を理解している、実際のプロダクト担当者によって、実用的で現実的なユースケースを念頭に構築された製品として高く評価されました。レイジクリックやJavaScriptエラー追跡といった機能は、ユーザーの不満や技術的な問題を特定する上で非常に役立ち、ユーザーエクスペリエンスとコンバージョン率に直接影響を与える、的を絞った改善を可能にしました。