システムエンジニア

システムエンジニアの最新ニュースをまとめて検索!

システムエンジニア(SE) とは、情報システム分野におけるコンピュータ技術者の1つである。通常は情報システムの要件定義設計開発運用などや、それらを統括管理するプロジェクトマネジメントなどに従事する。

主に上級の設計を中心とする事が多く、プログラマーオペレータあるいはハードウェアの保守を行うカスタマーエンジニアなどとは区別される。

ただし「システムエンジニア」(SE)は和製英語であり、海外では「プログラマー」の領域である

目次

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

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

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

システムエンジニアの職務内容は、細部においては、それぞれの企業により異なるが、概ね、初期においては、要求分析要件定義、作業工数見積もり、作業計画の策定に始まり、要員の手配、開発チームの組織、物資の手配、進捗管理、技術的課題管理、調整、果ては、部下の勤怠管理まで、多岐にわたる。さらに、これに加えて、設計、及びテスト計画の策定、テストの実施指示まで関わり、成果物に対して責任を負うところまで、職務としている場合が多い。一般的には上級職とされがちであるが、実際のところは、コンピュータシステム開発における担当部分、分担するパートの違いと見た方が正しい見方と言える。システムエンジニアだからといって、コンピュータに関する技術に精通しているとは限らない。

これらの中には、単にコンピュータの専門知識があるだけでは務まらず、コミュニケーション能力や、顧客のビジネス知識(業界知識、業界動向など)が要求されるものもある。

上記作業はすべて一人で担当する場合もあれば複数人で担当する場合もある。

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

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

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

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

日本では、企業情報システムの業界におけるプログラマ とは、前述した職域のうち「ソフトウェアの構築」を担当する者というのが従来の考えであるが、徐々に、その意識は変わりつつある。

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

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

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

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

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

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

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

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

[編集] 国家資格

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

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

欧米では、一般にシステムエンジニアという職種はない。SEといってもまず通じない。システム・エンジニアリング(Systems engineering) という言葉はあるが、技術者に対しての「システムエンジニア」という呼び名は存在しない。一般的には、要求分析からアーキテクチャ設計、プログラミングまで、プログラマーが行うし、その能力を持っている。単純にコーディングしかできない人をプログラマーとは呼ばない。プログラミング以外の政治的な調整やマネージメントは、PM(プログラム・マネージャ)と呼ばれる職種が開発をサポートする。大抵は、PMとプログラマの連携によって開発を進める。

日本国内ではソフトウェア開発業界は、建設業界に類似した重層下請け構造になっている場合が多いため、システムエンジニアの主業務が外注管理となっている例も多い。この場合は、コンピュータの技術的なスキルよりも、対外交渉能力、調整能力、問題解決の整理能力、場合によっては不屈の精神と粘り強さが問われることになり、世間一般のイメージと異なる場合もある。

[編集] 脚注

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

[編集] 関連項目

最終更新 2009年11月20日 (金) 20:54 (日時は個人設定で未設定ならばUTC)。
【システムエンジニア】変更履歴

ご利用上の注意