変更を小さく保ち頻繁に統合/デプロイすることで、品質リスクを下げながら開発スピードを向上させることができます。近年このような考え方は広く浸透してきました。これを実践するチームでは、デプロイメントは必ずしも機能公開を意味しません。Feature flag等を使用してデプロイメントと独立に機能公開を行うことが一般的です。モバイルアプリなど、必ずしも最新バージョンを使ってもらえない状況でこの開発手法を実践するには、このような仕組みはほぼ必須です。
Feature flagは概念自体は複雑なものではありません。しかしながら、実装方法は個々の開発者の知見に依存していました。
そこで私たちは、機能の公開タイミングや公開範囲の制御といった「機能公開」に特化したソフトウェア基盤を実装し、チームの標準として整備しました。これにより、中規模以上のほぼ全てのプロジェクトでfeature flagが導入され、開発途中での社内限定公開や、指定時刻での機能公開、公開後の非公開化を実現できるようになりました。
本セッションでは、この仕組みを約1年運用して得た知見や、実際に非公開へ戻した事例などを共有します。
株式会社Voicy
ソフトウェアエンジニア
株式会社Voicyのリードソフトウェアエンジニア。楽天にてオンライン決済システムの開発に携わったのち、2021年12月にVoicyに入社。モバイルアプリのバックエンドAPIや、通知・音声処理等の基盤システムの開発を行ってきた。直近では、クラウドインフラ、アプリケーションを含むVoicyのバックエンド全体の設計を担当しながら、開発チームの支援を行なっている。