フロントエンドエンジニアの多様性

フロントエンドエンジニアの領域が広すぎる。そんな話が先日のアクセシビリティの情報交換会ででてきた。今回はそこをもう少し考えてみた。

フロントエンドの領域

いつ頃からだったかフロントエンドエンジニア(以下FEE)という言葉が生まれ、IT/Web界隈でみんなの共通認識ができた。マークアップエンジニアやWebデザイナーと名乗っていた人も一部そう名乗るようになった。その当時、FEEの領域といえばHTMLとCSSでのコーディングをベースにJavaScriptでAjaxやDOM操作をしたり、もしくはFlashを再現するようなリッチなインタラクションの実装をすることだった(まだFlashも現役だったっけ)。

それがいつの間にかSASSをきっかけに開発環境の変化が起こり、Web APIは豊かになり、ViewとModelのアーキテクチャがフロントエンドでも再現されフレームワーク化し、SPAのようなものが実現可能になった。メディアも多様化し、Web標準でSVGや音声・動画が扱え、Canvas要素やWebGLでプログラムによる2D・3D描画が可能になった。そしてそれらをいかに高速にハイパフォーマンスで提供するかや、いかに保守性を高めて堅牢なつくりにできるかなども、どんどん知識が必要になってきている。

一方でバックエンドやインフラも進化して、それぞれが歩み寄り技術の境界線が徐々にわからなくなりつつあり、FFEがFirebaseを扱ったり、AWS Lambdaを使ったり、CDNエッジサーバの設計をしたり、サーバーサイドレンダリングまで担当したり。もうそれフルスタックですよね、と言いたくなるようなところまでカバーしている人もいる。もはやフロントエンドの領域がわからない。

また、もともとメイン領域であったはずのHTMLのマークアップについて情報をアップデートするとWebアクセシビリティに帰結して、FEEはそれも領域なのではないか、という話にもなっていく。

そろそろ限界だ

そろそろというか、とっくのとうにボロボロと情報を取りこぼしていて、下手すると1年遅れを取っている、もしくは取り組めてすらいない領域もある。

フロントエンドの領域内でのジェネラリストになるのは僕には無理だ。

あと教育についても思う。FEEを育てるという話があっても、触りを教えるならいくらでもできるけど、「育てきる」ってなった瞬間に不可能でしょう。一人前のFEEってなんだ?

多様化という言い訳

さきに並べたとおり、領域が多様化しているのだ。もっと分けてもいいんじゃないか。むしろ分けたほうがいい。世の中は天才ばかりじゃない。

WebアクセシビリティをメインとするFEE。高速化やパフォーマンス・チューニングをメインとするFEE。保守性が高く堅牢な設計をメインとするFEE。ビジュアライズ・アニメーション・インタラクション実装をメインとするFEE。開発環境の整備・効率化をメインとするFEE。UX・要件定義や情報設計をメインとするFEE。

どれかひとつでも秀でていれば、もしくはいつくかをもっていれば今は十分なんじゃないかな(いずれ、これらのいくつかは不必要になったり機械がすべてを担ったりするだろうけど)。

結局はチーム力

現在だってFEEだけでものがつくれるわけじゃない。PMやマーケターやプランナーやディレクターやデザイナーやバックエンドエンジニアやインフラエンジニアのいずれかはチームにいるはずだ。FEEの多様化が起こって、それぞれが分業のような形になっても、結局はチームでプロジェクトを進めて、お互い歩み寄ってコミュニケーションをとっていくことになるはず。だから、組織やプロジェクトが許す範囲で、スペシャリストとして発揮できるのであればそうしたほうがいいと思う。僕ならそうしたい。

専門性を頼ってほしいし頼りたい

まあ、結論なにが言いたかったかというと、Webアクセシビリティの領域でお困りの方がいらっしゃたら、ぜひ声をかけてほしいということです。もしくは「自分は〇〇メインのFEE」だって発信してもらえると、チームやプロジェクトに何かあったときに声をかけて頼りやすくなるから、そうしてもらえると嬉しなと思います。

あとは、あれだ。やっぱりFEEがもっと増えてほしいよね😝

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

108

#エンジニア 系記事まとめ

noteに投稿されたエンジニア系の記事のまとめ。コーディングTIPSよりは、考察や意見などを中心に。
2つのマガジンに含まれています

コメント1件

非常に共感できる内容でした。私もフロントエンドエンジニアのはずがなぜかJSにほとんど触らずPHPを主戦場とする逆転現象が起こっており、スキルのマッチングに苦慮しています。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。