Interviews/

玉田 晃寛 / フロントエンド

自己紹介をお願いします
2019年に新卒として入社しました玉田です。それ以前は大阪大学大学院の情報科学研究科で、フォントの自動生成をテーマとした研究に取り組んでいました。大学生の頃にインターンとしてLINEで働いたこともありました。そのとき、多様なバックグラウンドを持つ人たちが働いていて面白そうだったこと、そして自由な雰囲気があって自分のやりたいことにチャレンジできそうだと感じたことから、LINEに入社することを決めました。

入社して配属されたのは、Webフロントエンドの開発に取り組むフロントエンド開発センターのFront-end dev 6チームです。最近では、LINE公式アカウントとその他の様々なアカウントを結びつけるための、新たなプロジェクトの中でWebフロントエンドの開発を進めています。
これまでどのような仕事を担当してきましたか
最初に携わったのは、LINE公式アカウントのオーナーが利用する、管理用Webサイトおよびアプリの機能開発です。ポスターやステッカーといったノベルティをオーナーが発注できる、注文サイトの新規開発プロジェクトでした。いわゆるECサイトと呼ばれるサービスを小さくしたもので、プランナーやバックエンドエンジニアとの連携、新規開発ならではの実装の検討や後のメンテナンスを意識した設計など、今思い返しても新卒最初に経験するプロジェクトとしてふさわしいものだったと思います。また、ノベルティがモノとして届けられるという点も、個人的にはリアルとのつながりを実感できる取り組みでした。

他にも、リサーチプラットフォーム「LINEリサーチ」のフロントエンドを改修するプロジェクトにも参加しました。これはLINEリサーチのアプリで使われていたフロントエンドの機能について、技術スタックまで含めて一新するという内容です。既存の実装されている機能の内容を関係各所に確認し、さらに移行する必要がある機能を洗い出して新しい環境にコードを移植しました。LINEリサーチには、細かな対応は現在でも継続して担当しています。

また入社当初からフロントエンド開発組織の対外的なプレゼンスを向上させるための情報発信活動にも取り組んでいます。 User Interface Technologyの略語、UITという冠でいろんな活動をやっています。だいたい四半期ごとに開催している「UIT Meetup」やほぼ毎週配信の「UIT INSIDE」というPodcastを主な活動としています。特に私は今、UIT INSIDEを分担してリードしていて、話すテーマの企画や人のアレンジをしながら、かなりのペースで聞き手として出演しています。社内外のエンジニアとフロントエンド技術などについて語っているので、興味があればぜひ聞いてみてください。
今までで一番印象に残っている、大変だったプロジェクトについて教えてください
社内で作成したピクトグラムやアイコンを共有・管理するためのシステム「LAICON」の開発ですね。デザイナーとエンジニアの両方に対して、一貫したピクトグラムを提供するシステムであり、デザイナーが作成したピクトグラムを申請、登録するための「LAICON Manager」と呼ばれるシステムや、LINEの各サービスに自動的にデプロイする仕組みを備えています。LINE DEVELOPER DAY 2020で関連の発表をしているので、ご興味あればそちらも参照してください。

開発が始まった背景としては、LINEでは様々な事業やチームのデザイナーがピクトグラムを作成していますが、それを共有するための仕組みがなく、ピクトグラムを一括管理するためのシステムがあればいいねという話が生まれました。私は大学院でフォントを研究していて、実はピクトグラムとフォントはどちらもベクターデータであり、技術的に近い領域にあります。大学院時代に研究したことを生かせるのではないかと考え、手を挙げたところプロジェクトを任されることになりました。

フロントエンド開発の仕事は対外的に見える部分の実装が多く、多くの場合「何を見せるか」という前提は決まっていて、その上で私たちフロントエンドエンジニアは「どのように見せるか」といった部分で工夫していくことになります。しかしLAICONプロジェクトで決まっているのは「社内のピクトグラムの一括管理を推進する」という目標だけで、どのようなシステムを開発するかは完全に自由という状況のため仕様から考えなければなりませんでした。これがLAICONの開発で苦労した部分になります。また、ピクトグラムという素材の性質上、それを扱うフロントエンドエンジニア自身がシステム全体を受け持つべきという判断になり、サーバサイドも含めて責任を持って運用することを考慮する必要がありました。

それでもなんとか仕様を固め、それを実現するためのフロントエンドとサーバサイドの両方についての技術選定も進めていきました。最終的にサーバサイドではAPI経由でGitHub Enterpriseの機能を活用しつつ、Node.jsやMySQL、GraphQLなどを利用し、フロントエンドにはNuxt.jsを採用しました。GitHubの機能を使ったのは、主に開発期間を短縮することが目的です。GitHubがダウンするとサービスが提供できなくなるリスクがありますが、LAICONは社内システムでそれほど可用性は求められなかったため、その点は問題ないと判断しました。フロントエンドエンジニアがサーバサイドの技術選定を行う機会はまずないため、これは楽しい経験でした。
LAICONの開発はどのように進めていきましたか
仕様が固まった後、実装量的に私1人で対応するのは難しかったため、一緒にLAICONを開発してくれる人を探し、私を含めてフロントエンドエンジニア3人のチームでプロジェクトを進めました。

