目指せ年収1000万PGタイトルロゴ
IT業界の底辺職であるプログラマーが年収1000万円を目指す生き様を各年収事に綴った自分史型ブログ



プログラマとシステムエンジニアの違い

投稿日:

プログラマーとシステムエンジニアの違い

IT関連の職種でよく「プログラマー」や「システムエンジニア」という職種を聞くと思いますが、いったいどう違うのかを現役プログラマー&システムエンジニア経験者 の筆者の目線からみた違いについて説明していこうかと思います。


プログラマーとシステムエンジニアの違いについての話はよくある話題なのですが、ナゼこの記事を書いたかというと、違いについて説明している記事のほとんどが 現場の人間からしたら間違った説明となっている場合が多いからです。

※現場では実際どうなのかは5.なぜプログラマーの方が下か?部分で詳しく説明します。



1.プログラマー/システムエンジニアの違いについて、よくある説明

プロジェクトの流れと上下見解

よくある説明
上流職のマネージャー/リーダーから指示があり、その指示で設計するのがシステムエンジニア設計からプログラムをするのがにプログラマー


マネージャ/リーダ、システムエンジニア、プログラマのそれぞれの立場の役割は



・マネージャー/リーダー:
プロジェクトマネージャ/リーダ   客先と調整してどんなシステムにするかを検討する


・システムエンジニア:
システムエンジニア   マネージャから聞いた機能をどう実装するかを設計


・プログラマー:
システムエンジニア   設計書を見てプログラミングを実装


だいたいこんな感じの役割分担で説明されており、客先に近い場所で仕事をしている立場は上流と表現され、プログラマー側は 下流と表現されています。


(下流の仕事ほど年収も安く新人等が担当するという認識となっている事が多いです。)



2.プログラマー/システムエンジニアについて

プログラマー・エンジニア何してるの?

プログラマー・システムエンジニアそれぞれの仕事内容について説明していきます。例えば、このブログ(目指せ年収1000万プログラマー)を作る場合、それぞれどのような仕事分担になるのかを説明します。


それぞれの主な担当は
・システムエンジニア=設計
・プログラマー=プログラミング

となります。


システムエンジニアの仕事

主に設計と呼ばれる作業をします。(客先調整等をする事もある)


設計というのはどんなシステムをプログラマに作ってもらうか決める作業がメインで、画面構成や動き等を定義します。


このブログのトップページを作る場合は

トップページ設計
・画面上部にタイトルロゴ
・ロゴの下にはブログ内容の簡単な説明
・ロゴの下には各ページへのリンク
・リンクの下には投稿記事一覧
・記事の一覧は最新のものが一番上

↑こういった感じでどんな機能を作るのかを考えていきます。


考えをまとめたものを設計書として、ワードやエクセルに書き出します。



プログラマーの仕事

システムエンジニアの設計した通りにシステムが動くように環境を作ったりプログラミングをしていきます。


このブログのトップページを作る場合は

システム構築
・ブログが動く環境の準備
・各種プログラミング作業
・動作確認等のテスト


↑技術的な部分を中心にブログを構築していきます。


構築したブログがきちんと動くかの動作確認も実施し、最終的に問題ないのであればシステムエンジニアにできたシステムを確認してもらいます。



3.それぞれが作るモノって何?


プログラマー・エンジニア何作ってるの?

筆者はプログラマーもシステムエンジニアも複数年経験しています。その経験をもとに実際にプログラマとシステムエンジニアがどんなものを作っているかのサンプルと必要なスキルを簡単にご紹介します。

IT業界を目指している人はどちらなら自分にも作れるかを判断してみて下さい。



システムエンジニアが作るもの


システムエンジニアが作るもの(設計書)

このような設計書を作ります。「ブログサイト作りたいんですよ」という要望から「んーーー、こんな感じのシステムになるのかなぁ」と考えて設計書を作ります。


・必須スキル
設計書の多くは「ワード」や「エクセル」といったオフィスソフトで作成します。少なくともこれらのソフトが扱えなくてはいけません。



プログラマーが作るもの


プログラマーが作るもの(プログラム)

このようなプログラムソースを書き、実際に動くシステムを作ります。(ただのパソコン上では動かないのでプログラムが動くパソコン(環境)も用意します)


・必須スキル
ブログを作るにはRuby、PHPのようなバックエンドのプログラムスキルとJavaScriptのようなフロントエンドプログラムスキルとページのレイアウトを構成するHTMLやCSSのスキルが必要ですが
それに加えて「ブログが閲覧できる環境」を構築するスキルが必要です。(書き出すときりがないので詳細については割愛します)



4.どちらの職種が簡単?

プログラマ、システムエンジニアがそれぞれ何を作っているかを見てきましたが両者が作るものの難易度の差はかなり大きいです。


プログラマ(難易度:高)

サーバの準備、開発する環境の準備、開発作業等々することは沢山あります。ブログを作ると一言で言ってしまえば簡単ですが必要なスキルは幅広いです。


システムエンジニア(難易度:低)

パソコンを触った事が無いレベルではムリですが、文章を作成するスキルと人と話すスキルがあればオッケーです。


昔はプログラミング=単純作業という考えが多かったのですが多種多様な技術がある今ではプログラマーに求められるスキル難易度は高くなっています。



5.なぜプログラマーの方が下か?

なぜプログラマーの方が下か

何故、難易度の高いプログラムを作っているプログラマーの方が下の立場なのでしょうか??
この件について色々と調べた結果、その理由が見えてきました。


理由その1:『会社の上下関係』 会社の上下関係

IT業界では大手SIerと呼ばれる会社(大手企業)が大規模なシステム開発案件をあつかっている事が多く、大規模案件は下請け会社が中心に開発を実施します。
「システムエンジニア=自社社員」
「プログラマー=下請け会社社員」
といった体制で仕事を進めていくことが多いです。


元受⇒下請けの関係が
システムエンジニア⇒プログラマ
といったポジションを成り立たせています。



理由その2:『昔からの文化』

・昔のIT環境は?
昔の環境

昔(2000年よりも前)はコンピュータはとても高価なもので、一台の大きなコンピュータを複数人で使う事が多々ありました。


なので、技術者の主な仕事内容はコンピュータを使って何かをするではなく、コンピュータに何をさせるか計画するといったものが主流となります。


そこで、プログラミングといったコンピュータに打ち込む作業が必要なプログラミングではなく、設計といった書類作成がメインとなってしまいます。(設計は机と紙があればできる)


・昔のプログラミングは?

設計が終わった後はプログラミング作業を実施します。ただ、この時代はプログラミング言語は今よりとても簡単で「中学生の英語ができればマスターできる」とよく言われているものばかりでした。


設計書をもとにして、処理の内容を順番に打ち込んでいく(プログラミングしていく)だけの作業となり、設計書をきちんと作っていればきちんとしたシステムができます。


なぜなら当時のプログラミングは技術的なものというよりは、作業的なものが多かったからです。
(当時のプログラムは単純作業という扱いが多く、例えばプログラム1行100円とかいう仕事が沢山ありました)


仕事の流れ

このような上下関係が多く存在したので今でもプログラマーは下位職種というポジションが多いのが現状です。


当時プログラマーとして作業していた技術者が、今は「部長」「課長」といった役職に出世している事が多いので当時の文化のままの評価をすることが多いです。




にほんブログ村 IT技術ブログへ
にほんブログ村

プログラマーランキング