大規模なサービスで、ユーザ
ーとの接点をつくる。「LI
NE NEWS」フロントエ
ンド開発のやりがい。
大規模なサービスで、ユーザーとの接点をつくる。
「LINE NEWS」フロントエンド開発のやりがい。
西山 大河(にしやま たいが)2019年入社
エンジニアとしてLINEに新卒入社後、「LINE NEWS」のフロントエンドエンジニアとして勤務。
※この記事は、2020年に取材・掲載したものを一部修正して再掲載しています。サービス名称や所属は取材当時の内容です。
2019年の新卒入社で、Webフロントエンド開発を行っています西山大河です。入社して以来ずっと「LINE NEWS」の開発をしています。学生時代からユーザー向けアプリやWebサービスを開発することに興味があり、サークルやインターン、アルバイトなどでプログラミングをしていました。また、人事や就活生のみなさんによく知られている「夏のITエンジニアインターンの情報が集まる魔法のスプレッドシート」というものをつくっていました。
LINEについては、圧倒的な規模のサービスを提供している会社であり、また新しいチャレンジをたくさん行っている会社という印象と興味を持っていました。併せて、LINE Developer Meetupを京都で定期的に開催していて存在感があったことや、大学の尊敬する先輩がLINEへの就職を選んだことも就職先として意識するきっかけの一つでした。実は、インターンシップには1度応募して、コーディングテストで落ちたこともあります。気持ちを入れ替え、再チャレンジとして就職活動の1社目として応募したのがLINEでした。
コーディングテストと面接を経て内定をいただきました。フロントエンドエンジニアとして働きたい希望が面接の段階から尊重されていて安心感があったことや、初任給が一律ではなく個別にオファーされることなど、一人ひとりをちゃんと見て評価してくれていると感じたことが好印象で、安心して内定受諾を決心できました。
たくさんのユーザーに利用されるサービスをつくりたいということを伝えるなかで、ユーザー向けのサービスを担当するいまのチームに配属が決まり、いまも担当する「LINE NEWS」の開発に関わることになりました。たくさんの人に利用されるサービスに携われることは希望通りでしたが、いきなり月間7,700万人ものユーザーが閲覧するサービス(※2021年8月時点) に関わることになったのは正直不安もありました。配属当初は、「草野球しかしたことがないのに急にプロ野球のバッターボックスに立った」ような気持ちでしたね。一番最初にした仕事はとてもとても小さい機能で2行だけのコードでしたが、実際にサービスに組み込まれて、感動したことを覚えています。そのときの様子をLINE Engineering Blogでも紹介しているので、興味があればぜひ見てみてください。
配属してから半年ほどは、新しい機能の実装や改修、バグ修正などを担当していました。自分が開発したなかで一番印象に残っているのは、記事の下に並ぶ関連記事のデザインを5種類のパターンで表示させてUIのABテストを行うというものです。「LINE NEWS」ではデータ分析を専門として行うメンバーがいて、常にさまざまなまABテストを行っています。実装する量が多かったことや仕様の理解が難しく苦戦した記憶があります。いま振り返ってみると、「もっとうまく実装できたな」「こういうテストを書けばよかったな」と学んだ点もたくさんありましたね。2020年に入ってからは、「LINE」と「LINE NEWS」をつなぐ内部的な仕組みの刷新に取り組んでいます。LINEのWebフロントエンド開発はWebに完結せずに、「LINE」と連携することが大きな特徴の一つです。
「LINE NEWS」は2週間サイクルで新機能の追加や機能改善などのリリースを行っています。ただ、私が担当する開発案件は比較的変更の規模が大きいため約1カ月のサイクルでリリースを行っています。開発が進む流れに沿って、少し具体的に業務を説明します。
多くの場合は何かしらの事業やサービス上の課題に対して、開発を検討して進めることになります。そのため、まず最初に技術的な検証や調査を行い、その課題解決のためにどのような変更が必要か、その変更を進めるにあたりどのような問題があるかを洗い出します。そして次に、「LINE NEWS」の開発に携わる色んなメンバーと相談を重ねて、開発の方針を決めます。APIの追加や改修が必要な場合はサーバーサイドの開発メンバーに調査や開発を依頼しますし、機能やUI/UXに影響がある場合には、企画やデザイナーと仕様の相談をします。サーバーサイド開発、続いて企画・プロダクトマネージャー、UIデザイナーの方々といった順番で会話する機会が多いですかね。
ある程度開発の方向性が固まってきた段階で、「LINE」や社内ライブラリやSDKを開発しているチームとも相談を行います。「LINE」側の変更が必要な場合、社内でほかのチームが開発しているライブラリやSDKの変更が必要な場合は、都度相談や依頼を行います。LINEはグローバルに拠点があるので、このとき関係してくるメンバーや部署が国内のほかの拠点だったり海外だったりということも普通にあって、海外のチームとコミュニケーションを取る機会も多いですね。基本的にはSlackなどのチャットで会話しますが、ビデオ会議でつなげて会話をすることもあります。ちなみに、私自身英語はほとんどできませんが、海外の担当者との業務もある程度成り立たせることができています。チャットでは翻訳Botと不慣れな英語を半々くらいでなんとか会話を成立させ、会議だと会社に所属する英語・韓国語の通訳担当に入ってもらいながらコミュニケーションをしています。業務のなかで実践的に英語に触れる機会があることは、LINEで働くうえでの刺激の一つだと思います。
話をもとに戻して、さまざまな関係者と認識のすり合わせや共有が完了すると設計・実装を行います。設計・実装に悩んだ場合は、周囲のメンバーやマネージャーと相談や議論しながら、コードレビューを経つつ開発を進めます。開発が完了するとQA(品質保証)です。内容の相談をQA担当者と行ったうえでテストを実施し、見つかったバグに対しては調査・修正を重ねて、リリースにいたります。個人的にはリリース時が一番ドキドキする瞬間ですね。自分のスマートフォンで実際に「LINE NEWS」を開いて新機能が動作しているか確認します。簡単ですが、これが一連の流れになります。
現在のプロジェクトでは、一般的な新機能開発や機能改善に比べると、手探りなところが多いので、検証や調査、さまざまなチームとコミュニケーションする時間が多いですかね。あと、担当しているプロジェクト以外では、フロントエンド開発チーム内で設計や実装のレビュー・モブプログラミングなどを日々行っています。
業務のなかでいつも意識しているところを挙げると、まず「改善できるところを常に探す」ことです。コード品質やUI/UX、バグ、パフォーマンスなど、フロントエンドの観点で改善できることが少しでもないかをいつも探しています。個人的に見つけて開発対応することはもちろん、チームメンバーと議論するキッカケにもなりますし、問題意識を共有することでチームのみんなでより良い改善が行えるように働きかけることも意識しています。
次に、「今後新しいメンバーが入ったことを意識して開発する」ことです。いまつくっているものは自分を含むいまいるメンバーだけでずっとメンテナンスされるわけではありません。そのため、難解な実装や暗黙知ができるだけ少なくなるように、「何も知らない新しいメンバーが入ってきたときにどう感じるだろうか」と考えるようにしてします。「このコードを初めてみた人は機能や意図が分かるだろうか?誤解させないだろうか?」とか「この情報は、いまのメンバーだけの暗黙知になっていないだろうか?」ということを意識して実装したり、ドキュメントを整備したりするように心がけています。
最後にちょっと毛色が違うポイントですが「ニコニコする」こと。おもしろい案件に携わりたいですし、いろいろな経験を積みたいと思っていますが、そのためにはいろいろな人と当たり前にコミュニケーションができることや、それを邪魔する要因をつくらないことが大事だなと思っています。単純かもしれませんが、さまざまな人に頼ってもらえるように怖い顔をするのではなくニコニコするようにすることで、自分のチャンスを減らさないようにしています。あとは、やっぱり仕事でもニコニコ楽しい方が良いので、いろいろ良い効果があると思います。
やりがいとしては、最初にもお話ししたようにLINEのサービスは非常にたくさんのユーザーに利用され、そのなかでユーザーとの接点となるフロントエンドはとても重要な部分の一つだということです。一つのバグが多くのユーザーを困らせてしまうこともありますが、逆に一つバグを直す、UXを良くすることがたくさんのユーザーを少しずつハッピーにできます。プレッシャーも大きいですが、少しでもよいサービスにしようと頑張る原動力になる。やりがいが大きい仕事だと思います。
あと、大きな組織のなかでさまざまなレイヤーのたくさんの人と協業して働くことは、まだまだ慣れず難しい部分でもあります。同じエンジニアでも立場や領域が違えば課題への認識や解決のアプローチに差があります。デザイナーや企画など、さらに考え方から違う人たちとも連携して、最適な解決策を実現することが役割のため、意識して慣れていかないといけないと思っています。
自分のなかで変化を感じることとしては、広い視野が身に付いてきたように感じます。入社時は、とにかく与えられた目の前のタスクを上手くこなすことばかり考えていました。新しい機能やバグ修正を次のリリースに乗せ、ユーザーに届けることが重要でした。いまではもう少し視野を広げ、直近のリリースだけでなく長期的に自分のつくり出したものがどう影響するかを自然に考えるようになっていると思います。たとえば、「LINE NEWS」は常に機能改修や多数のABテストを行っているので、比較的新しく実装した機能を削除することも少なくありません。このため、追加した実装が削除しづらいと結果的に開発コストが高くなってしまいます。また、あるバグを無理のある形で修正した場合、ほかのメンバーを混乱させてしまい、将来的により影響の大きいバグの原因になることもあります。実はこれらは、僕が実際にしでかしてきたことでして、どうすればもっとうまくできるだろうかと、格闘しているところでもあります。
また、「LINE NEWS」が長く運用されているサービスだからこそ、いまよりも良いものにするためにソフトウェア全体の品質をどう維持させるかを考えることはサービスの成長にとって非常に大切で、ソフトウェアエンジニアとして向き合う価値のあるテーマだと思います。
要素はいろいろとありますが、純粋にWebサービスの開発が好きな人、楽しめる人が向いている環境なんだと思いますね。実際に働いているのは、楽しく技術を追求できている人がとても多い印象です。あと、チームとしての働き方の観点では、LINEはフラットでボトムアップなチームが多い。そのため、サービスやコード、開発体制など何についても、積極的に意見したり提案したり、周りを巻き込んで実際に変化を起こせる人が求められているなと感じています。
みなさん同じことをいうかもしれませんが、優秀なエンジニアがたくさんいるのでとても刺激になります。いろいろなサービスのコードが読めるのも勉強になりますし、楽しいですね。
また、フレックスタイム制度が適用されているなど、始業時間や就業時間が柔軟です。高いパフォーマンスを出すために会社の環境や制度が整っていると思います。集中力が切れてきたら休憩も自由ですし、昼寝もOKです。
学生時代はまず、ぜひ研究や自分の好きなことに没頭してほしいと思います。
同期入社のメンバーを見ても、社内のメンバーを見ても、専門領域はさまざまですが非常に尖ったリスペクトできるメンバーばかりです。新卒の枠にはまらず働きたい、その働きをしっかり評価されたい意欲的な方にぴったりな環境だと思います。