SE(システムエンジニア)が担っているのは、企業の情報システムの構築です。プログラムそのもの作成ではなく、システム全体の企画、設計などを中心に行います。
それでは、SEの仕事とはどのようなものか、情報システムの開発プロセスに沿ってご説明します。

企画・提案
 
情報システムは、ユーザー企業の目的に合ったものを開発しなければなりません。
そのためには、企業のニーズ(システムを『なぜ作成するか?(コスト削減など)』『どの範囲で作るか?』『システムをいくらくで作るか?』『システムをいつまでに作るか?』など)を十分にヒアリングした上で、システムの企画を立案する必要があります。
従ってこのフェーズでは、経営的な視点も必要なため、経験を積んだSEが対応します。
また、このフェーズを担当するSEを、システムアナリストと呼ぶこともあります。
 

システム仕様作成
 
システムの企画をもとに、ユーザー企業の担当者と直接打合せを行い、システム化に伴う要望を仕様化するなど、システムの概要(機能、ハードウェア構成、ネットワーク構成、スケジュール、概算費用など)を決定。
その後、実際にシステム開発するためのシステム仕様書を作成します。このフェーズは、「要件定義」とも言われています。
ここまでのフェーズを「上流工程」といいます。
 

システム設計
 
システム仕様書(要件定義)には、システムの概要が記述されています。
システム設計フェーズでは、システム仕様書に書かれている機能などの詳細を決定。
システム仕様書よりも、詳細かつ具体的なシステム設計書(「外部設計書」「内部設計書」「詳細設計書」)を作成します。
なお、現実的かつ具体的スケジュールもこのフェーズで決めることになります。
 

システム開発
 
システム設計書に沿って、プログラムを開発します。
開発はプログラマの仕事なので、SEはプログラマに指示をしたり、ユーザーとの調整、プログラム開発工程のチェックなども行います。
プログラム開発が終わると、テストを行ない実際の運用に入っていきます。
 

システム運用
 
システム運用フェーズでは、システムが当初の目的どおり利用できているかの評価を行います。
評価には、稼働率や故障回数、レスポンスタイムなどのハード的なものと、機能が業務に合っているかなどソフト的なものがあります。
もし、当初の計画どおりになっていない場合は、機能追加や修正などの改善活動を行います。SEは単にシステムの設計のみではなく、システムが完成した後も当初の目的どおり動くかどうかを管理しなければなりません。
しかしこれらの作業は、1人のSEが全て対応するのではなく、チーフSEの下のサブSEやチーフプログラマー、運用管理を担当するテクニカルエンジニアらと協力して、これらのプロセスを実施することになります。
 

SEは、システム開発の全てのプロセスに対応することになります。
以前のSEといえば、システム設計やプログラム開発の専門技術者としてのイメージがあり体力が必要とされていました。
しかし最近では、主に企画提案などの上流工程を担当するコンサル的な要素が増えてきています。
これは、システム設計やプログラム開発などはアウトソーシングすることが多くなっているためであり、今後もこの傾向は続くでしょう。