システムエンジニア(Systems Engineer、SE)とは、もともと、情報システムの要求定義、設計、構築、運用に従事する職を指す。日本では企業情報システムの開発に携わる者に対して主に使われる用語である。現在では単に、企業情報システムの設計開発者のうち上級の者を指して言うことも多い。
単体の製品として販売されるソフトウェアを設計開発するものは、ふつうシステムエンジニアとは呼ばれない。
システムエンジニアの職域
システムエンジニアの職域を上流から下流にかけて分類すると、以下のようなものを挙げることができる。
顧客の要求をヒアリングして要求定義を行い、構築するコンピュータシステムの内容を明確化する。
定義された要求を実現するために構築するソフトウェアとハードウェアの設計を行う。
ソフトウェアの構築とハードウェアの調達を行う。
構築するシステムのテストを設計し実施する。
テストにより発見されたバグの修正を行う。
テストに合格したシステムを構成管理してリリースする。
リリースしたシステムの運用管理を行う。
運用管理の成果に基づき、顧客にシステムの改善を提案する。
以上の全域に渡り、システム構築のプロジェクトマネジメントを行う。
これらの中には、単にコンピュータの専門知識があるだけでは勤まらず、職業人としてのコミュニケーション能力や、顧客のビジネスの知識が要求されるものもある。 どの分野を取っても、一生をかけて高度化するに値するスキルである。これら得意分野の異なるシステムエンジニアが力を合わせることで、優れたコンピュータシステムを構築することができる。
[編集]
プログラマとの違い
企業情報システムの業界におけるプログラマ(Programmer、PG)とは、前述した職域のうち「ソフトウェアの構築」を担当する者のことである。
かつてはシステムエンジニアが仕様を作成し、それに基づいてプログラマがプログラミングを行うという分業が行われていた。 プログラミング環境が進化した現代のシステム構築では、システムエンジニアがプログラマを兼任することも多い。この傾向は小規模プロジェクトで顕著である。逆に、プログラマが要件定義や設計など従来システムエンジニアの職分とされていた職域に進出することも増えており、境界は曖昧化している。
一部分野を除けば高度なプログラミングスキルを要求されることは稀になっている。とりあえずの実装であれば、入社2~3年程度のスキルがあれば十分なことが多い
設計者の指示のもとに単純なプログラミングをするだけの人材では、加齢とともに需要がなくなるため、プログラマから徐々に職域を拡大していき、システムエンジニアやコンサルタントにステップアップすることを目指すのが、一般的な企業情報システム技術者のキャリアパスとされている。
なお、日本のソフトウェア受託開発業では、プログラマよりもシステムエンジニアの方が上級技術者らしく聞こえて高い単価を要求できるためか、実際にはプログラマであってもシステムエンジニアを名乗ることが多い。
欧米においては、システムの企画・立案、工程管理、運用を行う技術者をシステムエンジニア、ソフトウェアの設計、開発を行う技術者をプログラマと呼ぶことが多く、日本国内での呼び方との間に差異がある。
[編集]
システムエンジニアリングの手法
システムを作成していくにあたっては、様々な工学的手法が用いられる。特定の技術に習熟して競争力とする企業がある一方、とても工学的とはいえないシステム構築を行っている企業もある。
ソフトウェア工学をはじめとする様々な分野の知見が利用されるが、これさえあればシステム構築は完璧というような銀の弾丸は存在しない。そのため、時々の流行も含め、システムエンジニアは広い知見を持ち続けることを要求される。
[編集]
システムエンジニアの資格
システムエンジニアは資格独占業務ではないので、これといった資格がなくても仕事を受けることはできる。これは、
システム開発の顧客は法人であり、個人がシステム開発を発注することはまずない
システムエンジニア個人ではなく所属する企業が顧客に対して責任を負う
ため、あえて資格による規制を導入する必要はなく、民間の自由競争に委ねられているものと考えられる。
しかし自己の能力を立証するため、システムエンジニアは一般に以下のような資格の取得を目指す。またこのような資格を取得すると所属する企業から報奨金が支給されることが多い。
国家資格
技術士(情報工学部門・経営工学部門)
情報処理技術者
民間資格
ITコーディネータ
マイクロソフト認定技術者
オラクル認定技術者
サン・マイクロシステムズ認定技術者
TOEIC
PMP
[編集]
関連
コンピュータ
コンピュータ技術者
カスタマエンジニア