ITコンサル、SE、プログラマーの違いは?

私は新卒で、某ITコンサルティングファームに入社し、2019年時点で4年目になります。

職業を聞かれた場合、私はITコンサルタントということになります。

しかし、多くの場合、「何それ?」「SEと同じ?」「何やってるか想像つかない」といった反応をされます。

また、「悪いことをしてそう」「何となく格好いい」といった反応をされることもあります。

ここでは、そうした疑問に答えるべく、似た職業として挙げられる「プログラマー」「SE(システムエンジニア)」と比較しながらどんな仕事をしているか紹介したいと思います。

そもそもITプロジェクトとは?

IT業界では、定常的な業務をこなすその他の業界と異なり、基本的に期間で区切られたプロジェクトの単位で仕事をすることになります。

例えば、食品メーカーでは、年ごとに目標があり、毎年同じようにその会社の食品をより多く売り上げるために活動します。

一方で、ITプロジェクトは毎年同じ業務を繰り替えすようなことはあり得ず、一定期間内に、システムの構築などを通して、業務の効率化や複数システムの統合といった目標を達成するために働きます。

そのため、凄く簡単に言うと、IT業界の人々の仕事は、一定期間の中でシステムを構築することであると言えます。

そのため、プロジェクトが終わるとメンバーは解散し、それぞれ別のプロジェクトに移動することになります。

システム構築とは?

システムを構築するには、単純にプログラミングをして終わり、という訳にはいきません。

システムが完成し、稼働するまでには多くのプロセスが存在します。

具体的には、どんなシステムを作るかを考える要件定義フェーズ、システムの全体像やコーディングの方法を考える設計フェーズ、実際にプログラミングをする開発フェーズ、そしてシステムが正しく動くか検証する開発フェーズがあります。

聞きなじみのない方も多いかもしれませんが、要件定義とはどんな機能を持ったシステムを作るかを構想するフェーズです。

要件定義フェーズが無いと、そもそも何を目的にどんなシステムを作れば良いのかが決まりませんし、設計フェーズが無いとコーディングはできません。

開発フェーズが無いと当然システムはできませんし、テストフェーズが無いと不具合だらけのシステムとなってしまいます。

そのため、多くのシステム開発プロジェクトでは、要件定義~テストまで、フェーズを区切り、前から順番に進めていきます。

これは、ウォーターフォールモデルと呼ばれるシステム開発手法で、滝が流れ落ちるように、上から下に順番通り真っすぐに進めていく方法です。


そして、ITコンサル、SE、プログラマーの定義は明確に定まっている訳ではありませんが、このフェーズの役割分担と同義だと考えるのがわかりやすいです。

ITコンサル・・・要件定義
SE・・・設計、テスト
プログラマー・・・開発、テスト


役割は明確に分かれている訳ではなく、ITコンサルやプログラマーが設計を行うことなどもありますが、大きく分けると上記のような役割分担となります。

それでは、それぞれの役割を見ていきたいと思います。

ITコンサルの役割

ITコンサルのシステム構築における主な役割は、システム化の要件定義を行うことです。

顧客にヒアリングをして要求を聞き、予算や期日を考慮しつつ、システム化する範囲を決定します。

ここで失敗をすると、後続の作業がそのまま誤った方向に進んでいってしまうため、非常に重要な工程となります。

システムにどんな機能を持たせるかを合意し、「要件定義書」と呼ばれる成果物を作成することがゴールとなります。

ウォーターフォール(滝)の開始位置であり、上の方に位置しているフェーズであるため、後述の設計フェーズと合わせて上流工程と呼ばれます。

SEの役割

SE(システムエンジニア)の主な役割は、システムの設計をすることと、システムの作成後に設計通りのシステムとなっているかテストすることです。

要件定義フェーズが終わると、要件定義書に記載された機能をどのようにシステム化するかの設計を行う必要があります。

設計書が無いままいきなりソースコードを書いていくことは不可能であるため、まずは日本語でわかりやすく書かれた設計書を作ります。

設計フェーズの時点で誤りがあると開発作業が遅れる原因となり、後戻りして設計書を再修正する必要があるため、ここで整合性のとれた設計が作られていることは、プロジェクトの成功において非常に重要です。

設計フェーズではシステムの「設計書」を作成することがゴールとなります。

また、システム作成後のテストは、実際にコーディングをしたプログラマーも行いますが、SEもシステムの設計者の視点からテストを行います。

プログラマーの役割

プログラマーの役割は、開発作業を行うことと、作り終わったシステムを開発者の視点からテストをすることです。

設計書が完成すると、いよいよ実際にプログラミングコードを書いて、開発作業を行う段階に入ります。

同じ設計でも、ソースコードの読みやすさや処理速度は書き手によって変わってくるので、そこはプログラマーの腕の見せ所です。

そして、実際に書いたソースコードにバグが潜んでいないかを確認し、プログラマーの仕事は終了となります。

ウォーターフォール(滝)の後半部分であり、下の方に位置しているフェーズであるため、下流工程と呼ばれます。


このように、ITコンサル、SE、プログラマーの仕事は、概ねシステム開発のフェーズごとに区切ることができます。

いきなり要件定義を始めるのは難しいので、ITコンサルタントとして入社しても、まずはプログラマーのような仕事をすることもありますし、ある程度年次を重ねても、人員不足などの都合で設計作業をすることもあります。

このように、それぞれの仕事が明確に区分されている訳ではありませんが、ITコンサル、SE、プログラマーのそれぞれの業務内容について、何となくのイメージは付いたのではないでしょうか。

IT業界の仕事内容について理解の助けになれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です