ソフトウェア開発の複雑性が増す現代において、フィーチャー フラグはアジャイルな開発と迅速な価値提供を実現する上で不可欠なツールとなりつつあります。今回は、世界有数の自動車メーカーであるゼネラル モーターズ(GM)が、モバイルアプリ開発において LaunchDarkly のフィーチャー フラグをどのように活用し、無数のテスト パターンや頻繁なアップデートといった課題に対応しているのか、その具体的な取り組みをご紹介します。複雑なモバイル アプリ開発の裏側と、それを支える最先端の技術をご覧ください。
ゼネラル モーターズ(GM)はいかにしてフィーチャー フラグを活用し、モバイル アプリの複雑性を軽減しているか
ゼネラル モーターズとモバイル サービス について
ゼネラル モーターズ(GM)は、アメリカ合衆国を拠点とする世界有数の自動車メーカーです。100 年以上の歴史を持ち、シボレー、キャデラック、GMC、ビュイックといった多様なブランドを展開しています。自動車の設計、製造、販売だけでなく、近年は電動化や自動運転といった先進技術の開発にも注力しており、モビリティ カンパニーへの変革を進めています。
GM が提供するモバイル アプリは、主に車両オーナーの利便性向上とコネクテッド サービスの提供を目的としています。「 MyBrand 」と総称される各ブランド専用アプリ(MyGMC、MyChevrolet、MyCadillac、MyBuick)では、スマートフォンから車両のエンジン始動やドアの施錠・解錠といったリモート操作、燃料残量やタイヤ空気圧などの車両状態の確認、メンテナンス予約などが可能です。また、「OnStar Guardian」アプリは、車両内外での安全性とセキュリティを強化するサービスで、事故発生時の自動通報、緊急通報サービス、盗難車両追跡、ロードサイドアシスタンスなどを提供し、ユーザーとその家族に安心感をもたらしています。
目的と課題
世界最大級の自動車メーカーとして、ゼネラル モーターズは競合他社に遅れを取るわけにはいきません。そして、今日の自動車におけるソフトウェアの重要性、特に完全電気エネルギー源への移行を考えると、これらのマシンに取り組むチームは、増大する複雑性に対応するための新しい方法を必要としています。
ゼネラル モーターズ(GM)のデジタル ビジネスチームでモバイル ソリューション担当ディレクターを務めるジム・デマーキュリオ氏は、最近、GMにおけるフィーチャー フラグの役割と、LaunchDarkly がいかに貢献しているかについて語りました。現在、ジム氏は、Mybrand(MyGMC、MyChevrolet、MyCadillac、MyBuick)や Onstar Guardian など、すべての顧客向けモバイル アプリケーションを担当しています。
モバイル アプリに携わったことがある方なら、スムーズな顧客体験を実現するための変数がどれほど気が遠くなるほど多く、そのためにソフトウェアの品質管理がいかに困難になり得るかをご存知でしょう。
「非常に多くの携帯電話のモデルと OS のさまざまなバリエーションがあり、そして私の携帯電話は車両と交差します」とジム氏は言います。「私は非常に多くのメーカー、モデル、そして車両の年式を持っています。そして私はサブスクリプション アカウントを持っており、非常に多くの異なる種類のサブスクリプションを持っています。そして、それらすべての組み合わせを取ると、それらすべてをテストすることは不可能になります。どれだけ自動テストがあっても問題になりません…ただ不可能なのです。」
ジム氏によると、テスト サイクルを増やすことは答えではありません。代わりに、彼は LaunchDarkly を使った非常に成功した方法を発見しました。
「ここでの LaunchDarkly を使ったモデルは、100 倍良く解決するでしょうし、それはすでに私たちにとって証明されています」と彼は言います。
ジム氏の講演では、彼が個人的に何度も経験してきた道のり、つまり、アジャイルと多くのアジャイル手法の実装と、フィーチャーフラグおよび LaunchDarkly の機能を組み合わせることについても触れています。
ビッグバン リリースの問題点
ジム氏の主な目標は、品質を損なうことなく、できるだけ早く顧客に価値をリリースすることです。しかし、従来の「ビッグバン」リリースではうまくいきませんでした。ジム氏の場合、これらのビッグバン リリースは、以下のような複数のレベルで問題がありました。
課題
- 一度に多くのコードを変更しすぎると、長いトリアージ セッションが必要になる
- 長い統合サイクル
- 不安定なテスト環境
- 「オール オア ナッシング」のリリース
最初の導入への経緯
当初、ジム氏は、リリース全体をロールバックすることなく問題のある機能をオフにするためのキル スイッチとして、防御的なフィーチャー フラグを導入しました。しかし、これは問題点の1つを解決したにすぎません。彼は、多くの場合、チームはそうするものの、より頻繁に配信する以外は何も変更しないため、全体的なサイクル タイムは依然として同じであることに気づきました。
ジム氏は、これが実際には解決するよりも多くの問題を引き起こしたと指摘しました。「顧客により早く価値を提供できるというチェック ボックスにチェックを入れることはできます」と彼は言います。「しかし、そこに至るまでのリード タイムがまだ長いため、より迅速に対応することはできません。毎月デプロイしていますが、サイクルは4か月なので、何かを出すのに4か月かかります。そして今、同時に3つのリリースに取り組んでいます。」
最も重要なステップは、サイクル タイムを短縮し、継続的なデプロイを目指し、デプロイとリリースを分離することでした。このアプローチにより、顧客のニーズに迅速に対応し、デプロイを当たり前のものにすることができます。短いサイクルと LaunchDarkly を組み合わせることで、ゼネラル モーターズは現在、より迅速かつ高品質で顧客に価値を提供しています。
フィーチャー フラグを最大限に活用する
ジム氏のチームは現在、(キルスイッチのような)能動的なフィーチャー フラグだけでなく、(理解、テスト、学習のための)主体的なフィーチャー フラグも使用できます。この二面的なアプローチは、特にデプロイとリリースの同時実行や、A/B テスト、ベータ版、またはパイロット プログラムの実施などの分野で、リリース プロセスに柔軟性をもたらします。
前述のように、ジム氏のチームは、物事が意図したとおりに機能していることを確認するために、多数のモバイル アプリ構成をテストする必要があります。LaunchDarkly による解決策は、本番環境を活用して実際の組み合わせをテストし、機能をごく一部のユーザーに段階的に公開し、そこから拡大していくというものです。
そして、この機能のおかげで、ゼネラル モーターズは社用車のドライバーを使って本番環境で初期機能のテストを開始しました。これにより、一般にリリースする前に問題を特定し、社内のフィードバックに基づいて調整を行うことができます。そして、このアプローチは初期環境でのテストサイクルを増やすよりも効果的でした。
「過去には、顧客が手にするまで見つけられなかったであろう多くの問題を発見しました」とジム氏は言いました。「そして顧客を使って問題を見つける代わりに、社内で行うことができています。」
今後の道筋
では、ジム氏と GM の次は何でしょうか?モバイル側では、現在すべての機能がLaunchDarkly のフラグの背後にラップされています。将来の計画には、LaunchDarklyをバック オフィス システムに統合すること、A/B テストの使用を拡大すること、パフォーマンス メトリックに基づいて機能スイッチのランプ アップおよびランプ ダウン プロセスを自動化することが含まれます。これにより、顧客への影響を最小限に抑え、展開プロセスを合理化することができます。あらゆる面で多くの勝利が得られます。
LaunchDarkly の導入
お問い合わせ、お見積り
エクセルソフト株式会社は、LaunchDarkly の正式代理店として、日本のお客様の導入と活用を強力にサポートしております。
ご紹介したケーススタディーのように、LaunchDarkly は企業のソフトウェア開発体制を大きく変革する可能性を秘めています。もし、お客様の環境での具体的な活用方法にご興味をお持ちでしたら、個別のワークショップも随時承っております。導入にあたっての技術的なご支援はもちろん、お客様の課題やご要望に合わせた最適なプランのご提案、そしてスムーズな導入のお手伝いをさせていただきますのでご安心ください。
お見積りは無料です。どうぞお気軽にお問い合わせください。
また、LaunchDarkly のすべての機能をご体験いただける体験版のご登録も代行いたします。まずはその効果を実感していただくことが、導入への第一歩だと考えております。LaunchDarkly の導入をご検討の際は、ぜひエクセルソフト株式会社にお任せください。お客様のビジネス成長に貢献できるよう、全力でサポートさせていただきます。
LaunchDarkly に関する情報、お問い合わせはこちらから
出典

本記事は LaunchDarkly 社より許可を得て翻訳および掲載しております。