昨今では日常生活においてもITを駆使したサービスやツールに触れる機会が多くなり、システムエンジニア(SE)という職業の認知度も高くなってきました。IT関連の需要は今後も高まるとされていますが、その業界を支えるシステムエンジニアとは、どのような仕事をしているのでしょうか。

今回はこれからシステムエンジニアを目指そうとか、SEという職業に興味を抱いている方に向けて、システムエンジニアの仕事について、ご説明していきたいと思います。

システムエンジニアはシステムの開発・構築が仕事

システムエンジニアの仕事とは、一言でご説明するなら「システムを開発・構築する」ことです。ただしその中身は実に多種多様な開発分野があり、開発の経緯やシステムの種類など、さらに細かく分類することができます。

システム開発の経緯について

開発の経緯については、「お客様からの依頼に対して、特注でシステムを構築する」と「自分たちで企画したシステムを構築する」の二つがあります。前者は“フルスクラッチ型のシステム”と呼ばれ、後者は“パッケージシステム”と呼ばれることが多いです。

全体の割合としてはフルスクラッチ型のシステム開発に従事している技術者の方が多いのではないでしょうか。社内システムの開発だとしても、それはパッケージではなく、お客様が社内の人間となり、フルスクラッチでの開発となります。

システムの種類について

システムの種類については、大きく分けると以下の3つに分けることができます。

  • 業務系システム
  • 制御系システム
  • 組込み系システム

そのほかにも昨今では、ビッグデータや人工知能などの先端ITと呼ばれる分野の開発も活発になっています。
※参考記事「IT産業の今後の成長を支えるであろう次世代のIT活用シーン

業務系システム

業務系システムとは企業の会計管理や工場の生産管理など、基幹業務から末端業務まで、業務に従事する人のサポートをするためのシステムです。

オープン系やWEB系のシステムと呼ばれることもあります。

プログラム言語としてはJavaや.NET系の言語を使用することが多いです。WEB系の業務システムとなると、PHPやJavaScript、HTMLなどの言語スキルが求められます。また業務系システムはデータベースの知識も必須となってきます。

制御系システム

制御系システムとは工作機械の制御や、自動車のエンジン制御など、機械を制御するためのシステムを指します。

後述する組込み系システムもそうですが、制御系のシステムは業務系システムとは違い、バグがあった場合に人の手で業務をリカバリーすることができません。一つのシステムが複製されて、多くの機械に搭載されることになりますので、非常に緻密な設計が求められます。

制御系や組込み系のシステム開発は、プログラム言語は主にC言語を使用して開発を行います。

組込み系システム

組込み系システムとは製品の中に組み込まれているシステムのことです。たとえばカーナビであればナビシステムを組み込んでいますし、最近では白物家電の中にもシステムが組込まれるようになり、機能性の高い家電製品が多数登場しています。

「IoT(モノのインターネット)」という言葉を耳にする機会も増えましたが、まさにIoTは組込みシステムです。組込み系システムに関しては、今後ますます需要が増していくことでしょう。

作業場所について

作業場所については自社で行う場合と、お客様先で作業する場合の2通りがあります。

お客様先での作業というのはSEならではの勤務形態ではありますが、自社には出社せずにお客様先に出社してそのまま自社にも戻らずに帰宅します。自社に戻るのは月に1回ほどということも珍しくはありません。

お客様先の機密情報や個人情報を扱うことの多い職業ですので、どうしても自社へはデータを持ち出すことができないなどの理由で、お客様先で作業することを余儀なくされてしまうのです。ただしお客様先ではありながら、自分が使用する席やPCなどを用意してもらえることが一般的なのでご安心ください。

割合としてはお客様先に常駐しながら開発に従事するSEの方が多いのではないでしょうか。複数のソフトウェア企業のエンジニアが集まって一つのプロジェクトを遂行することも、当たり前のようによくある話です。

プログラマーとシステムエンジニアの違いについて

システムエンジニアと似たような職業に、プログラマー(PG)というものがあります。しばしばSEとPGをごっちゃにして言われることも多いですが、SEとPGは厳密な区分けは存在しないものの別物です。

イメージとしてはプログラマーが成長するとシステムエンジニアになる、と思ってもらえれば大丈夫でしょう。作業領域については、プログラマーはその名の通りプログラミングと単体テスト、システムエンジニアは要件定義や設計、総合テストなど、システム開発の中でも上流工程を担当します。

システムエンジニアとプログラマの違いについての詳細は「プログラマーとシステムエンジニアの違いについて」の記事をご覧ください。

おわりに

“システムエンジニア”の仕事は「システムの設計・開発」という認識で間違いありませんが、開発するシステムや担当する工程、働き方などを細分化していくと、それぞれの環境で違いはあるものです。

またもう少し大きいくくりとなる”ITエンジニア”になると、ITにまつわる様々な職種が含まれることになります。ITエンジニアについては、こちらの「ITエンジニアという言葉に含まれる職業はこれだ(全7種)」をご覧ください。