「小規模でもパワフル」: Plexによるグローバルコミュニティへの貢献
2023年10月3日
Plexのチームは、バグや潜在的な問題に対応する上で、「最初にまずバグを見つける」という優れた手法を見出しました。
PlexでAppleプラットフォームのシニアソフトウェアエンジニアを務めるSteve Barnegren氏は、「私たちは非常に効果的なプロセスを用いています。プロセスが整っていれば、物事が悪化することはありません」と述べています。
エンジニアリングマネージャーのAlex Stevenson-Price氏は、2009年に設立されたPlexは「ストリーミングコンテンツのグローバルコミュニティ」として機能するよう構築されていると言います。同氏は7年以上Plexで働いています。ストリーミングサービスとメディアサーバを提供するPlexの目標は、検索からコンテンツ管理、ウォッチリストの整理に至るまで、あらゆるストリーミング体験に対応することです。
これにより、より多くの時間をかけて適切なソリューションを探すことができます
Plexプラットフォームおよびパートナー担当プロダクトマネージャー、Ami Bakhai氏
すべてをスムーズに進めるため、Plexのチームは6週間のスプリントを行うことで、ブロック単位で考えてワークフローの停止点を定め、次のステップを評価する機会を定期的に提供しています。プラットフォームおよびパートナー担当プロダクトマネージャーのAmi Bakhai氏は次のように述べています。「機能を完成させたり物事を前に進めたりする際は、この方が勢いがつくことに気付きました。チームにはそれぞれのコミットメントがあります。これにより、より多くの時間をかけて適切なソリューションを探すことができます」。Plexのチームは、イテレーション、配信とリリースを迅速に行うため、機能のテストと問題の検出が難しくなる場合があります(Plexは、tvOSのフラグシップや、iOS、iPadOS、macOS向けアプリのスプリントを行いながら、アップデートを定期的にリリースしています)。
Plexはあらゆるプラットフォームへの幅広いリーチを誇りますが、巨大なチームが背後にいるわけではありません。Plexの完全リモートのチームは、Xcode CloudやTestFlightなどの洗練されたデベロッパツール、効果的な社内組織、Slackとの統合、10年以上貢献を続ける忠実なベータ版テスターの活発なコミュニティによって支えられています。Plexのプロダクトマーケティング担当ディレクター、Danni Hemberger氏は次のように話します。「私たちのチームは比較的小規模ですが、パワフルに稼働しています」
Plexのチームはこの夏、QAプロセスに大きな変更を加えました。リリース直前だけにQAチームが入るのではなく、プルリクエストごとに実施する継続的なプロセスとしてQAを位置付けたのです。Barnegren氏は、「それまで、QAチームは最後の最後に問題を見つけ、すべてを台無しにしていました」と笑います。「今では、『OK。10個の機能を組み込み、すべてQAの精査は済んでいるので、ボタンを押す準備は万端だ』と言えるようになりました」
今では、『OK。10個の機能を組み込み、すべてQAの精査は済んでいるので、ボタンを押す準備は万端だ』と言えるようになりました
PlexAppleプラットフォーム担当シニアソフトウェアエンジニア、Steve Barnegren氏
継続的QAプロセスは、継続的デリバリプロセスをそのまま反映したものです。Plexでは、以前は新しいビルドが一般公開される前にテストを行っていました。現在は、Xcode Cloudを通じて全社員にナイトリービルドを送り、全員が最新バージョンのアプリに確実にアクセスできるようにしています。
リリースは社内で詳細にチェックされた後、Plexのベータ版テストコミュニティ(より正確には「ベータ版テスト都市」)に移されます。テスターの数は約8,000人に上り、中にはPlexの初期から参加している方もいます。Stevenson-Price氏は、「フィードバックを絶え間なく繰り返すプロセスには大きな価値があります。主力製品について理解しているパワーユーザーがいる場合はなおさらです」と話します。
フィードバックとコミュニケーションはすべて、TestFlightとPlexのカスタマーフォーラムで行われます。「これが特に重要なのは、アプリの一部にパーソナルメディアを提供するユーザーがいて、数々の珍しい形式や難解な形式が使われる可能性があるからです」とBarnegren氏は説明します、
さらに、すべての新機能やバグ修正でこのプロセス全体が自動化されています。Plexのチームは追加の作業や手動配信を行うことなく、すぐに最新バージョンを使うことができます。世界中で展開している企業にとっては特に有意義なことです。Hemberger氏は、「これは状況共有のリマインダーとしても有効で、当社のマーケティングチームは最新情報を把握することができています」と語ります。
これは、継続的インテグレーションシステム(CI)の効果的な活用事例でもあります。Stevenson-Price氏は次のように述べています。「私はインディーデベロッパでしたので見方が偏っているかもしれませんが、すべてのインディーデベロッパはXcode CloudのようなCIを試してみるべきだと思います。中にはメリットを感じず、『アプリは自分でビルドしている。なぜビルドするためにCIが必要なのか?』という疑問を感じるデベロッパもいるかもしれません。ですが、CIはセーフティネットなのです。コードをプッシュするたびに、一貫した形でアプリがテストされ、ビルドされます。この方法は、私たちのもののようなマルチプラットフォームアプリにとっては特に大きな価値を持ちます。そして自在に使えるさまざまなツールが提供されています。それに慣れてしまうと、もう後戻りはできません。」