フルスタックエンジニアはいらない?|現場で会議を救ったのは「つなげる人」だった

スペシャリストかジェネラリストで悩んでいるおかかくん 働き方・キャリア
おかかくん
おかかくん

フルスタックエンジニアって、すごそうだけど実際どうなんだろ?
なんでもできる人にならなきゃいけないのかな…?

IT業界30年、フリーランスSEのおにぎりです。

「フロントエンドもバックエンドもインフラもやれます!」
ひと昔前には聞くことが多かった「フルスタックエンジニア」。今の若手エンジニアにとって、どんな印象があるんだろうか。

30年・50以上の現場を見てきた経験から、「フルスタックエンジニアって現実どうなの?」「目指す価値あるの?」という疑問に答えていく。

お悩み:全部できるようにならなきゃいけないの?

おかかくん
おかかくん

なんでもできるエンジニアになれって言われても、範囲が広すぎて無理ゲーでは…

おにぎりさん
おにぎりさん

「全部できるようになる」より「つながりを理解できる」ことの方が大事だよ。

結論:フルスタックエンジニアを目指すより、活かす視点が大事

『なんでもできる』ってカッコイイかも知れないけど、どれもが中途半端になる危険性もある。特に現代では、技術の対象範囲があまりに広すぎて、一人でカバーするには情報量が多すぎる。

でも、『フロントエンド(画面など)しかできません』『データベースしか分かりません』では、よほどのスペシャリストでもない限り、仕事を選べないのも事実。

おススメは、『自身の強い分野 + α を持つこと』だ。

フルスタックエンジニアの正体は「全体を理解できるエンジニア」

おにぎりさん
おにぎりさん

「フルスタックエンジニア=全部一人でこなせるエンジニア」と思われがちだけど、実際は「広く浅く理解している」ことが多いよ。

たとえば、

  • フロントエンドはVueやReact(どちらも画面向けのフレームワーク)で最低限の画面が作れる
  • バックエンドはSpringBootやLaravelで簡易APIを作れる
  • DBはSQLで基本操作できる
  • インフラはDockerやAWSの基本概念を理解してる

このくらいでも「フルスタックエンジニア」と言われることがある。だから、全部に精通している必要はなく、自分の担当範囲プラス、関係がある分野の話ができればぜんぜんOKだ。

実際、私が長く関わったプロジェクトでも、「フルスタック」と呼ばれていたメンバーは、全分野を深く理解していたわけじゃない。それぞれの専門家と話ができて、橋渡しができる。その人がいると、会議の進み方が変わった。

現場が求めているのは「つなげられる人」

実際の現場では、各分野に特化したスペシャリストがいるはず。(もし居ない場合は、かなりきついけどw)

でも、

  • フロントエンドとバックエンドをつなげて設計(検討)できる
  • DB設計を理解しながらAPI仕様を調整できる
  • インフラの制約を意識したうえで設計や実装ができる

こういう「分野間での橋渡し」ができる人がいると、めちゃくちゃ助かる。

全部は無理でも、全体の構造を理解して調整できる人」は重宝される。

これは実際にあった話だ。ある案件で、フロント側とバックエンド側の担当者がそれぞれの言い分を持ち寄り、会議が頓挫しかけたことがあった。双方とも間違ったことは言っていない。ただ、お互いが相手の制約を理解しきれていないまま平行線になっていた。私はどちらの実装にも触れられる立場だったので、両方の意見を一度自分の中で翻訳し、「フロント側はこう困っていて、バック側はこう困っている、だったらここで折り合えないか」と落としどころを提案した。技術力で解決したわけじゃない。両方の言い分がわかる、というだけで会議は前に進んだ。

おかかくん
おかかくん

つなぐ人がいると、会議の空気が変わるって感じる。あの人がいると話がまとまるって人、確かにいる。

おにぎりさん
おにぎりさん

そういう人はたいてい、一つの技術に詳しいというより、全体の流れを掴んでいる。「全部できる」じゃなくて「全体が見える」んだよね。

スペシャリストか、ジェネラリストか、は好みでOK

スペシャリスト(専門家)か、ジェネラリスト(フルスタック思考)か。どちらを目指すべきかという議論は昔からあるけど、実は、どっちを目指しても正解だ。

  • 一つの技術に深く没頭して突き詰めたい → スペシャリスト
  • 現場で会話ができる幅広さが欲しい → ジェネラリスト(=フルスタック思考)

