IT業界を調べ始めると、必ず出てくる2つの言葉があります。システムエンジニアと、プログラマ。
どちらも開発に関わる仕事ですが、役割は同じではありません。求人票にも両方が並び、最初はこの違いでつまずく人が多い。
ここでは、SEとPGが何をする仕事なのか、どこが違い、どこが重なるのかを、順を追って整理します。
読み終える頃には、求人の職種欄がすっと理解できるはずです。どちらを目指すか決める前に、まずは全体像から押さえていきましょう。
ざっくり言うと、担当する工程が違う
システム開発は、いくつもの工程を経て進みます。何をつくるか決める。設計する。コードを書く。テストする。動かし続ける。
この一連の流れの中で、主に前半を担うのがシステムエンジニア、コードを書く部分を担うのがプログラマ、というのが基本的な役割分担です。
家づくりにたとえると分かりやすい。設計図を描き、全体を取りまとめるのがSE。その図面をもとに実際に建てるのがPG。
どちらが欠けても家は完成しません。上下ではなく、役割の違いです。そして家づくりと同じで、良いものをつくるには両者の連携が欠かせません。
システムエンジニア(SE)の仕事
SEは、システムづくりの上流を担当します。お客様が何に困っていて、何をつくれば解決するのか。そこを聞き出し、形にしていく役割です。
主な仕事の中身
はじめに、お客様と話して要望を整理する要件定義。次に、その要望をどう実現するかを決める設計。
開発が始まってからは、進み具合の管理や品質のチェックも担います。
テストの計画を立てたり、納品後の相談に乗ったりと、関わる範囲は広い。
プロジェクト全体を見渡し、予定どおりに進むよう舵を取る役割でもあります。
求められる力
技術の知識はもちろん必要です。ただ、それ以上に問われるのが、人と話す力や文章にまとめる力。
お客様の要望を正しくくみ取り、チームに分かりやすく伝える。技術と人の間に立つ仕事なので、コミュニケーション力が土台になります。
予算や納期を意識しながら全体を組み立てる、段取りの力も問われます。
プログラマ(PG)の仕事
PGは、SEが描いた設計をもとに、実際に動くものをつくる役割です。開発の中心で手を動かす、ものづくりの実行部隊とも言えます。
主な仕事の中身
設計書を読み解き、プログラミング言語でコードを書いていきます。書いたプログラムが正しく動くかを確かめる単体テストや、不具合を見つけて直すデバッグも大事な仕事。
地道な作業の積み重ねが、システムの土台をつくります。設計どおりに動くものを、いかに正確に、読みやすく組み上げるか。そこに技術者としての腕が出ます。
求められる力
まずは、プログラミング言語を扱う力。加えて、効率よく正確に処理を組み立てる論理的な思考も欠かせません。
新しい技術が次々に出てくる分野なので、学び続ける姿勢そのものが力になります。手を動かして形にするのが好きな人に向いています。
一つの問題をじっくり考え抜くのが苦にならない人とも、相性がいい仕事です。
現場では、境界はけっこうあいまい
ここまで役割を分けて説明しましたが、実際の現場では、線引きはそれほどはっきりしていません。SEがコードを書くこともあれば、PGが設計に加わることもあります。
会社の規模や方針によって、呼び方や担当範囲は変わります。小さな会社では一人が両方をこなすことも多く、大きな会社ほど役割が細かく分かれる傾向があります。
最近は両者をまとめて「エンジニア」と呼ぶ場面も増え、職種名だけで仕事の中身を判断しにくくなっています。
求人票の職種名だけでなく、実際にどこからどこまでを任されるのかを確かめるのが確実です。
キャリアの流れとして見ると
日本のシステム開発では、まずPGとして経験を積み、そこからSEへ進むという流れが長く一般的でした。
手を動かして開発を理解した人が、設計や要件定義へ広がっていく形です。
とはいえ、これが唯一の道ではありません。技術を深く極めるスペシャリストの道もあれば、はじめから設計寄りの役割で入る場合もあります。
大切なのは、SEとPGのどちらが上かではなく、自分がどちらの仕事に面白さを感じるか。まずは両方の中身を知ることが、その入口になります。違いが分かれば、自分が進みたい方向も、少しずつ見えてくるはずです。
