フルスタックエンジニアを批判する人たちの危うさ

自称、底辺フルスタックエンジニアのCodeLabです。
最近、Twitterなどを見るとフルスタックエンジニアを批判している人が結構います。
フルスタックエンジニアってそんなにダメなんでしょうか?
何がダメで、なぜそのような思考になるのかを解説したいと思います。

フルスタックエンジニアを批判する人たち

フルスタックエンジニアを批判する人たちはどんな人たちでしょうか?
これはある程度想像にはなってしまいますが、おおむねこんな感じの企業や個人かなと思います。

  • SES企業関連
  • 比較的大きい組織の属しているSIerや開発会社

反対に、擁護する立場の人たちは

  • 中小企業やベンチャー企業系

といった特徴があるように思います。

フルスタックエンジニアを批判する人たちの特徴

フルスタックエンジニアを批判する人たちの特徴や、企業文化などがどのようなものなのかを見ていきたいと思います。

SES企業については理由は簡単です。SESは要するに人材派遣と同じなので、派遣する人材を売り込むときに、”何でもできます”よりも、”何が得意です”というように売り込むほうが簡単だからですね。

次に、大きな企業に属している方の場合です。これは、ベンチャー企業系と対比させるとわかりやすいと思います。
なぜこのような発想になるかというと、大企業とベンチャー企業での開発方式の違いにあります。

大企業では、大きな案件を受けることが多く、こういった案件は大人数で作業することになります。
そうなると、各チームに専門性を持たせ、工程ごとや分野ごとに作業内容を分割して作業させる場合が多くなります。
例えば、
デザイン、フロントエンド、バックエンド、インフラ、運用の各チームに分けて、それぞれの工程を作業させます。各チームは、他の工程の作業をする必要はないので、自分が担当する工程のスキルが高くなり、専門性が増していきます。
もちろん、1つのチームに各分野の専門家を入れて作業させる場合もありますが、そうするとどうしても段階によって作業に空きができてしまう場合が多いため、分野ごとにチーム分けしたほうが効率はいいでしょう。

逆に、中小企業や、ベンチャー企業系の場合は、比較的少人数なことが多く、一つのプロジェクトに専門家を割り当てることは難しい場合がほとんどです。
そういった場合に、”各分野である程度の知識があるバックエンドエンジニア”が活躍することになります。

もともと、フルスタックエンジニアなる単語はなかった

フルスタックエンジニアは広い意味で、企画~保守/運用まで対応できる人というような意味合いかと思いますが、狭義では、フロントエンドとバックエンドが両方できる人というのが該当すると思います。
どちらかといえば後者で使われることが一般的ではないかなと思います。

でも、この単語ができたのは、おそらく数年前ぐらいだと思います。

とくに、Web系アプリ開発においてはフロントエンドとバックエンドというように明確に分けるようになってからかなと思います。
フロントエンドのフレームワークといえば実質jQueryぐらいしかありませんでしたが、今はかなり乱立しており、これの影響が考えられます。

ですので、一昔前はそんなくくりはなく、”そんなの両方できて当然”というスタンスだったと思います。
ある程度昔からやっている人間からすると、そもそも分けること自体がおかしいというのが印象です。

ただ、フロントエンドのフレームワークである、Vue.JsやReactはそれなりに難しいのは確かだと思います。

フルスタックエンジニアを批判する人たちの主張

あなたの売りは何?
これは特にSES系の方に多い主張カナと思います。
前にも述べた通り、”何でもできます”というような営業方法は弱いので。
得意分野がない、器用貧乏ととられがちではあります。

専門性が低い
こちらは大企業系の方に多い主張だと思います。
確かに、一定レベル以上のスキルは必要だとは思います。
もちろん、専門性が必要な場面はあります。
わかりやすい例でいえば、秒間何千PVも来るようなサイトであれば、専門知識が必要です。
ですが、あまりアクセスがないサイトであれば、最低限のセキュリティーさえ担保できればWebサーバーとしては問題がありません。

つまり全部が全部エキスパートである必要はないということです。

飲食店で言えば、ミシュランの★持っていない料理人は存在価値がないといっているようなものです。
もちろん、★持っていれば素晴らしいことではありますが、ないからといってだめかといえばそんなことはありませんよね?

フルスタックエンジニアの役割とは

そもそもフルスタックエンジニアは全知全能の神レベルである必要はない
前述の通り、何でもかんでもエキスパートでなければだめだなんてことはないと思います。
その案件が、そこまで高度な技術スタックを必要とするものでなければ、フルスタックエンジニアが対応しても問題はありません。小規模案件であれば一人でも対応できるでしょう。

また、高度な技術や知識が必要な場面は、フルスタックエンジニアがジャッジして必要なスキルを持つ人に分業すればよいのです。
何の問題もないですね。

