支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


今回はシステムエンジニアの仕事について簡単に解説していきます。

システムエンジニアとは

システムエンジニアは、クライアントにヒアリングを行い、要求を元に仕様を決定した後、設計までの情報システム開発における上流工程のシステム設計の業務を担当します。

主に「要求分析・要件定義」、「基本設計」、「詳細設計」といった業務をメインとし、プログラマーがコーディングをする際に、システムを作るための設計図となる仕様書を作り、完成したシステムを実際に「テスト」することが主な流れになっています。

現代社会において、スマートフォンやテレビなどの生活に身近なものから、工場の生産設備から医療機器、企業内で使用される専門的なものまで、コンピュータ制御のさまざまな仕組み全般をシステムとして機能しており、様々な職種、生活、業務において用いられるのが一般的です。

システム開発は、サービスそのものの移り変わりに対して比例するように、使う技術やツールの移り変わっていくのが特徴です。そのため、時代や主流となる流行を取り入れ、取捨選択する柔軟な姿勢が求められます。

システムエンジニアに求められる能力

1. コミュニケーション能力

システムエンジニアには技術的知識と能力の他に、顧客とのコミュニケーション能力が欠かせないものとなっています。基本的に「要求分析」や「要件定義」にて、顧客が求め、どういったシステムとしていきたいのかを的確にくみ取り、顧客が抱えている問題の解決策を分かりやすく説明、解決策の提示を行う必要があります。また、プロジェクトチーム内をまとめるためにもコミュニケーション能力は重要です。

2. 技術的能力

顧客にシステムの提案や説明、設計を行う際に必要となってくる能力です。システム構築時のハードやソフトウェア。そしてそれらでどのようにシステムを構築していくかという具体的な説明と要望に対して提示ができるだけの知識が必要です。プログラミングに関してはプログラマーの仕事になりますが、SEはプログラミングの前段階の設計を担当することになるので、プログラミングの基礎知識が必要になります。

3. マネジメント能力

システム開発は非常にタイトなスケジュールで行われる場合もあります。業務が滞りなく遂行されるようなスケジュール管理を行い、特定のメンバーに過度の負担がかかることを防ぐ様、マネジメント能力も求められます。

システムエンジニアと同系エンジニアの違いについて

システムエンジニアはプログラマーなどと混同されがちですが、実はそうではありません。ここでは、システムエンジニアと混同されがちなエンジニアに関して解説していきましょう。

1.システムエンジニアとプログラマーの違い

システムエンジニアは、顧客からシステム要件をヒアリングすることで、要求仕様をベースに仕様書を作成します。その後プログラマーにそれらをベースにプログラミングを行っていくことになります。一方でプログラマーは、主にプログラミング言語を用いることで仕様書に沿ってプログラミングを行う技術者のことを指します。実装後のテストはシステムエンジニアとプログラマー両方が認識を合わせながら行うこともありますが、プログラミングを主な業務内容とするか、しないかが大きな違いになります。

2.システムエンジニアと社内SEの違い

システムエンジニアの業務は、プロジェクト単位・顧客常駐で行うことが多く、社内SEは社内の情報システム部に所属し、自社での業務となります。社内SEの顧客は自社の社員となるので、プログラミングを外注する場合は協力会社との調整も必要で、経営層の視点からシステム要件の提案が必要となる場合があります。また、社内インフラの整備、社内のITサポートも行うことがあります。

小話「システムエンジニア以外のエンジニアについて」

ここではシステムエンジニア以外のITに関わるエンジニアについて解説していきます。プログラマーと社内SEに関しては上記項目にて解説済みなので割愛させていただきます。

1.サーバーエンジニア

ソフトウェアが動く際に使用するデータベースサーバーやWebサーバーといった、サーバーを構築、運用保守を行うエンジニアです。サーバーエンジニアには、OSとセキュリティに関する知識が求められ、特にOSに関しては非常に深い知識が必要です。また、サーバー上のアプリケーション、ネットワーク全体についての知識が求められます。また、セキュリティに関してはハッキング、ウィルスの脅威も増えている状況においては、それら脅威からサーバーを守り、被害が出た場合にはそれらを最小限に留める対処法や復旧技術が必要です。

2.ネットワークエンジニア

ソフトウェアが動く際に使用するコンピュータネットワークの設計や構築・運用保守をするエンジニアです。こちらも顧客とのコミュニケーションを必要とし、専門の知識を必要とするという点においてはシステムエンジニアにも任せることができるように見えますが、ネットワークに関する知識を多くの場合はシステムエンジニアは持っていません。また、ネットワークエンジニアの仕事は、「個々のコンピューターを繋げ、ネットワークシステムを構築、運用すること」にあり、実質的に専業化されています。どちらも「システムを作る」という点において同様ですが、対象とするものが違います。

まとめ

・システムエンジニアは上流工程のシステム設計を担当する。

・システムエンジニアには顧客の意見を汲み取る事のできるコミュニケーション能力と技術的能力。そしてプロジェクトを円滑に進めるためのマネジメント能力を求められる。

・システムエンジニアはプログラマーが混同されがちであるが、本質的にプログラマーとは別である。