2019/10/03更新

システムエンジニアとプログラマの違いって?

IT業界には、さまざまな職種が存在します。その中でも一般的にいっしょくたにされがちなのが、システムエンジニアとプログラマでしょう。今回は、その2つの職種が現場ではどのように棲み分けられているかについてご紹介しましょう。なお、企業や領域によって考え方が異なる場合があるため、ここではあくまで一般的な認識について取り上げます。

システムエンジニアとプログラマそれぞれの役割

システムエンジニアの本来の役割

システムエンジニアとは、システム開発を行うための資料となる設計書を作成したり、それより前段階の「あるシステムを構築するためにどういった処理や機能が必要なのか」を話し合う要件定義が、主な業務内容と一般的には認知されています。また、プログラマのスケジューリング管理などもあわせて任される場合もあります。

プログラマの本来の役割

プログラマとは、その名の通り、システムエンジニアが作成した設計書をもとに、特定のプログラム言語を使ってをシステムを開発する役割を担う人たちを指します。また、システムを開発した後に必ず実施する、作成したプログラムが正常に動作するかを確認するテストも、原則としてプログラマが担当する領域と規定されている傾向があります。

両者の違い

上記の説明をご覧になって何となく気づいたかもしれませんが、基本システムエンジニアは開発を行わず、あくまでも「プログラマがもくもくと開発作業を行うための土台づくりを行う」といったイメージが一般的には強いです。

逆に、プログラマは自身の習得したプログラム言語を巧みに操りながら、効率の良いシステムの構築に心血を注ぐ存在として認識されているように思われます。しかし、これは業界を知らない方に向けた説明に過ぎません。実際のところはどうなのでしょうか?

実際にシステムエンジニアは、開発を行うことがないのか?

はっきりと申し上げます。そんなことは「決して」ありません。いわゆる「炎上」という現象が、この記事を書いている現在もあらゆるプロジェクトの中で起こっています。炎上とは、何らかの原因でそのプロジェクトが「大変」なことになっている状態です。いわば、「事故」です。例えば、開発の段階で人員が足りずに、本来設計書作成が主なタスクであったシステムエンジニアが開発に狩り出される光景を、私は幾度となくこの目で見てきました。

それにシステムエンジニアとして入社したにせよ、必ずといって良いほど入社直後にプログラムの研修があります。これは設計書を作成する上で、システムの動きを把握しておくことも必要であるという名目のもとに行われていますが、実際にはいざという時の開発要員を養成するという実態も見え隠れしているように思われます。

実際にプログラマは、設計を行うことがないのか?

はっきりと申し上げます。そんなことは「決して」ありません。私が所属していた企業は、私自身も含めどちらかと言えばプログラマ寄りの人間が多数在籍していたのですが、実際現場に出向すると、まずはじめに「要件定義書を確認して設計書を作る」ところから始まったプロジェクトがいくつあったか数え切れません。

むしろ私の中では、プログラマも設計書を作るんだなと、一人勝手に納得していた節があったくらいです。下手をすると、プログラマ要員で出向したはずなのに、気づいたら設計書作成終了と同時に退場になった、というケースも業界ではよくある話でしょう。

業界の人間は、システムエンジニアとプログラマの違いを感じていない

結論を申し上げますと、業界の人間は自分がプログラマなのか、またはシステムエンジニアなのかを、あまり強く意識していない場合がほとんどです。逆に言えば、それだけ両者の境界が曖昧ともいえます。それに上記で説明した炎上などの件もあり、エンジニアプログラマ関係なくフレキシブルに人員を動かしたいという、雇用側の思惑も潜んでいるはずです。

image byFreepikによるデザイン