逆に、フルスタックエンジニアがいない環境ではどうでしょうか?
まず、各分野お専門家は他の分野の知識が無いので、話が通じず取りまとめるのが困難です。
また、エキスパートであればあるほど、プライドが高くなる傾向があるので、自分の主張を変えないことが多いです。ある程度の技術的な裏付けなしに説得するのは非常に困難です。
方針の選択においても、それぞれの分野でベースとなる知識が無ければ技術的なジャッジができず、ただ単に好みの問題であるとかチーム間の力関係で物事が決まってしまい、正しい選択ができないという問題があるのではないでしょうか?

ここに、フルスタックエンジニアを批判する人たちの危うさがあるように思います。
特に、日本においては、大規模プロジェクトほどあり得ないような失敗が多く、IT分野での日本のレベルが低い原因の一つではないかと思います。

物事には適材適所というものがあります。
小規模プロジェクトなんてとるに足らないものと思うのも勝手ですが、”フルスタックエンジニアを批判する人たち”は視野が狭いんじゃないかなぁ?

というのが私の主張です。

フルスタックエンジニアをめざす”べきではない”人

フルスタックエンジニアは目指してなるものではありません。
ある程度の時間と経験、そしてプログラミングだったり、インフラ構築だったり、エンジニアリングが好きで自分で、自分の時間を使ってできる人じゃないとなかなか難しいと思います。

特に
プログラミングスクール出たばかりの経験が浅いエンジニア
プログラミングが好きではないが、手に職をけるために勉強している系の人
できるだけ大きい有名企業に就職したい

ということであればやめてほいたほうがいいと思います。
時間の無駄だと思います。特定技術に特化してスキルを高めたほうが効率がいいと思います。

ただし、注意してほしいのは、技術はいずれ陳腐化するということです。

特に、大企業に就職して分業でプロジェクトを進めるような会社の場合。
ずーーっと、同じような技術スタックしかやらせてもらえない場合があります。
自分のやっている技術が陳腐化してしまったときに、他の技術に乗り換えできるかどうかというのは非常に重要です。
常に勉強していろいろな知識を習得するような習慣がないと、そのままリストラされてしまいます。
プログラマ35歳定年説というのが言われていましたが、こういったことも一因があると思います。
大企業でエンジニアに(特にプログラマ)になろうというという方は、よくよく注意して企業に飼い殺しにされないように注意すべきです。

フルスタックエンジニアをめざすべき人

基本的には、フルスタックエンジニアは目指すべきではないと思いますが、下記のような目的があれば目指してもいいかとは思います。

立ち上げ直後のベンチャーで一旗揚げたい人
自分でITベンチャー企業を立ち上げたい
フリーランスエンジニアで受託開発をやりたい

ただし、何にせよある程度の実務経験を積んでからのほうがいいと思います。
また、得意分野は決めておいた方がいいと思います。

自分は、Webアプリ開発を主に、バックエンドを得意としていて、フロントエンドや簡単なインフラ構築ができるフルスタックエンジニアとして活動しています。

フルスタックエンジニアを名乗らないほうがいい?

Twitterを見てみると、フルスタックエンジニアは印象が良くないようなのでプロフィールや表示名から外したという方がちらほらいらっしゃいました。
ですが、私はあえてフルスタックエンジニアを名乗ることを継続することにしました。

理由としては、前述の、めざす/目指さないの項目と若干被りますが、私の商売上のターゲットがベンチャー企業や中小企業、個人起業家だからです。
そういった企業はある程度少人数でプロジェクトを進めたい場合がほとんどなので、フルスタックエンジニアという肩書は武器になります。

反対に、特にSESタイプのフリーランスや、大企業への就職や、大規模プロジェクトへの参画を目指している方の場合は、外したほうがいいと思います。
フルスタックエンジニアの悪い印象はIT業界内の一部で、それは私のターゲットから外れているのでそのままにするという考えです。
大きいプロジェクトもそれはそれでやりがいはあるとは思いますが、大きい組織の歯車で何を作っているのかわからないというような仕事は、自分で仕事の制御ができず、また制御外のところで炎上しやすいので、私の好みではないというのも理由の一つです。

同じような考えの方で、各分野でそれなりの見識をお持ちの方であれば、フルスタックエンジニアを名乗ってもいいのではないかと思います。

今後、業界外の世間の印象が変われば変更することはあるかもしれませんが、現状はこのままでいこうと思っています。

 

図解入門 よくわかる最新 システム開発者のための仕様書の基本と仕組み[第3版]
Amazonで増田智明の図解入門 よくわかる最新 システム開発者のための仕様書の基本と仕組み。アマゾンならポイント還元本が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォンやタブレットなど、様々な端末でもお楽...
Amazon.co.jp
タイトルとURLをコピーしました