IT系の技術職を代表する二大職種として、プログラマーとシステムエンジニアがございます。その他にもカスタマーエンジニアやネットワークエンジニア、DBエンジニアなどがありますが、やはり有名なのはこの二つではないでしょうか。

業界外の人からすれば、どちらも呼び方の問題だけでやってることは一緒じゃないの!?と思ってしまうかもしれませんが、プログラマーとシステムエンジニアではまったく異なる職種とまでは言いませんが、それなりに求められるスキルは異なってきます。

今回はプログラマーとシステムエンジニアの違いについてご説明していきましょう。

プログラマーが成長してシステムエンジニアになる

子供がいろんなことを経験しながら成長して大人になるように、プログラマーもさまざまな開発現場で経験を積んで、徐々にシステムエンジニアへと成長していくもの。プログラマーの上位職種がシステムエンジニアだと理解していただければよいでしょう。

だからどんな人でも、まずはプログラマーからキャリアをスタートさせていくのです。年をとってベテランと呼ばれるエンジニアも、最初はスキル未熟なプログラマーだったのですね。

両者に明確な基準はない

人間であれば、子供と大人は20歳というラインで明確に区切ることができます。しかしプログラマーとシステムエンジニアの違いには、法的根拠のようなものもなければ、成人式のような儀式もありません。つまりいつまでがプログラマーで、いつからがシステムエンジニアというような明確な区分けは存在しないのです。

そのためソフトウェア会社に就職して早々にシステムエンジニアを名乗ることも自由なのです。逆にプログラマーという肩書きにこだわっているのなら、いつまでもプログラマーとして自己を紹介することも可能です。

ただし未経験でいきなりシステムエンジニアと名乗っては、最終的に多くの信頼を失ってしまうかもしれません。PGとSEでは明確な区切りはありませんが、次にご説明する通り、業界の中では当たり前のように認知されている差があるのです。

システムエンジニアとプログラマーでは担当業務が異なる

システム開発には上流から下流までいくつかの工程があり、それぞれの工程で求められるスキルは異なります。以下の開発工程の一覧をご覧ください。

  • 要件定義(SE)
  • 基本設計(SE)
  • 詳細設計(SE・PG)
  • プログラミング(PG)
  • 単体テスト(PG)
  • 結合テスト(SE・PG)
  • 総合テスト(SE)

現場によってはもっと細かく工程が区切られていることもありますが、大まかに言ってしまえば以上のような工程が存在します。そして各工程の右のカッコ内に記載しているのが、SE(システムエンジニア)とPG(プログラマー)のどちらが対応するべき工程なのかということ。

一般的にはプログラミングと単体テストが、プログラマーにとって基本のお仕事になります。詳細設計や結合テストはグレーな部分で、SEの仕事なのかPGの仕事なのか人によって考え方が異なるところ。その他についてはシステムエンジニアが担当すべき工程になります。

発想を逆にして考えるなら、基本設計や総合テストを任されるようになれば、システムエンジニアに成長したと考えてよいでしょう。

責任はシステムエンジニアの方が重くなる

システム開発の工程において、上流工程を担当するのがシステムエンジニアです。もしプログラミングの工程で致命的なバグが発生することがあれば、上流の設計工程に戻ってやり直さなければなりません。

そのためシステムエンジニアの仕事は、もしバグを生み出してしまった場合の影響範囲も大きくなりますし、リカバリー作業にかかるコストも高くなります。システムエンジニアの仕事はプログラマーよりも責任が重くなるのです。

給与もシステムエンジニアのほうが高くなる

給与については、それぞれの会社で独自の規定がありますので、絶対にそうなるとは断言できませんが、おおむねシステムエンジニアの方がプログラマーよりも給与は高くなります。上の項でご説明したように、システムエンジニアのほうが抱える責任が大きくなるためです。

海外では凄腕プログラマーに莫大な報酬を与える事例も見受けられますが、それは技術革新が進んでいるアメリカだからこそ起きる話であり、まだまだ日本ではそのようなことはないでしょう。

給与所得を上げたいのなら、システムエンジニアを目指すべきです。

ずっとプログラマーのままのエンジニアも存在する

プログラマーという仕事に誇りを持ち、システムエンジニアと同じ仕事をしていても、いつまでもプログラマーと名乗る人もいますが、スキル不足のためにいつまでたってもSEになれないエンジニアも実はたくさんいるのです。

30歳を迎えるころには、どんなプログラマーもシステムエンジニアに成長しているのが理想ですが、50歳を過ぎてもプログラマーレベルの仕事しかできないエンジニアがいます。そうするとどんどん活躍の機会が減っていき、悲惨な結末を迎えてしまいます。これらのことは「ITエンジニアにとってキャリアデザインを考えることはとっても大事」にて詳しくご説明しておりますので、気になる方はご覧ください。

 

おわりに

システムエンジニアとプログラマーの違いについてご説明してきましたが、明確な区分けはないものの、スキルレベルの差によって、どちらの肩書きになるのかが変わってきます。

ITエンジニアを目指すのであれば、プログラマーでエンジニア人生を終わるのではなく、システムエンジニアになることを目指しましょう。