【多様化するエンジニア】システムエンジニアとプログラマーの違いは?

IT業界のエンジニアというと様々な肩書があり、何をする人なのかわからなくなってしまうことはないでしょうか。

例えば、

エンジニアの種類って何?
  • プログラマー
  • システムエンジニア
  • アプリケーションエンジニア
  • インフラエンジニア
  • データベースエンジニア
  • ネットワークエンジニア
  • セキュリティエンジニア
  • ITコンサルタント
  • 組み込みエンジニア
  • プロジェクトマネージャー
  • SIer  等

それらの違いや役割は何なのでしょう。たくさん肩書がありますが、上記には、2つ、同列で並べられないものが含まれています。それらが何かわかりますでしょうか?答えはこの記事を読んでいただければわかります。

今回の記事では、それらエンジニアとしての肩書について詳しく解説してきます。

システムエンジニアとプログラマーの関係

システムエンジニアは上流工程を担当するエンジニアです。システムエンジニアとはこれからどのようなシステムを作り上げていくのか、クライアントから要求を聞き出しドキュメント(仕様書・設計書)にまとめ、プログラマーはそれらドキュメントを基に、プログラムを作成していくことになります。
システムエンジニアとプログラマーの関係をもっと知りたいという方はこちらの記事も参考にしてください。

システムエンジニアはプロジェクト全体を把握できる能力が求められるため、通常、プログラマとしての経験を経てからシステムエンジニアとなります。
そのため、システムエンジニアの方が会社から見てプログラマより地位が高いです。

SEとプログラマーの違い
  • SEは、要件定義から運用やサポートまで行う
  • プログラマーは、プログラミングの作業を中心に行う

〇〇エンジニアとは何?

データベースエンジニアやネットワークエンジニアも、同じシステムエンジニアであり、担当する役割がデータベースであったり、ネットワークであるだけで、上流工程を担当することには変わりありません。

つまり、データベースエンジニアとかネットワークエンジニアをセットにして、システムエンジニアと呼んでいると解釈すれば良いです。

システムエンジニアも専門化、分業化の時代です。昔はひとりのスーパーエンジニアがシステム組み上げるといったことはめずらしくありませんでしたが、現代は、ひとりで全ての技術を網羅するのではなく、担当者ごとに分業化し、チームでひとつのシステムを組み上げるような体制にシフトしています。これはシステムの規模や技術の数が昔と比べ物にならないくらい、大きく、増えているためです。

SIerとは

SIerとは、システムインテグレーターの略称です。エスアイアーと読みます。

では、システムインテグレーターは何をするのでしょう。

ずばり、システムをインテグレートします。カッコいい横文字が並んで何を言ってるのかわかりにくいですね。

システムインテグレートとは、様々なハードウェアやサービス、パッケージを組み合わせてひとつのシステムを組み上げることです。

例えば、経理システムを購入して、それで終わりとはなりません。どのスペックのサーバーにどこのアプリケーションを搭載するのか、そのシステムにアクセスするまでの通信インフラは何か、クライアントの環境は、トラブル発生時の運用・保守体制はどうするかなど、経理システムを組み上げるには様々な技術要素を統合する必要があります。

ユーザーに取って最適なシステムを組み上げ、不自由なく使えるように取りまとめることがシステムインテグレーション(システム統合)であり、それを行うのがSIerというわけです。

SIerとSEの違いは?

システムエンジニア(SE)とは個人の職種を指す言葉です。一方でSIerとは企業の業種を指す言葉です。我々、SEを採用して、顧客企業のITシステムの構築、運用などに関わるのがSIerです。

たまに、「私は〇〇会社でSIerとして働いています!」という人がいますが、厳密にはこれは間違いです。なぜなら、SIerとは企業の職種を指す言葉だからです。

「私はSIer企業である〇〇会社で働いているSEです!」などと表現するのが正解です。

とあるSIer企業の一例

では、システム開発プロジェクト立ち上げ当初の、とあるSIer企業の一例を見てみましょう。

PMさん(プロジェクトマネージャー)PMさん(プロジェクトマネージャー)

このプロジェクトのマネージメントは私が行う。各自、進捗報告を逐一するように。問題や遅延が発生したら速やかに報告してくれ。

Aさん(アプリケーションエンジニア)Aさん(アプリケーションエンジニア)

私がアプリケーションの設計、開発を担当します。よろしくお願いします。

Bさん(サーバーエンジニア)Bさん(サーバーエンジニア)

サーバー、OSの設計、構築を担当するぜ。コスパ抜群の構成にしてやるぜ!

Cさん(データベースエンジニア)Cさん(データベースエンジニア)

私はデータベースの設計、開発を担当します。Aさんには表やインデックス定義について色々ヒアリングさせて頂くことになるかと思います。

Dさん(ネットワークエンジニア)Dさん(ネットワークエンジニア)

ネットワークはオレにまかせとけ!

Eさん(セキュリティエンジニア)Eさん(セキュリティエンジニア)

このシステムのセキュリティの安全は私が確保します。

少し雑になりましたが、イメージとしてはこんな感じです。プロジェクトマネージャーがプロジェクトを管理し、各分野の専門家が設計を担当します。SEも分業化が進んでおり、このように各分野に特化した人材をアサイン(任命)します。設計工程が終わり、開発工程に入ったら、プログラマーやテスターがアサインされます。

まとめ

記事の冒頭にエンジニアの肩書は以下のようなものがあると書きました。

エンジニアの種類って何?
  • プログラマー
  • システムエンジニア
  • アプリケーションエンジニア
  • インフラエンジニア
  • データベースエンジニア
  • ネットワークエンジニア
  • セキュリティエンジニア
  • ITコンサルタント
  • 組み込みエンジニア
  • プロジェクトマネージャー
  • SIer  等

そして、この中に2つ、同列に並べらないものがあると書きました。その2つとは何でしょう。ここまでの記事の中にその答えは含まれていますが、わかりましたでしょうか。

答えは、「システムエンジニア」と「SIer」です。

システムエンジニアは、プログラマーを除く、「アプリケーションエンジニア」「インフラエンジニア」「プロジェクトマネージャー」などを含めた包括的なものです。そのため、それら〇〇エンジニアと同列に並べるのは変ですね。

SIerはシステム開発を行う『企業』のことです。対して、SEはシステム開発を行う『人』のことです。
そのため、プログラマーや〇〇エンジニアといったところに同列で並べるのもやはりおかしいですね。