開発はアジャイルで進めましたが、私にその経験がなかったので色々と調べたり、アジャイルで開発しているほかのプロジェクトを参考にしたりしつつ、3人でうまくプロジェクトが回るようにプロセスを固めていきました。最終的には2週間のスプリントで必要な機能を取捨選択しつつ開発しています。自分一人での開発とチームでの開発はいろいろな面で異なります。純粋なフロントエンド開発については以前より自信を持って取り組んでいるつもりでしたが、それでもほかのメンバーのコードをレビューする中で気付かされることが数多くありました。そして、メンバーの思いがけない実装やアイディアに刺激を受けることも、個人開発では決してない経験でした。

リリース後も社内のユーザーからのリクエストに応じてピクトグラムの一覧を見られるギャラリーページの使い勝手向上や、資料などへ簡単にコピー&ペーストできるようにする工夫など、様々な改善を続けています。埋もれているフィードバックをいかにすくい上げるかという点も含めて、継続的にサービスを改善していく取り組みも勉強になっているところです。
自分の成長を感じるポイントは
まず技術的な面で言えば、自分がそれほど経験していない技術領域について素早く読み解けるようになったことがあります。フロントエンド開発でよく使われるフレームワークとしてはAngularやVue.js、Reactがありますが、自分が経験していないフレームワークであっても、LINEに入社してからそれなりにコードを書けるようになりました。これは特に既存プロジェクトに参加する場合に有用なスキルだと思っています。自分でコードを書くのと同じくらい、他の人のコードを読むことが重要な仕事になります。その際、このスキルを身に付けたことで、未経験の技術が使われているコードであっても迅速に意図を読み取れるようになりました。

単にプロダクトを開発するだけでなく、それを効率的に開発するにはどうすべきかなど、エンジニアとしての視点が広がっていることも、LINEに入社して変わった部分です。サービスを迅速にアップデートし続けるためには、効率的に開発を進めることが極めて重要であり、そのために必要な取り組みは何かなどが考えられるようになりました。

また所属しているフロントエンド開発センターは特定のサービスに紐付いた組織ではなく、そのときの状況に応じてサービス横断でWebフロントエンドを開発する組織です。この組織の性格が自分には合っていて、それがエンジニアとしての成長にもつながっていると思います。

少数のエンジニアで特定のサービスのWebフロントエンド開発に継続的に携わるといった場合、ジェネラリスト的に幅広い領域のWebフロントエンド開発に携わらなければなりません。一方大人数で様々なサービスの開発を行う形であれば、エンジニア間で作業分担を行いやすく、特定の技術を深掘りすることもできます。1人で幅広い技術に触れることも可能であり、スペシャリストとジェネラリストのどちらを志向する場合でも、今の組織はエンジニアとしてスキルアップしやすい環境だと感じています。

ただ、複数のプロジェクトに並行して関わることが多く、入社した当初は作業時間の切り分けにとても苦労しました。現在は、タスク管理やリソース配分が適切にできるようになりつつあると感じています。今やらなければならないことと、今やる必要がないことを見極められるようになったことが大きなポイントですかね。また、作業が他の要因で止まる可能性がある場合には、そのクリティカルパスを把握し、適切に対応することも重要だと感じています。
今後のキャリアについて
フロントエンドエンジニアとして実現したいことは、「フロントエンドの技術を使って、より良い表現を実現する」、「フロントエンドの技術を使って作られたプロジェクト自体が、ユーザーの表現や発信の媒介・プラットフォームになる」といったことです。これは入社以来変わっていません。

その実現に向けた取り組みを進めていきたいと思いますが、それを1人で実現することが難しいのであれば、複数のメンバーとプロジェクトを組んで実現するための活動をしてみたいと考えています。その先に将来的にマネージャーとしてプロジェクトに取り組むことになったとしても、目標を達成するための手段と捉えて活動すると思います。

今後のキャリアを考える際、LINEには参考になるエンジニアがたくさんいます。長年フロントエンドに携わってきたエンジニアがLINEに中途入社して活躍されている例も多く、そうした人たちから話を聞くのは刺激になりますし、今後のキャリアを考える上でのヒントをもらえます。こういった部分も、LINEに入社してよかったと感じる部分です。
最後にメッセージを
数ある技術職の中でフロントエンドエンジニアとしての道を目指すのであれば、そこでどのようなことを達成したいのかを考えて欲しいと思います。

もちろんビジネスをどのように発展させるかといった目線も大切ですが、エンジニアとしての目標を持つことは会社の成長にもつながると考えています。さらにLINEにはチャレンジする人を応援する土壌があり、目標を達成しやすい環境だと思います。ぜひ自分ならではの目標を持ち、それに向けて一生懸命になれる人と一緒に働きたいですね。