LINEのフロントエンド「UIT」

福島英児氏(以下、福島):本日はLINE フロントエンド開発センターの採用説明会に参加していただき、誠にありがとうございます。まず冒頭は、私から10分ほどこのLINEのフロントエンド組織について説明します。開発についてどういったことに関わっているのかなど、そういったあたりをお話ししたいと思います。

簡単に自己紹介します。福島と申します。LINEで執行役員をやっていまして、フロントエンド開発組織を統括しています。

私たちLINEでは、フロントエンドのことを「UIT」という名称で呼ぶことが多いです。User Interface Technologyの略なのですが、社内でUITと言ったら、フロントエンドの組織であったり、あとは開発の工程やフロントエンドエンジニアだったりを指しますので、これ以降のスライドでも、UITという名称でお話いたします。

ちなみに私たちはこのUITという名称を使って、外部を含めた技術コミュニティをやっていまして、Meetupのイベントであったり、あとはPodcastの配信などをやっていて、ちなみに今日参加されている方の中で、このUITのMeetupに参加したことがあったり、もしくはPodcastで聞いたことがあったり、UITを知っているという方がどれぐらいいるか、ちょっと知りたいなと思っています。

ちょうどZoomに挙手機能もあるので、もしよろしければ「知っているよ」という方、もしくは「聞いたことあるよ」という方、挙手機能を使ってもらってもいいでしょうか? なるほど。はい、ありがとうございます。ちょっとみなさんの顔が見れなくて、リアクションがあると安心するので、ぜひ。ありがとうございます。

UITの組織構成

では発表を続けたいと思います。LINEの開発拠点は、日本には東京と京都、福岡という3拠点がありまして、それ以外にも海外拠点もあって、特にここに記載されているのはUIT、フロントエンドエンジニアという職能で所属している開発拠点になります。ここ以外にも開発拠点はありますが、そちらはどちらかというとフルスタックのエンジニアが所属している感じです。

UITの組織構成はこのようになっていまして、フロントエンド開発センターの下に1室と2室、それからUIT Committeeの合計3つの組織がありまして、1室の中には、1から10の番号がついたチームがあります。チーム構成は、最小のチームでだいたい3人構成、大きいところで8人ぐらいのメンバー構成になっています。

基本的にはチームごとにプロジェクトを担当しているんですけど、例えば非常に大きなプロジェクトやサービスであれば、複数チームが1つのプロジェクトに関わっていたり、逆に1つのチームの中で複数のプロジェクトやサービスを担当していたりすることもあります。

そしてUIT 2室に関しては、ここを見るとわかるとおり、ここには京都開発室のUITチーム、LINE FukuokaのUIT室のフロントエンドエンジニアが所属しています。これはどちらかと言うと仮想組織というか、そういったメンバーが兼務として入っていまして、1つの横ぐしを刺す、クロスファンクショナルな意味合いもあって、こういった組織構成となっています。

あとはUIT Committeeというものがありまして、こちらは組織運営における意思決定を行っています。何か組織横断で進めるような内部プロジェクトであったり、もしくは対外的な活動において何か決定しなければいけないということだったりがあれば、このCommitteeで議題を投げて、検討して決定するようなかたちになっています。

このCommitteeのミーティングは、実はZoomのウェビナーで行っていて、オープンにしています。UITのメンバーであれば誰でも自由に参加できて、議論の過程であったり、どういった意思決定がされたのかというのが見えるような、そういった透明性を重視しながらミーティングをしていたりします。

LINEにおけるWebフロントエンド

これはよく面接とかでも聞かれるんですけど、やはりLINEには、ネイティブなアプリケーションの印象が強い中で、どういったWebフロントエンドの業務があるのかということはあまり知らないというか、「どういったものがあるか知りたい」という質問をよく受けます。私たちLINEでは、さまざまなサービスを提供しています。

LINEの周辺サービスという意味で、我々はファミリーサービスと呼んだりしますが、これはLINEの一番左あるホームタブに、このサービス一覧というリンクがあって、ここを見ていただければわかるとおり、さまざまなサービスを提供しています。例えばこの中でいくと、右の一番下にあるLINEスケジュールなどもし使ったことがある方なら知っていると思いますが、タップするとLINEの中でアプリケーションが立ち上がります。

こういったアプリケーションは、基本的にはシングルページアプリケーションとして開発されていて、私たちの業務のだいたい6割から7割ぐらいは、こういったWebアプリケーションの開発です。

ここから一歩踏み込んで、フロントエンドエンジニアにとってLINEという会社の特徴は何だろうということですが、サービスを提供する対象ユーザーのバラエティさが、1つの特徴なのかなと思っています。

