「システムエンジニア(SE)」と「プログラマー(PG)」は、似ているようで異なる職種を指す言葉です。IT業界に詳しくない人にとって、この2つの言葉の違いは分かりづらいのではないでしょうか。これらの職種は未経験から募集していることもあり、IT業界を考えている就活生には直接の仕事候補のひとつです。また、プランナーやデザイナーはこれらの職種の人々と一緒に仕事をすることがあります。そのため、それぞれがどういった業務をこなすのかを知っておくと、コミュニケーションに役立つかもしれません。
編集・執筆 / ASAMI KIMURA, AYUPY GOTO
前置きとして言葉の意味のみ確認します。
エンジニア(engineer):技術者、技師
プログラマー(programmer):プログラムを作成する人
エンジニアはもともと工学分野における専門的な知識を持った技術者のことであり、IT関係のみならず様々な種類の仕事が含まれていますが、本記事ではエンジニア=IT業界のシステムエンジニア(SE)として進めています。
目次
- 1. 役割の違い
- 2. コミュニケーション相手の違い
- 3. 適性の違い
- 4. キャリアの違い
- 5. 最後に
1. 役割の違い
まず一番大きなポイントとして、両者ではプロジェクトにおける役割が異なります。
例えとして、建築業界の職種が引き合いに出されることが多いです。
家造りをする人に例えるとこのようになります。
エンジニア・・・建築士
プログラマー・・・大工
簡単に言うとエンジニアがシステムの設計をし、プログラマーはそれに従って実際にプログラムを書くという役割の違いになります。エンジニアの良い設計がなくてはプログラマーの能力は活きませんし、プログラマーによる実現力がなければエンジニアの構想は実現しません。
システム開発のフローから「上流工程」「下流工程」という分け方で認識されていることがありますが、それぞれの役割があるため単純にエンジニアが優位である、という考え方はしなくて良いでしょう。現場の状況によってもそれぞれの関係性は変わってくるようです。また、一人がエンジニアとプログラマー両方の役割を担っていることもあります。
それぞれが関わるシステム開発のフロー
システムの開発にあたり、エンジニア(SE)やプログラマー(PG)が関わることになるプロジェクトの流れは次のようになっています。
- 分析 (顧客との打ち合わせなど)
-
– 要求分析 (SE) -
– 要件定義 (SE)
-
- 設計
-
– 基本設計 (SE) -
– 詳細設計 (SE)
-
- 実装
-
– プログラミング (PG)
-
- 評価
-
– 単体テスト (PG) -
– 結合テスト (PG) -
– システムテスト (SE) -
– 運用テスト (SE)
-
- 稼働
このように、エンジニアとして関わる作業はマネジメント的な位置であり、プログラマーの担当する工程の前後のフローを担当しています。逆にプログラマーはエンジニアからの指示を受け、ひたすら実装中心に取り組みます。
2. コミュニケーション相手の違い
実際の役割の違いを知ってもらえれば想像していただけると思いますが、仕事上でコミュニケーションを行う相手が異なります。
エンジニアにはプログラマーに比べ、クライアントの要求を聞き出したりプレゼンしたりという場面があります。社会人として特別なことではありませんが、外部との円滑なコミュニケーションができることが重要となります。さらに窓口としてクライアントとやり取りした後もプログラマーとの意思疎通を図り、希望を伝える必要があります。
一方プログラマーには、エンジニアからの要求に対して適切に返すコミュニケーション能力、プロジェクトメンバーと一緒に開発を進めていくコミュニケーション能力が必要です。グループで何かの取り組みを経験したことのある人は想像できるかもしれませんが、一つのものを完成させるまでのコミュニケーションは、親しい間柄同士であるとしても大切です。
このように、エンジニアが特別社交的でなければいけないというものでもなく、プログラマーにコミュニケーション能力が不必要なわけでもありません。
3. 適性の違い
コミュニケーションの種類が違うことには触れましたが、他にもそれぞれの職種に必要な能力が挙げられます。
【エンジニアに特に必要な力】
- ・基礎的なプログラミングの理解
- ・物事を総合的に捉える力
- ・マネジメント力
- ・体力 …etc
【プログラマーに特に必要な力】
- ・新しいもの好きであること
- ・面倒なことを他のものに置き換えようとすること
- ・論理的思考力
- ・集中力 …etc
このように必要な能力を挙げだしたらキリがありませんが、ごく簡単にエンジニアとプログラマーの能力の違いを述べるならば、発揮できる能力の種類が複数か、一点を深めているのかという違いになります。
両方の役割を兼ねている職の場合は、常にあらゆる能力を磨いていかなければいけないことになり、かなりハードです。しかし実際にはエンジニアであっても最新の技術を知らないままでは仕事に支障が出たりと、もともとの適性の他にも身に付けていくべき能力がたくさんあります。
4. キャリアの違い
現在の日本では、年数が経ってもプログラマーがずっと現場で実装をしているということはあまりありません。一般的にプログラマーとして数年働くと、キャリアアップの先としてエンジニアに進むことが多いです。もともとエンジニアを視野に入れていた人がプログラミングの勉強をしてから晴れてステップアップするという場合もあれば、プログラマーとして働いていたら昇進としてエンジニアに、という場合もあるでしょう。
エンジニアとプログラマーに求められる能力は上述の通り異なるので、誰しもにとってこのようなステップが適しているというわけではありません。根本的に手を動かして美しいソースを書くことが好きであったり、自分のプログラマーとしての能力を活かしたいのであれば、その道のプロフェッショナルを目指せる働き方をするべきです。
ただ、日本では収入の面においての事情が影響しています。マネジメント的な立場の職種の方が収入が高くなる傾向にあるため、現状として年齢が上がるとプログラマーからエンジニアへ、というキャリアアップが主流になっています。ですが海外では事情は異なりますし、今後日本でもプロフェッショナルタイプの収入が上がっていくかもしれません。基本的には自分に適している職種を選べるようになると良いですね。
5. 最後に
IT業界を目指している方には、学校で学んだことに関係なくエンジニアやプログラマーを目指してみよう、という方もいると思います。どちらについても経験が無くても適性があると判断されれば十分に採用されます。興味があり、さらに自分に合うかもしれないと思った方は、是非将来就きたい職業の候補に入れてみてください。
