猿でもわかる!?SEとプログラマーの違い

    2018.04.21

SEとプログラマーは混同されがちですが、仕事内容は大きく異なります。
完全に異なるとは言い切れませんが、役割が違うという表現が正しいですかね。

数学の授業で習ったような図で表すと、こんな感じです。
SEの業務の中の一部にプログラマーの業務があるイメージですね。

文字で表現すると、

  • SEは、システムを作る人
  • プログラマーは、コードを書く人

システム = コードじゃないの?と思う人もいるかもしれません。
それでは、システムを作ることとコードを書くことの違いを見ていきましょう。

システムはどうやってできる?

趣味で簡単にシステムを作る場合には別ですが、
仕事としてシステムを作る場合、コードを書くだけではダメです。

様々な調整、成果物の作成など実に面倒臭い作業が必要になります。
これは、後で何か問題が起きた時に参考にするための資料にしたり、後輩にシステムを円滑に引き継げるようにするためです。

では、どのような調整と成果物が必要になるのかざっくりとシステム開発の全体の流れを見ていきましょう。

1 企画

システムの素案などをお客様と話し合います。お客様の意見を聞きながら、こちらからも提案します。

2 見積もり & スケジュール作成

作成するシステムの方向性が決まれば、見積書を作成してお客様に提出します。お客様から「OK」が貰えれば案件としてスタートします。

3 要件定義

要件定義書という、作成するシステムの概要を書き出した書類を作ります。
文章に図を織り交ぜながら書き、できあがるシステムをお客様がイメージできるような書き方をしなければなりません。
ここで、最終的なシステムの形をお客様と共有することになります。

4 外部設計

システムの外側の仕様を文書にします。
エラー内容、文字の大きさ、文字の色、文章の内容、タイトル、背景の色、など。
見た目に関することはすべて外部設計書に書き出す必要があります。
外部設計書までをお客様と共有するところと、そうでないところに分かれます。

5 内部設計

システム内部の動きを文書にします。
エラー処理、関数の定義、データフォーマット、入力データ、出力データ、など。
内部設計書からは完全にシステム会社の内部用の文書になります。
後から見る人が分かりやすいように記載しないといけません。

6 プログラミング

内部設計書をもとに実際にコードを書いていきます。

7 テスト

コードにバグがないかをチェックします。テスト指示書というテスト項目を列挙した書類を作り、エビデンスというテストした証拠を画像で残しながら進めていくことになります。
テスト指示書とエビデンスは内部で大事に保管します。

8 ユーザーテスト

最後のお客様に確認いただき、イメージ通りに動作するかを確認してもらいます。
ここで問題が起こると要件定義から作り直しになります。
いかに要件定義が大事かが分かりますよね・・・。

9 納品

ここまですべての工程が問題なければ納品(お客様に商品を提供すること)という運びになりシステム開発は終了です。

要件定義や外部設計といった作業を「工程」というのですが、
SEは、企画から納品までの工程をすべて行います。

コードを書く部分だけを担当するプログラマー

一方のプログラマーですが、
上の作業工程でいうと、6番のプログラミングの部分だけを担当することになります。

プログラマーはコードを書くプロです。
仕事の流れとしては、SEが作成した4の外部設計書や5の内部設計書をもとにお金を貰ってプログラミング工程を受託するイメージですね。

冒頭で言った、
「SEの業務の中の一部にプログラマーの業務があるイメージです。」
もなんとなく理解できたのではないでしょうか。

SEとプログラマーでは必要なスキルが全然違う

SEでコードが書けないって人は基本的にはいないですが、万が一コードが書けなくてもSEは務まります。
なぜなら、プログラミングはどこかの会社に委託することができるから。

それよりも大切なのは、どんな方法でもいいからシステムを納期までに作り上げるスキルです。
お客様の要望を聞き出し、要望通りのシステムを作りあげるのがSEです。

一方で要望通りのコードを書くのがプログラマーです。
その要望はどこから来るのか?なんとなく想像できますよね。
そう、SEが外部設計や内部設計の工程で設計したシステムの要望です。

基本的には成果物も違います。(SEがプログラミングまでする場合は別ですが。)
SEは設計書の作成がメインですで、プログラマーはもちろんコード作成。

ここまで説明すると、冒頭の定義がしっくりと理解できるのはないでしょうか。

  • SEは、システムを作る人
  • プログラマーは、コードを書く人
関連ページ