Feature Flag
Overview
アプリにおいてのFeature Flag管理についてまとめているセクション
機能フラグ
機能フラグを活用する— モバイルアプリの性質上、開発者がリリースを公開するまでの期間が短いため、迅速なバグ修正が不可能な場合があります。この問題を軽減するために、多くのチームは「機能フラグ」を使用して、リモートから機能を有効化または無効化できるようにしています。機能フラグを使用すると、開発者がコードの開発を継続している間、一部の機能を非アクティブにすることで、リリースをより適切に制御できます。
このeBookの前半では、大規模なアプリにはリリーストレインの使用を推奨しました。しかし、機能がいつ完全に機能するかが正確にわからない場合もあります。これは、スケジュールされたリリースやリリーストレインによるリリース管理のアプローチにおける課題の一つです。そのため、機能が完全に機能するまでに複数のリリーストレインが必要になる場合もあります。
例えば、あるリリーストレインには、新しい画面、入力ボックス、ドロップダウンメニュー、ボタンなどを含む新機能のUIが含まれているとします。そして、次のリリーストレインには、ボックス、メニュー、ボタンを機能させるために必要な基盤コードが含まれているとします。最初のリリース後、UIと新しい画面をユーザーから隠しておき、2回目のリリースで広く公開するまで待つ必要があるでしょう。機能フラグはまさにそれを実現するのに役に立ちます。
機能フラグアーキテクチャにより、A/Bテストや製品テストなどの設定が容易になります。製品テストはステージング環境で行われます。開発者は機能フラグを使用してさまざまな機能のオン/オフを切り替え、機能が正しく動作しているかどうかを確認します。
A/Bテストは、通常リリース後に、同じ画面や機能の2つのバリエーションを比較し、どちらが優れているかを判断するためにも使用できます。プロダクトマネージャーは、以下のことを行います。
ユーザーセグメントを定義する(ブラインドA/Bテストでは自動的に行われる) セッション継続時間や離脱率などの目標を作成する ユーザーセグメントの機能をオンまたはオフにした後の結果を追跡します ユーザーからのフィードバックを積極的に収集する アーキテクチャは目標とユーザーからのフィードバックに基づいて、バリアントの 1 つを勝者として選択し、それをすべてのユーザーに適用し、もう 1 つをロールバックします。
機能に適切なタグを付け、機能フラグを使用するには、2つの方法があります。独自の機能フラグを作成するか、 ApptimizeやCloudBeesなどのクラウドベースの機能管理プラットフォームを使用するかです。機能が多いアプリの場合は、機能管理プラットフォームにサインアップして機能フラグを購入するのが合理的です。機能フラグの設定、製品テスト、A/Bテストは、管理に最適化されたプラットフォームを通じて行う方が、はるかに迅速かつ便利です。将来のリリースで多くの機能が予定されていない小規模なアプリの場合は、開発チームが社内で機能フラグを構築するのが合理的です。