こんにちは。
LINE フロントエンド開発センターの安部です。
私が所属するフロントエンドチームでは月間154億PV(2021年8月時点)の大規模サービスであるLINE NEWSの機能追加・改善に日々取り組んでいます。
LINE NEWSの開発を継続していく中で改善のアイデアや要求は日々蓄積していきます。
エンジニアもそれぞれ理想やモチベーションを持って開発を続けていますが稼働中のサービスに対しアーキテクチャやフレームワークの刷新といった大きな変更を伴う改善に着手できる機会はそう多くありません。
またLINE NEWSは企画・開発・QAが分業体制になっているため開発側の都合だけでは作業の優先順位付けができず技術的負債が放置されてしまうこともあります。
その少ない機会への備えや現実的な制約へのフラストレーション発散の場としてLINE NEWSのフロントエンドエンジニア全員で「LINE NEWSを作り直すなら?」というテーマで各メンバーが抱いている理想や、その理想の実現を阻害する原因について話し合うWorkshopを実施しました。
今回の記事ではそのWorkshopの様子を紹介します。多人数チームでの開発や大規模サービスの運営に興味のある方の参考になれば幸いです。
Workshopのながれ
Workshopは1日かけて以下のようなスケジュールで実施しました。
午前の部
- 課題の抽出
- 抽出した課題の深堀り
午後の部
- 中間共有会:深堀りした内容を他の参加者に共有
- 課題への取り組み
- 最終共有会:取り組み結果を他の参加者に共有
またメンバーはほぼ全員リモート参加なのでコミュニケーションはオンラインホワイトボードのmiroとZoomを使います。
課題の抽出
まずは1チーム3人程度に分かれて現状の課題や不満についてブレストを行います。ここで意識するのは「LINE NEWSを作り直すなら?」というテーマについてです。
いつでも取り掛かれる局所的な改善ではなく「影響範囲が大きい」、「エンジニアリソースを確保するのが困難」といったリニューアルのタイミング以外では着手することが難しい問題を中心に洗い出していきます。
「広告をパーソナライズしたい」、「UIが単調」といったユーザー目線での課題や、「ABテストの実装コストが高い」、「デプロイ作業に手動タスクがあり事故りやすい」といった開発者目線での課題が上がってきます。
ある程度課題が出てきたら今度は課題をそれぞれ深堀していきます。
選択した課題に対して事前に準備した「この課題は誰にどういったインパクトを与えますか?」、「課題に気づいた(遭遇した)場面はどういった時ですか?」といった質問に回答していくことで課題の対処法や解決のメリットについて考察を深めていきます。
ここまで出来たら一旦各チームから出てきた課題を中間報告として参加メンバー全員に共有します。 共有を受けたメンバーは課題に対してコメントやリアクションなどでフィードバックします。
課題への取り組み
深堀した課題の中から各チーム一つを選んで課題についての取り組み方を検討していきます。
今回のWorkshopに参加しているメンバーは全員エンジニアなので「エンジニアが解決できる問題」として「修正の影響範囲が特定しづらい」、「ABテストを簡単にしたい」、「Fluxはテストしづらい」といった課題を選択しました。
それらの課題に対して修正影響範囲の特定やABテストの実施コストを下げる設計や手法について各メンバーで意見を出し合いながら課題解決の実現性や方法、有用性について話し合います。
取り組み方は課題の性質によって変わるので、チームで議論や調査を行ったり実際に手を動かしてみたり、それぞれに合わせたやり方を各チームで判断します。
私のいたチームでは「ABテストを簡単にしたい」という課題についてディスカッションしました。結果として「ABテスト用のラッパーコンポーネントを作成する」、「処理の一部をサーバーサイドに寄せる」などのアイデアが出てきました。
他のチームではコードの依存関係可視化ツールを動かしてみたり、ReactのcreateContextを使用したテストのスタディを行ったりしたようです。
時間いっぱい取り組んだら最終成果物としてこの取り組みでやったこと・分かったことを各チームから発表します。
ここでも中間報告と同様にメンバーから各取り組みの成果についてフィードバックを送り合います。
Workshopを終えて
このWorkshopをとおして各メンバーがどういった課題意識を抱いているのか解決に向けてどういったコミュニケーションをするのか、どんなアイデアを持っているのかなどを知る良い機会になりました。
私はこのときチームに合流してまだ一ヶ月程度と日が浅くLINEのサービスに対してのドメイン知識も乏しい状態でしたが、そんな新入りの私の意見にもきちんと耳を傾けてくれるとてもオープンなコミュニケーションができました。
チームではデイリーのミーティングやコードレビュー、Slackでのやりとりなど日頃から活発にコミュニケーションが取られているので課題は概ね共有されていると思いますが「LINE NEWSを作り直すなら?」といったテーマに取り組むことで日頃関わっている業務をいつもより少し俯瞰的に見ることができました。
また1年経つ頃には新しい課題や、ここでの課題の解決策が出てくるかもしれないので折に触れて自問してみたいなと思います。
さいごに
LINEでは一緒に働いてくれるフロントエンドエンジニアを募集しています。
大規模チームでのフロントエンド開発やプロダクト改善に興味のある方、一緒にLINE NEWSを良くしていきませんか?