freeeの開発情報ポータルサイト

【連載 第3回】EMから再度エンジニアとしてプロダクト開発に挑戦して学んだこと

こんにちは、freeeの金融チームでエンジニアをしているtabachainです。この記事はfreeeカード Unlimited の開発の裏側を紹介する連載の第3回目の記事になります。 このfreeeカード Unlimited連載企画では、これまでWebアプリ開発エンジニアの視点からの記事を5本続けてお届けしました。

第2回までの連載記事は以下のリンクでご覧ください。

この記事では、エンジニアリングマネージャー(以下EM)からエンジニアにロールチェンジして新規プロダクト開発に当たった私の経験を元に、そこから感じたことや学んだことをシェアできればと思います。

軽くfreeeでの自分の経歴を紹介すると、

  • 2016年7月にエンジニアとして入社

  • 2018年7月にfreee申告開発チームでEMにロールチェンジ

  • 2020年12月に金融チームで再度エンジニアに戻りfreee カード Unlimitedを開発

という流れになります。

そういえば、エンジニア => EM の方向へのロールチェンジに関しては、最近

tech.asken.inc

の記事が話題になっていましたね。

本記事ではその逆の方向となるEM => エンジニア という方向のロールチェンジをした際に自分が感じた不安やその解消の流れを説明しようと思っていて、そこでの苦労や経験してみて実際どうだったかというのをできるだけ包み隠さず話せればと思います。

EMのマネジメントの定義と自分のスタイル

エンジニアになっての話に入る前に、EMと言っても人によってスタイルがあり、それによってエンジニアに戻った際に苦労を感じる点が違うと思われるのでそこの話に触れようと思います。 EMが行うマネジメントはいろいろな種類がありますが、個人的には

qiita.com

での整理である

  • ピープルマネジメント

  • テクノロジーマネジメント

  • プロジェクトマネジメント

  • プロダクトマネジメント

の4つの切り分け方が気に入っていて自分もこの分け方をして考えています。 この4つのマネジメントはEMが全部やるというよりは、PM、 EM、エンジニアが分担していることが多いかと思います。 私はEMになったとき、まず弱めの定義であるピープルマネジメントから入り、そこを中心にしつつも自分の領域を状況によって広げたり移したりしながらマネジメントを行っているようなスタイルだったと思います。 上記記事の画像を用いると以下のようなイメージです。

自分がエンジニアに戻った目的

私はEMとしてはピープルマネジメントを中心にしていくことが多かったのですが、逆にそれ以外のマネジメント部分はPMやメンバーのエンジニアに支えられているという面も多かったです。とくにテクノロジーマネジメントに関しては、EMというロールになったからといってやればすぐできるかというと全くそんなことはなく、エンジニアのときにどれだけ経験をつめたかというバックグラウンドの影響が大きい領域だと感じることが多かったです。 イメージでいうと以下のようにしたかったのですが、なかなかうまくいかずメンバーに助けらている感覚がありました。

f:id:tabachain:20210917145039p:plain
EMの時の状況

EMになってもマネジメントもしつつコードもバリバリ書いて技術力も上げていくようなスーパーマンをできれば目指したかったのですが、スイッチングコストが大きくそれができない自分がいて葛藤することもありました。

そんな状況を知ってか知らずか、当時の自分のマネージャーから「新規事業でエンジニアに戻るチャンスがあるよ」と教えてもらったのが去年の10月くらいだったかと思います。 ピープルマネジメントにほぼ全振してしまっていた自覚があったので、エンジニアに戻る心理的ハードルは自分の中では相当に高まっていて、一週間回答を先延ばしにしてもらいつつ断り方を考えていました。

ただそうしているうちにマネージャーというロールに固執している自分や、マネージャーとしてしか成果を出せないというのは思い込みなのではないかという気持ちも出てきて、現状維持バイアスから抜け出すためにもエンジニアに戻ることに次の日には決めていました。EMとしての自分が弱みとしていたテクノロジーマネジメントができるエンジニアリング経験をつむには、マネージャーという肩書きをなくしてしまったがむしろ早い、という思いもあったと思います。

エンジニアに戻っての苦労

そのような経緯でエンジニアになったのですが、ロールチェンジをした後は変化に慣れるまでに三ヶ月くらいはかかりました。外からみると早いと言われることも多いですが、自分の中では結構かかったなと思います。

