こんにちは、最近キャリアのヒントをつかみ出したichienです。今回はfreeeの開発組織にある社内異動制度、「異動戦国」をご紹介します。異動戦国とは、1年に1回自分の希望するチームに異動の立候補をすることができる制度です。
実際に異動戦国で異動を経験した二人のエンジニアに、制度の内容や、何故異動しようと思ったか、異動してみて実際どうだったか、チームごとの技術スタックや雰囲気・働き方の違い等について話を聞きました。
ryudo:写真右上。2019年1月入社。1年半認証認可/課金基盤の開発を担当。2020年7月に異動戦国制度を利用してfreee人事労務の給与チームに異動。
kurubushi:写真左下。2019年新卒入社。入社時は認証認可基盤の開発を担当。2021年7月に異動戦国制度を利用してfreee人事労務の社宅チームに異動。
「異動戦国」とは
―異動戦国ってそもそもどんな制度なんですか?
kurubushi:どこに異動したいか自分で希望を出すことができる制度です。中途入社の人は全員、新卒入社の人は2年目から応募することができ、12月頃に案内があり希望を提出すると上長たちの間で話し合いの場が持たれ、来期の7月に向けて異動を実現してくれるという制度です。
もちろん実際に異動できるかは、その時のチームの状況や異動先でのポジションの空き次第ですが、僕の場合はその希望が通って実際に異動することができました。
なぜ異動しようと思ったのか
―自分の意思を伝えられて、しっかり話し合ってもらえるのはいいですね。なぜ異動しようと思ったんですか?
kurubushi:僕の場合、新卒入社は基本的に全員2年で異動するというルールがあり、それに則って希望を出しました。異動希望の提出期間が始まるときに、各チームを紹介するランチ会があったのでそれに出て具体的な業務の情報やどんな人がいるかをキャッチアップしました。あとは毎Q各チームの成果発表会があるのですが、それを見てどのチームがどんなプロダクトを作っているのかを確認しました。
もともと所属していた基盤チームでは開発全体に大きなインパクトのあるプロジェクトにじっくり向き合うことが多かったんですが、そうやって話を聞いている中で、いろんな人と関わりながらユーザーと近い距離で新しいものを作るようなことにもチャレンジしてみたいと思うようになりました。具体的にどのチームに異動したいかは決まっていなかったのですが、当時のJM(freeeではマネージャーのことをJMと呼んでいます)に相談したところ、希望が叶いそうなチームをいくつか紹介してくれて、最終的に社宅チームに異動することになりました。
―2年で異動って結構早い印象ですが、不安ややり残したことはなかったですか?
kurubushi:自分としては飽き性な性格もあるので(笑)2年はちょうどいいタイミングだと思っています。2年で基本的に全員異動なのですが、異動のタイミングはかなり柔軟です。当時、認証認可基盤の開発が伸びていて、JMに最後までやり切りたいという話をしたら、異動のタイミングを伸ばしてくれました。
ryudo:私のときもそうで、やり切りたいか、異動したいかみたいな気持ちは本人に聞いてくれるし、その意向に合わせて柔軟に対応してくれましたね。
―ryudoさんはどのように異動先を決めたんですか?
ryudo:もともと課金基盤の立ち上げのプロジェクトに基盤側のエンジニアとして参加していたんですが、その新課金基盤で稼働するプロダクトがfreee人事労務でした。なので、元々人事労務側のエンジニアと関わることが多く、心理的な距離感が近かったというのがありました。
基盤チームの場合、裏側からサービスを支えることが多いので、freeeの開発全体に習熟することができました。次のステップとして、もっと幅広く知りたいと思ったときに、やりたいこととこれまでに縁があった人々が組み合わさってfreee人事労務のチームに異動してみようと思いました。当時のJMも合うのではないかと背中を押してくれました。
―異動するとなって周りの反応はどうでしたか?
kurubushi:ryudoさんが異動してしまうと知って寂しかったです(笑)が、全員で頑張って引継ぎをして無事に送り出すことができました。
ryudo:発表から異動までは3ヶ月くらいはあるので引継ぎは割と余裕がありました。このタイミングから異動!と明確に決まっているわけではなく、kurubushiさんもそうでしたが、いまのプロジェクトの切りが良いところまでやってから異動する形なので、そこも柔軟で良いと思います。
kurubushi:そうすることで、お互いの組織にwin-winな関係になれていますよね。いい関係性が作れているので、僕はいまでも基盤チームの飲み会に参加してます(笑)
ryudo:当時は特にfreeeの開発組織の中で人材の流動性を高めるためにもっとカジュアルに異動できるようにしたいよねという話があって、私も希望を出してみました。freeeを代表するようなシニアエンジニアも異動すると知って、「え、あの人も異動するの!?」と驚きましたね。お祭りのような感じで盛り上がっていたと思います。
―ネーミングが「異動戦国」ですもんね(笑)聞いたときは戦うのかと思っていました(笑)
ryudo:その当時は天下統一プロジェクトみたいな名前のプロジェクトもあって、なぜか戦国味が強い時代でした(笑)
異動前に感じた人間関係や技術面での不安
―異動することに不安はなかったですか?
kurubushi:不安はちょっとありました。新しいものに触れることにワクワクする気持ちも大きかったですが、リモートワークが始まっていたので、ちらっとチームの雰囲気を見に行くこともできず、人となりが分からなかったのは不安ではありました。
ryudo:異動先について面識はあったけど実際どんなチームなのかは知らなかったですし、ドメイン知識もなかったです。何をやっているのか、いままでやってきたことが役に立つのか、自分がチームで通用するのかが分からなくて、特に異動直前は技術的な不安と人間関係の不安の両方がありました。
ですが、実際に異動してみると、freeeは基本いい人が多いので(笑)人間的な不安はすぐに解消されましたね。
技術的な不安についても、ドメイン知識がなくても多少貢献できるものはあったし、アンラーニングしてやれたのも良かったです。
技術スタックやドメイン知識は異動してから十分習得できる
―技術スタックは変わったんですか?
ryudo:特に変わっていないです。他社なら製品ごとに全然違う言語、フレームワークっていうパターンはけっこうあると思うんですが、freeeは標準化に力を入れてるのであまりそういったことがなくて、技術面での異動の障壁は低いと思います。もともとfreeeはアプリエンジニアでも基盤を触ったりすることがあるので、他チームがやっていることをちょっとだけ分かる状態になっています。チームのカラーは違うけど技術は地続きになっているので、そこは安心して異動しやすいベースになっていると思います。Vibesもその一例です。
kurubushi:僕も技術スタックはそんなに変わらなかったです。もともと認証認可基盤ではGoを使って書いてたので、異動することになってGoからRailsに戻った感じでした。
新しいコード、新しいサービス、どういう機能がどういうふうに実装されているのかという面白さはありましたね。基盤と比べて、アプリ開発は機能リリースまでが早いというのが特徴的だと思いました。基盤は3年くらいかけてコツコツやっていくプロジェクトが多いのに対して、プロダクト側はとりあえず出してみるという環境だったので、小さくたくさん作っていけるのは面白いと思いました。そういう回し方もあるんだなというのが分かりました。
―ドメインの理解にはハードルはなかったですか?
ryudo:異動前は不安だったんですが、他エンジニアも学びながら作っているのでそこに不安を感じなくて大丈夫ということが分かりました。コードが読めればそれを足がかりにドメイン理解はできていくので、異動前に思ってたほど苦労や辛いと感じたことはなかったですね。
あとは給与計算関連の本を読んだり、メンバー全員での勉強会に出たりしています。ドメイン知識がまだまだ薄いという認識が全員にあるので学ばなきゃいけない。逆に言うといまできなくても全然大丈夫で、一緒に学んでいけばいいので、採用面接でも候補者に自信を持ってそのように伝えています。
社内でもチームの雰囲気や働き方はけっこう違って面白い
―チームの雰囲気や働き方にはどんな違いがありましたか?
ryudo:基盤・コアプロダクト・新規プロダクトの3つで、スピードと人物タイプが大きく分かれるような気がしています。
基盤みたいにコツコツ改善していくチームは、一発で大規模障害みたいな緊張感がずっとあるので、だからこそ深く見ることが重要です。人物タイプはハッカー気質な人が多いイメージです。
freee人事労務やfreee会計のようなコアプロダクトは動きは早いほうだと思うものの、大きく育っているプロダクトなので慎重にやらないといけないし、いまのプロダクトベースでものを考える感じです。ハッカー気質な人はあまりいなくて、関係があるか分かりませんが、人事労務の人はみんなでキャンプに行ったりしています(笑)
一方で新規プロダクトチームは何もないところから試行錯誤して考えること、スピードが求められるように思います。
採用面接でもその3タイプのどこに当てはまりそうかな?と考えたりします。
kurubushi:たしかに、基盤チームは安全感のあるチャレンジをしていく感じですね。認証認可基盤の場合、プロジェクトの性質上エンジニアの裁量が比較的大きく、PMを兼任しているようなイメージでした。一方プロダクトチームの場合はPM、セールス、エンジニア、QAがひとつのチームになっているのが驚きでした。役割が切り分けられていて、それぞれの領域のプロが一緒になって作っていくというのが新鮮でしたね。
ryudo:デザイナーやPMみたいな人たちと間近で仕事して、そういう人たちの発言や振る舞い、考え方を知れるのはいいですね。「みんなでモノづくりする」というということの体感も得られました。基盤チームはエンジニアが主役でエンジニアが中心で意思決定するという感じはありますよね。プロダクトチームのエンジニアはひとつの役割として存在している感じ。自分で作りたいのかチームでやりたいのかによってどっちが向いているのかは変わると思います。どっちも学べることがあって、一つの会社で両方体験できるのはいいですね。
プロダクトチームは品質ももちろんですが機能をいかに早く出すかということが重要な場面も多いので急いでやることが多いですね。ユーザーからの日々の要望やJIRA対応などもあるので慌ただしいです。一方で、基盤チームは失敗することができないので、急ぐのではなく慎重さが求められます。社内でもチームによってタイプもスピードも違うし、全然別の楽しみ方ができます。
カジュアルに異動できてキャリアも広げやすい
―次チャレンジしてみたい領域はありますか?
ryudo:いまはまだ学ぶことが多いので考えていないのですが、基盤・コアプロダクト・新規プロダクトの3つの領域で考えたときに、いずれ新規プロダクトのスピード感は1回味わってみたいと思ってます。
エンジニアって同じことずっとやってるとこれで大丈夫なのか、これじゃ通用しなくなるんじゃないかという不安が出てくると思うんですよね。それが理由で転職していくと思うんですけど、カジュアルな異動制度があることによって、ある程度キャリアの行き詰まりを解消できると思っています。
おおっぴらに相談できるし、異動の根回しみたいなものもいらないです。 多くの人はそれに疲弊するから転職しようとなると思うんですが、freeeの場合はそれがないです。転職の代わりになるし、気分が変わって刺激を受けながらまたフレッシュに働けるのがいいところだと思っています。
kurubushi:いまはまだ異動したばかりなので考えていませんが、技術スタックの違いがないので、新規プロダクトで新しい技術にも挑戦できるといいなと思ってます。これがやりたい、あれがやりたいっていうのが絞れてない人って多いと思うんですが、例えばセキュリティプロを目指してるとか、IDまわりをやりたいとかって思ったときに、幅広くやってる会社の中で気になるところにぴょんぴょん行っていろんな経験ができるのはすごくいいと思っています。
ユーザーと接したいと思えばコアプロダクトのチームにいけばいいし、また基盤チームに戻りたくなったら強くなって戻ってくることもできます。freeeに入ってからも選択肢はいっぱいあって、マジ価値の実現のためになんでもやれる環境があるのはすごくいいと思ってます。