LINEアプリ開発のマネージャーたちと一問一答

早石明浩氏(以下、早石):「LINEアプリを支えるクライアント開発の技術、環境やチームについて」というタイトルで、カジュアルセッションしたいと思います。よろしくお願いします。

まずは簡単な自己紹介から行いたいと思います。それでは最初に竹下さん、自己紹介をお願いします。

竹下秀則氏(以下、竹下):初めまして、竹下です。LINE Fukuokaに所属していまして、LINEアプリのスタンプによるコミュニケーション機能などを開発しているチームのマネージャーをしています。iOSエンジニアです。よろしくお願いします。

富家将己氏(以下、富家):初めまして。LINE株式会社の東京でLINEのiOSクライアントアプリの開発のマネージャーをしています、富家です。よろしくお願いいたします。

岡本雄三氏(以下、岡本):初めまして。同じくLINE株式会社所属で東京のオフィスで働いています。Androidのアプリを担当していて、そのチームのマネージャーを担当しています。岡本です。よろしくお願いします。

早石:私はLINE株式会社所属でLINEアプリの開発組織の室長をしています。本日モデレータを担当します早石と申します。よろしくお願いします。

本日は、LINEアプリ開発チームについて仕事のスタイルやカルチャー、環境について、よく面接やイベントなどで質問される内容を私たちのほうで事前に集めておいたので、そちらをマネージャーのみなさんに私から質問していきたいと思います。

このセッションはライブ中継になっていますので、みなさんが気になっている内容があれば気軽にコメントしてください。全部は無理かもしれませんが、なるべくピックアップして私のほうでコメントを拾って質問していきたいと思います。よろしくお願いいたします。

リモートワーク環境について

早石:それでは最初の質問はこちらです。このご時世で気になっている方も多いと思いますが、「どれぐらいリモートワークをしているんでしょうか?」という質問ですね。岡本さん、こちらどうでしょう?

岡本:これは本当に、最近みなさんが気にしているところだと思います。当社は2月末ぐらいからリモートワークの運用が開始されまして、緊急事態宣言中は基本リモートワーク推奨になっていました。現在は、いわゆるafterコロナにおける、新しい勤務体制にもトライして、オフィスで働いても大丈夫ですし、そのままリモートで働いてもOKということになっています。

とくに出社日なども決まっていなくて、例えば月に一度もオフィスに行かなくてもOKという状況で働いています。実際に今日は、登壇のためにスタジオに来ていますが、富家さんに会うのは2月以来でだいぶ久しぶりですね。とは言っても、いつもテレビ会議で会っているので、実際はそんな久しぶりという状況でもないのですが(笑)。

常にテレビ会議でみんなとはコミュニケーションを取っているので、とくにわざわざオフィスに行かなくても、開発などはリモートワークで十分かなという感じではありますね。

早石:本日福岡から参加していただいている竹下さんもリモートで、本セッションと同じように、我々は普段から他のオフィスとはリモートでの連携をよくやっています。今では、完全にリモートになって逆に効率的な面も増えてきたりして、なかなか興味深いなと思っていますね。

質問をたくさん用意してきたのでザッといきますが、全部は答えきれないと思います。要所要所で気になることがあったら、掘り下げていければと思います。次の質問は、「社内のコミュニケーションはやはりLINEで行っているのですか?」です。チームのコミュニケーションはLINEで行っているのかという質問ですね。富家さん、こちらはどうでしょうか?

富家:はい、これは実際に使っています。普通にコミュニケーションとドッグフーディングも兼ねて、LINEを実際に使ってバグが出るところやおかしいところにすぐに気付けるので、開発の中ではLINEを使ってコミュニケーションしたりします。そのLINEクライアントですね。

でも会社全体では、開発部署でしたらSlackも使ってコミュニケーションをしたりしています。他の部署でしたら、LINE WORKSとかを使っています。つながっていなくても社員同士のコミュニケーションとかはできるので、そういった状況において使い分けている感じになります。

早石:とくに我々はアプリを開発しているチームになるので、主にドッグフーディング目的でLINEでコミュニケーションを取ることがありますね。

