エンジニアというのはエンジニアリングに関する専門的な知識やスキルを持った技術者のことを指します。多くの方が「エンジニア」とひとくくりで考えてしまいがちなのですが、実はエンジニアにもいろいろな種類があります。ここでは、エンジニアの種類とそれぞれの役割について代表的なものをいくつかピックアップしていきたいと思います。
システムエンジニア
エンジニアと言われたときに、真っ先に思い浮かべるのがこのシステムエンジニアなのではないでしょうか?コンピューターシステムの開発においては提案から設計や開発、テストといったものが必要になってくるのですが、この一連の流れに携わるのがシステムエンジニアです。「ソフトウェアエンジニア」と呼ばれることもあります。
クライアントの要望をヒアリングして、その要望を満たすことができるようなシステムを提案しなければいけません。もちろん、すべての要望を叶えるのが難しいということもあるでしょうが、予算や納期などを考慮して相手の状況に合わせた提案をしていく必要があります。こういったクライアントとのやり取りも含めて、システム開発には多くの人が関わりますので、コミュニケーションスキルも求められます。
プログラマー
エンジニアとプログラマーはまったくの別物と考えている方もいるかもしれませんが、プログラマーもエンジニアの一種となります。システムエンジニアが制作した設計書、仕様書からプログラミングをおこない、機能を実装していくのがプログラマーです。コーディングだけをおこなう場合には「コーダー」と呼ばれることもあります。
システムエンジニアの制作した設計書や仕様書の通りにプログラミングしてもシステムがうまく動かないこともあります。そういった場合、設計書や仕様書に不備がある可能性もありますので、それを見つけ出して、指摘することもプログラマーの重要な役割です。同じプログラマーでも対応するシステムや使用する言語が異なりますので、そのシステムや使用する言語によっても「アプリケーションプログラマー」「WEBプログラマー」といった具合にさらに細かく枝分かれしています。
インフラエンジニア
インフラエンジニアの「インフラ」は「インフラストラクチャー(infrastructure)」の略です。「基盤」「下部構造」「下支えするもの」といった意味合いなのですが、インフラというとやはり道路や電気、水道などの社会的インフラをイメージする方も多いでしょう。社会でのインフラが道路や電気、水道などであれば、ITでのインフラはサーバー構築やネットワーク管理、クライアント端末の設定などです。それを担当するのがインフラエンジニアなのです。
ケースバイケースではありますが、基本的にインフラというのは24時間365日の安定稼働が求められます。それを支えるのがインフラエンジニアになりますので、いつ何が起こっても対応できることが求められます。ITインフラの監視やメンテナンスはもちろん、障害発生時の原因特定や復旧作業もおこなっていきます。
ネットワークエンジニア
ITインフラの中でも、特にネットワークシステムの設計や構築、運用や保守といったものを専門的におこなうのがネットワークエンジニアです。プログラミングなどの開発スキルはもちろん、ルーターやスイッチ、DNS、メール、ファイアウォールなどネットワークに関する幅広い知識と技術が求められます。
セールスエンジニア
エンジニアというとパソコンに張り付いているイメージがあるかもしれません。そういった中で少し毛色が異なってくるのがセールスエンジニアです。技術的な専門知識を活かしながら営業活動をおこなうのがセールスエンジニアの役割です。「フィールドアプリケーションエンジニア」と呼ばれることもありますし、「フィールドアプリケーションエンジニア」の頭文字を取って「FAE」と呼ばれることもあります。クライアントと打ち合わせをおこなって、システム導入を提案するというのが主な仕事です。そのため、営業スキルはもちろんですが、自社商品の専門的な知識、技術的な知識が求められます。それでいて、専門的な知識や技術的な知識をわかりやすくかみ砕いて伝えていかなければいけません。
WEBエンジニア
WEBサイトやWEBアプリケーションなどの設計や開発、運用や保守を担当するのがWEBエンジニアです。もともとWEBに関する知識はエンジニア全般に求められるのですが、WEBエンジニアにおいては特に専門性が求められます。WEBサイトやWEBアプリケーションなどに関わるからこそネットワークやセキュリティー対策などの知識はもちろん、そのWEBサイトやWEBアプリケーションなどを使うユーザー目線というものも必要になってきます。
サーバーエンジニア
サーバーの設計や構築、運用や保守などを専門に担当するのがサーバーエンジニアです。クライアントの目的に合わせた最適なサーバーの台数やスペックなどのサーバー構成を決めるサーバーの設計から、サーバーに障害が起きてもサービスが提供できるような予備サーバーを用意、特定のサーバーに集中する負荷を分散させることでサーバーダウンを防ぐ負荷分散などまでその役割は幅広いです。
また、OSやサーバーアプリケーションのインストールや設定、サーバーのサーバーラックへの固定やネットワークケーブルの配線といったサーバー構築はもちろん、運用マニュアルを作成したり、障害が発生した際の保守対応をしたりといった部分もサーバーエンジニアの担当です。