開発フロー全体の属人化に対するソリューション

金昌熙氏(以下、金):ここまでみなさんの話を聞いてみましたが、プラットフォーム開発って、デベロッパー、ビジネスやインターナルの開発者向けということもあって、やはり思った以上に大変さもあると思います。

そこで、みなさんに今の仕事の大変だった経験とか、逆にそこから得た知見とか得られたものについてちょっと聞いてみたいと思います。まず佐藤さん、記憶に残る大変だったエピソードはありますか?

佐藤信吾氏(以下、佐藤):僕は2020年に入社して、そこからLIFF(LINE Front-end Framework)に携わっています。いろいろなフェーズでいろいろな状況があって、仕方ない部分もあったりするとは思いますが、プロダクト全体というか、SDKの開発フロー全体に属人的なところがけっこう多かったり。

先ほど言った、セマンティックバージョニングを尊重したリリースをしなければいけない中で、当時はそこも属人的で手作業でリリースしていた事実があって。それってすごく危険だし、チームとしてもスケールしていかないと僕はずっと思っていて。

そこに対するソリューションとして、一般的なCI/CDを導入してリリースを自動化して、かつセマンティックバージョニングを尊重するようなブランチングモデルを考えて、それを適用したのは、1つ大きな課題に対するソリューションだったかなと思います。

:そうやって、やっとデベロッパー向けプロダクトとして完成に近づいた実感がしますか?

佐藤:属人性も排除され、メンバーだったら誰でも安全かつ高速にリリースできるという状態にはなったので、開発スピードにも寄与したかなと思っています。

:ふだんの開発の業務以外でも、自分たちが開発する環境やプロセスを見直すのも自分たちの開発業務の一部だと思っていて。そのあたりの経験って後でも使い回しができると言うか、ほかのプロジェクトでも使えると思うので。やはりそういった知見はすごく大事なんじゃないかと思います。

佐藤:そうですね。

プロダクトの情報整理のためのドキュメント化

:ありがとうございます。続いて、山本さんは似たようなエピソードはありますか?

山本竜也氏(以下、山本)LINE Tagの社内向けのガイドを作った話をちょっとしたいなと思います。僕も2021年くらいにLINE Tagの引き継ぎをしました。先ほど言ったとおり、LINEもLINE Tagも古いものなので、いろいろな人たちに引き継ぎながらずっとやっていたものです。

僕が引き継ぎをしたタイミングで、あまりドキュメントが整理しきれていなかったり、企画の方や営業の方もすごくたくさんいるので、お客さんにどの機能をどういう情報で提供しているかとか、いろいろな面での現状がちょっとわからない状況がありました。

そのため、実装面から企画から営業、顧客に向けての情報の流れみたいな面も含めて、全部調べてドキュメントガイドを作りましょうという活動をしたのが、大変だったけれどおもしろかったです。

:その活動は自発的なもので、周りのみなさんはおそらくドキュメント化とかはありがたく受け入れてくれたと思います。Q&Aにあったんですが、逆に、ほかの人はみんな反対してたけど、山本さんのほうで自発的に「こうしたほうがいいよ」みたいな感じで意見を言って通った経験ってありますか?

山本:これも裁量の話になると思いますが、「これやるべきだよね」「やったほうがよくない?」みたいな話に対して、ネガティブなリアクションはあまりないとLINEに入って思いました。

もちろんやる行動の規模とかによって現実的な問題はありますが、「やりたいよね」「これやるべきだよね」と思ったものが、自分事で対応できる範囲の規模に対して、ネガティブなコメントはあまり聞かないなと思いました。

先ほど社内ガイドを作るというものも、そういう意味では「誰が主導するべきなのかはちょっと僕にはわかりませんが、技術の面の話もあるし、僕のほうでやるので、いろいろ情報ください」みたいな感じでコミュニケーションを取ると、UITの組織側でもNGは出てきませんでした。

実際の企画者とかバックエンドのサービスの人も「ありがとう、ありがとう」と(いう感じで)いろいろな情報をいただいて最後までできたような感じです。

:手をあげて「やりたいです」と提案した時に、みなさん協力的になってくれる感じですかね?

山本:そうなんです。LINEの人たちみんな優しいんですよ。

:優しさという一言でたぶん整理できますね。やはり自発的なアクションは非常に評価もされやすいと思っているし、みなさん部署を問わず協力してくれている雰囲気があるので、そこは非常に自由にやりやすいかなと思います。

知見を共有する文化で

