SIerに勤めていた時の経験と私の視点でプログラマーとシステムエンジニアとITコンサルタントの違いを書き記していきます。もしかしたらITの中でも分野が違えばこれらの違いではないかもしれないのでご了承ください。
プログラマー
詳細設計書に基づいてコーディングをして実際にアプリを製作する人です。自分が製作した成果物がちゃんと動くか単体テストの実施もします。主にプロジェクト内の開発チーム内の人間とかかわりあいます。
経験が浅いときにこの部分にアサインされます。
システムエンジニア
要件定義書に基づいて基本設計書・詳細設計書を作成します。単体テストが済んだ成果物を用いて結合テストを実施します。主にプロジェクト内のITコンサルタントとプログラマーとかかわりあいます。
プログラマーをまず経験してコーディングの経験値を上げてからシステムエンジニアとしてステップアップするというキャリアプランになります。上位の設計も経験しながらプログラマーの指導もする仕事内容です。
ITコンサルタント
直接客先とやり取りして要件定義書を作成します。顧客が求めている機能をITの視点からどのように実現するかを思案して要件定義書に落とし込む仕事です。主に顧客とかかわりあいます。
顧客の事、顧客の業界の事、そしてもちろん技術的なことを知っておかないと務まりません。技術的なことも単なる開発手法だけでなくDB周りの事やハードウェアへの負荷といった事も考慮する必要があります。
違いは技術と人
出来ることや、やる仕事に対する知識量と経験量の違いです。
プログラマーはコーディングとテスト、システムエンジニアはそれに加えて設計能力、ITコンサルタントはさらにそれに加えて客先とのコミュニケーション能力が求められます。
コーディング、設計、要件定義と、工程が上流になるにつれて求められる能力や知識はどんどん増えていきますし、やることも難しくなります。
それだけではありません。
関わる人が変わってきます。下流工程ですとチーム内の人間とだけやり取りしていればいいだけですが、設計・要件定義をする際は顧客への確認やほかのチームとの調整が必要です。齟齬や誤解を生まないためにもしっかりとしたのコミュニケーションが求められます。
まとめ
下流工程は簡単というわけでは全然ありませんが、上流工程に向かうにつれてやること・知識・関わる人間がどんどん増えていきます。大変な仕事になりますがそれだけ仕事の規模が大きく、やりがいにつながります。
私は文系出身なので下流工程でとてつもなくつまづいております。でも、それを乗り越えれば他の記事でも書きましたが文系の強みを生かすこともできます。先輩はこれを「産みの苦しみ」と呼んでおりました。
IT業界人として上に向かっていきたいと思います。