システムエンジニア

出典: フリー百科事典『ウィキペディア(Wikipedia)』

この記事ではコンピュータ技術者の職域のひとつであるシステムエンジニアについて記述しています。より広範な情報についてはコンピュータ技術者を参照してください。

システムエンジニア(SE) とは、情報システムの職域をあらわす和製英語である。要求定義、設計、構築、運用に従事する職を指す。より狭い意味では、情報システムの開発に携わる者、とりわけ情報システムの設計開発者のうち上級の者を指して言うこともある。 単体の製品として販売されるソフトウェアを設計開発する者は、一般的にシステムエンジニアとは呼ばれない。

目次

[編集] システムエンジニアの職域

システムエンジニアの職域を上流から下流にかけて分類すると、以下のようなものを挙げることができる。

  1. 顧客の要求に対する聞き取りをして要求定義を行い、構築する情報システムの内容を明確化する。
  2. 定義された要求を実現するために構築するソフトウェアハードウェア設計を行う。
  3. ソフトウェアの構築とハードウェアの調達を行う。
  4. 構築するシステムのテストを実施する。
  5. テストにより発見されたバグの修正を行う。
  6. テストに合格したシステムを構成管理して稼動開始させる。
  7. 稼動したシステムの運用管理を行う。
  8. 運用管理の成果に基づき、顧客にシステムの改善を提案する。
  9. 以上の全域に渡り、システム構築のプロジェクトマネジメントを行う。

これらの中には、単にコンピュータの専門知識があるだけでは務まらず、職業人としてのコミュニケーション能力や、顧客のビジネス知識(業界知識、業界動向など)が要求されるものもある。 上記作業はすべて一人で担当する場合もあれば複数人で担当する場合もある。

[編集] システムエンジニアリングの手法

システムを作成していくにあたっては、情報工学システム工学など様々な工学的手法が用いられる。特定の技術に習熟して競争力とする企業がある一方、とても工学的とはいえないシステム構築を行っている企業もある。精神論(死ぬ気になってやれば何でもできるなど)だけで、連日の徹夜で開発を行ったりするのがその例である。

コンピュータサイエンスソフトウェア工学をはじめとする様々な分野の知見が利用されるが、これさえあればシステム構築は完璧というような万能の解決策は見つかっていないのが現状である。そのことをフレデリック・ブルックスが発表した論文を引用して『銀の弾などない』という表現を用いることがある。そのため、時々の流行も含め、システムエンジニアは広い知見を持ち続けることを要求される。

[編集] プログラマとの違い

日本では、企業情報システムの業界におけるプログラマ (Programmer、PG) とは、前述した職域のうち「ソフトウェアの構築」を担当する者のことである。

かつてはシステムエンジニアがプログラム仕様を作成し、それに基づいてプログラマがプログラミングを行うという分業が行われていた。 プログラミング環境が進化した現代のシステム構築では、システムエンジニアがプログラマを兼任することも多い。 [1] この傾向は小規模プロジェクトで顕著である。逆に、プログラマが要求定義や設計など従来システムエンジニアの職分とされていた職域に進出することも増えており、境界は曖昧化している。 [2]

なお、日本のソフトウェア受託開発業では、プログラマよりもシステムエンジニアの方が上級技術者らしく聞こえて高い単価を要求できるためか、実際にはプログラマであってもシステムエンジニアを名乗ることが多い。

[編集] システムエンジニアの資格

日本におけるシステムエンジニアリングは労働集約型産業の体をなす受託開発が中心であり、大学レベルの知識は必要とされない。システムエンジニアは資格独占業務ではないので、これといった資格がなくても仕事を受けることができる。これは、

  • システム開発の顧客は法人であり、個人がシステム開発を発注することはまずない
  • システムエンジニア個人ではなく所属する企業が顧客に対して責任を負う

ため、あえて資格による規制を導入する必要はなく、民間の自由競争に委ねられているものと考えられる。

また、システムエンジニアは最低1つのプログラミング言語は習熟しており、コーディングができて当たり前、と思われがちだが、そうでもない場合も多い。企業の合理化手法のため、プログラマとしての経験無しにすぐにシステムエンジニアになる場合や、顧客と交渉する営業職と変わらない場合もある。そういう場合では当の本人は「営業兼システムエンジニア」と自分で名乗る場合が多い。

しかし、自己の能力を立証するため、システムエンジニアの中には以下のような資格の取得を目指す者もいる。また、このような資格を取得すると所属する企業から報奨金が支給されることがある。特に、派遣社員の中には、資格を重視している派遣会社が存在するため、資格取得が命であるとし、その取得に熱心な者もいる。

[編集] 日本と世界との認識の差異

前述したように日本ではシステムエンジニアリングは労働集約型産業に近く、事前知識の無い者でも比較的門をたたきやすい職業となっている。そのためシステムエンジニアとして就職する新卒学生の半数前後が文科系出身と言われている。 しかし、インドや韓国、欧米などにおいては、システムエンジニアリングは知識集約型産業であり、就職するためには大学、大学院で情報工学を専攻し修了することが求められる。 特に日本でいう上流工程に相当するポジションに就く者は例外なく、コンピュータサイエンスソフトウェア工学の基礎、C言語、関数型言語を修得している。

欧米では、システムの企画・立案、工程管理、運用を行う技術者をシステムエンジニア、ソフトウェアの設計、開発を行う技術者をプログラマと呼ぶことが多い。

またアメリカなど英語圏にも、システム・エンジニアリング(Systems engineering) という言葉はあるが、技術者に対しての「システムエンジニア」という呼び名は存在せず、SEはソフトウェアエンジニア(Software Engineer) のことを指す。アメリカ合衆国のソフトウェアエンジニアは、日本で言われるプログラマだけでなくシステムエンジニアの仕事も兼ねているのが一般的である。

[編集] 脚注

[ヘルプ]
  1. ^ キャリアパスとして、プログラミング経験者がシステムエンジニアになることが多いことは、兼任が行われやすい理由の一つである。ただし、本格的にプログラミングを理解・実行するには、それなりの期間とスキルが必要であり、兼任が不適切な場合もある。
  2. ^ 設計者の指示のもとに単純なプログラミングをするだけの人材では、加齢とともに需要がなくなるため、プログラマから徐々に職域を拡大していき、システムエンジニアやコンサルタント、ITアーキテクトなどにステップアップすることが、一般的な企業情報システム技術者の職歴とされている。しかし、近年では、UMLの普及などで、プログラマが上流行程に手を出しやすくなる一方、ソフトウェア工学の高度化により、より高度なスキルを持ったプログラマも求められるようになっている。

[編集] 関連項目