エンジニア・システムエンジニア(SE)・プログラマー(PG)の違いは?

ビジネス

今回はエンジニア・システムエンジニア・プログラマーの呼び方の違いについて書いてみました。

筆者が10年ほど様々な中小企業で、プログラマーとして仕事をしてきた観点から書いています。
それでは、それぞれの違いを確認してみましょう。

※筆者はプログラマーとして働くことがほとんどなので、設計寄りのシステムエンジニアの実情はよく分かっていません。

エンジニアとは?

エンジニアとは?
エンジニアについて、wikipediaを確認するとこのように書いています。

技術者(ぎじゅつしゃ)とは、工学に関する専門的な才能や技術を持った実践者のことである。なお日本においては、名称独占資格である「技術士」および「技能士」と違って、名称独占資格ではなく明確な定義のない呼称でもある。実際的には、スキルを持つものの呼び名として工学以外の分野も含め広く用いられている[1]。
技術者に対応する英語として、または同じ意味合いの外来語として、エンジニア (engineer) の呼称も用いられる[1][2]。

技術者のことを指す言葉になりますね。
IT業界でエンジニアと呼ばれる場合は、プログラマーやシステムエンジニアなどの総称になる呼び方です。

個人的には10年前(2010)あたりはエンジニアという言葉はあまり耳にしなかった気がします。

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

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

システムエンジニアは、システムの開発で、要件定義や基本設計・詳細設計など、システムの設計に携わるエンジニアです。
基本的には、システムエンジニアが作った設計に沿って、プログラマーがプログラムを組むという流れになります。

システムエンジニアに必要とされるスキルとしては、設計書を作成するためのドキュメントの作成能力や、お客様と接する機会が多いため高いコミュニケーション能力が必要とされているようです。

プログラマーからシステムエンジニアにといった、キャリアを進んでいく方が多いようです。
実際にプログラミングをする知識がないと、提案や設計書を作るのは難しいと思います。
なので、このようにキャリアを進んでいく人が多いのではないでしょうか。

プログラマー(PG)とは?

プログラマー(PG)とは?
システムエンジニアが作成した設計書を元に、実際に動くもの(プログラム)を作成する仕事になります。
システムのバグや設計上の誤りを指摘することもプログラマーの重要な仕事です。

一見コミュニケーション能力はあまり必要なさそうですが、仕事をする際に進め方や仕様について会話をしたり、聞いたり、他のプログラマーに作成したプログラムを説明することもあり、ごく一般的なコミュニケーション能力は必要です。
アジャイルな開発やプロジェクトのコードをマイグレーションするなど、設計書がない現場で作業することもあります。

筆者はどっち?

筆者は基本的には「プログラマー」を名乗っています。
詳細設計から仕事をしたり、アジャイル※な感じでそれっぽい仕様をテキストで教えてもらって、プログラムを作っていくこともあります。

自分でアプリなどを作るときには、設計やテストは自分でやったりするので、ある意味「システムエンジニア」とも言えるかと思います。
個人的にはプログラム作成の過程を大切にしています。

もちろん、お客様あってのお仕事で、お客様と仕様を詰めたり、より良いものを提案したりすることも大切だと考えています。
どちらの仕事も大切で、一概にどっちが上でどちらが良いなどとは言えないでしょう。

※アジャイル => 要求仕様の変更などに対して、機敏かつ柔軟に対応するためのソフトウェア開発手法。

中小企業では、実はそんなに境目がない?

中小企業では、実はそんなに境目がない?
10年ほど業界で働いてきて感じることですが、実際に中小企業の現場では、詳細設計くらいからはプログラマーがやることが多く、実情として現場はプログラマーが回しているといえると思います。
お客様とやりとりするエンジニアでも、プログラムを書いている人も知っていますので、システムエンジニアだからと言って、設計だけということでもないかと思います。

個人的にもプログラマーを名乗っていますが、プロジェクトには詳細設計から入ることもあります。
入った会社やプロジェクトによって、同じ呼び方でも定義(担当する仕事の範囲)が異なったりするので注意した方がいいでしょう。

基本設計から最後のテストまで一貫して出来ると重宝されると思うので、どちらの仕事も出来た方がいいとは思います。
つまりプログラマーからシステムエンジニアへといったキャリアですね。

コメント

タイトルとURLをコピーしました