でもでも、紆余曲折の上にかくかくしかじかってなわけで、どうやら今世では実現できなそうなの(涙)。
一流企業や銀行まで潰れちゃう様な世の中だし、こうなりゃやっぱり手に職をつけなきゃね!
そんなわけで、今後も需要がありそうなIT業界を狙ってるんだけど、よく聞く
「プログラマー」と「システムエンジニア」って何が違うわけ?
それとも同じなのかしら?
あーもー、よくわかんない!
やっぱりお姫様になろうかしらっっ!!
こんな疑問にお答えします。
本記事の内容
本記事の信頼性
記事を書いている現在の年齢が
40歳でIT業界歴 20年。
現役のプログラマーであり会社の経営もしております。
僕はプログラミングが好きで自分の事をプログラマーだと考えていますがシステムエンジニアとして業務を行うことも多いです。
「プログラマー(PG)」と「システムエンジニア(SE)」は異なる職種です。
「プログラマー(PG)」と「システムエンジニア(SE)」。
IT業界は未経験という方や全く知識の無い方でも何となく名前くらいは聞いた事があるんじゃないでしょうか。
しかし、名前に聞き覚えがあったとしても、この二つにどんな違いがあるのかを知っている方は少なく、「呼び方が色々あるだけで、やってることは一緒」と思っている方も中にはいるようです。
現在の求人はもちろんのこと、これからも引く手数多だと言われておりますが、
似て非なるもの。
国で言えば「オーストラリア」と「オーストリア」(南半球と中央欧州)、
人で言えば「アントニオ猪木」と「トリンドル玲奈」(燃える闘魂とハーフ美女タレント)くらい違います。
実際にやっている作業内容はもちろん、求められる能力や適性にも違いがありますし、もっと言えば給料の額や将来的な身の振り方まで変わってきます。
これからIT業界を目指す方、興味がある方、
ってな事にならないように、どういった違いがあるのか、簡単に説明させて頂きましょうね。
作業内容の違い
さて、今回の主題は「プログラマー(以下:PG)」と「システムエンジニア(以下:SE)」です。
なんだかYBKですね!
(注・YBK=横文字・ばっかりで・かっこいい)
結論からざっくり申し上げますと、
- SEは設計書を書く人
- PGはその設計書に従って製造をする人
という違いがあります。
お互いの目指すゴールは同じなんですが、そのゴールに辿り着くまでの役割分担が異なるわけなんですね。
まあ、当然会社は「お客さんに商品(システム)を売って利益を得る」事をゴールにしているわけですが、PGとSEは、「そのためのシステム開発」を担っているわけです。
で、この「システム開発」がどんな流れで進められるのかと言いますと、
- 要件分析&定義
- 設計
- 製造
- 試験
- 納品
とまあ、もっと細かく分けることもできますが、大体こんな形になります。
この流れの中でSEは
- 要件分析&定義
- 設計
- 試験の一部(総合試験)
- そして最後の「納品」
を担当しており、PGは
- 製造
- 試験の一部(単体試験)
を担っています。
見ての通り、SEが担当するのは主に全体の流れの前半部分なので「上流工程」
PGの担当は「下流工程」なんて呼ばれ方もします。
文字面からだと・SEの方が立場が上!なんて印象を受けるかも知れません。
しかし あくまで担当する役割の違いです。
(まあ、実際の現場では、「若手がPG、年配はSE」という構図で完全に上下関係が成立している現場が多いのも事実ですが。)
それでは次に、上記の流れに沿って順番に、この二つの職種が具体的にどんな役割を担当しているのかを簡単に説明させて頂きましょう。
SEの担当するお仕事
①要件分析&定義
さて、先程も申し上げた通り、システム開発の最終的なゴールは「お客さんに商品(=システム)を買ってもらう」事です。
というわけで、どんなに技術的に難易度が高く他社が真似出来ないようなシステムを作ったとしても、お客さんが欲しくない商品だったら全く意味がないわけです。
というわけで、まずはSEがお客さんと直接やりとりをして、要望を聞きとり、「お客さんの欲しいシステムの輪郭」をはっきりと浮かび上がらせます。
たとえば、
という、お客さんだとしたら
写真や動画も送りたい
相手が文章を読んだか確認できるようにしたい
複数の相手ともやりとりがしたい
というような希望を聞いて、どんな形で実現できるのか、難しいのであればどんな代案があるのか、などを話し合います。
もちろん、お客さんとの話し合いは一度ではなく、複数回になる事がほとんどです。
車や家といった類のものとは違い、「目に見えない商品」を売りにしているため、ここでの作業が不十分でお粗末なものですと、その後システム開発に関わる人間がどれだけ死力を尽くそうとも、結果として「お客さんの望まない商品」が出来上がってしまいます。
最も大切な役割の一つであることは言うまでもありません。
「PGやSEは四六時中パソコンに向かってカタカタやっている」なんてイメージをお持ちの方には、ちょっと意外な仕事内容かも知れませんね。
②設計
お客さんの欲しいもののイメージが明確になったら、今度はそれに「目に見えるカタチ」を与えていきます。
上記のLINEの例をイメージするとわかりやすいでしょう。
・実際に文章や画像をやり取りする画面はどんな風になるのか・相手が文章を読んだかどうかの確認はどうするのか・スタンプなるものはどうやって手に入れるのかなど、実際に使う人がどう使うのか、というところまで決定していきます。
この作業を「基本設計」、そして、この基本設計で描いた商品の形を具体的にどうやって作り上げるのかを決める作業を「詳細設計」と言います。
この詳細設計の終了後、SEからPGへとバトンが渡され、PGが実際にプログラミングを始めます。
というわけで、これ以降SEはなーんにもしませんよ、
というわけではないんですが、基本的なSEの仕事は一旦ここまでとなり、いよいよPGの出番がやってきます。
④総合試験
さて、設計が終わるとPGの「製造」が始まりますが、PGの作業内容は一旦置いておいて、「製造」の後にSEが担当する「総合試験」について先にお話ししましょう。
PGは「製造」の作業を終えた後、自らが作ったシステムが設計した通りに動くのかどうか、「一つ一つの機能ごとに」チェックします(単体試験と言います)。
そして、PGによる単体試験が終わった後、最終的なテストとして、元々の設計書の作者であるSEがシステム全体の確認を行います。
様々な方向から徹底的にテストを行い、バグやエラーなどの不具合を解決し、問題がない状態まで仕上げて、最終的にお客さんにお渡しということになります。
⑤納品
最終的に商品を届けるのも、最初にお客さんとやりとりをしたSEの仕事です。
ただ届けるのではなく、実際にシステムを使用する方法などをレクチャーすることもありますし、その後のアフターケアなどもSEが担当します。
PGの担当するお仕事
「システムエンジニア」という名称からは想像が出来ないほど、SEの仕事が多岐に渡るのはお分かりいただけたでしょうか。
それと比べると、PGのお仕事は「単純明快」と言っもいいかもしれません。
というイメージです。
③製造
SEによる「詳細設計」が終了、つまりは「商品の具体的な設計図」が出来上がったら、いよいよPGの本領発揮です。
プログラミングのスペシャリストである彼等(そもそも名前がプログラマーですし)が、設計書に沿って実際の商品を製造していきます。
ITについて全く知らない方が持っている「パソコンに向かってカタカタやっている」というステレオタイプを具現化したのがこの仕事です(笑)
さて、ここまで聞くと、もしかすると貴方は
なんだかんだ言ってるけど、
つまるところSEの方が大事で偉くて重宝されてて
イケメンでモテるんじゃないの?
と思うかもしれませんが、何度も言う通り、「役割の違い」があるだけです。
と言うのも、詳細設計の後にPGに渡される設計書には必要最低限の説明しか書かれていないのです。
プラモデルの説明書なんかとは違って、その内容に沿って一から十までその通りに作れば完璧な物が出来上がる、という類のものではありません。
お客さんが求める機能や動作を、どういった手法で、どんな技術を使って形にするのか。
その力量によって商品の出来は良くも悪くもなります。
これはまさに「プログラマーの腕の見せ所!」なのです。
④単体試験
上記の通り、プログラムが終わったらPGによるテストがあります。
実際に使われるであろう環境に合わせて、「一つ一つの機能を司るプログラム」の問題が解決するまで何度もチェックを重ね、その後SEに引き渡します。
各々に求められる能力と、向き不向き
さて、実に簡単にではありますが、PGとSEの仕事内容について比較させて頂きました。
まあ、ケースバイケースで仕事内容の境目が曖昧な事もありますが、大まかには上記の通りです。
混同されやすい職種ですが、かなり違いがある事は分かって頂けたのではないでしょうか。
仕事内容がこれだけ異なるのだから、当然、それぞれの職種に必要なスキルや、性格や趣向の向き不向きも明らかです。
どっちを目指そうかなーと悩んでる方への参考に、これについてもざっくりお話ししましょう。
SE向き
上記の通り、SEの最大の仕事は「お客さんの欲しい商品を正確に知ること」です。
これが実現しない限りは、顧客を満足させることが出来ません。
もっと言えば、それ以降の仕事が全部台無しになる可能性すらあります。
相手の希望を出来るだけ多く聞きだし、かつ希望を叶えるための提案もする。
そのための「コミュケーション能力の高さ」が必要になるでしょう。
「IT業界」とはかけ離れたスキルに感じられるかもしれませんが、SEにとっては最も重要な能力と言っても過言ではありません。
よって、人付き合いが苦手な方には少々難しい職種かもしれません。
もちろん、人付き合いだけではなく、設計書を作るための書類作成能力やプログラミングの知識なども必要になります。
PG向き
これはもう言わずもがな、「プログラミングが好きな人」に尽きます。
IT業界はものすごい速度で進歩や進化を繰り返している業界です。
そんな中で、第一線で戦っていくためには「常に新しい技術や情報を手に入れる」ことが必要です。
「机に向かって作戦を練るよりも、最前線でガツガツ戦って、自分自身を磨き続けたい!」そんなイメージでしょうか。
「事件は会議室ではなく現場で起きている」と宣った青嶋巡査部長タイプともいえるでしょう。
(※踊る大捜査線を知らない人には こちらのDVDボックス)
一つの能力に特化した、職人的な職種と言えます。
もちろん、製造を行うだけではなく、SEに渡す前に「単体試験」を行い、自らの仕事に穴がないか確認し、出来る限り完璧な形にしなければなりませんので、「自分の仕事を最後まで責任持ってやり切る」姿勢も求められます。
給与の違い
さて、向き不向きも気になるところですが、やはりどちらかを自分の仕事にするのであれば、「どっちが儲かるのか」も気になるところでしょう。
もちろん、会社の規模によって、もしくは住んでいる都道府県によっても変わってくるかと思いますが、ざっくり年収平均をお伝えしますと
・SE=550万円前後
・PG=430万円前後
だと言われています。
やっぱりSEの方が上じゃない!
あたし、PGなんて嫌っ!
旦那さんになる人もSEじゃなきゃ嫌っ!
なんて言わないで下さいね(涙)
まあ、PGは「プログラミングのプロフェッショナル」でありますが、対するSEも当然「ある程度のプログラミングスキル」は必須なわけです。
ズブの素人では、お客さんの要望を理解して形にする事も設計書を作る事もできませんから。
「SEの仕事内容の方が、より多岐に渡る」という観点から、「基本的には」SEの方が稼ぎはいいと言うのは事実ですが・・・。
しかしながら、「より高い収入を見込める可能性があるのはPGである」というのもまた事実です。
上記の通り「日々進化するIT業界の中で、PGは常に技術を向上させる必要」があります。
今現在優秀だとされるPGでも、現在の立場にあぐらをかいていれば、いずれ使い物にならなくなることでしょう。
同じPGでも能力にはかなりの優劣が存在し、それに従って収入にもかなり差が出ます。
優秀なPGであれば、上記の平均収入の2〜3倍以上稼ぐ事も珍しくありません。
平均はあくまで平均であり、SEが必ずPGより稼げる、ということではないのです。
もう一つ加えますと、会社に所属しないフリーを目指すのであれば、PGの方が有利です。
(SEとしての募集よりPGの募集の方が多いからです。)
将来性
結論から言いますと 現在もこれからも、どちらの職種も需要が高いと言っていいでしょう。
世の中どこを見渡しても、ネットやAIがどんどん生活に身近になっていますから、そりゃそうですよね。
マサイ族ですらスマホ持ってる時代です(驚)。
一昔前は、「プログラマー35歳定年説」なんてものもありましたが、正直、過去の話です。
(※35年定年説についてはこちら)
ズブの素人からSE、という人はまずいませんので、PGでキャリアを積んでからSEに移る人もいますし、ひたすらPGとしての純度を高め続け、メチャクチャ技術の高いスーパーPGになる人もいます。
SEではシステム運用について総体的に学べるので、その後ITコンサルタントになんかになる人も存在するようですね。
さらに、日本国内のみならず、世界中で引く手数多の仕事です。
それほど高い技術を持っているわけではないのに、海外に移って仕事を始めたら、スーパーエースとして迎え入れられ、その後も現地で崇められている知人もいます。
(日本と比べてプログラマーのレベルが高くない国はたくさんあるので)
国が変わっても基本的な仕事内容は「プログラミング」なので、「他のビジネスのように高い語学力を必要としない」という事実も、海外で仕事を得る際の強みですよね。
まとめ
以上、今回はSEとPGについてお話しさせて頂きました。
とはよく聞く言葉ですが、実際にはどんな選択をしても大なり小なり後悔は生まれるものであり、それこそが人生の本質だと思っています。
僕自身、仕事を遂行して行く上で いいことばかりではなく、辛い事も悩む事も数え切れないほどありましたがこの仕事を選んだ事を後悔した事は一度もありません。
もちろん、仕事においての向き不向きは人それぞれありますが、生涯の仕事とする選択肢の一つとして十分な魅力を持った仕事だと思っています。
そして、いつか一緒にお仕事出来る機会に恵まれましたら、どうぞその際は宜しくお願い致します^_^