特に苦しんだのは、EMの時と同じような方法で成果やチームへの貢献ができなくなる自分を、一時的に認めることだったと思います。それは同時にエンジニアになった理由や純粋にエンジニアリングを楽しむ障壁になった時期でした。 チームへの貢献やチームとして成果をあげることがEMの醍醐味であり、やりがいでもあったため、一度ロールを変えたら同じやり方では成果をあげることは難しかったです。異動後のチームにはEMがいるため、マネジメント力で成果を上げようとするとコンフリクトしてしまい自分のリソースを有効活用しているとはいえない、きびしくいうと自己満足のような状態になっていたと思います。

転機

そのような状況の中、マネージャーやメンバーとの1on1でもいい気づきをもらうことが多かったです。一番の気づきになったのは、最初にあげた、"なぜエンジニアはマネージャーになるのに不安を覚えるのか"の記事の著者でありエンジニアリングマネージャー時代からコーチングの壁うちあいてになっていたyasunishiさんの「すぐに成果を出そうとしすぎていないか」という言葉でした。

その言葉をきっかけに、マネージャーの時のスキルを使ってすぐに成果を出そうとするのでなくエンジニアとしての新たな成果の出し方を重視することができました。さらにはマネージャーになる前の自分には無かった、マネージャーを経験したからこそできるエンジニアとしての成果の出し方ができるようになったと思います。

マネージャーを経験したからこそできるようになったこと

エンジニアとしての自分に非連続的な変化を引き起こしやすくなった

freeeでは、1on1でメンバーと向き合う機会が多くあります。EMとしてメンバーの成長をサポートしていく中で、エンジニアとして伸びる人にはあり、自分にはなかった考え方や癖などに気づくことができました。エンジニアとして他者の良い点を真似していくことで、エンジニアとして続けていたときには無かったような非連続的な変化が自分の中で生まれたと思います。

「成果」の主語が広がった

EMになる前は成果は自分一人がエンジニアとして出すものを成果として捉えていました。EMとしてチームで成果を出すと考える癖がついた後は「成果」の主語が広がったと思いました。freee カード Unlimitedではモノレポやマイクロサービスの本格導入などエンジニアだけでなくQAも新しい挑戦をしないとリリースに漕ぎ着けられない環境でした。そういう中でQA工程も含めて全体最適な開発は何かを考えながら開発をしていた自分がいました。

チームの弱み、強みがわかるようになった

EMの時に他のEMから話を聞いたり、評価のすり合わせで他チームのメンバーの活躍を聞いたりしていたことで、他のチームの強みや、そもそも強いチームとはどういうことができているかという基準が言語化していないまでも無意識に自分の中にできていました。そのため、新しいチームでもチーム全体としてどこに弱みがあって、どこに強みがあるかがわかり、穴がある場所を自分がフォローする動きや、どのスキルを付ければチームに貢献し成果につなげられるかということがわかりやすかったと思います。

テクノロジーマネジメントをやり始めた

EMを経験する前は、どうしても自分より技術力や経験にまさるエンジニアの意見に対しては受け身になってしまうことがあったのですが、EMを経験してfreee カード Unlimitedの開発にエンジニアとして入った後は、(新規事業で新しいことをやりやすい状況だったからというのもありますが)マイクロサービスで作る際に他社の開発手法などを調査し、モノレポを導入する方が開発がスムーズになるのでないかと感じて結果としてチームを動かしている自分がいました。これは元の自分にはなかった動きで、EMの時に培った、将来的な開発チームの状態を想像する力とリスク管理の癖が起こした動きだったと思います。 また、EM経験前はスクラムで自分が技術系のチケットを切って開発計画に入れ込む際の優先度などの判断が難しかったため、技術系のチケットを切ること自体そこまで多くなかったのですが、現在はEMとエンジニアの両方のバックグラウンドがあることで中長期的な改善につながる技術系のチケットは率先して切り、プランニング等でチームに説明し計画に入れるようなことも増えたように思います。

最後に

エンジニア => EM => エンジニアというのを同じ会社で経験するのは、なかなか無いと思いますが、自分としては大きな気づきと学びがあり経験できて良かったと思っています。 また、この経験を元にfreee カード Unlimitedをよりよいプロダクトにしていくためにより強いエンジニアになっていこうと思っています。

次の連載記事は、freeeカード Unlimited の開発序盤にjoinした id:lvmingbei さんの「freeeカード Unlimitedでのクリーンアーキテクチャ実践」になります! developers.freee.co.jp


金融チームでは、一緒に「freeeカード Unlimited」を開発する仲間を募集しています。 ベンチャー企業であるfreeeの中でも更にスタートアップ色が強い金融チームで、スモールビジネスの資金繰りにイノベーションを起こしましょう! https://freeecommunity.force.com/jobs/s/detail/a4l2r000000CaUpAAK