自分で考えて『どちらが向いているか』『どっちをやりたいか』で大丈夫。もっと大事なのは、「自分の得意を活かすこと」と「チームで動く意識」だ。ここさえ忘れなければ、どちらも正解。

私自身は、ITがまだ未成熟な時代にこの業界に入ったことや、元々技術的な勉強を苦にしないタイプだったので、業界の成長とともに自分もいろんなことを知る機会があった。結果として比較的フルスタックに近いキャリアになったけど、狙ったわけじゃない。好奇心で動いていたら、気づいたらそうなっていた。

その先にある成長

ちょっと先の話をすると、少しだけでも他の分野に触れてみると、見える世界が変わる

たとえば、

  • DB設計を知ることでAPI設計がうまくなる
  • フロントの実装を知ると、UXを意識できるようになる
  • インフラの知識があると、無駄なリクエストを避けられる

『フルスタック=すべてをやる』じゃなくて、
『フルスタック=視野を広げること』

これが一番効いたのは、ある障害対応のときだった。フロントエンドからバックエンド、DBまで一通り土地勘があったので、障害の内容を見た瞬間に「関係がありそうなポイント」を各階層ごとに洗い出すことができた。一つの技術しか知らなければ、自分の担当範囲だけを疑って終わっていたかもしれない。全階層を見渡せることで、原因の候補を早い段階で絞り込めた。

この意識を持つだけでも、現場での成長の速さが変わってくる。

フルスタックエンジニアに向く人。向かない人

フルスタックエンジニアのメリット・デメリット

メリットデメリット
幅広い視野が持てる中途半端と思われがち
現場で重宝される学習コストが高く、常に勉強が必要
会話が通じやすい良いように使われがち(便利屋?)
おすすめ関連記事

良いように使われないための方法はこちら
👉「いい人」リーダーの落とし穴|言えない優しさがチームを壊す

フルスタックエンジニアに向いていない人

自分は、今と比べたらまだまだITが未成熟な時代にこの業界に入ったことや、元々技術的な勉強を苦にしないタイプだったので、ITの成長とともに自分もいろんなことを知る機会がありました。結果、自分自身は比較的フルスタックエンジニアに近いと思っています。

じゃあ、フルスタックエンジニアに向かないかもと思う人はどんなタイプか。

  • スマホアプリなど、とにかく一点集中で技術を極めたい人
     → これは理由はいらないですねw
  • 一つに集中すると他が疎かになる人
     → 自分の担当分が疎かになっては本末転倒
  • 画面の見た目や機能にこだわりすぎて、実用性を見失った人の実例
     → あるメンバーは画面のデザインや機能の作り込みに熱中するあまり、実務ではとても使いにくい画面を仕上げてしまったことがある。技術力が低かったわけじゃない。むしろ高かった。ただ、ユーザー(顧客)が実際にどう業務で使うかという視点が抜けていた。私からは、顧客目線での使いやすさと、現場の業務課題を交えながら改善案を出すよう促した。一点に集中する力そのものは武器になる。ただ、その力を「誰のために使っているか」を時々振り返る視点も一緒に持っておきたい
  • 元々IT技術に興味が無い人
     → なんでこの業界に入った?
  • 自分は技術より管理が向いていると思っている人
     → たとえ管理者になってもある程度、技術に精通してないと管理はできないんだけど……それはまた別の機会にw

一点集中タイプで周りもそれを許してくれているなら、環境に恵まれていると思う。感謝しよう。残りの3タイプに当てはまる人は、フルスタックエンジニアにならなくても良いけど、今からでも遅くないから、少しでも視野を広げておくといい。そうしないと、後で痛い目に合うかもしれない。

まとめ:目指すかどうかより「視野を広げる」が正解

フルスタックエンジニアは「全部できる人」じゃなく、「全体を理解できる人」だ。一人で全部やる必要はなく、チームの中で橋渡し役になれると強い。スペシャリストでも、他分野に少し触れておくとさらに伸びる。

「目指す・目指さない」より、「視野を広げ続けるかどうか」の方がキャリアに大きく影響する。どちらの道を選んでも、その姿勢があれば現場で必要とされ続けられる。

  • となりの技術分野を10分だけ調べてみる
  • チーム内の別ロールの人と話してみる
  • 「この処理、全体で見るとどう影響する?」と考えてみる
おかかくん
おかかくん

よし、とりあえずDockerまわりでもちょっと触ってみるか〜!

この投稿が悩んでいる人へのヒントになればうれしい。感想やご意見があれば、気軽にコメントをもらえると嬉しいです。

コメント

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