システム開発を行うのがプログラマーでありSEですが、それぞれの仕事内容・必要とされるスキルは大きく異なります。
システム開発全体の流れを大きく分けると、要件定義→設計→製造→テストとなります。
SEが担当するのは要件定義・設計・テストの部分。要件定義とは、顧客からくみ取ったニーズとその解決策を指しています。
それらを元に設計書を作成してシステムとして実現するのです。
この時に作られる設計資料は概要設計・基本設計(機能設計)・詳細設計などで、最大で20種類必要だと言われています。
プログラマーは設計書をもとに、システムの部品であるプログラムを製造し、正常に動くのかをテストします。
その後SEによって、プログラムを結合した状態でも正常に動くのか(結合テスト)、システム全体に組み立てた場合でも正常に動くのか(総合テスト)などが行われます。
つまり、プログラマーの仕事に必要とされる能力は、SEからの設計書を読み解き、その通りにプログラムを製造すること。
そのために求められるのは、開発言語への理解と、その言語を効率よく動かすためのプログラムコードは何なのかといった、専門的な技術の高さということになります。
対してSEは、顧客のニーズの把握・改善策の策定・それらをシステム化するための設計など、基本的なITスキルに加え「想像力」を求められます。
それ以外にも、業務知識・設計資料作成能力・プロジェクトマネージメント力・コミュニケーション能力など、あらゆる能力を必要とされるのです。
これがプログラマーとSEの仕事、求められる能力の違いです。
これらのことを踏まえた上でどちらが自分に合っているのか冷静に考察してみましょう。