IT産業は規模拡大にともなって業務が細分化し、様々な役割を担うエンジニアが誕生しました。
エンジニアとひとくくりにしてしまうのは簡単ですが、そこにはそれぞれの分野のスペシャリストが各自の役割を全うしています。IT産業は家づくりにも似ています。
離れのような小さな部屋であれば設計に始まり基礎から建築工事、水回りから電気工事まで全て一人でやってしまうこともあるでしょう。しかし、それが大豪邸やビルになってしまうとそうはいきません。
建築士が図面を描き、土木会社が基礎を打ち、家屋にも大工から、左官職人から様々な分野のプロフェッショナルが代わる代わる現れては各自の役割を全うして建物は無事に完成するのです。
建物の住人が建設にまつわる職人たちの汗と涙に決して気付くことがないのと同様に、システムを利用するクライアントやユーザーがエンジニアたちの苦労を意識することはありません。
しかし、こうした名もなきエンジニアたちの成し遂げた仕事の数々が、ひいてはIT産業の発展と成熟につながっていくのです。
今回は、そんなITに関わる代表的なエンジニアとその違いについてご紹介します。
ITエンジニアとITアーキテクトの違い
ITに関わるエンジニアを総称してITエンジニアと呼ばれます。そこからシステムエンジニア、サーバーエンジニアなどの様々な職種に枝分かれしていきます。その中で、近年はITアーキテクトと呼ばれる職種の知名度が上昇し、ITアーキテクトを目指すエンジニアが増えています。
しかし、「ITアーキテクトって何?」と聞かれたときに明確に答えられる人はそう多くはないはずです。まずは、多くのITエンジニアがキャリアターゲットとするようになったITアーキテクトについて考えてみます。
アーキテクトは元の意味は建築士、建築家で、ITアーキテクトの名称と役割もこの言葉を由来としています。
つまり建設業界のアーキテクトが、顧客が求めるイメージや機能を設計図に反映させ、その実現に向け管理等の責任を負うのが建築士であるならば、ITアーキテクトも建設業界におけるアーキテクトと同様に、ITシステム全体の構造や様式を定める設計者であると言っても過言ではありません。
また、ITアーキテクトは、経済産業省、および独立行政法人情報処理推進機構(IPA)が推進する、ITスキル標準(ITSS)で定められたIT職種の1つとして公的に認められています。
IPAは、「ITスキル標準」においてITアーキテクトの職種内容を下記のように定義しています。
(以下抜粋)
ビジネス及びIT上の課題を分析し、ソリューションを構成する情報システム化要件として再構成する。ハードウェア、ソフトウェア関連技術(アプリケーション関連技術、メソドロジ)を活用し、顧客のビジネス戦略を実現するために情報システム全体の品質(整合性、一貫性等)を保ったITアーキテクチャを設計する。設計したアーキテクチャが課題に対するソリューションを構成することを確認するとともに、後続の開発、導入が可能であることを確認する。また、ソリューションを構成するために情報システムが満たすべき基準を明らかにする。さらに実現性に対する技術リスクについて事前に影響を評価する。
つまりは、ITアーキテクトは、経営課題や業務課題に対し情報技術を駆使して解決策を検証・提案する存在です。「企業が必要とする情報システムを構想し、具体的に構築して稼働するまでの方策を示す役割を果たす」と言うことができます。
システムエンジニアとネットワークエンジニアの違い
システムエンジニアとは、コンピュータシステムにおいて動作するソフトウェアの企画、設計、開発などを行うエンジニアのことを指します。C言語やJavaなどのプログラミング言語を駆使して「システム」を作り上げます。
一般に、プログラミングを行う人をプログラマー、企画、要件定義、設計等を行い、プログラマーを取りまとめる人をシステムエンジニアと呼称します。
一方、ネットワークエンジニアは、主にネットワークインフラ(コンピュータのデータを快適に送受信できるネットワークシステムなど)の設計、構築、運用管理などを行うエンジニアのことを指します。
顧客にとって、システムエンジニアはSE、プログラマーはPGと称され、業界を問わず共通言語として認知されていますが、ネットワークエンジニアの略称は特に確立しておらず、システムエンジニアのいち役割、すなわちサーバーシステムのエンジニアとして「SE」と呼ばれています。
なお、Windows、Linux、UNIXなど各種サーバーの構築、運用管理を担うエンジニアは「サーバーエンジニア」と呼ばれています。
コーダーとフロントエンドエンジニアの違い
先に述べたとおりIT業界は様々な職種に枝分かれをしてきましたが、多くの場合兼任であったりその境目がはっきりとしているわけではありません。ここでは、そんな一見違いの分からない「コーダー」と「フロントエンドエンジニア」の違いについて考えてみます。
今や、誰もが目を通すウェブサイトは一般的にHTMLというマークアップ言語によって成り立っています。このコードを入力してページを構築する人のことをコーダーもしくはマークアップエンジニアと呼んでいます。コーダーは、HTML(マークアップ言語)とCSS(スタイルシート)を駆使してWebデザイナーの意志をページに落とし込んでいきます。
また、彼ら自身がデザイナーとしてページ設計に携わることもあります。また、SEO対策(検索エンジンへの最適化)のためにページを適切な状態に修正していくのもコーダーの需要な仕事です。Webサイトは、ページ設計やデザイン云々以前に「見られなければ意味がない」という考えのもと、検索エンジンの最新の情報を入手しておかなければならないのです。
一方、フロントエンドエンジニアは、コーダーに加え、常に更新が必要な企業のコーポレートサイトなどを従業員が取り扱えるCMS(コンテンツ・マネジメント・システム)を構築するなどの業務を行います。
CMSを構築することによって知識のない人でも最新情報などの特定箇所の更新が可能となるのです。フロントエンドエンジニアは、コーダーの扱うHTML、CSSのほかに、JavaScript、jQuery、PHPなどのプログラム言語に関する知識が必要です。
つまりフロントエンドエンジニアはコーダーがサイト構築に当たりより広い運用を担うための職種と言えるでしょう。
※番外:フロントエンドエンジニアに対してバックエンドエンジニアという職種もあります。その名の通りフロントエンドエンジニアとは全く正反対、ユーザーからは見えない部分を開発します。
ですので、いわゆるエンジニアの多くはバックエンドエンジニアに属すると言っても差し支えありません。ですので求められる技術は、PHP、Perl、Rubyなどのプログラム言語、MySQL、PoststgreSQLなどのデータベースといった開発に関わるものが求められます。
最後に確認して欲しいポイント
ひとくちにITエンジニアといっても職種は多種多様、業務内容も千差万別でその定義や内容もはっきりとした区別がないものが少なくありません。
しかし、こうして業界の発展によって生まれた様々な職種を調べて、IT業界やシステム内においてどのような使命と役割を担っているのかを学べば、自身のキャリアを描けるような未来図が見えてくるはずです。
業界、業種を問わず直接市場や顧客の目に触れるいわゆる花形の仕事もあれば人の目に触れない縁の下の力持ちのような仕事も数多存在し、そのどれをとっても身分に高い低いなどなく、必要不可欠なものです。