システムエンジニアとプログラマの職種について

システムエンジニアとプログラマの職種についてです。
日本ではシステムエンジニア(以下SEとします)とプラグラマ(以下PGとします)とを職種として区別することがよくあります。実際にはどのように違うのでしょうか。一般的にはどのように定義されているのか、実際にはどうなのか書いてみたいと思います。

SEとPGの明確な区分
単純に区別すると、SEは設計を担当する職種でPGはプログラミングを行う職種です。前回の記事で企業単位の階層構造で開発を分担するといった内容を書きました。職種単位でも作業を分担して必ず組織単位で開発実務が行われるということです。

私が新卒として働き始めたころは順番にPGの仕事から始めて、SEに上がっていくという流れがまだありました。それで給料も上がっていくということです。しかし、現在ではあまりそういうことはなくSEは始めからSEでPGはいつまでもPGということが多いと思われます。何といいますかゆっくりと人材を育成するという余裕がないということでしょうか。

それで問題があるのか
始めからSEとPGを明確に区別して何か問題あるのかということですが、あります。SEは設計を担当するということですが、実際にプログラム開発が出来ないのに設計が出来るのかということです。ここでSEとPGが密にやり取りが出来ていればPGが設計に参加することもあり、設計から製造まで問題なく進行することもあるでしょう。でも実際にはそんなにうまく進むこともなく、責任の押し付け合いばかりというのが日常でしょうか。

またPGがいつまでもPGということであれば、収入(給料)が頭打ちになるという問題があります。またいつまでもプログラミングが出来るかという問題もあります。

こういった意味でもPGは海外に発注すればいいという考えもあり、実際に海外で開発(オフショア開発)している企業もあるでしょう。そうすると、実際にプログラミングが出来ないSEが設計して海外でプログラミングを行うといった場合、それでいいシステムが出来るのでしょうかという疑問もあります。

じゃあどうすればいいのか
SE、PGという枠にとらわれないようにして自分自身でキャリアプランをしっかりと考える必要があると思います。私の場合は独立して今もSE、PGという枠でなく自分自身で開発を行っています。だから独立しろということではなく、今の会社で続けるプランを考えておく、もっといい条件の企業に転職する、全く別の仕事に進む等の方向はいろいろです。それを考えておく必要はあるのではということです。