用語解説

システムエンジニア(SE)とは?求められる知識やスキル、就業方法について解説

システムエンジニア(SE)とは?求められる知識やスキル、就業方法について解説
プログラマーがシステムエンジニア(SE)を目指すというように、システムエンジニア(SE)はIT系のエンジニアにおいて、上位の職種と捉えられているエンジニア職です。とはいえ、システムエンジニア(SE)へのキャリアアップを検討しているけれどどういった仕事をするのか、イメージが沸かない方もいるのではないでしょうか。

この記事では、システムエンジニア(SE)の仕事内容や求められるスキル、就業方法についてご紹介します。

 

システムエンジニア(SE)とは?

システムエンジニア(SE)とは、プロジェクトの中でもシステム設計や開発を担当する職種です。System Engineerの頭文字を取って、SE(エスイー)とも呼ばれています。家電製品、企業のネットワークシステム、Webサイトなどのハードウェアの設置や構築、設計したプログラムを実装し、テストを実施するまでを担当します。場合によってはシステムエンジニア(SE)がプログラマーまたはプログラマーをまとめるプロジェクトリーダー、プロジェクト全体を統括するプロジェクトマネージャー(PM)のいずれかを兼務することもあります。

システムエンジニア(SE)の4つの職種

システムエンジニア(SE)は開発全体に携わる職種の総称で、ひと口にシステムエンジニア(SE)といっても担当するシステムによって名称や仕事内容、求められる役割も異なります。

ここでは、システムエンジニア(SE)を4つの職種に分類し、それぞれの仕事内容を紹介します。

組込み系エンジニア

独立した機械(ハードウェア)の中に組み込まれた、小型コンピューター(マイコン)の制御装置やシステム全体の設計や開発を担当します。スマートフォンやタブレット、家電製品や自動車といった暮らしに必要な機器、製造ラインで使用する機械など、コンピューターで動くものを幅広く取り扱っています。

基盤系エンジニア

基盤系エンジニアは情報システムを稼働させるコンピューターやサーバー、ネットワーク、データベースの構築、開発を行います。インフラエンジニア、ネットワークエンジニア、データベースエンジニアなど、担当する仕事によって役割が分かれていることもあります。

業務系エンジニア

業務系エンジニアは、クライアントのニーズの中でも業務全般の効率化に関する情報システムとソフトウェアを開発する仕事です。アプリケーションエンジニア、アプリケーションスペシャリストなどとも呼ばれます。既存のソフトウェアと、オリジナルで製作するソフトウェアを組み合わせて設計・開発を行います。

Web系エンジニア

Web系エンジニアはWeb上で提供するサービスやホームページ、アプリの設計・開発を担当します。設計・開発ではユーザーが直接目にするフロントエンド、そこからの指示をもとに結果の出力や記録の保存を行うバックエンドに分かれることもあれば、フロントエンドとバックエンドの両方を担当することもあります。

システムエンジニア(SE)の仕事内容

システム開発の工程のうち、システムエンジニア(SE)では以下のフローを担います。

  1. 要求分析・要件定義:クライアントへのヒアリングを通して、どういうシステムを求めているかを明らかにし、システムの全体図が記された「仕様書」と呼ばれるドキュメントの作成
  2. 基本設計:システム全体の基本的な設計と骨組みを作成
  3. 詳細設計:基本設計をもとにプログラムの詳細な設計
  4. システム構築後のテストなど

組込み系エンジニア

エアコンやテレビ、洗濯機といった家電製品や装置を動かすためのソフトウェア開発(以下「組込み開発」)と、その製品や装置を含めシステム全体の開発(以下「システム開発」)があります。

組込み開発はハードウェアとファームウェアに分類されます。

  • ハードウェア開発:組込み装置の用途や大きさ、価格といった制約を踏まえて、そのような部品を使ってどう構成するのがよいかを設計し、基板制作や部品の取り付けなどを実装
  • ファームウェア開発:ハードウェアに搭載されているCPUやマイコンの上で動作するプログラムを設計、作成

システム開発ではシステムに使用する製品や装置、サーバーを選択し、コンピューター言語で制御プログラムを作成。周辺環境からの情報を受け取る各種センサー、逆に何らかの動作をするパーツも選定します。システムができあがったらクライアントとともにテストしたり、実際の利用者に使ってもらい、不具合や改善点があれば、設定やプログラムを修正したりします。

基盤系エンジニア

基盤系エンジニアが扱うITインフラには、サーバーやストレージ、ネットワーク、パソコンなどのハードウェアとデータベースなどのミドルウェア、その上で動くアプリケーションがあります。

その中から、クライアントの要望を聞き取り、求めるITインフラを明確にします。設計の際、システムで使用するハードウェアやOSなどのソフトウェアを選んで、ITインフラの構成を決めていきます。設計に基づき、OSやミドルウェアをインストールしたり機器を配置したりしながら実際にシステムを構築。業務系エンジニアやWebサイト系エンジニアに開発を引き継ぎます。

業務系エンジニア

クライアントの情報システムの開発を受託し、業務で使用するソフトウェアを開発するのが主な仕事です。

