プログラミング道場Top

エンジニアはマネジメントを目指すべきではない

更新日:

30代中盤の人で、マネジメントしかしないエンジニアを見かけます。
これについて、どう思われますか?

こういった疑問にお応えします。
基本的には、人それぞれとしか言えません。
しかしながら、私は「マネジメントしかしないエンジニア」については否定的だし、そうなるつもりもありません。

本記事の内容

  • 技術を知らなくて、技術のプロダクトを作れるのか
  • マネジメントしかやらない(できない)エンジニアが存在する理由
  • 35歳になって、コードしか書けない人の価値は低い
  • 自分の価値を最大限にしよう

技術を知らなくて、技術のプロダクトを作れるのか

マイクロソフトのエンジニアが書いているブログが興味深いところです。

マイクロソフトに入ると、そもそも「コードが書けない」マネージャは、少なくとも私の上には存在しなかった。当たり前かもしれないが、技術のプロジェクトをやるのに、技術がわからなければマネジメントもクソもない。だから、彼らと話をしても、「あー、技術わかってないねんなー」とか「勘違いしてはるわ、、、」と言う場面に全く出会ったことがなく不思議だった。日本ではそんな場面はしょっちゅうなのに。

私も同意見です。
日本の会社には、コードを書けない、技術がわからないマネージャーが沢山います。
彼らが何でマネジメント職にいるのか、サッパリ理解できません。
マネージャーの仕事は、単純に人をマネジメントするだけと考えているならば、それは大きな勘違いです。
今の時代に、技術的にマネージャーが考えなければいけないことは沢山あります。
例えば、アプリ開発を実装する時の考え方を見てみましょう。

  1. クラウド環境を使うか、オンプレ(物理的なサーバー)を使うかべきか?
  2. サーバーを立てるか、サーバーレス環境(Firebaseなど)を選ぶべきか?
  3. Swift、Java、Kotlinといったネイティブ言語を使ってOSごとに実装をするべきか。
    それとも、ReactNativeやXamarinを使って、IphoneやAndroidを意識しないい実装をするべきか?
  4. サーバーサイドの言語は何を使うべきか?
    求められるレスポンスは、どういった速さなのか?
    広告サービスと、普通のサービスでは選ぶ言語が変わってくるためです。

これらを全て考慮した上で、エンジニアの採用、スケジュール、費用を考えなければいけません。
そのため技術がわからないマネージャーは、効率よく技術のプロダクトを作ることはできません。

マネジメントしかやらない(できない)エンジニアが存在する理由

ところで、なぜマネジメントしかやらない(できない)エンジニアが存在するのでしょうか?
それは、30代ぐらいになると、勉強をすることが苦になるからです。
20代中盤までは勉強をしている人でも、次第に勉強しなくなります。
そして、20代の貯金がなくなった30代の頃に、マネージャーになります。
一旦、そうなると、プログラマーに戻ることも転職することもできません。
こうして、マネジメントしかできないエンジニアが社内に量産されます。

量産はされるものの、マネジメントしかできないエンジニアの価値が低いことは言うまでもありません。
ちょっと、求人を見ればわかることです。
そんな求人は、ほとんどありません。
スキルのあるエンジニアにマネジメント力が求められることはあっても、スキルのないエンジニアは必要ないということです。
私の経験上でも、「マネジメントできる人(スキルは必要ない)が欲しい」という話は、ほとんど聞いたことがありません。
みんな、こぞって、「手を動かせる人が欲しい」と言います。
なぜならば、マネジメントができる人は、いくらでも量産されるからです。

35歳になって、コードしか書けない人の価値は低い

一方で、コードしか書けないエンジニアというのも微妙です。
これは天才プログラマ小飼弾さんのブログに書かれていた内容です。

もっとも、35にもなって、コードしか書けないというのは、それはそれで悲劇だ。35過ぎてもそれが許されるのは、20代と同じぐらいタフに、20代よりずっと洗練されたコードを書く者のみだ。

私もこの意見に賛成です。
35歳という年齢に、厳密にこだわる必要もないのですが、35歳になってコードしか書けない人に対しては残念な印象を受けます。
(時代が変わりつつあり、30代からプログラミングを始める人もいるので、そういう人は年齢をプラス10ぐらいして読んで下さい。)
その年齢になれば、設計能力もあって欲しいし、マネージャーの気持ちを理解してくれるようなエンジニアであって欲しいです。
チームの一員として働く場合に、マネジメントができるエンジニアとできないエンジニアでは大きな差があります。
マネジメントをしたことがある人は、様々な状況を理解してくれるし、ワガママを言いません。
マネージャは一人でもいいけど、マネージメント能力は全てのエンジニアに持っていて欲しいということです。
そのため、もし35歳になってもコードしか書けないならば、市場価値は低いと言えます。

自分の価値を最大限にしよう

今までの文章を読んで、「じゃあ、どうしたらいいんですか?」という疑問が出てくるはずです。
私にもテストに対する回答のような正解は言えませんが、心掛けていることはあります。

  • 自分の仕事に垣根を作らない
  • 常に勉強して、知識をアップデートする
  • コードを書き続ける

小飼弾さんの引用です。少しでもいいから手を動かし続けることが大きな差になります。

しかし、「今の部署ではもうコードは書けない」というのは、コードを書かない理由には実は全くならない。別に製品にする必要はない。プロトタイプを作る。最新の動向を追いかける。いや、FizzBuzz程度の手慰みを退屈な会議で内職するでもいい。その時にコードを組めるのと組めないのとでは、それこそ素手とF-35ぐらいの違いが出る。

別にエースでありつづける必要はない。しかしコードを諦めた者は、弾避け(ダンヨケ?タマヨケ!)にすらならないのだ。そこに流れ弾が飛んでくる可能性が少しでもある以上、弾避け程度には役立つ技量は保持しておきたい。

私は何歳になってもコードを諦めるつもりはないし、システムに障害があった時は、自分がゴールキーパーになれるような存在でありたいです。

なお、矛盾するようですが、「エンジニアがマネジメントを経験すべき理由」という記事も書きました。

Good luck for your engineer life!

-エンジニアの処世術, エンジニアの生き方

Copyright© プログラミング道場 , 2018 All Rights Reserved Powered by AFFINGER4.