見出し画像

エンジニアのキャリアを考えて見てる

初めまして、ヤマカンです。ここ1年ぐらいWeb企業でエンジニアマネージャをやっています。その中で新しく入るメンバーも含めてほぼ全員に話してることを備忘録として紹介したいと思います。

TL;DR

- 僕の中では大きく4 (+ 1)つのタイプでエンジニアを分類している。
- 各分野で必要なスキルがある
- 自分のなりたいタイプ意識するよ良いよね

エンジニアのタイプとして

これは僕なりに色々読んだり話したりしたなかで、理解して整理してきたものであって、他の切り口もあると思いまし、切れ味としても良くないと思っているものであるが、エンジニアとしてCTO/CISO/EM/POとはなんだろうか、それを4つのタイプとして説明するとなんだろうかを書いたものになります。

前提として、エンジニアは何か世の中で課題になっているものを解決する人だと思っています。そのやり方がモダンであるかは問わず解決し価値を提供できることが大切だと思っています。

それはおいておいて、エンジニアとしてやっぱり自分なりの視点で技術を極めたいのか、そうでもないのかで大きな分かれ道だと思います。
色々な軸はあると思いますが今回は「技術」と「マネージメント」という2つに分けた場合にどうなるのかを書きたいと思います

技術的にリードするということ

技術的にプロダクトをリードしたいとなると、そこには技術としての攻めとセキュリティとしての守りが発生すると思います。(もちろんその両方ができるのが最善だとは思います)
そう考えると、CTO方向なのかCISO方向なのか
プロダクトの価値提供として技術面でリードしたなると、それはCTOに当たると思います
一方で技術的な挑戦に対してデータや個人情報などを守っていくのがセキュリティであり、CISOになると思います
技術的に極めていくとどちらかで進んでいきたいと思いますので、その道を極めていくと、組織の中では上記の役職になるのだと思います。

マネージメントをリードするということ

一方で、マネージメントとしてはチームをマネージメントするのか、プロダクトをマネージメントするのかが大きな分岐点になると思っています。

開発チームが小さく結果チームとプロダクトが密であり、チームとプロダクトのマネージメントが一致するのではないかと言う疑問であるのかと思います(少なくとも私は持ちました)、結果的にはこれは明らかに別物だと思います。

プロダクトは顧客への価値と自分たちのプロダクト開発優先度のバランスを見る担当だと思います。このため、まず見るべきはプロダクトの状態と、プロダクトの開発スケジュールだし、その中の優先度のマネージメントしプロダクトの価値を最大化するものだと思います。これを失敗すると、不要な開発(例えばユーザへの価値提供を行いたいのに、リファクタリングを優先してしまい新規開発が止まるとか)が発生すると思います。
一方でチームマネージメントはチームのアウトプットを最大化することを目指すものだと考えています。チームのアウトプットの最大化なので、チームメンバー個々の成長をどうするのか、チームのプロダクトへの回答力をどう上げるかが重要だと思います。そのためのアサインや体制づくりをしてくのがVPoEと呼ばれる人なのではないでしょうか。

まとめ

エンジニアのキャリアを考えると以下の4つに大きな方向性はあるのかなと思います。
- プロダクトの技術的責任を持つCTO
- プロダクトのセキュリティ責任を持つCISO
- プロダクトを作り価値を最大化に責任を持つPO
- プロダクトを作るチーム組織に責任を持つVPoE

きっとエンジニアとして生きていくとなると4つのうちどれか、もしくはいくつかについてスキルを身につけていく必要があると思います。エンジニアでキャリアに悩んでる人がいたら、この4つの中で自分がどれに興味あるのかのヒントになればと嬉しいです。

あと +1について、上記はこの1年ぐらいずっと思っていましたが、個人的な興味としてSRE周りはずっと考えてるのですが、SREって上記の4つに入らないなと思いました。と言うことで、SREも加えた5つが僕がメンターとなった場合にどれに生きたいか擦り合わせするものです。

以上、この辺聞きたい方はコメントなどお願いします。

この記事が気に入ったらサポートをしてみませんか?