フルスタックエンジニアになりたいなら、まずは「○○な人材」を目指そう

今回は「フルスタックエンジニア」というものを、IT業界の最前線で働く方たちのことばを引用しながら紐解いていきます。もうすでに、フルスタックエンジニアに代わる言葉も登場してきているので、まだ知らないという方は必見です。

フルスタックエンジニアとは「なんでも屋さん」

フルスタックエンジニアとは、通常はそれぞれに専門の技術者がいて分業されるような複数の技術分野についての知識や技能に精通し、一人でシステム開発や運用を行なうことができる技術者のこと。

要するに「なんでも屋さん」ということですね。Webに関して言えば、Webサーバー、OS、DB設計、Webデザイン、フロントエンドまでを言われていたりします。それでも、”フルスタック”の範囲をどの程度まで包括させるかは、明確に決まっていません。

なぜフルスタックエンジニアが求められるの?

一般的にフルスタックエンジニアというと広範囲の知識・経験を網羅しているため、全体を俯瞰して見ることができ、調整や複数分野を横断した問題の解決を可能にします。

新規事業でフルスピードで立ち上げをしなくてはならないときに、フルスタックエンジニアが一人いると勢いがつくため、特に少人数でリソースの限られたベンチャーやスタートアップなどに需要があります。

募集要項でみる「フルスタックエンジニア」

「どんな人材が必要なんですか?」

「要件定義から設計までできて、データベースの設計も運用もできてビッグデータ解析もできて、フロントエンドから、バックエンドまで精通している人を補充してください。しかも精神的に忍耐強い人にしてください。すぐに辞めるような人は困ります」

「フルスタックエンジニア募集」という文言は、なんでもできて文句も言わずに働く人を雇いたい、という企業の気持ちが映しだされているという指摘もあります。「フルスタックエンジニア、なんだかかっこよさそう」と言葉だけに釣られると、痛い目を見るかもしれません。

フルスタックなど無理、という意見

カバーすべき範囲が年々拡大しているので、完全に全てを理解するのは、もう無理だと思います。by クックパッド技術部長小川伸一郎氏(引用:一流のエンジニアが集まるクックパッドで聞いたエンジニアのライフスタイルと求められるスキル)

まず前提として現在の高度に複雑になり続けるソフトウエアにおいて、本当の意味で「フルスタック」を理解することは一人の人間では不可能だと思っています。byグリー 取締役 執行役員常務 最高技術責任者 藤本真樹氏(引用:質問:フルスタックエンジニアを目指すべき?)
このおふたりとも「このめざましく新しい技術が浮かんでは消えていく時代に、本当の意味でのフルスタックは無理」という趣旨の発言をしています。確かに本当の意味(=関係する全範囲を網羅する)でなんでもできるフルスタックエンジニアはほとんど存在しえないでしょう。

これからは「フルスケールエンジニア」

フルスタックは無理、という意見のあとは、フルスタック化の傾向を示している主張を見てみます。

AWSの出現であらゆる開発がプログラマブルになっていった結果登場したのが、両方に詳しいフルスタックエンジニアです。それと同じことが、良いIoTプラットフォームが出現したら起こるのだと思います。bySORACOM玉川憲氏(引用:フルスタックの次はフルスケール!?SORACOM玉川憲氏が語る、「IoT普及で求められるエンジニア像」 –エンジニアtype)
アプリとインフラは別々でしたが、AWSの登場によって、アプリ側の人がコードでインフラに触れるようになり、フルスタックになる傾向があると仰っています。これがIoTプラットフォームによっても起こり、「IT」と「ものづくり」の両方に知見のあるエンジニアが増えていくだろう、というのが玉川さんの主張です。

そして最後に、「フルスタック」が指していた領域さえも越えていくエンジニアを「フルスケールエンジニア」と玉川さんは呼んでいます。確かにWebで考えた時に「フルスタック」を、ものづくりの領域まで広げて捉えた人はいないでしょう。そこで、新しい概念として「フルスケール」というものが出てくるのです。

アプリとインフラは別々でしたが、AWSの登場によって、アプリ側の人がコードでインフラに触れるようになり、フルスタックになる傾向があると仰っています。これがIoTプラットフォームによっても起こり、「IT」と「ものづくり」の両方に知見のあるエンジニアが増えていくだろう、というのが玉川さんの主張です。

そして最後に、「フルスタック」が指していた領域さえも越えていくエンジニアを「フルスケールエンジニア」と玉川さんは呼んでいます。確かにWebで考えた時に「フルスタック」を、ものづくりの領域まで広げて捉えた人はいないでしょう。そこで、新しい概念として「フルスケール」というものが出てくるのです。

「フルスタック」には狭義と広義の意味がある

フルスタックは無理という話と、フルスタックの傾向がある、という話。この相反する2つの主張が出てきているのは単純に、「フルスタック」が指す定義範囲のずれなのでしょう。無理派は「すべてできる」という広義の意味で捉え、可能派は「複数の専門を持っている」狭義の意味で捉えています。

広義な意味のフルスタックエンジニアは存在しないでしょうが、狭義の意味でのエンジニアなら思い当たる方も少なくないはず。「フルスタックエンジニア」という言葉を使うのなら、狭義の意味で使ったほうがより有用でしょう。

『フルスタックエンジニアとは、複数の専門分野を持っているということ』

こうすることでより使いやすい言葉になるはずです。

「これができる」を増やしていこう

「フルスタックは無理」だという小川さんは記事の中で、専門性のある人材のほうが強いと語りました。また、フルスタック賛成派の玉川さんの話でも、ITの専門性をつけた人が、次はものづくりに手を伸ばしていくという形でした。まさにT字型ですね。もっというと玉川さんの主張は、T字が複数あるようなイメージかもしれません(=狭義のフルスタック)。

なんでもこなせることに越したことはありません。しかし、はじめからフルスタックエンジニアになろうと、あちらこちらへ手を広げていると、どれも80%の能力でとどまってしまい、専門性を極めた150%の人に取って代わられちゃうこともあるでしょう。

まずは同じ箇所を掘り進めて専門性を深め、誰にも負けないほど掘ったらそこだけに固執せず、次はそれを軸にして、守備範囲を広げていこう。別のところを深掘りしていこう。これが時代の流れであり、社会が求めている人材像なのではないでしょうか。

最近よく聞く「フルスタックエンジニア」を見てきましたが、最終的には「T字型人材が求められている」というところに落ち着きました。もしあなたが「フルスタックエンジニア(狭義)」を目指すのなら、「なんでもやってやる」からの出発ではなく、「これができる」を増やしていく方針のほうが、より本質的でしょう。