例えばコンシューマー向けであれば先ほどもお伝えしたようなファミリーサービスがあります。これはわかりやすく言うと、LINE NEWS。LINEアプリのニュースタブにあるようなものです。このLINE NEWSはすべてWebで作っていますし、それ以外にもLINEギフトであったりLINEポイントクラブであったりも、Webアプリケーションとして開発しています。

また法人向け、ビジネス向けというところであれば、私たちLINEでは、LINE公式アカウントを企業さまや店舗さまに提供して利用してもらっていて、こういったLINE公式アカウントのための管理コンソールであったり、ダッシュボードも私たちが開発していたりします。

そして最後に、開発者向けのプロダクトもあります。LINEログインを組み込んでもらったり、あとはWebアプリケーションを開発するためのWebのプラットフォームと、それに付随するようなJavaScript SDKの開発に関わることが可能です。このようにB to B、B to C、B to Dなど、さまざまな対象のユーザーにはなりますが、基本的にすべてのプロジェクトに対して、私たちはアサインベースで担当を決めていくかたちになっています。

LINEの開発組織とカルチャー

簡単にLINEの組織概念図をお見せしますと、ざっくりとした図なのですが、ここを見てもらえればわかるとおり、このように私たち開発組織が何か特定の事業に紐づいているわけではありません。ですので、例えば何かプロジェクトが立ち上がる、新規のサービスが立ち上がるという時には、エンジニアやデザイナーなどから人がアサインされて、プロジェクトチームが作られるようなかたちになっています。

このようにアサインベースでプロジェクトの担当が決まるので、人によっては例えばいろいろなサービスに自分は関わりたいんだということであればローテーションしながら担当プロジェクトを変えていくということも可能ですし、逆に1つのサービスやプロジェクトにじっくりと関わりたいという人であれば継続してアサインすることも可能です。

このように、事業に紐づかないセントラルな組織だからこそ、柔軟にメンバーのやりたい領域に関わることが可能です。

ではここからちょっと話を変えて、私たちLINEの開発組織のカルチャーであったり、今求める人物像はどういったものなのかについて、ちょっとお話ししたいと思います。この3つのキーワードは、LINEの開発組織全体の中で特に重要とされているキーワードとなっています。

その中でもこの「Take Ownership」というのは、一番LINEのエンジニアに求められることですね。スペックとして決まった仕様どおりにただ開発するというわけではなくて、ユーザーにとって何が一番大事なのかということを一番に考えながら関係する部署、企画やデザイナーとコミュニケーションをしながら、より良いものを提供できるように責任を持ってプロジェクトをリーディングしていくということが求められることです。

また2つ目の「Trust&Respect」は信頼と尊重ですね。特にLINEでは、すべてのプロダクトは必ずコードレビューを通さないとプロダクション環境へリリースされないのですが、コードレビューにおいても、やはり品質を高めるために厳しい指摘が必要になると思います。そういった厳しい指摘も、やはり信頼と尊重がなければ成り立たないものですし、そういったポジティブなプレッシャーを与えながら、よりお互いを刺激し合い、チームの連携力を高めていくということが、大事とされているといったことになります。

そして最後の「Be Open」は、もちろんエンジニア同士のオープンな関係性というところです。あとはうちの会社としても、開発組織としてもオープンソースへのコントリビューションも積極的に推奨していますし、そういったオープンな風土が、LINEの特徴なのかなと思っています。

こういったキーワードを大事にしながら、じゃあ私たちUITではどういったエンジニアを求めているのかと言いますと、やはりユーザーを一番に考えて、サービス開発に取り組める方、また常にアンテナを立てて、新しい技術のキャッチアップであったりインプットをしっかりと行いながら、そういったインプットしたものをちゃんとチームにシェアしたりとかアウトプットを行える方。こういったことに共感できる方は、ぜひLINEのUITに来ていただけるとうれしいです。

MeetupイベントとPodcast

最後に、私たちフロントエンド組織としてどういった活動をしているのかを簡単にご紹介しますと、先ほどの冒頭にもお伝えしたとおり、UITという名称でこういったMeetupイベントを3ヶ月に1回行っていますし、あとはPodcastも、ほぼウィークリーでコンテンツを配信していたりします。

また社内の勉強会では、こういったものが週に1回任意で集まって勉強会を行っていたりしますし、またOSSという意味では、例えばここに記載されているようなBootstrapの日本語版サイト、実は私たちUITのメンバーが翻訳であったり運営を行っていて、LINEでホスティングをしていたりします。

それ以外にもUITのメンバーでNuxtだったりRustやPrettierなどへのコントリビューションをしているメンバーもいますし、社内でも積極的にどんどんオープンソースに貢献していこうというところも推奨していたりします。このように、比較的組織内のアクティビティもけっこう積極的に行っているのが、私たちフロントエンド開発センターの特徴なのかなと思います。私からの組織についての説明は以上になります。