自己紹介
株式会社PRUMという会社の代表をしています。岩本です。
PRUM公式サイト
SES企業でエンジニアとして就業したのち、ヤフーでもエンジニアとして働いておりました。
2019年、PRUMを創業し、組織を5期目の途中で70名の規模まで成長させました。
エンジニアの成長について、誰よりも考え抜いてきた自信があります。
はじめに
エンジニアという職業の中にも、さまざまなレベルや役割があります。
特に「PG(プログラマー)」と「SE(システムエンジニア)」はよく比較されるポジションですが、具体的に何が違うのか?
この記事では、PGとSEの違いをわかりやすく解説します!
エンジニアのレベルの違い
エンジニアってひとくくりにされがちですが、その中でも レベル があります。
ざっくり分けると、こんな感じ。
- PG(プログラマー) → 設計書をもとにコードを書く人
- SE(システムエンジニア) → 要件定義・設計・プログラミング・テストまで全部できる人
「エンジニア=プログラミングする人」ってイメージがあるかもしれませんが、実際には 開発ってプログラミングだけじゃない んです。
開発はプログラミングから始まるわけではない
システム開発では、「開発依頼を受けたらすぐにプログラミングをする」というわけではありません。
まずは、徹底的に要件を詰めることから始まります。
これを 「要件定義」 といいます。
開発の流れ
- 要件定義 → どんなシステムを作るのか、仕様を決める
- 設計 → 仕様をもとに、システムの構造を考える
- プログラミング(実装) → 実際にコードを書く
- テスト → 動作確認をしながらバグを修正
- 納品・運用 → お客様に提供し、必要に応じて改善
こんな感じで、システム開発は 「考える工程」 → 「作る工程」 → 「確認する工程」 の順に進んでいきます。
PG(プログラマー)の役割とは?
プログラマーは、システムエンジニアが作成した設計書をもとにプログラムを書いていく役割を担います。
主に 「実装」 や 「テスト」 を担当することが多く、開発の中でも 「下流工程」 に位置します。
プログラマーの主な仕事
- 設計書をもとにプログラムを書く
- テストを行い、不具合を修正する
- フレームワークやライブラリを活用し、効率的に開発する
プログラミングは、開発の中で最も手を動かす作業ですが、実は一番簡単な工程とも言われています。
なぜなら、設計がしっかりしていれば、あとはそれをコードに落とし込むだけだからです。
SE(システムエンジニア)の役割とは?
一方で、システムエンジニアは 「要件定義」 や 「設計」 を含む 上流工程 を担当します。
システムエンジニアの主な仕事
- クライアントと打ち合わせをして、どんなシステムを作るか決める(要件定義)
- システムの設計を行い、どのように作るかを考える
- 必要に応じてプログラミングやテストも担当する
要件定義や設計は、技術だけじゃなくて、クライアントとのコミュニケーション能力も必要 です。
「お客さんが本当に求めているものは何か?」をしっかりヒアリングして、認識のズレをなくすのがSEの重要な役割と言えます。
開発は「家づくり」と同じ
システム開発の流れは、家づくりとよく似ています。
家づくりの流れ
- どんな家にするか話し合う(要件定義)
- 設計図を作る(設計)
- 大工さんが家を建てる(実装)
- 建てた家の確認・手直しをする(テスト)
- 完成した家を引き渡す(納品・運用)
家は目に見えるので、設計段階と実際の仕上がりが大きく違うことは少ないですよね?
でも、システム開発は目に見えない ので、「思ってたのと違う…」ってことが起こりやすい。
特に、知識の少ないクライアントの場合、具体的なイメージを持っていないことが多い ので、SEから 「こういう機能は必要ではないですか?」 と細かな提案をするなど、認識のズレをなくすことが大事なんです。
要件定義ができるエンジニアは価値が高い
要件定義は 「何を作るか」 を決める最も重要な工程です。
でも、いきなり要件定義をやろうと思っても、経験がないと難しいんですよね。
知識が浅い状態では、クライアントの要望を整理したり、的確な提案をすることはできません。
システムエンジニアとして成長するには、まず プログラマーとして実務経験を積むことが大切 です。
まとめ
項目 | PG(プログラマー) | SE(システムエンジニア) |
---|---|---|
主な役割 | プログラムを書く | 要件定義・設計・管理 |
工程 | 下流工程(実装・テスト) | 上流工程(要件定義・設計)+下流工程もできる |
必要なスキル | コーディング能力 | 設計力・提案力・コミュニケーション能力 |
例 | 大工さん | 建築士 |
- PG(プログラマー) → 設計書をもとにプログラムを書く(下流工程)
- SE(システムエンジニア) → 要件定義・設計・管理を行い、開発をリードする(上流工程)
どちらも重要な役割ですが、システム開発は、 プログラミングだけでなく、全体の流れを理解することが大切。
PGとしての経験をしっかり積んでSEへとステップアップすることで、より価値の高いエンジニアになれるでしょう!
PRUMのエンジニアの95%以上は、未経験からの採用です!
エンジニアに興味のある方、転職を考えている方
ぜひ求人をチェックしてみてください!
▼ Wantedly求人
https://www.wantedly.com/projects/626662
▼ コーポレートサイト
https://prum.jp/
VISION 『日本で一番エンジニアが成長する会社を創る』
ご応募お待ちしておりますー!