よくエンジニアのキャリア設計として、技術系でいくかマネジメント系でいくかという話がでてきて、ちょっと前までは「プログラマー35歳定年説」なんていうのも巷に溢れていました。(いままだあるのかな?)
つい先日も下記のブログが話題にあがっていました。
そこで、自分自身のキャリアの方向性を考えつつ、エンジニアのマネージャーについて考えてみます。
技術だけで食っていけんの?
「俺は開発だけしたい、マネジメントとかやりたくない!!」層というはいつの世も一定人数います。
というかスキルが高いプログラマーの方が、その傾向が強いです。スキルが高いと相談ごととか受けやすくなるので、そうなると特にやりたいわけではないけど気付いたらそういう立場に・・・みたいなパターンは結構あるあるだと思います。
なので技術だけで食っていこうと思っても、技術力をつければつけるほど、相談される立場になるので、 普通の会社にいる以上は難しい気がします。
よっぽどコミニュケーションに難ありだったりしたら、ある意味自分の世界に閉じこもれるのでひたすら開発だけするというので、いけるかもしれませんが(^^;)
フリーになるっていう選択肢もあるかもしれないのですが、それはそれで仕事を見つけてきたり、金額交渉したりっていうので開発以外のことで時間をとられることが多そうです。
その辺をうまくやってくれるパートナーがいればよさそうですね。
マネージャーの役割とは?
マネージャーはマネジメントすることが役割なので、チームの目的・目標を明確にして、チームのタスクを管理して、成果物を評価して、メンバーの評価をすることになると思います。
エンジニアの仕事は基本的にはモノをつくることが仕事なので、サービス自体の方向性とか、戦略、戦術的な考えはどちらかといえばプロダクトマネージャーとかディレクターとかの役割の人が考えることになり、それをどうやって実現できるかがエンジニア役割になると思います。
そしてエンジニアのマネージャーは、そのつくったモノに対して最終的な責任がある立場になります。なので、きちんとレビューとかを通して成果物を評価する必要がありますね。
マネジメントと技術は切り離せない
先ほど成果物を評価するのもマネージャーの役割としましたが、ここはきちんと評価できるレベルのスキルがないと当然正しい評価をすることができません。
なのでマネージャーになったからといってひたすらマネジメントだけしてればいいのかといえばそんなことはないです。というか普通に考えてより高度なスキルを求められます。
「俺は技術はそんなに伸ばせないからマネジメント方面で頑張る」とかいう考えだと、どうしようもないマネージャーになります。
自分ができることで、かつ正しいことを選択する
高度なスキルが必要といったものの、理想の状態を語るというのは案外誰でもできたりします。
- ここの処理ちょっと遅いからもうちょっと早くしよう
- プログラムのバージョン低いからあげよう
- このツール導入すると作業がもっと簡単になるからいれよう
などなど、、、
理想の状態を語ることはいくらでもできます。
「自分ができることではなく、正しいことを言う」というのは上に立つ立場として必要な考えではあると思いますが、言うだけいって自分ができないというのはやっぱり面白くない。
それにそんなマネージャーにはついてこない気がします。
それにエンジニアは、「こういう方法があるから、こうした方がいいよね〜」っていうだけよりも、すでに先にやっちゃって「これ導入したらめっちゃ簡単になったwww」みたいな感じを見せることでおそらく興味をもって自発てきにやるタイプが多いんじゃないかなーって思ってます。
というわけで僕は「自分ができることで、かつ正しいこと」というのを常に選択し続けられるようにいたいと思いました。