2025年1月10日を最終出社日とし、2月28日づけでLINEヤフー株式会社(旧LINE株式会社)を退職します。すでに最終出社を終え、現在は有休消化期間中で、個人開発をしたり、積み上がっていたハードスキル、マネジメントに関する本を読んだり、金融リテラシー向上のための勉強をしたりして過ごしています。放置していた契約済みの民間保険を見直し、そもそも契約の必要がなかったものや、払い過ぎていた保険料を見てモヤモヤしています。
在籍期間約4年半の間に、主にやってきたことをまとめようと思います。
目次
主にやったこと
ソフトウェアエンジニア
ソフトウェアエンジニアとして、 LINEアプリ上で動作するWebアプリケーションを開発するためのプラットフォームの LIFF に携わりました。主にLIFF SDKと呼ばれるJavaScript SDKまわりを担当するチームに所属していました。
LIFFはLINEアプリ内で事業者がサービスを提供するための LINEミニアプリのプラットフォームでもあり、また、 LINE NEWSやLINEマンガなどの、 LINEファミリーサービスと呼ばれる、 LINEヤフーが運営するサービスのほぼすべてがこのLIFFを利用しています。
また、 LINEログインにも携わり、主にLINEログインの認証認可に関する画面のフロントエンドを担当していました。
LIFFとLINEログインの開発チームメンバーはほぼ同じメンバーで構成されていて、在籍している拠点は東京、名古屋、京都、福岡と点在していてリモート主体のチームです。入社当初から携わっていて、一番長く関わっていたプロジェクトでした。
通常の機能要件の開発はもちろん、非機能要件やデプロイ・リリースのためのCI/CDパイプラインの改善を中心に取り組んでいました。
チームに参画してすぐ、 LIFFアプリの初期化処理のパフォーマンス改善に取り組みました。参画時点で初期化処理のどこにパフォーマンス的ボトルネックがあるかはある程度絞られていて、自分は初期化処理の起点のLIFF SDKの詳細調査から入りました。 performance.mark
, performance.measure
などでコードごとに細かく調査し、ネットワークリクエストまわりにボトルネックがありそうなことを突き止め、ローカル環境でしたが、構築したパフォーマンステストの仕組みを利用した計測結果をもとに、改善を施しました。正確な数値は忘れてしまいましたが、 1000ms ~ 3000msなどの数秒レベルの改善だったはずです。
また、デプロイやリリースまわりの改善は、LIFF SDK / LINEログインフロントエンドの関連プロジェクト全般で行っていました。
LIFF SDKのデプロイやリリースには、当時ある2つの問題を抱えていて、それらを改善するためにGitのブランチングモデルとCI/CDパイプラインの設計をし直しました。 LIFF SDKの成果物はセマンティックバージョニングされたライブラリです。一度バージョニングされリリースされたものは、いわゆる上書きリリースすることができません。また、マイナーバージョン以上でリリースされているすべてのバージョンに対してパッチリリースができる状態になっていないといけません。通常のWebアプリケーションで例えると、細かく仕様や機能、挙動が異なる状態のアプリケーションを複数メンテナンスしていくことと同等で、この前提をもってGitのブランチングモデルやCI/CDパイプラインを設計しないといけません。さらに、ブランチングモデルの運用とCI/CDパイプラインのトリガーが不整合なくかつブランチングモデルの運用に則す必要があります。当時、 CircleCIで設計・構築したCI/CDパイプラインはマイナーアップデートを繰り返しながら現役で稼動しています。
機能追加観点だと、 LIFF SDKのプラグイン機構の設計・実装が大きな取り組みでした。内部設計の大幅な変更や各LIFF SDKのAPIごとのMonorepoに変更したりと、変更ベースは非常に大きかったです。リリース後に、 DevRelの方に協力いただき、 LIFFユーザコミュニティ向けのイベントを開催し、プラグイン機能について紹介したりしました。
また、 LIFF SDKを社内オープンソース、いわゆる InnerSource プロジェクト化するための活動もしていました。様々な事情と制約があり、結果としてInnerSourceプロジェクト化は頓挫してしまいましたが、取り組みの一環としてGitHub IssuesとJira Issuesを相互連携するためのシステムを設計・開発しました。
依存ライブラリアップデートの効率化と仕組み化のために、 Renovate をセルフホストとして構築・運用していました。 Renovate公式の Helm chart を利用し、社内で提供されているKubernetes namespace as a serviceにあたるKubernetesサービス上に構築しました。同時期に、 RenovateのOSSに対してコントリビューションもいくつかしていました。 refs: renovatebot/renovate, renovatebot/helm-charts
その他、細かいところでは以下のようなことを行いました。
- Terraformによる担当領域のインフラとGitHub orgの管理のコード化
- Webブラウザ用のJavaScript SDKという成果物に対するオンコール体制の設計
- LIFFプラットフォームのQAテスト用アプリケーションのインフラのマイグレーション
- 全社フロントエンド組織向けの技術ガイドラインへのCI/CD章の追加
- 組織共通のESLint ConfigのCI/CDパイプラインの設計・構築
- 組織の開発者の生産性向上を目的とした開発生産性計測のためのプロダクトを開発するチームへの参画
- チームで開発・運用している社内プロダクトのためのCircleCI Orbの設計・実装
エンジニアリングマネージャ
2022年の春頃からLIFF SDK / LINEログインフロントエンド開発チームのエンジニアリングマネージャとしてマネジメントに従事するようになりました。
LINEヤフー株式会社として合併後、さらにもう1つのチームのエンジニアリングマネージャの役割も担いました。組織内開発者のDXをソフトウェアで改善するチームで、社内プライベートクラウド上に構築されたオブジェクトストレージとCDNサービスのラッパープロダクトや、 OSS (Verdaccio) を利用した社内用のnpmパッケージレジストリ、また、 Kubernetesをベースにした、社内用Node.jsアプリケーションプラットフォームなどの開発・運用をしているチームです。技術をリードする役割をメンバーが担い、自分は技術的側面以外のマネジメントの役割を担っていました。
エンジニアリングマネージャとして活動してきた業務内容は主に以下のようなことが挙げられます。
- ティーチングやコーチングによるメンバーの支援
- メンバーとの対話によるコンディションサポートやモチベーションマネジメント
- 開発タスクアサインメント手法の設計と運用
- プロダクトの機能的仕様に関する意思決定の主導とアドバイス
- 担当チームおよび担当プロダクトのテックリードの制度設計と移譲
- チーム・個人目標制度の設計
- チームの方向性の策定主導やチーム目標の設計・運用
- 1次人事評価
- 採用業務
- 新卒採用の1次面接
- 中途採用の職務記述書の作成・書類選考・技術試験採点・1次面接
LIFF SDK / LINEログインフロントエンド開発チームのエンジニアリングマネージャとして、まずはチームの開発タスクのアサインメント手法を改善しました。当時のアサインメントはやる気や興味ベースの挙手制、もしくはPMやEM, TLによる感覚値による妥当性や負荷見積もりによる開発者への打診でアサインメントが決められていました。そのような手法なので、必然的に技術領域やコンポーネントでアサイニーが決まりがちになってしまうので、属人化しやすく、スキルや情報が偏りサイロ化しやすくなっていました。また、1つのチームでLIFFとLINEログインの2つのプロダクトを担当しているので、異なるのプロダクトの同時並行案件のタスクの優先順位を決めるのが難しいという課題もありました。これらの課題を解決するために、スクラムの要素を取り入れ、独自にルールと手法を策定しチームに適用しました。スクラムをそのまま適用するのは様々な事情と状況により諦めたというより、将来的にスクラムへの移行を前提として、当時のチームの状況やプロジェクトチーム全体の状況に合わせることを意識して設計したという感じです。誰かに依存したタスクのアサインメントではなく、チームで自律的にアサインメントを決められ、ひとりひとりがオーナーシップを持ってタスクを遂行でき、かつ担当プロジェクトやコンポーネントを全員で分担することにより、属人依存をなくしチーム内サイロを防ぐ体制になったと思っています。
また、チームの技術的側面をリードする役割を担うチームテックリードの役割の定義や設計をしチームに適用しました。交代制を採用し、一人が長くチームを去るまで続けるのではなく、一定期間で交代することで属人性を排除できナレッジがチームに溜まりやすく、メンバーの成長機会を増やせ、結果的に持続可能なチームを醸成できると考えました。ちなみにLINEヤフー株式会社および旧LINE株式会社にはテックリードというロールは組織やチームごとに定義や求められることはばらばらで、会社に正式に存在する職位でもありません。
また、旧LINE株式会社には目標設定制度は存在しなく、組織ごとに自由でした。組織やその運営者によっては目標設定の効果や影響、必要性に対する理解が乏しく、客観的指標を欠いた人事評価がされている状況もあったと思います。そのような状況の中で自分は以下のような課題を感じていました。
- 業務の優先順位や技術的な方針、取り組むべき仕事をチームやメンバーそれぞれが考えるときに、その判断基準が曖昧または存在しないので根拠に基づいた決定がしづらく、意思決定の質やスピードに影響する
- メンバーまたは下部組織それぞれが違う方向に注力しチームまたは組織としての成果が最大化されていない
- 成果が測りづらい(人事評価時の客観的指標の欠落)
上記に対するゴールを下記とし、自分のチーム用の目標設定制度を設計しました。
- メンバーは指標や目標をもとに自身のやるべきことや優先順位を決められる
- チームで目指す方向が明確になっていて、個人の成果がチームの成果につながる
- 評価者は指標や目標をもとにした成果をもって客観的で公正かつ根拠をもった評価ができる
LINEヤフー株式会社として合併後、全社で目標設定制度が開始されたのですが、上記設計を終えた頃にちょうど社内で合併後の目標設定制度が開始することが周知されたタイミングで、チーム用の目標設定制度設計を適用するには至りませんでした。
全社で運用し始められた目標設定制度においては、前述した担当する2つのチームの目標を設計していました。この2つのチームは元々同じ組織下に所属するチームでしたが、2024年度後期から別の組織下のチームとなりました。会社が定義する目標設定に対する全社共通のルールや考え方はもちろん存在していましたが、組織が異なると、このルールや考え方も全く異なっていて、それらを考慮しつつ、メンバーの個人目標設定時の指標とできるように、かつ上位組織とのバランスを取りながら設計していました。コンテキストスイッチングコストが高く、負荷のかかる作業でした。
そして、マネージャとしてとにかくチームとチームメンバーに向き合ってきました。それまではソフトウェアやプロダクトと向き合って仕事をしてきましたが、マネージャになって一番変わったところは圧倒的に人と組織と向き合うようになったことです。エンジニアリングマネージャの役割は会社や組織、事業フェーズにもよるとは思いますが、そのときのチームやプロダクトのフェーズなど、自分の置かれた状況を考えたときに、人と組織と向き合ってこの方面から貢献することがもっとも生産的だと判断しました。マネージャとして当たり前なことかもしれないですが、この変化を現実として受け入れて、それまでのソフトウェアエンジニアリングへの貢献の仕方とのギャップを自分の中で整理するのに少しだけ時間がかかりました。
なぜ退職するのか
もっと事業やビジネスに近いところで仕事がしたいと思うようになったことがきっかけです。また、マネジメントの経験をしていく中で、どうしても巨大な組織だと局所最適なソリューションしか考えられずその経験しか積めないので、会社や事業全体を見据えた取り組みがなかなか経験できないと感じたこともきっかけの1つでした。さらに、将来的な独立をするために2024年中頃から少しずつ準備を始めていて、どんな事業をどう展開していくかいろいろと検討していく中で、事業開拓や事業成長に関わる直接的な経験がもっと必要だとも判断しました。グループ会社を含めると社内には様々な事業やチャレンジができる環境はあったと思いますが、もっと経営に近いところで事業や組織貢献に携わるほうが最終的な経験値を量とスピードを兼ねて取得できると考え、社内外含めて転職先を探し始めました。
転職先を考えるにあたって、以下の4つの軸に整理しました。
- 事業に熱中できるか
- 直近のスキルと経験を活かし事業成長に寄与できるか
- 今必要な経験が積めるか
- どういう人と働くか
関わる事業に熱中できるかはとても大切だと思っていて、特に自分は仕事のモチベーションに直結しやすい要素なのでここは慎重に検討しました。そして、ここ1, 2年でどういう人と一緒に働くかをとても重要視するようになりました。技術的スキルが高いかどうかや優秀かどうかよりも、実現したいことにフォーカスして行動しているか、保身や人、組織などを見過ぎず、いわゆることに向かって行動しているかが大切だと思っていて、そのような人と働きたいと考えています。
知り合いや以前の同僚を中心に様々な方とお話しさせていただき、最終的には株式会社ダイニーへの転職を決めました。ダイニーは「All in One Restaurant Cloud」を謳い、モバイルオーダーやPOSレジなど飲食店のあらゆるオペレーションを包括的にサポートするためのサービスを展開しているスタートアップです。経営陣の方々の、飲食業界ひいてはその先にある日本を良くしたいという本気の想いに共感と尊敬をしています。ダイニーのすごいところは、この想いがしっかり組織全体に広がっていて、メンバーひとりひとりのモチベーションとフォーカスポイントがこのミッションに向いているところです。自分は組織の強さの根源の1つはここにあると思っていて、組織が今より大きくなっていってもいかにこの状態を継続できるかだと思っています。それを実現していく過程に携われることも魅力を感じた1つでした。また、昨年海外VCからシリーズBラウンドの大型資金調達を実施し、今後の展開もとても楽しみなスタートアップです。自分は3人目?のエンジニアリングマネージャとして技術と組織両面から事業に貢献していく予定です。まさに事業開拓や事業成長に経営と近いところで直接的な経験を積める理想的な環境でした。さらにダイニーには以前の同僚が多く働いていて、再び一緒に働きたいと思える方々もたくさん在籍しているのも大きなポイントでした。
自分としては大きな決断とチャレンジですが、また以前のようにスタートアップで頑張ろうと思います。