ITエンジニアという言葉を聞いたとき、「SE(システムエンジニア)」と「PG(プログラマー)」という職業を思い浮かべると思います。しかし、この2つの職業がそれぞれどのような役割で働いているかを明確に知らない方も多いのではないでしょうか。
本記事では「SE(システムエンジニア)」と「PG(プログラマー)」について「根本的な違い」「仕事内容」「年収・キャリアパス」「なり方」という点に着目して紹介していきます。
目次
1.SE(システムエンジニア)とPG(プログラマー)の違い
SE(システムエンジニア)とは
SEとはシステム開発において、企画や設計などの上流工程を担当する職業を指します。
クライアントの窓口となり、ニーズや要望に合わせたシステムの仕様を考えます。仕様を考える「要件定義」「システム設計」といった工程のみを担当する場合もありますが、基本的にはそのあとの進捗管理などのマネジメント業務から「納品」までを担当していきます。
そのため、システム設計の知識だけでなく、以下のような知識やスキルを必要とします。
IT知識全般
システム開発の知識
仕様書や設計書などの資料作成スキル
コミュニケーションスキル
最近はAIを使用したツールや新技術が次々登場しているため、最新のトレンドを把握し続ける必要があります。
PG(プログラマー)とは
PGとはSEが作成したシステムの設計書をもとに、詳細資料の作成やプログラミングなどの下流工程を担当する職業を指します。
システムを実際に構築するためのより良い動作や処理を考え、プログラムを作成していきます。プログラムを作成する「コーディング」とそれをチェックする「テスト」までが主な担当工程です。
ただ、プロジェクトによっては、SEが作成した設計書に必要最低限の情報しか書かれていない場合があります。その場合には、より詳細な情報を明らかにするため「詳細設計」という設計書作成にかかわることもあります。
総括すると、PGに求められる能力は以下のとおりです。
システムに関する知識
効率の良いプログラムに関する知識
論理的思考力
コミュニケーションスキル
プログラミングスキルに加えて、状況によってプラスアルファのスキルや能力が求められます。
システム開発の各工程と担当
システム開発は基本的に以下のような工程で行われます。
要件分析・定義
基本設計
詳細設計
開発(プログラミング)
テスト
納品
プロジェクトによって変わる場合もありますが一般的には以下のように担当が振り分けられます
SE(システムエンジニア):「要件分析・定義」「基本設計」「詳細設計」「納品」
PG(プログラマー):「詳細設計」「開発(プログラミング)」「テスト」
以上のことからわかる通り、SEとPGの違いは「システム開発における担当業務の違い」です。
2.SE(システムエンジニア)とPG(プログラマー)の仕事内容
SE(システムエンジニア)の仕事内容
SEの仕事内容を工程ごとに紹介していきます。
要件分析・定義
システム開発においてはまず、クライアントが「何に困っているのか」「何故そのシステムを必要としているか」のヒアリングが欠かせません。
「要件分析」でヒアリングを行い、クライアントの抱える課題とその課題を解決する方法を分析していきます。
その情報をもとに「要件定義」でクライアントの要求を満たすシステムに必要な機能を具体化していきます。
この工程は、システム開発で最も重要です。クライアントの要望が曖昧なままで進めてしまうと、開発途中から機能の追加や修正を求められたり、納品後に改修が必要になったりします。
基本設計
基本設計は、要件定義までで把握した機能をもとに、システムをどのような構成にしていくかの資料を作成していきます。
画面のデザイン、システムの構成、処理の流れ、操作方法などを決め、それぞれにかかる費用や工数(時間)を大まかにまとめていきます。
この工程で作成した内容でクライアントに同意をもらえたら、契約成立です。
詳細設計
詳細設計は、基本設計で決めた内容をもとに、より詳細なシステムの仕様についての資料を作成していきます。
実際にプログラミングを行う際に必要な設計方法や仕様を決めていくため、PG(プログラマー)と共同で作業をすることもあります。
この工程で重要なのは、実際にプログラミングを行うPGが機能を間違えないような資料を作成することです。それができていないと、設計書の改修やプログラミングの修正が必要になってしまいます。
開発(プログラミング)
この業務については、PGが主に担当します。SEがこの工程の実作業を行うことは稀で、この工程でSEは作業進捗の管理やPGからの質問への返答をします。
テスト
設計したシステムが想定通りに動作しているかの確認を行います。設計した各機能が正常な動作をしている場合と、異常な動作をする場合などの多角的なテストを行い、不具合や想定外の動作(バグ)があった場合には原因の調査と修正を行います。
この工程は、納品前の最終チェックという立ち位置で、ここで見逃しがあるとクレームや追加作業につながります。
納品
テスト工程までが正常に完了したら、クライアントの要望に合わせた形式で納品します。なかには「システムをすぐ利用できる状態にして欲しい」とリクエストするクライアントもいて、その場合は導入が終わって納品完了扱いになります。
納品後のサポートやメンテナンスは、SEの担当業務です。クライアントが常駐のメンテナンスやサポートの人員を求めてくる場合は別途人員の確保を行います。
PG(プログラマー)の仕事内容
PGの仕事内容を工程ごとに紹介していきます。
要件分析・定義と基本設計
この工程にPGがかかわることはありません。PGはサービスの基本となる資料が作成され、契約が完了し、プロジェクトが開始された後からの作業を担当します。
詳細設計
システムや仕様への理解を深め、SEとの認識の相違がないかのすり合わせをする工程です。SEの話を聞くだけではなく、最適なプログラミングを考え提案するという重要な役割があります。
PGとSE両方がこの工程に携わる場合、PGは機能ごとに、処理の分割や処理の流れなどをスムーズな開発ができるような視点で考えていきます。
開発(プログラミング)
詳細設計書をもとにC#、Java、Pythonなどのシステムに合わせたプログラミング言語を用いて、プログラミングを行います。
設計書に記載されたシステムの構成や処理の流れ通りにプログラムを作成することに加えて、処理速度が遅くならず、わかりやすくメンテナンスが楽なプログラミングが求められます。
また、クライアントから高く評価されるという観点では、使いやすさとメンテナンス性の高さといった点も重要です。
テスト
作成したプログラムが仕様通り動作しているかを確認します。1つの機能に対し、実際に使用される動作に合わせたテストを繰り返し行います。エラーやトラブルが発覚した場合はSEと連携しながら修正します。
テストが完了し、問題なければSEに引継ぎを行います。
納品
PGがこの工程に関わることは一般的にはありません。テストの段階で作業が終了となり、別のプロジェクトに参加するか、作成したシステムの保守管理を担当することになります。
関連記事
システムエンジニア(SE)が学ぶべきプログラミング言語とは?トレンドや就職・転職に必要なことを解説
要件定義と要求定義の違いは?進め方と注意するべきポイントなどを徹底解説!
3.SE(システムエンジニア)とPG(プログラマー)に必要なスキル
SE(システムエンジニア)に必要なスキル
これまでの内容を踏まえて、SEとして仕事やキャリアを考えるにあたって必要なスキルを紹介していきます。
ヒアリングスキル・提案スキル
仕事内容で紹介したように、SEはクライアントの抱える経営上の課題や要望をヒアリングします。顧客の話を聞き、要望やニーズを掴むヒアリング力が欠かせません。
さらにヒアリングの内容をもとにシステムの機能や構成を考えて、クライアントの求めているシステムを提案します。ただ闇雲にシステムの提案をするのではなく、クライアントの予算や納期なども含めて、納得できる提案が必要です。
コミュニケーションスキル
SEに限られたことではありませんが、仕事を円滑に進めるためにはコミュニケーションが必要です。SEの場合、クライアントはもちろん、チームメンバーのSEやPGとスムーズにプロジェクトを進めるには、コミュニケーションが欠かせません。
クライアントへのヒアリング、納得感のある提案をする交渉力、PGへの的確な指示など、SEの仕事とコミュニケーションスキルは切っても切り離せないということを覚えておきましょう。
マネジメントスキル
SEは、作業を円滑に進めるためのマネジメント能力も必要です。具体的には以下のような能力が求められます。
各工程のスケジュール管理
担当作業の分担とそれに伴う人員の調整
PGへの指示
システムの品質向上
設計書作成
プロジェクトに関わるすべての人員や資材をマネジメントする必要があります。
プログラミングスキル
工程全体を理解し、設計し、各工程の指示を出すためには、プログラミング言語に関するスキルが必要です。
ただ知識として知っているだけでなく、実際にプログラムを組める必要があります。プロジェクトの予算や進捗によっては、PGではなくSEがプログラミングを行うこともあります。
論理的思考力
SEに限らず、エンジニア職全般には、高い論理的思考力が求められます。
クライアントによっては、技術的な知識や視点を持ち合わせておらず「もっと〇〇を便利にしたい」「使い勝手のいい〇〇にしたい」といった抽象度の高い要望をすることもあります。
こうしたヒアリング内容から、どのようなソリューションが的確なのかを導き出す論理的な思考力が必要です。
PG(プログラマー)に必要なスキル
PGとして仕事やキャリアを考えるにあたって必要なスキルを紹介していきます。
プログラミングスキル
PGの主な業務は、システムの設計書をもとにプログラミングを行うことです。
設計書に忠実にプログラミングするだけではなく、システム全体での統一や使いやすさ、メンテナンス性を意識した以下の視点も持つことが重要であり、かつ高く評価されやすくなります。
処理速度の速くする方法
他の人でも読みやすい書き方
効率よくコードを書く方法
バグを減少させる書き方
ただプログラミングするだけでなく、改善点や問題点を発見し、解決することも大切になります。
論理的思考力
PGはSEからの指示や設計資料など限られた情報をもとに、プログラミングや資料作成を行う必要があります。また、ただプログラミングを行うのではなく、進捗や性能にも意識を向けて作業を行うことが求められます。
コミュニケーションスキル
PGはSEと違い、顧客へのヒアリング作業を行いません。そのため「PGにコミュニケーションスキルは不要」と思われやすいですが、PGにもコミュニケーションスキルが不可欠です。
PGは、プロジェクトの詳細設計から関わっていない場合もあり、そのなかでSEや他のPGと仕様のすり合わせを行い、円滑に作業しなければなりません。仕様や進捗の把握には、密なコミュニケーションが必要です。
4.SE(システムエンジニア)とPG(プログラマー)の年収とキャリアパス
SE(システムエンジニア)の年収
賃金構造基本統計調査をもとにするとSEの平均年収は約680万円です。
年代別の平均年収は以下のようになります。
20代の平均年収:約420万円
30代の平均年収:約650万円
40代の平均年収:約730万円
50代以上の平均年収:約660万円
SEとPGを比べた場合、SEが高い傾向があります。この理由は、SEは契約にかかわる上流工程からプログラミング、テストなどの実作業も兼任していることが挙げられるでしょう。
また、上記では20代から30代で年収に大きな差があることがわかります。この要因として、おおよそ30代後半からプロジェクトマネージャー(PM)などの管理職になっていくからと考えられます。
プロジェクトマネージャになると、部下や関連社員のマネジメント業務も行うようになり、これに伴い年収が上がります。
SEは、要求される業務のレベルに比例して年収が上がる職業です。
PG(プログラマー)の年収
賃金構造基本統計調査をもとにするとPGの平均年収は約550万円です。
年代別の平均年収は以下のようになります。
20代の平均年収:約350万円
30代の平均年収:約530万円
40代の平均年収:約640万円
50代以上の平均年収:約600万円
PGはSEに比べて上昇率が低い傾向にあることがわかります。
理由は「担当範囲が少ない下流工程」を担当するからです。PGの各種スキル評価や詳細設計からの参加により給料は上がりますが、上流工程やマネジメント業務にかかわらない分だけ年収に差が出ます。
PGのキャリアアップとしてよくあるのが、資格取得や転職により、SEやプロジェクトマネージャーなどの管理職になることです。
SE(システムエンジニア)のキャリアパス
SEのキャリアパスは以下のようなものがあります。
スペシャリスト:専門性の高い知識と技術を高め、より品質や高度なシステムの開発に貢献する役割
管理職:PL(プロジェクトリーダー)やPM(プロジェクトマネージャー)などの上流工程とマネジメント業務を兼任する役職
ITコンサルタント:企業向けにIT技術で経営上の問題解決を提案する職業
得意な技術や興味のある技術の専門性を高めることでシステム開発に関わるならば「スペシャリスト」を目指すのがおすすめです。
スケジュールやタスク、プロジェクトなどの管理や、クライアントからのヒアリング、要件定義といった開発以外の業務にも深く関わりたいなら「管理職」がいいでしょう。
企業へのシステム導入提案や、IT技術での経営課題の解決などをやってみたい人は「ITコンサルタント」が最適です。
豊富なキャリアパスがあるため、スキルや目標、年収などさまざまな要素から選ぶことができます。
PG(プログラマー)のキャリアパス
IT業界で活躍することを考えるなら、PGは「SEへのキャリアアップ」が一般的です。そのためには、プログラミングの知識だけでなく、コミュニケーションやマネジメントに関する知識とスキルが必要になります。
プログラミングなどのIT技術に関する専門性を高めることで「スペシャリスト」になる選択肢もあります。
下流工程を中心に活躍するなら「スペシャリスト」で、上流工程にも関わりたいなら「SE」か「プロジェクトマネージャーなどの管理職」といった選択肢になります。
関連記事
プロジェクトマネージャー(PM)の年収は高い?要求スキルや向いている人の特徴を解説
ITコンサルタントの年収とは?年収アップの方法や必要なスキルを解説
5.SE(システムエンジニア)やPG(プログラマー)になるには
SEやPGになるには、業界経験の有無が大きなポイントです。それぞれのなり方について紹介していきます。
未経験からSE(システムエンジニア)になるには
基本的に、未経験でSEにはなれません。
可能性がまったくないとは言い切れませんが、関連職種での経験やマネジメント・ヒアリングなどのスキル、SEに有利な資格の保有など、経験をカバーできる要素が必要です。
SEになりたい人におすすめの資格は以下のとおりです。
このような資格やスキルがない場合、PGを目指すのが一般的です。
未経験からPG(プログラマー)になるには
未経験からPGになる場合は、以下のような方法があります。
未経験可の求人への応募
社会人向けのITスクールでスキルの習得
関連する資格を取得
Webサービスやアプリ、ゲームなど、ジャンルによって必要なプログラミング言語は異なるため、活躍したいジャンルに合わせた知識の取得が必要です。
PGになりたい人におすすめの資格は以下のとおりです。
情報システム試験
PHP技術者認定試験
Ruby技術者認定試験
PG(プログラマー)からSE(システムエンジニア)になるには
確実なのは、PGとして就職した会社で資格の取得や業務経験・実績を積んでキャリアを上げていくことです。
経歴や資格をアピールして、SEとして転職する方法もあります。ただ、SEに必要なスキルを客観的かつ説得力を持って示す必要があるため、PGとして就職してSEになる方法よりも困難です。
最近では、ITに特化した転職支援サイトや転職エージェントなどのサポートもあるため、挑戦してみる価値はあるでしょう。
関連記事
プログラマーになるには?仕事内容や就職方法、必要スキルなど解説
受託開発と客先常駐の違いとは?自社開発の違いや向いている人の特徴も解説
6.まとめ
SEとPGの違いについて解説しました。
SEがクライアントの要望をかなえる方法を見つけてシステム全体の管理を行い、その管理のもとPGが実際にシステムを作成していきます。それぞれの役割にあったスキルや知識が必要になります。
興味のある働き方や職業に合わせて、理想のキャリアを実現していきましょう。
本記事が皆様にとって少しでもお役に立てますと幸いです。