「SEって耳にするけど、PGと何が違うの?」
「なんとなく違うことはわかるんだけど、何が違うかといわれると答えられない。」
「どっちの年収が高いんだろう?」
「未経験者が目指すとしたらどっち?」
役割や仕事が混同されることの多い、PG(プログラマー)とSE(システムエンジニア)。
どちらもIT業界のエンジニアですが、どんな違いがあるのでしょう。
ここでは、PGとSEの違いについて、システム開発上の役割や仕事内容、また必要なスキルや年収まで深掘りして、わかりやすく解説します。
初心者で、PGやSEを目指そうとしている人、
あるいは未経験だけれど転職したいと考えている人は是非参考にしてみてください。
目次
PGとSEの違いは?
繰り返しになりますが、PGもSEもIT業界の技術職「エンジニア」です。
しかし、システム開発を行う中では、「SEが考えた設計案をもとに、PGがプログラムを構築していく。」ことになります。
違いを一言でいうなら、「それぞれが対応する業務範囲が異なる」のです。
まだザックリしすぎて、よくわからないですね。
では、二つの違いをシステム開発のフローから説明してみましょう。
システム開発フローから見たPGとSEの違い
システム開発とはIT技術を使って、業務を最適化、効率化を図ることですが、他にもインターネット経由でさまざまなサービスを利用できるようにする「WEBシステムの開発」などもあります。
一般的にシステムを開発するには決められた工程があり、その工程に沿って進められます。
開発工程を流れに沿って図式化したものを「開発フロー」といいます。
以下の開発フローで、PGとSEの役割の違いを示します。
システム開発フロー図
このうち、1~3、6の工程をSEが、4、5をPGが担当します。
またシステム開発において1~3を「上流工程」、4~6を「下流工程」といい、主にSEが上流工程をPGが下流工程を担務しています。
今度は、工程ごとの具体的な内容を説明します。
システム開発フローの工程
要件分析・要件定義(SE)
顧客の要望を分析し、まとめた要件定義書をもとに、スケジュールやプロジェクトの人数を決定します。
基本設計(SE)
システムの具体的な構成を決め、設計書を作成します。
詳細設計(SE)
基本設計フェーズで決めた機能に対し、どのように実現するのかを設計、PGがプログラミングをするために必要な、細かな設計を行います。
実装(PG)
設計書を元にPGがプログラミング(コーディング)作業を行います。
テスト(PG)
プログラミングが完了しシステムが形になった後、顧客の要望通りにシステムが動作するかテストし、保守に必要なドキュメントも作成します。
プロジェクトによってはPGとともにSEが担当する場合もあります。
運用、保守(SE)
障害が発生した場合に対応したり、次の問題点を見つけます。
参考:フリーランススタート|ウォーターフォール型開発とは?、発注ラウンジ|システム開発の工程(流れ)とは?覚えておきたい略語も解説
具体的にどんなことをするのか?
上記の工程を元に、PG・SEがそれぞれどんな仕事をしているのかをさらに具体的に解説します。
SEの仕事
企業や団体のホームページ、情報提供サイト、ショッピングサイト等のWebサイト設計開発を一例として説明します。
- 顧客と検討し、どのようなWebサイトにするか決める(要件定義)。
- データベースの設計や外部システムとの連携などを固めていく(基本設計)。
- 基本設計に従い、処理の流れを細分化した設計書を作成する(詳細設計)。
- 詳細設計に基づき作成するソフトウェアを、PGに依頼するか、設計者がプログラミングを行う(実装)。
- 作成したソフトウェアの各種テストを実施。
- Webサイトの運用や操作に関する教育を、サイトの運用者に行う(運用)。
- 納入後生じた問題の解決やアフターケアを行う(保守・管理)。
PGの仕事
詳細設計に基づいたプログラムと保守に必要なドキュメントを作成します。
- SEの作成した詳細設計に基づきコーディングし、プログラムを作成する。
- 出来上がったプログラムを個々に動作させて確認を行います(単体テスト)。
- 複数のプログラムを組み合わせて行います(結合テスト)。
- システムとしての動きを見る総合テストをSEとともに行い、バグを摘出します。
- バグ修正が終わるとし、システムが完成し、保守に必要なドキュメント(開発したプログラムの説明、テスト結果等)を作成します。
SE・PGを目指すには何を学ぶべきか?
PG・SEを目指すのに必要なスキルは、共通する部分も多いですが、やはりそれぞれに特化したスキルが必要となります。
SEに必要なスキル
プログラミング言語、論理的思考力、マネジメント力、コミュニケーション力
クライアントと現場の間をうまく取り持ち、円滑に開発が進むよう進行管理をしながら、作ったプログラムを検証する能力も必要になります。
また、システム全体を見通し、設計するための知識が必要です。
プログラマに必要なスキル
深いプログラミング言語スキル、論理的思考力、コミュニケーション力
指定された言語でより効率よく、バグの少ないシステムを作り上げるために、論理的な思考とコードに対するセンスや発想力も重要になってきます。
未経験で目指すならPGかSEか?
開発全体を取りまとめるSEとシステム開発の核となるプログラムを作るPG。
未経験者なら、どちらを目指すべきか?
SEもプログラミングの知識は必要なことから、初めにプログラミングをマスターしてからステップアップするケースが多いのも事実です。
また、SEに求められる専門知識が高度であったり、必要なスキルの幅が広いことなどから、未経験者が目指すならPGの方が敷居は低いと言えます。
SE・PGの年収は?
SEとPGの2010年から2019年までの10年間の年収および労働時間、平均年齢の推移を比較しました。
図4に示す通り、10年間の年収の推移は、大きな変化がなく安定しています。
労働時間は、若干ばらつきはありますが、PGの方が長い傾向にあります。
2019年の平均年収はSEが569万円、PGが426万円、労働時間はSEが156時間、PGが160時間となっており、SEはPGに比べて労働時間が少ない上、年収も140万ほど高くなっています。
実は平均年齢でいうと、図5のとおりに2019年のSEは38.8歳、PGが33.8歳と5歳ほど若いことから、実務経験の長さが年収にあらわれている結果といえます。
まとめ
今回は、PGとSEの違いを具体的な仕事内容や必要スキル、収入などの面から解説しました。
SEは、場合によってはプログラミングまで手掛けることもあるなど、プログラムだけでなく全体を見通す幅広い能力が求められます。
未経験者であれば、まずプログラミングスキルを身につけてPGを目指し、そこからSEへステップアップするのが成功の秘訣です。
また、プログラミングやシステム開発関連のスキルを身につけるならば、独学よりもスクールに通う方が効率的です。
この記事が、ITエンジニアの仕事を目指す方々のお役に立てれば嬉しいです。