Interview/

Taiga Nishiyama

自己紹介をお願いします
2019年の新卒入社で、Webフロントエンド開発を行っています西山大河です。入社して以来ずっとLINE NEWSの開発をしています。学生時代からユーザー向けアプリやWebサービスを開発することに興味があり、サークルやインターン、アルバイトなどでプログラミングをしていました。人事や就活生の皆さんによく知られている「夏のITエンジニアインターンの情報が集まる魔法のスプレッドシート」というのを作ったりもしていました。

LINEについては、圧倒的な規模のサービスを提供している会社であり、また新しいチャレンジを沢山行っている会社という印象と興味を持っていました。併せて、LINE Developer Meetupを京都で定期的に開催していて存在感があったことや、大学の尊敬する先輩がLINEへの就職を選んだことも就職先として意識するきっかけの一つでした。実は、インターンには1度応募して、コーディングテストで落ちたこともあります。気持ちを入れ替え、再チャレンジとして就職活動の一社目として応募したのがLINEでした。

コーディングテストと面接を経て内定をいただきました。フロントエンドエンジニアとして働きたいという希望が面接の段階から尊重されていて安心感があったことや、初任給が一律ではなく個別にオファーされることなど、一人ひとりをちゃんと見て評価してくれていると感じたことが好印象で、安心して内定受諾を決心できました。

沢山のユーザーに利用されるサービスを作りたいということを伝える中で、ユーザー向けのサービスを担当する今のチームに配属が決まり、今も担当するLINE NEWSの開発に関わることになりました。沢山の人に利用されるという希望通りなのですが、いきなり月間100億を超えるPVのサービスに関わることになったのは正直不安もありました。配属当初は、「草野球しかしたことがないのに急にプロ野球のバッターボックスに立った」ような気持ちでしたね。一番最初にした仕事はとてもとても小さい機能で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に影響がある場合には、企画やデザイナーと仕様の相談をします。サーバーサイド開発、続いてサービス企画・PM、UIデザイナーの方々といった順番で会話する機会が多いですかね。

ある程度開発の方向性が固まってきた段階で、LINEアプリや社内ライブラリやSDKを開発しているチームとも相談を行います。LINEアプリ側の変更が必要な場合、社内で他のチームが開発しているライブラリやSDKの変更が必要な場合は、都度相談や依頼を行います。LINEはグローバルに拠点があるので、このとき関係してくるメンバーや部署が国内の他の拠点だったり海外だったりということも普通にあって、海外のチームとコミュニケーションを取る機会も多いですね。基本的にはSlackなどのチャットで会話しますが、ビデオ会議でつなげて会議をすることもあります。ちなみに、私自身英語はほとんどできないのですが、普通にというか海外の担当者との業務もある程度成り立たせることができています。チャットでは翻訳Botと不慣れな英語を半々くらいで何とか会話を成立させ、会議だと会社に所属する英語・韓国語の通訳さんに入ってもらったりしながらコミュニケーションをしています。自然にというか、業務の中で実践的に英語に触れる機会があることは、LINEで働く中での刺激の一つだと思います。

話をもとに戻して、様々な関係者と認識のすり合わせや共有が完了すると設計・実装を行います。設計・実装に悩んだ場合は、周囲のメンバーやマネージャーと相談や議論したりしながら、コードレビューを経つつ開発を進めます。開発が完了するとQA(品質保証)です。内容の相談をQA担当者と行った上でテストを実施し、見つかったバグに対しては調査・修正を重ねて、リリースに至ります。個人的にリリース時のモニタリングが一番ドキドキする瞬間ですね。LINE Analyticsというアクセスやエラーに関するログがリアルタイムに表示される内製のダッシュボードで何か不具合が起きていないか確認します。また、自分のスマートフォンで実際にLINE NEWSを開いて確認も行います。簡単ですが、これが一連の流れになります。

現在のプロジェクトでは、一般的な新機能開発や機能改善に比べると、手探りなところが多いので、検証や調査、様々なチームとコミュニケーションする時間が多いですかね。あと、担当しているプロジェクト以外では、フロントエンド開発チーム内で設計や実装のレビュー・モブプログラミングなどを日々行っています。
仕事を進める上で、意識していることはありますか
業務の中でいつも意識しているところを挙げると、まず「改善できるところを常に探す」ことです。コード品質やUI/UX、バグ、パフォーマンスなど、フロントエンドの観点で改善できることが少しでもないかをいつも探しています。個人的に見つけて開発対応することはもちろん、チームメンバーと議論するキッカケにもなりますし、問題意識を共有することでチームのみんなでより良い改善が行えるように働きかけることも意識しています。

