システムエンジニア

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

システムエンジニアは、日本国内において、コンピュータ関連の職業のひとつを表す和製英語である。略称はSE(えすいー)。この語が指す職務内容は曖昧である。

用語[編集]

日本でいう「システムエンジニア(SE)」は和製英語であり、国際的に通じる言葉ではない[要出典]。英語圏にもSystems Engineer[1]と呼ばれる職務があるものの、これは文字通りシステム工学(Systems engineering; システムズ・エンジニアリング)にかかわる技術者を指すものであり、日本で「SE」と呼ばれる人々とは一般的に重ならない[要出典]。国際的に通用する言い換え表現[要出典]として、ソフトウェアエンジニア、ソフトウェア開発者、プログラマー、ハードウェア技術者[要出典]、などが挙げられる。

システムエンジニアリングという用語が初めて規格として登場したのは、1969年7月17日米国防省が定めたMIL-STD-499(米空軍)である[2][3]。これは、請負業者に向けた国防省の省令であった[要出典]。当時、軍需部門では一人あるいは少数によるプログラミングやコンピューターシステム開発が不可能な分量になりつつあり、技術者を数十人~数百人、場合によっては数千人も動員するようなプロジェクトにおいては、プログラム設計等の書類化は意思伝達の上からも必須であった[要出典]。この規格は、システムエンジニアリングマネジメント計画やスケジュール管理およびパフォーマンス測定方法やプログラムのリスク分析、作業許可およびその変更、テスト方法、不慮の事態への対応や、開発後の保守性、緊急修正時のコストや時間、プログラムの視認性(トレース)さらには責任区分や契約関連等も含めたシステム工学に基づく厳密なものだった[要出典]。軍需産業を請け負う企業から徐々に広まり、民需においても一人あるいは少数開発が難しい大規模システムに、この考え方が広まっていく[要出典]。1990年頃より、その米国企業から伝播する形で、日本の企業でもシステムエンジニアという肩書きが現れ始めた[要出典]。元来の意味としては、MIL-STD-499(あるいは、その後継規格)あるいは、その元となったシステム工学に準じたシステム開発を指していた[要出典]ものの、日本に自然伝播する間に、規格や基準なく「システムエンジニア」という名称のみが伝播してしまった為に[要出典]、日本企業におけるその使用意味は不明確となった。

なお、コンピュータの学会Association for Computing Machinery(ACM)がまとめている「コンピュータに関する学位とキャリアについての報告」において「SE」と略されているのはSoftware Engineeringであり[4]文科省国立情報学研究所によって進められている技術者教育プログラム「トップエスイー」の「SE」はSoftware Engineers[5]の略とされている。

日本では通常、コンピューターシステムやコンピューターソフトウェアの設計等に携わる技術者という意味で使用されており[6]、プログラムの設計図とも言える「仕様書」の作成に携わる人を指す場合が多い[7]経済産業省の統計では「ソフトウェア業務従事者」の分類として、「システムエンジニア」や「プログラマ」等を使用している[8]

概要[編集]

日本においては、プログラムの設計図たる仕様書の作成者として使われる例が多いものの、プログラムの上位に居て、管理する「プロジェクトマネージャー」として存在する例もある[9]。また、技術営業として存在する例もある[10][11]

1.プログラマの上位者としてのSE
日本では、情報処理分野のいわゆる上流工程、あるいは上位的な役割を担当する技術者を「システムエンジニア」と呼んで、実装中心の「プログラマ」や操作中心の「オペレータ」などと区別する場合がある。シニアプログラマ(経験豊富なプログラマ)として開発チームを統率するケースや、プロジェクトマネージャー(予算管理やスケジュール管理者)としての中間管理職的な存在として、開発部門を管理運営している場合もある。シニアプログラマとしてのSEは、実際にプログラマと共にソースコードを記述し、開発実務に携わる場合がある[10]
2.仕様書作成者としてのSE
設計図としての仕様書を制作する。プログラマは、その仕様書に基づいて作成するために、この仕様書の出来不出来がソフトウェアの品質に影響を及ぼす事も多く、未熟なSEはプログラマに負担を掛ける。仕様書通りに制作されているか確認する役割(品質管理やテスト)を負う場合も多い[要出典]
3.技術営業としてのSE
クライアントに出向いて、要望を聞き取り、どういった仕様書にすれば良いかを打合せする(要求定義)。2と兼任の場合も多い。この場合では、顧客との意思疎通が重要になる為、コミュニケーション能力が重要とされる[要出典]。プログラマを外注する場合は、外注管理を引き受ける場合もある[要出典]。なお、広範囲に業務熟練し精通した者で、顧客に提案して動かし、また、顧客が利益を実感できるまで至った者を「ITコンサルタント」などと呼び換える動きがある[12]ものの、まだそれほど広がっていない。
4.その他の用法
用例としては少ないものの、システムあるいはハードウェアの配置・保守・修理を行う技術者をSEと呼ぶ例がある[要出典]。ただし、カスタマエンジニアと呼び変えられる場合もある。また、過渡期ながらプログラマとほぼ等しい意味で使用された例が過去のCOBOL開発環境であったとのIT関連メディアのコラムで報じられている[11]。また、単にシステムに精通した者という意味で使われた事例も少ないものの存在する[要出典]

実際には、1,2,3いずれかを兼任、あるいはすべて兼任する場合があるが、システムエンジニアという言葉の意味を明確に定義するものは存在せず、その職務範囲は企業や団体によってまちまちである。そのため、上記以外にも使用例としては少ないものの様々な用法があると推察されるが、おおまかには、情報システムまたはソフトウェア開発の要求定義、設計、開発、運用などや、それらを統括管理するプロジェクトマネジメントなどに従事する者がシステムエンジニアと呼ばれる傾向がある[要出典]

また企業によっては、比較的単純なプログラミングが中心の「プログラマ」よりも上位で、高度な設計を行う「アーキテクト」よりは下位の職位をあらわす名称として使っている[10]

作業内容[編集]

システムエンジニアが担当する主な作業は、ソフトウェア開発工程の中では、要求定義・見積もり・設計・ソフトウェアテスト・システム移行・保守・運用管理などがある。情報工学計算機科学ソフトウェア工学システム工学、etc.)の知識・経験の他、コンサルタントプロジェクト管理ITサービスマネジメントなどの知識・経験が求められる場合もある[要出典]

コンピュータやソフトウェアに関する知識だけでなく、他方では、ユーザーのニーズをつかむ能力、顧客の業務・業界に関する知識、プロジェクトマネジメント品質管理の技術、業界標準ベストプラクティスの知識、各ステークホルダーとの交渉能力、なども求められる場合がある[要出典]

脚注[編集]

関連項目[編集]