【現役SEが解説】SEとプログラマーの仕事の違いを分かりやすく解説!
・SEやPGって何?
・どんな仕事の違いがあるの?
本記事は上記のような疑問を持っている方にお勧めです。
- SEの仕事内容
- PGの仕事内容
- 実際の職場での仕事内容
SEとPGの仕事内容について説明します。
これから就職/転職しようと思っている方はどのような仕事を行っているか分かりづらいかと思います。
今回はシステム開発の流れを説明し、どこをSEやPGが担当しているのか見ていきたいと思います。
システム開発の流れ
ユーザーが求めている機能を聞き出したり一緒に考えていきます。
例えば「社内用の各種申請ページを作成したい」「売上分析ツールを作りたい」などという内容を聞きます。
ただこれだけだとアバウトすぎるので、どういった機能が欲しいかや計算内容なども決めていきます。
ざっくり言うと、「何が作りたいの?」を決定します。
要件定義で決定した仕様をどのように実現するかを考えます。
一番わかりやすいのは画面イメージでしょうか。
どういった画面でどんな設定ができるのかが分かるとユーザーの求めているものとの相違が少なくなります。
細かいところだと、どんな言語で作るかや動作環境等も決めていきます。
ざっくり言うと、「こんなイメージになるよ」を決定します。
基本設計で決めたイメージから、どうやって実現させるかを考えます。
具体的には、開発を行うための手順書を作成します。
いわゆるロジックを作るフェーズであり、ユーザーからは見えづらい部分になります。
ざっくり言うと、「内部処理をどうするか」を決定します。
「要件定義」「基本設計」「詳細設計」で決めた内容を元にシステムを作成していきます。
プログラミングを使用する部分というと分かりやすいかもしれません。
ざっくり言うと、「システムを作る」フェーズです。
開発を行ったシステムはそのままではバグが多いので、テストを行って修正していきます。
テストもいろいろあり、「単体テスト」「結合テスト」「総合テスト」「負荷テスト」「受入テスト」などなどです。
様々な観点からテストすることでバグを見つけていきます。
ざっくり言うと、「バグを見つけて修正する」フェーズです。
作ったシステムをユーザーに渡して使い始めてもらいます。
ざっくり言うと、「納品」です。
ユーザーに使用してもらっている間にバグが発生したり、使いやすくアップデートしたりします。
運用保守は専門部隊がいたりするので、SEやPGの仕事の範囲外となることが多いです。
ざっくり言うと、「アフターフォロー」です。
SEの仕事内容
SEの担当分野は、
① 要件定義
② 基本設計
③ 詳細設計
④ テスト
⑤ リリース
になります。
基本的には開発以外すべてになります。
ユーザーと直接話を行いシステム仕様を作成し、PGが作成したプログラムが正常に動作することを確認します。
また、スケジュール管理なども仕事の範疇になってきます。
開発を行うわけではありませんが、設計を行うにはPG以上のプログラミングスキルが必要になります。
ユーザーと認識合わせを行ったり、開発チーム内の情報共有の中心になったりするのでコミュニケーション能力も必要になります。
そのため、通常はPGからのステップアップでSEになっていきます。
PGの仕事内容
PGの担当分野は、
① 開発
② テスト
になります。
開発ではSEの作成した設計書通りにプログラミングしていきます。
ただし設計書があるとはいえ、1から10まで書いているわけではないですし、日本語の文字をプログラミング化する必要があるため簡単な作業ではありません。
設計書の問題点を見つけることも重要な仕事だったりします。
テストでは、自分で作成した機能をテストする「単体テスト」や他の機能との繋がりをテストする「結合テスト」を主に行います。
特に「単体テスト」は重要で、細かい入力値チェックなどはここでしか確認しないプロジェクトも多くあります。
「単体テスト」を適当に行ってしまうとバグがあるままリリースまで行ってしまう可能性があるので注意です。
現場では区別されていないことが多い
ここまでの説明では、SEとPGの仕事を分けて説明しましたが実際の現場ではそうなっていなかったりします。
SEだから開発をやらないとか、PGだから設計を行わないとか明確な決まりは存在していないです。
なのでPGからSEに代わったタイミングが分からない人が多いです。
僕もいつ自分がSEになったのか気づいていません。笑
見積もりの資料を確認したらSE単価で入れられてました。笑
SEは何でも屋
上記では、開発はやらないと記述しましたが開発を行うSEも多く存在しています。
また、運用保守まで行っている人もいます。
そうなってくると「システム開発の流れ」で説明したすべてを担当していることになりますね。
「SEは何でも屋」などという揶揄した言葉もあるのですが、まさにその通りではないでしょうか。
一貫してシステム開発に携わった方が伝言ゲームにならずに済むのでメリットはあるのですが、ユーザーと打合せして開発してスケジュール管理してというのを一度にやっていると見た目以上に疲弊します。
うまいこと他の人に仕事を振り分ける能力も大切です。
PGはSE見習い
基本的にPGはSEになっていきます。
始めは開発のみ行うのですが、気づけばテストに参加させられていたり、設計書を記述したり、ユーザーとの打ち合わせに参加させられるようになります。
PGはSE見習いのような期間なので、開発だけできると思っていると痛い目を見るかもしれないです。
気づいた頃にはSEになっていることでしょう。
まとめ
SEとPGの違い、いかがだったでしょうか。
結論としては、SEとPGに定義上の違いはあるが実際の職場ではあまり違いがないということです。
PGやSEを目指している人は参考にしてみてください。