🌟

フロントエンドエンジニアに求められること

に公開

はじめに

この記事では、仕事としてフロントエンドエンジニアに求められること、自社のエンジニアに求めていることを書いていきます。仕事である以上、興味のあること、好きなことだけやっているだけではなかなか成立しませんし、評価もされません。

フロントエンドエンジニアがどんなスキルを持ち、どう立ち回り、どこまで責任を担えばプロジェクトがうまくいくか。その観点から「求められること」を、フロントエンド開発を5年やってきた経験を踏まえて書き出してみました。

デザインをリスペクトし理解する

デザインはデザイナーだけで完結するものではありません。フロントエンドエンジニアが実装して、はじめて形になる。だからこそ、一緒に作るという意識が必要です。
実装上の制約や実現可能性。デザインと実装の連携方法。デザインシステムやコンポーネント指向から外れたときのリスク。そして、実際に動かしてみて初めてわかる違和感。これらはデザイナーと対話しながら作り込んでいく領域です。

フロントエンドエンジニアは、デザイナーに最も近い立場でアプリを形にする存在です。だからこそ、デザインを理解し、リスペクトを持って向き合う。その姿勢が求められます。

ユーザー体験を想像する

静的なデザインだけでは見えないことがあります。
次のアクションがわかりにくい。ローディング時にレイアウトがガタつく。エラーメッセージが不親切で原因が伝わらない。状態に合わない選択肢が表示されていて混乱する。こうした実装して動かしてみて気づくことは多くあります。

これらに気づき、担保するのはフロントエンドエンジニアの役割です。ユーザーがどう使うかを想像し、体験として成立させる。これができないと、仕様を満たしただけの使いづらいアプリになってしまいます。

フロントエンドに責任を持つ

アプリやシステムの開発現場では、広大で多種多様な知識と経験が求められます。さらに新しいパラダイムが次々と登場し、最適解は常に塗り替えられていく。たとえばこれをテックリード一人が全て把握するのは現実的ではありません。

だからこそ、フロントエンドエンジニアはフロントエンドの専門家としてチームに貢献する必要があります。最新の知見をキャッチアップし、技術的な判断と意思決定を担う。リードでなくても、メンバーであっても、専門家として発言する。指示を待つのではなく、フロントエンドに関しては自分が責任を持つという意識が求められます。
それはコード品質だけではなく、技術選定の選択肢、設計方針、開発ワークフローなど、フロントエンド開発全体を最適化することに責任を持ちます。「作れる」だけでは圧倒的に不十分です。

フロントエンドが担う非機能要件を押さえておく

SEO、OGP、アクセシビリティ、パフォーマンス計測、クロスブラウザ対応、アナリティクス、URL設計、ブラウザの標準機能など。フロントエンドに関わる非機能要件は多岐に渡ります。
これらは日常的に実装するものではないため、体系的に身につける機会が少なく、抜け落ちがちな領域です。しかし、プロジェクトの中で必要な場面、知識を持っていたら提案できる場面は必ず来ます。

すべてを深く理解している必要はありません。ただ、知識として押さえておき、必要なタイミングで提案できること。求められたときに応えられること。「誰かがやるだろう」ではなく、自分ごととして意識しておきたい領域です。

越境する

デザイン、フロントエンド、バックエンド。それぞれの境界線上にある決め事やタスクは浮きがちです。誰の責任かが曖昧になり、抜け落ちる。 フロントエンドは構造上、デザインとバックエンドの中間に位置します。たとえばバックエンドが画面の都合を十分に考慮できないと、使いにくいAPIになったり、後から手戻りが発生したりします。

この中間にいるフロントエンドが、コミュニケーションのハブになる。デザイナーとバックエンドの間に入り、必要な人を巻き込み、デザインから実装まで一貫して成立する仕様に持っていく。中間に位置するからこそ、越境することが求められます。

越境するためには、バックエンドをはじめシステム全体への理解が必要です。APIの設計、データモデル、インフラの制約。こうした知識がなければ、対等に議論することも、問題に気づくこともできません。自信がなければ越境を躊躇してしまうでしょう。自信を持てるだけの知識を持ち、他の領域に踏み込んでいく。それがフロントエンドエンジニアに求められることです。

おわりに

フロントエンドエンジニアには、越境するためにアプリケーション全体を理解することが求められます。同時に、フロントエンドの専門家として、デザインやブラウザ、UI/UXにも精通している必要がある。求められる範囲は広い。

昨今、フロントエンドからバックエンドまでアプリケーション全体を担うエンジニアと、インフラやクラウド基盤などプラットフォームの開発を担うエンジニアという分化が進んでいるように感じます。 アプリケーションか、プラットフォームか。 もしアプリケーション側に立つなら、この記事で書いてきたことが必要になるはずです。

誰よりもデザインをリスペクトし、ユーザー体験を想像し、フロントエンドに責任を持つ。そして越境してチームに貢献しましょう。

GitHubで編集を提案
株式会社FLAT テックブログ

Discussion