入社後のポジションは変更できる?

早石:次の質問に行ってみたいと思います。LINEはアジアにいくつか拠点があると思いますが、「出張によく行ったりしますか?」という質問ですね。こちらは福岡にいる竹下さんはどうでしょうか?

竹下:今はコロナになりましたので行けていないのですが、だいたいコロナ前は年に1回ぐらい韓国にLINEの各国のクライアントチームのメンバーが集まって、ワークショップを行っていましたね。ハッカソンをやったり、みんなでちょっとしたゲームをやって親睦を深めたりしていました。

私は福岡オフィスに働いていますが、台湾も採用関連で何度か行きましたし、東京には月1ぐらいで行っていたときもあって、プロジェクトのキックオフや振り返りは、顔を合わせてやったほうが情報量の多いコミュニケーションが取れるのでいいなと思っていましたね。

早石:韓国の研修施設がデータセンターのすぐ隣にあって、山の上にあるのですが、冬に行くと非常に寒いんですよね。

竹下:寒かったですね。

早石:それはそれで、ある意味チームビルディングになったりして楽しいなと思っていました。この出張周りは東京のマネージャーの2人はどうですか?

岡本:韓国もそうですが台湾もわりと何度か行って、台湾のエンジニアと一緒にハッカソン的なイベントをやったりしていたので、今の時代になってできにくくなってしまったのが残念ではありますね。

早石:そうですよね。早くこういう状況がよくなるといいですよね。

次の質問はこちらですね。これもけっこう聞かれる話かなとは思いますが、入社後のポジションですね。「クライアントサイドとサーバーサイドなどポジションの変更はできますか?」という質問です。続けて岡本さん、こちらもいいですか?

岡本:ある程度の知識を持っている方であれば、ポジションの変更は可能ですね。とくに当社は社内公募があって、エンジニアも含めていろいろな部署から「こういう新しいことをやるので、こういった人材がほしいです」という募集を出すことができます。そのタイミングでクライアントからサーバ開発者になったり、その逆になったり、ポジション変更は可能です。

実際に私の知っている範囲でも、クライアント開発者だった人がサーバの開発者にポジションチェンジをする方も実際にいます。

早石:このあたりは新しいプラットフォームが出てきたときなどにも起こることだと思いますが、常に社内では新しいチャレンジをしたい人に対しては、そういう機会を提供しているということですね。

どんなキャリアラダーがあるか

早石:次はこれもけっこう聞かれますね。「勤務時間はどのようになっていますか?」という質問です。HR的な質問になりますが、富家さんこちらはどうですか?

富家:エンジニアは新卒だとフレックスタイムだったりしますが、基本はほとんどのエンジニアは裁量労働で働いています。コアタイムもなく、いつ来ていつ帰ってもいい感じになっています。

当社全体だと、それぞれの部署で特徴がある働き方をしています。LINEのクライアント開発においては、だいたい11時ぐらいまでには全員来て、6時半や7時くらいまで働いて1日の仕事を終える方が多いです。

早石:裁量労働という働き方ということですね。

では次の質問です。こちらはエンジニアや、マネージャーなどいろいろあると思いますが、「どのようなキャリアラダーがありますか?」という質問ですね。こちらは竹下さん、コメントいただけますか?

竹下:弊社ではエンジニアとしてのスキルを伸ばしていくキャリアの道と、マネジメントのスキルを伸ばすキャリアの道の2本があります。そのどちらかにフォーカスした道もありますし、それをどちらとも極めることもできるんですね。

例えば、一度マネジメントのほうのラダーを登っていこうとした方で、やはりマネジメントは合わないなと思われた場合、完全にエンジニアのテクニカルな道に戻ることも可能です。実際に僕の同僚にもそういう方も普通にいますね。

早石:そうですね。あとは会社によってそのラダーの切り替えに毎回テストを行うなど、いろいろなケースがあると思います。LINEの場合はスイッチにそういった課題などあまりなかったりしますね。

マネージャーとしてチャレンジしていたけれど、いろいろな事情でエンジニアに戻るという方はいて、それはそれでマネジメントとして良い経験を積んでいるので、さらにエンジニアとしてチームに貢献しているのをよく見かけますね。