クライアントに業務のプロセスや業務で抱えている課題をヒアリングし、どのようなシステムを構築するか、データベースの設計や外部システム、画面構成、内部処理の詳細な方法などを設計書に落とし込みます。システム開発を実施する上で既存のソフトウェアで利用可能なものがあれば導入し、新規で作成が必要であればプログラマーに依頼。各種テストを行い、不具合があれば修正します。

Web系エンジニア

ここではWebサイトについて例を挙げます。

制作したいWebサイトについて、クライアントへヒアリングを実施。目的や予算、イメージなどを聞き出し、Webサイトで扱うデータ形式やファイル形式、内部処理の詳細な方法、導入したいプログラムなども盛り込んだ設計図を作成します。

Webサイト制作にはシステムエンジニア(SE)やプログラマー以外にも、Webサイトのフロントエンド部分のデザインを担当するWebデザイナー、デザインをもとに実際に閲覧可能な動線を作る(=コーディング)コーダーと呼ばれる人たちも関わります。コーディングから公開まで、彼らと協力しながらWebサイトを制作します。

近年ではスマートフォンやタブレットでWebサイトを閲覧することも増えてきました。パソコンとスマートフォンで仕様を変更するのか、閲覧しているデバイスで自動的にWebサイトのサイズを変更できるようにするのか、そのあたりも設計開発に盛り込みます。

システムエンジニア(SE)に求められるスキル

IT全般の知見とスキル

システムを動かすプログラミングの制作者であるプログラマーに指示を出し、クライアントが求めるシステムを設計するためには、システムエンジニア(SE)自身にもプログラミング言語やネットワークセキュリティなど、IT全般の知見や幅広いスキルが備わっていなければなりません。

例えば、家電製品や装置を動かす小型コンピューターやサーバー側のプログラム開発では、使用するプログラミング言語が、以下のようにハードウェアごとに決まっているケースが多いようです。

  • 小型コンピューターのプログラム開発:C、C++など
  • サーバー側のプログラム開発:PHP、Java、C#、Haskellなど
  • サーバー側の開発:Linux(サーバーのOS(オペレーティングシステム))
  • その他データベースのMySQLなど

システムエンジニア(SE)を目指したり、就業後スキルアップを図ったりしたいのであれば、基本情報技術者試験や応用情報技術者試験、情報処理安全確保支援士試験などの資格取得に挑戦することもおすすめです。

マネジメント能力

マネジメント能力は、システム開発におけるスケジュール管理やチームマネジメントも担当するシステムエンジニア(SE)にとって必要なスキルです。

システム開発には納期があり、プロジェクトメンバーが連携して納品を目指すため、システムエンジニア(SE)が的確にプロジェクトメンバーに指示を出して、開発やテストを進行することが求められます。納期に遅れそうな場合や短納期で開発を進めなければならない場合は、人員補給やメンバーの仕事量の配分などの対策を講じます。

コミュニケーション能力

クライアントであれば、ニーズを満たすシステムやWebサイトなどを開発するためにも、クライアントからできる限り情報を聞き出した上で、実現の可否や、可能であればどんな機能を実装できるのか、クライアントに丁寧に説明し、納得してもらわなければなりません。また、プロジェクトには複数のチームやプログラマー、職種によってはさまざまな職業の人も参加するので、コミュニケーションが上手く取れなければクライアントが要望するシステムが納品できない可能性があります。

こうした背景から、システム開発のプロジェクトの最初から最後まで関わるシステムエンジニア(SE)にとって、コミュニケーション能力は必須といえます。

論理的思考

システムエンジニア(SE)が業務を遂行する上で、論理的思考は欠かせません。論理的思考ができると、ヒアリングを通して得た情報から導き出した最適なシステムと設計、納期に間に合うための作業スケジュールの組み方、トラブル発生への対処など、結果を導き出すまでの過程も明確になります。

英語力

最新のテクノロジーに関する情報は、技術革新が進む海外から入ってくるケースがほとんどです。情報のソースとなるWebサイトやパンフレット、雑誌、論文の多くは英語で著されています。また、システム開発で利用する部品の多くは海外メーカーの部品やソフトウェアです。

各種メディアに英語で書かれている内容を理解し、情報収集ができれば、システムエンジニア(SE)としてかなり有利と言えるでしょう。

システムエンジニア(SE)になるには?

システムエンジニア(SE)として就職するとき、特に学歴や資格は必要ありませんが、高等専門学校や短大、大学、大学院で次の学科を専攻しておくと有利でしょう。

また、職種によっては基本情報技術者試験や応用情報処理技術者試験などの資格もあると良いでしょう。

近年では、出身学科を問わずに未経験者を積極的に採用する企業や、インターンを導入する企業、研修制度を設けて社員の教育に注力している企業も増えています。ITシステムのコンサルタント企業(SIer)やソフトウェア開発会社、Web系の会社などに就職後、プログラマーとしてプロジェクトで仕事をしながら経験を積んでいき、システムエンジニア(SE)を目指します。

参考サイト:
厚生労働省 職業情報提供サイト
https://shigoto.mhlw.go.jp/User/