戯言。フルスタックエンジニア不要論。

徒然草2.0

求人を見ていると、聞いたことがないミドルウェアの利用経験などが必須で求められることがあり、眺めているだけでも面白い。というわけで最近は求人情報を眺めていますのですが。

とある求人について…あまり詳しく書けませんが、先端技術の名がつく日本で有名な会社のシステムらしいのですが、Java+postgreSQLの経験が求められる案件がありました。Javaの経験が少ない意外、私の経験にマッチしていなくもありませんが、DBやHWやNWの知識が満遍なく求められる「フルスタックエンジニア募集」と書いてあります。Web系というよりSIer案件って感じがする構成です。SIerにおける昇進はプログラミングひいては設計から離れることなので、本当に優秀な人はJava+PostgreSQLを極めようという技術的な方向へは行かない気がします。

まあ、私は必要に応じてどんな仕事もやりますが、この技術スタックでネックなのがJava経験ですよね。(偏見ですが)フルスタックエンジニアだったらJavaをメインでやらないと思うんです。

今で言えばPythonとかGoとか。Javaからキャリアを初めてRuby(Web系)に転向してフルスタックを名乗っている人たちならいる気がしますが、その手の人がJavaの開発に戻りたいか?って言うと戻らないと思うのですが。

いずれにしても、このフルスタックエンジニアの案件にマッチする優秀な人材というのは極めて少ないのではないだろうか。

これはフルスタックエンジニアがもともと少ないからということもありますが、そもそも、フルスタックエンジニアがベストフィットする案件がそもそも確率的に少ない、という理由の裏返しでもあると最近良く思います。

技術Aと技術Bと技術Cがマスターレベルの技術者が欲しい!というニーズは、その会社独自なものであり、同じようなニーズを満たさないといけない会社がいくつもあるわけではありません。

簡単に言い換えてしまえば、とある会社におけるフルスタックなエンジニアは、別の会社のフルスタックエンジニアになりにくいです。

私も経験がありますがフルスタックエンジニアが「色々な経験がありるようですが、技術スタックが弊社が求める人材とあっていません」と言われてしまうことがあります。具体的には?と聞くとはっきりした回答が貰えない。どこらへんの技術領域が足りていないか回答いただけないのにお断りされる例が、他のフルスタックエンジニアの職探しにおいてもありました。

また、最近の大規模なWeb系システムは分業化が進んでおり、すべての領域を担当できる人がいたほうがいいか?というと、別にそんなことはありません。インフラ、バックエンド、フロントエンド、デザイナ、それぞれ役割分担をして作業を行っていくので、フルスタックエンジニアが入り込む余地がありません。システムアーキテクトやCTO的な立場からシステム全体を俯瞰してあるべき姿へ、組織育成ないしはプロジェクトを成功へと導く人はプロマネ意外に担当者が必要かもしれません。技術スタックもあるのが望ましいですが、それ意外の分野にも秀でている必要があります。フルスタックエンジニアがその職業へ転職することはあるかもしれませんが、しかし求められるのはフルスタックエンジニアではありません。

フルスタックエンジニアが得意とする領域は、小中規模のシステムを一人ないしは数人で回せる能力に過ぎません。すなわち、フルスタックエンジニアがもっとも重宝されるのは技術の横断を難なくこなして、低コストでシステムを作れる場面のみ。逆にその期間を過ぎるとポジションとして不要になります。一定規模のシステムにおいては属人化を防ぐという意味でも、フルスタックエンジニアは不要になる

もちろん、マネジメントやアーキテクトもできるフルスタックエンジニアと名乗っているスーパー人材はいるかもしれませんが、それって目指してなれるんだっけ?という漠然とした不安が残ります。

…というわけで、私がフルスタックエンジニアかどうかはさておき、何でもできる人が最強!と思って生きてきましたが、使っている技術も陳腐化しているし、そもそも勉強できていない&実務経験を積む機械を逃してきたというのもありますけど、そのへんの自分のやる気なさを差し引いても、フルスタックエンジニアのキャリアって先々がやはり見えにくくなくなるよ、って思います。

もし、フルスタックエンジニアとしてそこそこいい人生を歩むとしたら運と能力の両方が必要ですが、スタートアップ時にストックオプションをもらい、上場を目指すこと。その後、CTOとして認められる立場で働けること。これくらいしか思いつきません。もしくは、自ら起業すること。

もちろん…1つの技術だけを極めるスペシャリストになることがベストプラクティスかっていうとそれも怪しいですが、複数の技術を極めることが正解か?と言われればけしてそうではない気がします。

どうせ色々と極める気があるなら、技術以外のスキルも並行して伸ばしてこそ、真のフルスタックエンジニアなんじゃね?という気もします。

理想のフルスタックエンジニアの観点から言えば、ビジネススキルもヒューマンスキルも最強。語学も堪能。IT分野の技術もすべて網羅的にマスターしている。経験も実績もある。

…まあでも、そんな人物が仮にいるとしたら、フルスタックエンジニアをやらずに、ふつーの起業家になっていると思うんですけどね(汗)

…なんだか、色々な会社で色々とやってきたつもりだけど、Web系プログラマをやっているおじさんになれているのなら(私のことではないのですが)それはそれで1つのあるべき姿かもれしれませんが、なんだかそのことに違和感を覚えているこの頃でもあります。

よくMENTAで「フルスタックエンジニアになりたい!」って言っている人がいます。私もかつてそうだったのですが、なんで?と思ったりしたので、フルスタックエンジニア不要論を書いてみましたが、今後も多分似たようなエントリーを「フルスタックエンジニアは不要だな」と思った折に書いてみようと思います。

(これを読んでいる人はきっとフルスタックエンジニアなるものに疑問をいだいているひとだと思いますので)では、よいフルスタックエンジニアライフを!

徒然草2.0
スポンサーリンク
シェアする
gomiryoをフォローする
ごみぶろぐ

コメント

タイトルとURLをコピーしました