海外カンファレンスへの参加サポートもあり

早石:次は「拠点間で異動できますか?」という質問ですね。拠点間というと国を跨いだり国内でも地域を跨いだ異動ですね。岡本さん、こちらの質問はどうでしょうか?

岡本:これは異動可能ですね。日本国内だと、例えば東京と福岡またはその逆ももちろんなんですが、他国間での異動、韓国から日本、日本から韓国なども可能です。例えば、実際に我々のAndroidチームでもベトナムに開発の部署がありましたが、そのエンジニアが日本に来て、今は一緒に働いているという例もあります。

早石:なるほど。そうですね。こちら東京だとそういう受け入れをしているイメージがありますが、福岡だとどうですか?同じような事情でしょうか?

竹下:そうですね。東京から来られる方、また、京都のオフィスも日本にはあるので、京都から来られた方もいます。給料なども変わらないので、比較的容易に移れるのかなと思っています。

早石:異動可能ということですね。

次の質問なんですが、「WWDCやGoogle I/Oといった海外のカンファレンスに会社のサポートで行くことができますか?」という質問ですね。こちらは富家さん、どうですか?

富家:今年は残念ながらコロナでWWDCはすべてオンラインになって、Google I/Oは中止だったので、今年は使う機会がなかったのですが、LINEには海外カンファレンスの参加サポートという制度があります。これら以外にも海外カンファレンスに参加して、それを社費でサポートすることはできます。

去年(2019年)はWWDCやGoogle I/Oは抽選で当たった人がいける仕組みだったので、当たった場合は完全にサポートしてくれます。2021年はどうなるかなという感じですが、現地に行ける場合には、同様にサポートがあるかなと思います。

言語学習の補助は?

早石:ここで質問がいくつか来ているようなので、ピックアップしてみたいと思います。1つ目は「新機能を開発したとき、何人のエンジニアが参加しますか?」「どんな部門から参加していますか?」という質問が来ているのですが、こちらは岡本さん、どうですか?

岡本:その機能の大きさにもよるので、まちまちなんですが、参加する部署としては、クライアント開発はもちろんのこと、サーバー開発側、機能や仕様などを決める企画者、デザイナーやUXエンジニアといった者が参加して、基本的には企画者が仕様を策定して、それに基づいて、エンジニアやデザイナーがいろいろフィードバックや提案を出して、プロジェクトを進めていくかたちになりますね。

小さい機能でしたらクライアント開発者が1人という場合もあるし、大きな機能でしたら複数人のクライアント開発が参加することがあります。

早石:その機能の担当者が同じオフィスにいないこともよくあって、オフィスをまたいだ協業もしていますね。

次もHR的な質問が続いていますが、「言語学習の補助がありますか?」という内容ですね。竹下さん、どうですか?

竹下:英語話者には日本語学習のサポートをしていて、日本語話者は英語学習を会社の補助で受けることができます。具体的にはプライベートレッスンやオンライン英会話の補助があります。あとはTOEICの補助もありますね。

早石:日本語の学習機会を提供する補助と英語の補助双方あることが特徴かなと思います。

竹下:そうですね。

iOSとAndroidサポートの諸問題

早石:次も似たような質問なんですが、「外国籍のメンバーはどれくらいいますか?」という質問です。岡本さん、こちらはどうでしょうか?

岡本:LINE株式会社の最新の状況だと、全エンジニアのおよそ3分の1が外国籍になっていると聞いています。福岡側はもっと割合が高いそうで、だいたい半分ぐらいが外国籍だそうですね。ただ、このLINEのアプリ開発エンジニアに限って言うと、たぶん半分以上はもう外国籍エンジニアになっていると思います。

早石:本当に多様性があるチームだなと私も思っていますね。

質問がいくつか来ているのでピックアップしつつ進めたいと思います。、次はクライアントのOSですね。「iOSとAndroid、とくにAndroid OSの古いもののサポートは、どの程度が賞味期限だと考えていますか?」という質問がありますね。これはすごい我々もよく悩む話なんですが、Androidの質問になりますので、岡本さん、どうでしょうか?

