フィットネス業界では、ずいぶん前に「スマート」な機器をビジネスモデルに取り入れていました。
最近では、ユーザー体験の高さで差別化をはかり、競い合っています。
安定性と品質は、プロダクトの成功に不可欠です。
これはトナール社の開発者たちにとっての最重要課題でした。
「ユーザー数は多いのですが、バグを報告するユーザーは比較的少ないです。私たちは非常に安定した製品を持っており、目標はそれを維持することです。- トナール社、モバイルソフトウェアエンジニアリングシニアマネージャー、マックス・ラピデス氏」
トナール社は、ニューヨークマガジンのベストスマートホームトレーニングソリューション2022年にランクインしています。
また、メンズヘルスでも、ベストコネクテッドケーブルマシン2022にランクインしています。
トナール社は、スマートホームトレーナーの業界水準を定めており、その標準を維持するために、開発者たちは製品がユーザーの期待に応えられるように、今までとは違うアプローチをとっています。
彼らは、製品の問題を減らすだけでなく、完全に無くすことに注力しています。
「エラーやクラッシュを減らそうという意識は持っていません。なぜなら、私たちは、システムがクラッシュすることを想定しておらず、システムはクラッシュしないと想定しています。」
バグのないUXを実現するワークフロー
当たり前ですが、システムエラーはどのシステムにも存在します。しかし、そのエラーがユーザーに影響を与えることを防がなければなりません。
そのためには、パフォーマンスモニタリングと自動エラーレポートを開発作業に取り込む必要があります。
マックスのチームは、Debug Symbolを使用して、エラーログをデバッグの段階で活用することでこれを実現しました。
そして、スタックトレースからSentryが提供する追加のデータコンテキストを使用しています。
例えば、このスタックトレースだけでは、必要なコンテキストデータがあまり得られないため、デバッグには使えません。
しかし、マックスのチームがデバッグ用のシンボルをSentryにアップロードすると、シンボル化されたスタックトレースができてしまいます。
「Sentryがなければ、これらのデバッグ用シンボルファイルを収集する必要があります。Sentryは、App Store Connectや CIシステムからのアップロードから自動的に収集します。これにより、不明瞭で難解なデータを人間が読めるものに変換することができるようになります。」
トナール社がスムーズなUXを維持するもう一つの方法は、Sentryにパンくずリストを設定することです。
これにより、問題を調査している開発者たちは、エラーにつながったユーザーのアクションを時系列で確認することができます。また、問題を再現し、迅速に解決するために必要なすべてのコンテキストも確認することができます。
「これらのユーザーイベントは、デバッグに役立つアプリ内のユーザーのアクションの流れを表していることに気づきました。そこで、現在ではこれらのユーザーイベントもパンくずリストとしてSentryに送信しています。 これにより、Sentryを起動したまま、問題が発生する前のユーザーの行動を正確に把握できるようになりました。」
例えば、新機能のエッジケースのテストでQAエンジニアが、UIの問題を見つけることがあります。
Sentryは、ユーザーがエラーに至るまでに行ったHTTPリクエストや、ユーザーが行ったナビゲーションなど、その問題に関するリアルタイムのデータを表示してくれます。
また、Sentryは担当チーム、Flutterのバージョン、ビルド番号などの詳細なコンテキストデータも提供してくれます。
これにより、対処可能なバグレポートを提出することが簡単になります。
バグレポートには、問題を再現し、最終的に解決する方法について、十分な情報が詳細に含まれています。
コードを “即断即決で “修正することなどありえない
トナール社は、2019年から続いている2週間のスプリントとデプロイの徹底した周期に従っています。しかも、そのペースは2019年から変わっていないそうです。
規則的で予測できるリリースは、安定して高性能なユーザー体験を提供するための高い基準をチームに課すことになります。しかし、モバイルでは、その場でコードを修正することは、あまり現実的ではありません。
「AndroidとiOSの両プラットフォームに対応したアプリを再構築する必要があります。そして、24時間から48時間かけてレビューを行い、Google PlayとApp Storeの両方にリリースすることができます。その後、ユーザーの端末で自動的にアップデートされるのを待ちます。重要な機能を追加する場合は、さらに3日ほどかかることもあります」
そのため、マックスのチームはデプロイ前の約一週間、QAでビルドを確認し、リリース用のダッシュボードで監視するようにしています。
リリースは個々のビルド番号で標準化されており、QAを通過すると、チームは最新のビルド番号を「ゴールドマスター」と宣言します。
これで本番リリースの準備が整います。
「Sentryで重大な問題が確認された場合、通常48時間以内に修正することが可能です。しかし、目標はこうした問題が本番環境で発生しないことです。」
トナールのチームは、プラットフォームの安定性、復旧力、ユーザー体験に重点を置いています。マックスのチームは、開発能力とSentryのカスタムソリューションを組み合わせているため、以下のようなことができるようになります。
- 詳細なコンテキストデータを含むエラーを積極的に監視します。
- プラットフォームの安定性とUXに直接影響を与えるエラーを簡単に優先順位付けすることができます。
- 品質を犠牲にすることなく、きっちりとリリーススケジュールを維持します。
- アプリ内のユーザー行動を分析し、解決までの時間を短縮します。
- ユーザーに高いパフォーマンスのUXを提供することで、他社よりも優位になります。
「Sentryは、私たちがプラットフォームの安定性を維持するのに役立ちます。
Sentryは、ユーザーたちに直接影響を与えるようなコードをリリースするのを防いでくれます。私たちにとって良い日とは、クラッシュがないときです…それが毎日ならいいですが」
Sentryは、アプリケーションコードの健全性を監視するために不可欠です。エラートラッキングからパフォーマンスモニタリングまで、開発者は、フロントエンドからバックエンドまで、アプリケーションをより明確に把握し、より迅速に解決し、継続的に学習することができます。
Sentryは、世界中の350万人以上の開発者と85,000以上の組織に愛され、Disney、Peloton、Cloudflare、Eventbrite、Slack、Supercell、Rockstar Gamesといった世界的有名企業の多くにコードレベルの監視機能を提供しています。
毎月、世界中で人気のサービスやアプリケーションから、数十億件の例外を処理し続けています。
IchizokuはSentryと提携し、日本でSentry製品の導入支援、テクニカルサポート、ベストプラクティスの共有を行なっています。Ichizokuが提供するSentryの日本語サイトについてはこちらをご覧ください。またご導入についての相談はこちらのフォームからお気軽にお問い合わせください。