インタビュー

技術的好奇心を満たせる2日間 ―「LINE DEVELOPER DAY 2019」へ行こう

この記事を読むのに必要な時間:およそ 6 分

Feature Flagを活用した開発の最前線を大公開

Journey of Feature Flag development in LINE Android
玉木英嗣氏
⁠2日目:15:30~16:10 / HALL-D)

続いて,玉木氏の「Journey of Feature Flag development in LINE Android」についてお聞きしました。玉木氏は2018年度新卒入社の若手エンジニア。今回のセッションでは,今,LINEのAndroidアプリ開発で取り入れている「Feature Branch開発」の実際について,生の声をお伝えしてくれるとのこと。

LINE App Dev 3チーム Software Engineer 玉木英嗣氏

LINE App Dev 3チーム Software Engineer 玉木英嗣氏

LINE AndroidアプリにおけるFeature Flagを活用した開発の舞台裏

――入社以来,LINE Androidアプリを開発しているという玉木さん。今回のセッションでは,まさに現在進行系の開発の模様について,とくにGitを活用したチーム開発について話してくださるとのこと。どんな内容なのでしょうか?

玉木:私のセッションは「Journey of Feature Flag development in LINE Android」というタイトルですが,実はAndroidの(技術的な)話はあまり出てきません。どちらかというと,もう1つのキーワードである「Feature Flag」にフォーカスした内容を準備しています。Feature Flagパターンとは,Gitのブランチを形成する手法の1つです。 開発途中でもすべての変更をメインブランチに入れる代わりに個別の機能をOn/Offするためのフラグを使用する手法で,開発スピードを落とさずリリースタイミングを柔軟に管理したい場合に向いています。

今,多くの方がよく使っている手法としてFeature Branchパターンがあります。Feature Branchパターンの場合,その機能のFeature Branchに変更を1つ1つマージしていく。その後,完成したときにメインブランチに取り込むという方法がGit開発の定番として,一般化しているのではないでしょうか。

私たちLINE,とくにLINEのクライアントアプリの場合,関わるエンジニアの数や管理する機能,新規で開発する機能が大規模になると,Gitでのコミット数やPR(プルリクエスト)数も多くなり,たとえば1週間で変更されるコードの量も桁違いに多くなります。

そういう状況では,Feature Branch パターンで開発をすすめると,1つ1つのそれらが複雑に絡み合い,マージしようとするとコンフリクトが起きてしまい大きなリファクタリングもできなくなってしまう。Feature Branch パターンではこのような課題に直面し,頭を悩ませるリスクが多くなります。私自身そうした辛みを何度も経験しました。そこで,私たちはLINEのAndroid開発チームではFeature Flagパターンによる開発(以降Feature Flag)を取り入れています。

Feature Flagを取り入れることで,どんな良いことが起こるのか。わかりやすいところでは,開発時のコンフリクトが少なくなります。また,万が一トラブルが発生したり,大幅な修正が必要になった際のロールバックも柔軟に行えます。たとえば,新機能のリリースタイミングで,QA(品質保証)で何かしらの問題が発生したときでも,すぐに元の状態に戻すことができます。

玉木氏のセッション「Journey of Feature Flag development in LINE Android」のスライドから~

画像

Feature Flagでは,⁠Feature Branchのように)特定のバージョンに向けてリリースを進めているときに,タイミングによってはすぐにマージできずにもやもやしてしまうということがなく,どんどんメインブランチにマージできます。このように,大規模アプリ・大規模チーム開発のストレスを軽減し,効率的に開発が進められるのがFeature Flag戦略の特徴です。

私たちのLINE Android開発チームでは,2015年12月からFeature Flagを使用した開発を進めています。今回のセッションは,これまでの振り返りをしながら,実際の開発の様子や問題が起きたときの解決策など,Feature Flag開発の生の事例を公開します。

多機能で複雑なチーム開発で辛みを感じた方,お待ちしています

――LINE Androidアプリの規模感(機能・ユーザ数・開発者数)というのは,おそらく平均的なAndroidアプリと比べても,突出して大規模ではないかと思います。そういった印象を踏まえて,どのような方が聴講すると楽しめますか?

玉木:おっしゃるとおり,規模感で言えば,私たちのアプリは非常に大規模です。しかし,Feature Flag開発は,規模の大小だけではなく,開発スピードを上げたいなど,規模以外の面で活用できる手法です。

今現在,Feature Branchでの開発において,何かしら辛みを感じたことがある方はぜひ来ていただきたいです。スライド自体はクライアントの話にフォーカスしていることろがあるので,iOSやAndroidなどクライアントの開発を行っている方だと,⁠あるよね⁠といった頷ける部分があると思っています。その中で,Feature Flagを使って⁠なるほどね⁠と思える,共感できる内容をたくさんお届けして,エンジニアの皆さんの開発生活のお役に立てればと思います。

もちろん,Feature Branch / Feature Flag未経験の方を始め,これからスマホクライアントアプリ開発に関わる方も知っておいて損はありません。私たちの経験をもとに,今のスマホアプリ開発の現状を知ることができるはずです。

また,現在取り組んでいるAndroid向けのFeature Flag関連のプラグインをOSSで近日中に公開を予定していますので,そのあたりの最新動向を知りたい方も,ぜひお越しください。

著者プロフィール

馮富久(ふぉんとみひさ)

株式会社技術評論社クロスメディア事業室室長。

1975年生まれ。横浜市出身。1999年4月株式会社技術評論社に入社。入社後から『Software Design』編集部に配属され,2004年1月に編集長へ就任。同2004年9月に『Web Site Expert』を立ち上げ,同誌編集長に就任,現在に至る。その後,2008年9月に設立したクロスメディア事業部(現クロスメディア事業室)に配属。現在,社外活動として電子書籍を考える出版社の会の代表幹事やWebSig 24/7のモデレーター,TechLIONプロデューサーなども務める。過去にIPAオープンソースデータベースワーキンググループ委員やアックゼロヨン・アワード他各賞審査員などの経験を持つ。

Twitte ID:tomihisa(http://twitter.com/tomihisa/

バックナンバー

2019

  • 技術的好奇心を満たせる2日間 ―「LINE DEVELOPER DAY 2019」へ行こう