エンジニアのキャリアについて③
前回、会社がどのようにスケールしていくのか?という視点からエンジニアのキャリアについて話しました。
今回は残りの以下について話をします。
言語やフレームワークなどの技術は統一されているのか?
採用している言語、フレームワーク、データベースなどを統一している会社とそうでない会社によってキャリアパスが変わってきます。
マネージメントの視点だけで言えば、採用している技術というのは統一されている方が、管理面や社内でのエンジニア確保の観点から楽なようなイメージがあると思います。
なぜなら、技術が統一されていなければ、その技術を見ていたエンジニアが退職したときに代わりを社内で見つけることが困難、かつ教育コストがかかってきます。
逆にエンジニア側からしたら、色々な言語、フレームワークなどの技術を触れることでエンジニアとしてのスキルを上げたいのが本音だと思います。
そのため、技術が統一されてしまうと、エンジニアは自分のキャリアに不安を覚えていきます。
ではマネージメント側とエンジニア側のこのギャップをどう埋めていくかが今回のポイントです。
ここで組織についての話を少しだけします。
私は、生きた組織というものは、基本的に拡散と集約の繰り返しという考えのものと組織を設計していきます。(この件は改めて、詳しく話します。)
この考えで行くと、技術は統一しないで各チームで好きな言語、フレームワークなどを使ってもらい、必要に応じて言語を統一していきます。
ここでいう必要に応じてとは、例えば、事業の方向性が投資フェーズではなく収益フェーズ(コスト効率)にある場合、言語を統一することでコスト効率を上げたりします。
エンジニアサイドからすると自分たちで言語を選べることにやりがいを感じ、キャリアを作っている実感も出てきて、リテンションも上がります。
当然、なんでも技術を採用して良いわけではなく、技術のトレンド、ドキュメントの量など踏まえた判断は必要ですが。。
この状態が進んで行くと、マネージメント側が不安になってきます。
冒頭の方でも話した通り、担当しているエンジニアがやめた時にその技術を社内で知っている人がいないから、プロダクト開発に影響が出てくるのでは?と。。。
本当に影響が出るのでしょうか?
正直、現在の言語であるとかフレームワークはどれも似たり寄ったり、一つを学べば、他の言語の習得時間というのはさほど掛かりません。
さらに担当者がいなくなったことで、チャンスととらえるエンジニアはいます。エンジニア魂に火が付く人は必ずいます。
そのため、担当していたエンジニアがやめても、それほどの影響を与えずにリカバリできると考えています。
なので私の組織では、採用する技術は自由にしています。(自由にしてから今年で5年目となります。)
ただ、面白いもので採用していく技術を自由にしていても、どこかで自然とまとまっていきます。
これは、色々な技術をチャレンジした結果、どこかにまとまっていくことが一番良いとエンジニア自身が気づき、エンジニアの成長とともに自然と集約されていきます。
このようなに採用技術を自由にしながら、自ら拡散と集約の判断をエンジニアに持たせることでキャリアパスを作ることができるのではと思っています。
あくまでこれは私のやり方であって、色々な環境があると思いますので正解は一つではないとは思います。エンジニアのキャリアパスに悩んでいる方がいるようでしたら、参考にして頂ければ幸いです。