システムエンジニア 【SE】
概要
システムエンジニア(SE)とは、情報システムの企画、設計、開発、試験、構築、導入、運用、更新、修正、廃棄などに携わる技術者の総称。狭義には、ソフトウェアの開発に携わる技術者のうち、プログラミング以外の業務を担当する者や職種のこと。和製英語かつ日本固有の概念である。歴史的に、日本の大企業や官公庁などの情報システム開発では「システムインテグレータ」(SIer)と呼ばれる受託開発事業者が開発プロジェクト全体を一括で受注し、設計などを行った後にプログラミングなど個別の開発業務を「協力会社」等と呼ばれる下請け企業に再発注する商慣行が定着している。
インテグレータ側の技術者は顧客との折衝、システム化対象の業務分析や顧客の要求分析、システムの要件定義、予算・人員・工程の計画や進捗の管理(プロジェクトマネジメント)、外注先へのプログラミング業務の発注、納品されたプログラムの試験や検収、顧客へのシステムの納品などを受け持ち、外注先の技術者がプログラミングを担当するという役割分担になることが多い。
このインテグレータ側の技術者をシステムエンジニアと呼ぶことが多いため、職務の説明が「システム開発業務のうちプログラミング以外の工程を担当する」という一見奇妙な表現となる。同一の企業内でプログラミングまで行う場合でも、慣習的にプログラミングの前後の工程を担当する技術系の職種を総称してシステムエンジニアと呼ぶことがある。
一方、このような商慣行とは縁の薄い企業や業態、すなわち、自社サービスやアプリの開発・運営が中心のネット系(Web系)やモバイル系、自社パッケージ開発専業、日本でSI事業を主力としない外資系などでは、ソフトウェア開発部門におけるシステムエンジニアの役割がこれとは大きく異なるか、システムエンジニアという職種自体が存在しない(より具体的な技能や役割で職種が分かれる)ことが多い。
また、システム開発をインテグレータ等に発注する事業会社などの社内にもIT部門に技術者を置く場合があり、「社内SE」等と呼ばれる。情報システムの企画や発注先の選定、発注先との交渉、納品されたシステムの検収や受領、システムの運用や管理、社内の業務部門(ユーザー部門)からのシステムに関する窓口などを担当することが多い。
「システムエンジニア」という語は和製英語であり、日本のシステム開発業界のような商慣行が一般的でない英語圏では正確に対応する概念自体が存在しない。ソフトウェア開発に従事する技術者のことは “software enginner” と呼ぶことが多いが、これはプログラマーを内包する概念である。また、システムの運用や管理に従事する職種は “system administrator” 等と呼んで開発者とは区別することが多い。