フィーチャートグル
フィーチャートグル(feature toggle、機能トグル。別名としてfeature switch(機能スイッチ), feature flag(機能フラグ), feature flipper(機能切替スイッチ), conditional feature(条件付機能)など)は、ソフトウェア開発 において、複数のソースコードのブランチ(機能ブランチ)を維持するのとは別の方法を提供しようとする手法である。
継続的リリースと継続的デプロイは、コーディングについてのフィードバックを開発者たちに頻繁に提供してくれる。これを実現するには、複数の開発者たちのコードを可能な限り早期に統合することが必要になる。機能ブランチはこの過程に抜け道を作ってしまう。機能トグルを利用すれば、開発者たちはメインのトラックに頻繁にソースを統合しつつも、開発中の機能へ入っていける実行経路のトグルを「OFF」にしておけば、その機能は「死んだ」状態になる。新しい実行経路を有効にするための労力は、単にトグルを「ON」に設定するだけなので、十分に小さい。
この技法により開発者たちは、開発未了の機能を含んだバージョンを製品としてリリースすることが可能になる。これらの開発未了の機能はトグルをOFFすることによって隠されるので、ユーザインタフェース上には表示されない。これにより、日常的にブランチやマージする労力を払うことなく、多くの小さな変更ごとにソフトウェアのバージョンを刻みながら、常にリリースすることが可能になる。
機能フラグの別の利点は、カナリアリリースである。 カナリアリリース(canary release。