プログラマとシステムエンジニアの仕事、職務の違い

システムエンジニアとプログラマの仕事は厳密は違います。仕様調整からアーキテクチャまでを担当するのか、プログラミングという技術力で仕事をしていくのか、キャリアもそれぞれ異なります。

プログラマ

プログラマはその名の通り、プログラムを実装する役割の人間です。設計書に基づいたコードを、正確に記述することが求められます。また、保守性を向上させるためのソフトウェアアーキテクチャを考慮する必要があります。

システムエンジニア

システムエンジニアは、広義ではシステム開発に携わる人間です。狭義では、システムを設計する人間です。広義であれば、プログラマもシステムエンジニアとして扱われます。このサイトでは、システムエンジニアを狭義の意味で扱い、プログラマとシステムエンジニアの役割を線引きしています。


業務内容の比較

責任がシステムエンジニア>プログラマという構造である以上、システムエンジニアのほうが収入は多い傾向にあります。一般的に、責任の大きい業務ほど価値があるものです。しかしながら、コアなテクニックを身に付けているプログラマは、システムエンジニアに対して助言や提案を行うことができ、その点で収入が上乗せされる場合もあります。


将来性の比較

プログラマは、ある程度のコア技術を見につけてしまうと、よほどの困難なビジネス要件でない限りは、持っている技術で問題を解決できてしまいます。一般的な水準の要件であれば、試行錯誤する機会は少なくなります。その点で、プログラムの実装とコンパイルの繰り返しのような、ルーチンワークに感じてしまうことが多いのです。

システムエンジニアは、顧客のビジネスを実現するための設計を行うため、ターゲットとする顧客や業界、サービスの種類に応じて、設計の手法もたくさん存在します。その点では、プログラマよりも多面的な能力が求められ、多様な業務を経験していくことになります。

将来的には、プログラマの給料がある程度でストップすることが多いものです。なぜなら、プログラム技術が多くの場所で教育され、低賃金で製造できる状況に変遷しているからです。例えばオフショア開発などでは、アジア諸国の労働者を利用して製造を進めます。オフショア開発にもデメリットはありますが、低賃金という価格競争では、日本が勝てる地域は存在しないでしょう。このように、プログラム技術の浸透と低賃金での製造が可能になったことから、プログラマの報酬は頭打ちになってきます。

一方、システムエンジニアは、サービスを展開したい企業が存在する限り、需要はあります。日本には企業が多く存在し、多様なサービスを展開している現状では、IT サービスを展開するために日本人のシステムエンジニアが必要です。ただし、こちらもアジア諸国のエンジニアによって、日本語や日本文化の壁が取り除かれたとき、日本人エンジニアの活躍の場は激減する可能性があります。

以上のことから、アジア諸国のエンジニアは日本人にとって脅威であり、価格競争には歯が立たない現状から、よりグローバルな能力が必要となっていきます。プログラマは特に価格競争にさらされており、かなりの技術知識を身に着けているプログラマ以外は、将来的に淘汰されていく可能性も否めない。

キャリア形成

一般的にはプログラマを経験したあとに、設計技術を身に付けてシステムエンジニアとして活躍するようなキャリアパスが描かれます。プログラムの実装経験がなくても設計は可能ですが、実装経験が設計技術に大きく貢献する場合が多い。何万行を記述すれば、ある程度の技術が身に付くなどの水準はあるにせよ、プログラマからシステムエンジニアへのキャリアアップを個人でコントロールできる環境も少ないはずです。しかしながら、プログラマの報酬が頭打ちになるであろう現状、できるだけ早めにキャリアアップできることが望ましいでしょう。