0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FeatureFlagとリリース戦略

0
Posted at

FeatureFlagとは?

  • 新機能の公開や変更を簡単に制御できるようにする
  • コード内にフラグを埋め込むことで、機能のオン/オフができる

FeatureFlagのメリット

  • コードのマージ・デプロイタイミングと、公開(リリース)タイミングを分けることができ、公開時の作業を減らすことができる
    • 機能リリースタイミングに依存せずに開発チームは任意のタイミングでコードをデプロイすることが可能
    • デプロイの独立性が高まることで、開発チームは迅速に短いスパンでコード変更をメインブランチにマージしたり、本番環境にデプロイしたりしやすくなります。
  • ロールバックが即時でできる
  • A/Bテスト可能
    • ユーザーの半分は新機能を有効化し、残りは無効化にします。そして本番環境で特定のメトリクス(アプリの使用率、コンバージョン率など)やユーザーフィードバックを収集します。それらを分析して、新機能を完全にリリースするか、改善するか、削除するかなど、実データに基づいた精度の高い意思決定をすることができます。
  • 段階的リリース可能
  • チーム間の調整コストが下がる
    • Android, iOS, Web, BackendがFlagによる共通認識ができる
  • 開発中の機能をマージすることができる

FeatureFlagのデメリット

  • フラグが増えすぎるとカオス
  • 古いフラグの消し忘れ
  • Flagの不整合(Backend側とUIの不整合)
  • テストケースの増加

気をつけること

  • 全解放されたFeatureFlagは除去しよう
  • 機能の調整をして複雑性をなくそう

導入へ

  • 目玉機能など、長期間かけて行う修正はFeatureFlagを導入しても良いのでは?
  • ロールバックを行う可能性がある重要な機能とか
  • A/Bテストやっていこう

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?