岡本:これは開発者視点から言うと、最新の数バージョンだけサポートしたいのですが、やっぱりそのユーザさんたちが持っているデバイスが、わりとまだAndroidだと古いものが使われています。LINEの例でいうと、けっこう東南アジアとかのユーザさんがいらっしゃると、その国はわりと古いOSのバージョンがまだ現役だったりするんですね。

エンジニア観点では最新の数バージョンだけサポートしたいのですが、ただそれだと古いOSを使っているユーザには使えなくなると困る問題もあります。LINE側は今はわりとがんばっていて、現状ですとAndroid OS 5までサポートはしているのですが、悩ましいところではあります。そのアプリごとによって違うことになると思うので、そこらへんは利用率を見て、判断するしかないのかなと我々は思っています。

早石:Androidの場合は利用率で見ると、古いOSは少ないですが、利用者数で見ると多いという判断もあって、古いOSをサポート継続することがあります。

ただ、最新のアプリアップデートの対象から外れても、LINE自体が使えなくなるわけではないので、そこはしばらくはサポートするという考え方になっています。

質問をたくさん持ってきたのですが、ぜんぜん最後まで行ける気がしなくなってきました(笑)。

(一同笑)

富家:ちなみに今のiOSの話はします?

早石:そうですね。iOSはすごくシンプルですよね。3バージョンをサポートしていて、一番最新だとiOS14、去年リリースされた13で、その1つ前の12までサポートしています。こちらはシンプルな流れですね。

岡本:Android側から見るとすごい羨ましいですね。

富家:一応毎回議論はするんですけどね。今年はiOS11、12、13、14で11を切るかという話だったんですが、幸いなことにデバイスに関してはすべてiOS11をサポートしているものに関しては12もサポートしているので、ユーザとしてはロスなく上に上げられるはずだという判断で今回はiOS11のサポートを切ることにしています。

早石:端末自体の違いもあって、iOSは古い端末でも最新版のOSにアップデートできますが、Androidは難しかったり、事情が異なるかなと思っています。ピックアップしていくようにしようかなと思っています。

開発サイクルはどのように回っているか

早石:開発寄りの話があまりできていなかったので、そちらに入っていきたいと思います。「開発サイクルはどんな感じか?プロジェクトはどのように進行するのか?」という質問ですね。企画から流れてくる感じですか?ということなんですが、こちらは竹下さん、どうですか?

竹下:開発サイクルの話ですね。LINEアプリは2週間ごとに新バージョンをリリースしていまして、開発期間は2週間、QAも2週間という感じで進んでいます。プロジェクトの進行に関しては、新しい機能追加と既存機能の改善などですね。

企画チームからの要請によって進められるものと、技術的負債の解消のためのリファクタリングや、新しいOSの変更に伴う修正といった開発側から進めるものがあります。

早石:最新のOSでできた新機能は、LINEになるべく取り入れていきたいと思っていて、いろいろ開発中ですので楽しみにしていてください。

先ほどの質問に似たような内容がありましたが「どのようなプロジェクトや機能に力を入れていますか?」という質問です。こちらはどうですか、富家さん。

富家:プロジェクトは何に力を入れていると言われれば、全部がんばっていますが、LINEは最近いろいろな機能も増えてきて、スーパーアプリと言われている部類になりつつあります。プラットフォームとして、みなさんにLINEを楽しく使いやすく提供できるような基盤を、どうやって作っていくのかが今注力している分野かなと思います。

LINEはもともとメッセンジャーアプリなので、メッセージの機能としてもいろいろ強化して、みなさんにはよりおもしろく楽しいコミュニケーションになるような機能追加もいろいろ追加します。例えば、スタンプや絵文字、テーマなどに注力しています。

コロナの時代であって、やはりこういったオンラインでのビデオ通話などのコミュニケーションも多くあります。回線速度もこれから5Gで、よりリアルタイムに大容量のコミュニケーションが今後メインになってくるので、そういった分野もより注力してやっていきたいなと考えています。