次に、「今後新しいメンバーが入った時のことを意識して開発する」ということです。今作っているものは自分を含む今いるメンバーだけでずっとメンテナンスされるわけではありません。なので、難解な実装や暗黙知ができるだけ少なくなるように、「何も知らない新しいメンバーが入ってきた時にどう感じるだろうか」と考えるようにしてします。「このコードを初めてみた人は機能や意図が分かるだろうか?誤解させないだろうか?」とか「この情報は、今のメンバーだけの暗黙知になっていないだろうか?」ということを意識して実装したり、ドキュメントを整備したりするように心がけています。

最後にちょっと毛色が違うポイントですが「ニコニコする」こと。おもしろい案件に携わりたいですし、色んな経験を積みたいと思っているのですが、そのためには色んな人と当たり前にコミュニケーションができることや、それを邪魔する要因を作らないことが大事だなと思っています。単純かも知れないですが、様々な人に頼ってもらえるように怖い顔をするのではなくニコニコするようにすることで、自分のチャンスを減らさないようにしています。あとは、やっぱり仕事でもニコニコ楽しい方が良いので、色々良い効果があると思います。
おもしろいことや難しいことなど、働く中でこれまでに得た感触を教えて下さい
おもしろいと言うかやりがいとしては、最初にもお話ししたようにLINEのサービスは非常にたくさんのユーザーに利用され、その中でユーザーとの接点となるフロントエンドはとても重要な部分の一つだということです。一つのバグが多くのユーザーを困らせてしまうこともありますが、逆に一つバグを直す、UXを良くするということがたくさんのユーザーを少しずつハッピーにできます。プレッシャーも大きいですが、少しでもよいサービスにしようと頑張る原動力になる。やりがいが大きい仕事だと思います。

あと、大きな組織の中で様々なレイヤーのたくさんの人と協調して働くことは、まだまだ慣れず難しい部分でもあります。同じエンジニアでも立場や領域が違えば課題への認識や解決のアプローチに差があります。デザイナーやサービス企画など、さらに考え方から違う人たちとも連携して、最適な解決策を実現することが役割なので、意識して慣れていかないといけないと思っています。

自分の中で変化を感じることとしては、広い視野が身に付いてきたように感じます。入社時は、とにかく与えられた目の前のタスクを上手くこなすことばかり考えていました。新しい機能やバグ修正を次のリリースに乗せ、ユーザに届けることが重要でした。今ではもう少し視野を広げ、直近のリリースだけでなく長期的に自分の作り出したものがどう影響するかを自然に考えるようになっていると思います。例えば、LINE NEWSは常に機能改修や多数のABテストを行っているので、比較的新しく実装した機能を削除することも少なくありません。このため、追加した実装が削除しずらいと結果的に開発コストが高くなってしまいます。また、あるバグを無理のある形で修正した場合、他のメンバーを混乱させたり、将来的により影響の大きいバグの原因になることもあります。実はこれらは、僕が実際にしでかしてきたことでして、どうすればもっと上手くできるだろうかと、格闘しているところでもあります。

また、LINE NEWSが長く運用されているサービスで、正直古くなっている部分もあります。ソフトウェア全体の品質をどう維持させるか、今より良いものにするかはサービスの成長にとって非常に大切で、ソフトウェアエンジニアとして向き合う価値のあるテーマだと思います。

要素は色々とあるのですが、純粋にWebサービスの開発が好きな人、楽しめる人が向いている環境なんだと思いますね。実際に働いているのは、楽しく技術を追求できている人がとても多い印象です。あと、チームとしての働き方という観点では、LINEはフラットでボトムアップなチームが多い。なので、サービスやコード、開発体制など何についても、積極的に意見したり提案したり、周りを巻き込んで実際に変化を起こせる人が求められているなと感じています。
LINEに入社して良かったと感じることはなんですか
みなさん同じことをいうかも知れないですが、優秀なエンジニアがたくさんいるのでとても刺激になります。色々なサービスのコードが読めるのも勉強になりますし、楽しいですね。

エンジニアは入社時点からフレックスタイム制度が適用されていたり、始業時間や就業時間が柔軟です。私は入社後比較的早いタイミングで裁量労働制になって、より働きやすくなりました。高いパフォーマンスを出すために会社の環境や制度が整っていると思います。集中力が切れてきたら休憩も自由ですし、昼寝もOKです。
最後にメッセージを
学生時代はまず、ぜひ研究や自分の好きな事に没頭してほしいと思います。

同期入社のメンバーを見ても、社内のメンバーを見ても、専門領域は様々ですが非常に尖ったリスペクトできるメンバーばかりです。LINEでは新卒という枠にはまらず働きたい、その働きをしっかり評価されたいという意欲的な方にぴったりな環境だと思います。

インターンに落ちても関係ないです、本選考もRe-Challenge制度があるのでぜひ応募してみてください!