最後に前川さん。前川さんは入社してまだ半年くらい? 間もないので、大変さはまだ記憶に鮮明に残っていたりするかなと思うんですけど。大変だった、奮闘したエピソードとかってありますか?

前川剛平氏(以下、前川):直近まで大変なことだらけだったと言えば大変なことだらけだったんですが(笑)。先ほど山本さんがお話されていた、チャレンジすることに対して(言うと、)みなさんあまりネガティブな意見は言わないし、それに加えて「自分たちはこうしていたよ」みたいな知見の共有をメチャクチャしてくれるんですね。

その中で、私が入社してすぐに任された仕事が、ジョブスケジューラ。たぶんみなさんcrontabはわかると思いますが、そういう定期実行ジョブがあっちこっちのサーバーに散らばっていて管理できないし、失敗した時の通知の仕組みを作るのも大変だから、そのあたりをなんとかするようなタスクがあって。

そのあたりの知見って、私にはあまりなかったんですが、それをどう解決しようかいろいろ調べまくって。最終的に行き着いたのが、Kubernetes上でArgo Workflowsというジョブスケジューラを使って、定期実行ジョブを一元管理するような話に落ち着いて。それをまとめて「これってどうですか?」みたいな感じで提案をして。

ほかのみなさんからの評判もそれなりによかったので、じゃあ実装してみようという話で。その時点で、私はKubernetesを1ミリも触ったことがなかったんですよ。なのでKubernetesを一から勉強して、どういうふうにネットワークを構成してプロダクション環境に載せるかを、1人でいろいろな人に聞きまくりながらやったというものはメチャクチャ大変なタスクでした。

:フロントエンドの組織でKubernetesとかをやるということが、そもそも経験がある人がいないという課題もありますし、やろうってなった時に助けてくれる人がいないかもしれませんが、実際には、周りのみなさんは優しく手伝ってくれたんですか?

前川:そうですね。LINEは大きい会社なので、私の所属している組織は当然フロントエンドの組織ですが、サーバーなどを運用しているバックエンドの組織の方もいて。そういう方は、例えばSlackに「ここが動かん。どうやってやればいいんだ?」みたいなつぶやきをめっちゃ残してくれたりとか。

Wikiとかに知見をメチャクチャ溜め込んでくれているんです。なので、わからないワードをGoogle検索じゃないですけど、単語を打ってSlackで検索すると、だいたい解決策が載っていたりするんですよね。

「おぉ、この人はこうやっているのか」みたいなのを使って、ちょっとずつでも歩みを進めて。入社してまだたった4ヶ月しか経っていませんが、完全に詰んだ経験は今まで本当にありません。そのあたり、みなさんの知見共有の力の偉大さを感じる時はあります。

そういう意味では、山本さんのやっているドキュメントの整理も本当にありがたいことだなと思っています。

山本:ありがとうございます(笑)。

:社内のエンジニアが自分が業務の一環で試したこととか、「こういう手順で環境構築とかでやってみたよ」というのを、ちゃんとWikiの記事として書いてくれる方が多いですよね。中にはSEO対策までしてくれる人とかもいて、親切だなと思います。

佐藤:検索のSEOですか?

:社内で検索するとだいたい出てくるんですよね。WikiのSEO対策までやってくれる人もいるんですよ。そういった環境が、知識がまったくゼロの状態からでも、ちゃんと知見を貯められて、サービスに入れるまでのレベルにつながったんじゃないかなと思います。

あと、私たちもそうやって得られた知見を同じように文書として残すなりして、またほかの人が同じような困った時に助けになるといいなと思っています。

前川:そうですね。

:ありがとうございました。プラットフォーム開発と聞くと、みなさんイメージどおり堅そうとか、サクッと開発できない、イエーイみたいな感じでノリで開発できないという。

そういう面は実際見えてきたと思いますが、一方で、DevOpsでは意外と自由にいろいろな技術を試せたり、ビジネス向けのプロダクトでは成果物以上に開発していく中でのコミュニケーションなど、そういった経験がすごく重要視されたり、意外な楽しさは十分伝わったんじゃないかなと思います。

なにより、今日パネリストとして参加してくださったみなさんが、さまざまなバックグラウンドを持っていますよね。その多様性こそがLINEのフロントエンドを彩っていて、みなさんが知っているLINEのサービス、だけじゃないLINEを作り上げていると思います。

今日出た話の中で、今すでに似たような仕事をしている方とか、もしくはそのような仕事をいつかやってみたいという方がいたらぜひ応募を検討ください。ではパネリストのみなさん、そして参加者のみなさんありがとうございました。