フィーチャーフラグ
実装済みの機能を「公開スイッチ」で制御し、特定ユーザーへの限定公開→全体公開と段階的にロールアウトする技術手法。牛尾 剛が世界一流エンジニアの思考法で紹介。Azure・Windows など Microsoft 製品で広く使用されている。
仕組み
- 機能を実装し、コードに組み込んでおく
- 「公開スイッチ(フラグ)」をオフのまま本番環境に配置する
- 一部ユーザーにのみスイッチをオンにして試験公開する
- 実際に動作し価値があると確認してから全体公開する
利点
- 「既に動いているものをリリースする」と約束できる(納期コミットメントの容易化)
- 段階的なリスク管理が可能
- 機能の増減に関係なく「いつでもリリース可能な状態」を維持できる
- 問題が起きたらスイッチをオフに戻すだけで即座にロールバックできる
複数機能の同時開発との組み合わせ
機能A・B・Cがすべて揃わないとリリースできない場面でも:
三つ同時につくるが、想定よりずっとシンプルなものにする。連携しつつ価値を提供できる単位でつくると、常にリリース可能な状態ができあがる。
QCDSとの関係
QCDSトレードオフにおいて、S(スコープ)をフィーチャーフラグで動的に制御することで、D(納期)とQ(品質)を維持しながら機能を段階的に提供できる。
関連概念
- QCDSトレードオフ
- Fail Fast(早期失敗)(段階的リリースによる早期フィードバック)
- 自己組織チーム(バックログ主導でリリース判断)
- SDD(仕様駆動開発)(計画段階でのフラグ設計)
出典
- 世界一流エンジニアの思考法(牛尾 剛、文春e-book)