ヒアリングと基本設計
ヒアリングフェーズのことを要件分析や要件定義とよく言います。このフェーズではユーザがどのようなシステムを希望しているのかを、ユーザサイドに立って把握することが大事です。システム専門用語は使用せずに、ユーザが理解できる言葉で話を進めたり、疑問点があったら漏らさずに把握すること等が肝になってくると言えます。設計フェーズになると、まず要件定義した内容を一通りシステムとしてまとめるために基本設計をします。またそこから今度は具体的な細かい機能追加などを含む詳細設計を行います。
プログラミング・テスト
プログラミング(実装)フェーズでは、詳細設計やプログラム設計を元にプログラミングをします。業務システムの場合はCやJava、VB等の言語を使用したり、またWEBシステムであればPHPやRuby、Python、フレームワーク、データベース言語などもよく使用されます。設計のクオリティが高いほど順調に進むフェーズと言えます。テストでは要件定義を含む全てのデータを照合し、プログラムミスやインターフェースのミスなどが無いかをチェックします。ミスがあればどこのフェーズに問題があったのかを調べ、その問題から起こり得るエラーを考えたりすることも大切です。
導入・運用
運用や保守フェーズでは、エンドユーザが実際に使用しはじめてからサポートをしたり、機器の不具合に対応したり、データのバックアップを管理する、などのタスクを行います。ある程度使用した時点でどのように活用されているかをまとめたり、あるいは問題点をチェックしたりといった仕事も大切です。一般的なシステムエンジニア(SE)の仕事の流れとしてはこのように、基本的な計画をし、外部設計や内部設計、プログラミング設計や実装、テスト、運用などのフェーズが含まれますが、システムエンジニア(SE)が全てのフェーズを行う場合もあれば、プログラム設計からテストまで、といった部分的なフェーズのみを担当する場合もあります。
一言で言うと、システムエンジニア(SE)は新しいシステムを実現する仕事です。また一言で言い切ってしまうことはできますが、システムは多種多様で、ユーザごとに色々な新しい体験をすることも多い仕事です。