早石:そうですね。とくに直接会うコミュニケーションが減ってしまって、LINEが果たしている役割というのも大きくなったとすごく我々も感じていて、この辺りの機能自体の改善というのは引き続き注力していきたいと思っています。よろしくお願いします。

言語の多様性にまつわる課題

早石:別の質問コメントをピックアップしていきたいと思います。「コードへのコメントやドキュメントなどは、どんな言語で書かれていますか?日本語や英語、それとも両方ですか?」「言語の多様性について何か課題がありますか?」という質問ですね。こちらは岡本さん、どうですか?

岡本:コードへのコメントやドキュメントは、わりと外国籍のエンジニアが増えている状況なので、基本はすべて英語でコメントやドキュメントを作るようにしています。

あとは言語の多様性についての課題ですが、いろいろな国とのリモート打ち合わせがあるので、そういう場合には社内にいる同時通訳者を利用します。英語でのコミュニケーションが難しければ、母国語を使って通訳者さんに通訳してもらってコミュニケーションを取る方法もあります。

さきほど「LINEを開発で使っていますか?」という質問もあったのですが、実際にLINEを使ってグループに通訳ボットを入れてコミュニケーションを取るなどをしています。言語間の違いによるコミュニケーション上の問題をそういったツールを使って、なるべくなくすような工夫はしています。

早石:そうですね。基本的にはそれぞれのローカルな言語でコメントするよりは、英語を使ってコメントをしたりドキュメントを書くことが多いですね。

クロスプラットフォーム開発について

早石:いただいているコメントをなるべくピックアップしていきたいと思います。「iOSとAndroidのクロスプラットフォームの開発についての見解を聞きたいです」という質問があるのですが、富家さん、こちらはどうですか?

富家:クロスプラットフォームは、LINEの中ではかなり課題になっている部分ではあります。なぜかというと、歴史的な流れもありますが、最初LINEを作ったときは急いで作るみたいなところがありました。

その結果、OS間それぞれの釣り合わせをあまりしないまま作ってきたこともあって、iOSやAndroidの仕様がそれぞれバラバラになっていました。ずっと負債として抱えていると言っていいのかわからないですが、そのような課題は確かにあります。

開発メンバーも増えてきた中でこれらを統合していくことは、コミュニケーションが活発に取れるようになってきた今、これから解決していく流れになるかなと思います。

早石:私からも補足すると、いわゆるFlutterなどのiOSとAndroidの両方をワンソースで両方のプラットフォームに出せるものを、LINEアプリの特定の機能に対して適用することは行っていません。そういったものはWebを使ったり、少しパフォーマンスが要求されてさらに複雑なもの、例えば、顔認識のエンジンやエフェクトのエンジンといったものは、C++で書いて、AndroidとiOSの両方のプラットフォームに対応したライブラリとして提供しています。

ただ、基本的な機能に関しては、それぞれネイティブのコードで実装しているのがメインですね。AndroidとiOSのネイティブの開発者が、それぞれをメンテナンスしているのが今の状況です。

次の質問がラストになります。「LINEの新機能開発ではエンジニアが少人数のチームに分かれてそれぞれのアップデートを作成していますか?またはすでにある機能との連携はどうしていますか?」という質問です。

我々東京側のチームが福岡のチームとうまく連携できていると思いますので、竹下さん、こちらお願いします。

竹下:機能の大きさにもよるんですが、例えば福岡の中でも少人数のチームに分かれて、その機能を作っていますね。すでにある機能との連携でいうと、LINEの中でも我々が開発する機能と被っている部分を別のパート、別のブランチのところが作っていたりします。

そういったところとコードレビューやチャット、ビデオ会議などでコミュニケーションを取りながら問題が起きないように進行したり適宜コミュニケーションを取っていますね。

早石:それぞれの機能ごとに少人数のチームに分かれて、我々はコミュニケーションを取りながら継続的に開発しています。

いろいろなコメントをいただきまして、ありがとうございます。答えられなかった質問は、あとでできるだけ回答したいと思います。それでは、ここで時間が来ましたので、終わりにしたいと思います。ご視聴ありがとうございました。