システムエンジニアとプログラマーの違いとは?仕事内容、それぞれのメリット、デメリットは?

システムエンジニアとプログラマーの違いとは?仕事内容、それぞれのメリット、デメリットは?

ITにあまり関わらない人からするとSE(システムエンジニア)PG(プログラマー)の違いがあまりわからない人が多いようで、何が違うのかよく質問されます。
私自身はSEとして働いていた時期もあるので、今回はSEとPGの違いや、仕事内容、それぞれのメリット、デメリットについて詳しく説明していきます。

また、よく混合されてしまうSEと社内SE(情報システム部のような部署)の違いについても説明していきます。
IT系の会社を目指す人や、ITにあまり詳しくない人でもわかるようにまとめてみました。

社内SE、SE、PGの違い

IT系エンジニアの中でもよく混合される、SEと社内SE、PGは一般的に下記のような役割分担があります。

それぞれの違いについて詳しく説明します。

社内SE


社内SEとは、情報システム部門として社内の内勤として勤務することになります。そのため、外出することも少なく、自社内の社員を相手にすることが中心です。社内SEの主な業務は主に3種類に分類されます。

主な業務内容

どのような業務かを一つ一つ簡単に説明していきます。

ヘルプデスク

社内SEの中心業務です。
社内からの問い合わせ対応や、社員用のPC設定など困りごとへの電話・メール対応です。

IT企業ではない場合や、企業内の年齢層が高い場合など社内のITリテラシー(IT操作能力)が低いと、面倒なヘルプデスクが多くなってしまいます。しかし、幅広い業務が経験できることと、様々な人と関われることが特徴です。

社内インフラ構築

社内のネットワーク・サーバー・外部サービスなどの社内インフラ環境の構築を担当します。
例えば、自社において新しい部署や建物が追加されるときに、インフラ(ネットワーク・サーバー・アプリケーション等)の構築を担当するのが社内SEです。

基本的には、新しいインフラ構築に必要な要件をまとめて外注します。外注先はシステムインテグレータ(以降SIer【エスアイヤーと読みます】)企業とやりとりをして、構築をお願いしていきます。

いろんなことをSIerからヒアリングされるため、基本的なIT技術について知っていないと会話になりません。ある程度の知識が必要になります。

社内インフラ運用・保守

既に社内に出来上がっているインフラの運用・保守業務を行います。場合によってはこの業務を外注していることもあります。

社内のイントラサイト(社内向けのインターネット、【ポータル】と呼ばれることもよくある)への機能追加や、トラブル時の対応、定期的な点検などを業務とします。
また、社員用のPCのセットアップ、トラブル対応も対応します。

メリット

◆幅広い業務に携われる
◆幅広い人と関われる
◆自社内で完結する仕事が多いので、客先などに外出することが少ない
◆構築は担当しないことが多いので、大きな責任を負うことは少ない
◆保守的な人が多いので、落ち着いている雰囲気(ITに比較的強いけど安定した仕事をしたい人が集まります)
◆残業は比較的少ない

デメリット

◆技術やIT機器の深いところまで関わることが少ないので、技術力の向上はあまりできない。
◆自分では簡単にわかるような問い合わせや、メーカーに問い合わせないと絶対にわからないような問い合わせが頻繁に起きるので精神的によくない。
◆場合によっては深夜対応、トラブル対応を担当する。
◆給料が比較的少ない。
◆転職先が少ない。(給料が低く、情報技術も低く、顧客とのやりとり経験の少ない人は結局似たような職種でしか採用されません。)

SE(システムエンジニア)


SEとは、システム開発を担当するエンジニアのことであり、ほとんどの場合は自社内ではなく顧客のシステムを開発するために提案から設計・構築、運用・保守などを担当するエンジニアの総称です。

実際のSEとは担当するフェーズ(提案、設計・構築、運用・保守の各工程)や、担当するIT分野(ネットワーク、セキュリティ、サーバー、クラウド、アプリケーション)などにより細分化されてそのどれかを担当するのが一般的です。

主な業務内容

一言で言ってしまえばシステム開発です。
普段会社やお店のPCからどこかのWebサイトにつながるのも、SEがシステムを作っているからです。

SEは担当するフェーズ、分野によって業務内容が異なってしまいますが、経験を重ねることによって担当するフェーズが増えていくことはよくあります。
(例えば、ネットワーク運用・保守エンジニアで採用されて社内ネットワーク監視を担当していた人が、設計・構築を担当する部署に異動して、次には提案から関わるプロジェクトマネージャーとして案件に関わることもよくあります。)

SE全体での業務内容を紹介していきます。

提案フェーズ

営業とともに新規案件を獲得するために提案を行います。
顧客との間の契約方法には2種類存在します。「競争入札」「随意契約」です。

「競争入札」の場合は顧客が、新しいシステム開発を行うための外注先を数多くの企業から競争させて、最も条件の良い企業を探す方法です。

主に国や公的機関、大企業などが数億円以上の規模のシステム開発案件が発生した場合に取る手法です。顧客の出す要件に最も合致した条件、費用、体制でシステム開発を行ってくれる企業を選定します。そのため新しい顧客であることも多く厳しい目で見てくるので難易度は高いです。

「随意契約」の場合は顧客と競争入札を行わずに、決めた相手に外注を行う契約方法です。

この契約方法の場合は、実際に付き合いのある企業に行う契約方法なのでシステム更改や、システムの一部追加を目的とした案件が多いのが特徴です。
規模も比較的小さめで数百万~1,2億円程度の規模が多いです。随意契約の場合は顧客からの信頼関係が結べている状態でプロジェクトがスタートするので比較的難易度は低めになります。

この「競争入札」の場合は案件を獲得するまでの間に、提案書を作成したり費用見積もりを作成したり、顧客の裏で様々なIT機器ベンダー(ベンダーとは製造元企業のこと)とやりとりして提案書のための技術を詰めたりするのが主な業務です。
「随意契約」の場合はこの提案フェーズの業務はありません。

要件定義フェーズ

無事に顧客から案件を獲得した場合(競争・随意関係なく)、次はシステムを開発するために顧客の要件を整理して、実際にどのような方式で要件を実現するかを定義してあげる必要があります。
このフェーズのことを「要件定義」といいます。

提案の段階で顧客から要求されている要件について、詳細を詰めていくイメージです。随意契約の場合は要件をヒアリングしないといけないので基本は同じです。

具体例を上げましょう。
提案時の顧客からの要件はフワフワとして技術や機器について確定できるような言い方はしていません。

提案時の顧客からの要求(無線LAN部分の一部)

・新しくできる部署に無線LANを導入する。
・無線LANは最新の暗号化技術を採用すること。
・最新の通信規格に対応していること。
・5Ghz帯と2.4Ghz帯の両方の同時使用ができること。
・無線アクセスポイント1台の障害時にもユーザーに通信断を起こさない機能を有していること。



この要件を顧客にヒアリングを実施して確定させていきます。

要件定義(確定させた要件を文書化する)

・新しくできる部署に無線LANを導入する。
▶マシン室にXX社の無線コントローラー【型番YYY】、新しい部署の天井にXX社のアクセスポイント【型番ZZZ】を設置する。

・無線LANは最新の暗号化技術を採用すること。
▶暗号化プロトコルCCMP、暗号アルゴリズムAESに対応したアクセスポイントを使用する。

・最新の通信規格に対応していること。
▶IEEE802.11acに対応したアクセスポイントを使用する。

・5Ghz帯と2.4Ghz帯の両方の同時使用ができること。
▶アクセスポイント【型番ZZZ】を使用することで対応可能。

・無線アクセスポイント1台の障害時にもユーザーに通信断を起こさない機能を有していること。
▶アクセスポイント【型番ZZZ】のAAA機能を利用することで、障害時には周囲のアクセスポイントに接続させるためユーザーの通信断は起きない。

このような作業を顧客と繰り返して、文書化して要件に合致した機器・技術を導入することを顧客に見せていきます。これが要件定義です。

基本設計フェーズ

要件定義にて確定させた要件を実機や技術ベースの内容まで落とし込み、数十~数百ページの「基本設計書」と呼ばれる設計資料を作り込むフェーズです。

基本設計書には、案件情報からシステム構築目的、対象システムの構築範囲、システムの構築内容の概要、方針について記載していきます。

基本設計書の完成までには顧客とこまめなやり取りが必要になってくるので、顧客と定例会等を設けることが一般的です。
ここでは、タスクを細分化して一覧表に起こすことや、詳細なスケジュール表の作成、システム構成図の作成などシステム開発に必要な大枠を作り上げていきます。

詳細設計フェーズ

基本設計が固まったら、詳細設計書の作成に入ります。それがこのフェーズです。詳細設計とは、基本設計の概要や方針を基に、どのようなパラメータ、コードによって動くかを具体的に確定させることであり、基本設計書と同様に詳細設計書と設計資料の作成を実施します。

詳細設計書は、各機器・各アプリケーションごとに、ExcelやWordで数ページ程度の資料を作成します。
SEが構築する機器のOSは様々であり、PGのようにプログラミングとは言わず、コマンドと呼ばれる1対1対応で動くような定義を組み合わせる言語が中心です。

SIerであってもこの詳細設計資料を作成するのは非常に手間がかかることと、とても技術に踏み込んだ内容を記載するため外注することが多いです。内容によっては外注先がPGであることもあります。

この詳細設計フェーズでは導入機器やアプリケーションの開発ベンダーとやりとりすることは多くなります。一方で、顧客とはやり取りが減ってくるのが特徴です。

極端な言い方ですが顧客は要件通りに動けばいいと考えている人も多く、パラメータやコードについて詳しくない人も多いので、このフェーズで細かいところまで突っ込まれることはあまりありません。
しかし、定期的な報告は他のフェーズと同様に必要です。

構築・テストフェーズ

詳細設計フェーズにて、各機器・アプリケーションの仕様が確定したら次は実際に機器・アプリケーションの構築を行います。それがこのフェーズです。
顧客内のマシン室やデータセンターと呼ばれる大型のシステム機器専用施設に導入しにいきます。

構築やテストもSIerは外注することが多く、外注先に構築・テストを実施してもらいます。外注する場合は、最初にテスト方針やテスト内容を決めることと、テスト内容の結果の確認を担当とします。

そして構築内容がテストで正しく動くことが確認できたらテスト内容をまとめて、顧客に報告する役目を担っています。もちろん外注せずすべて自社内で実施する場合も存在します。

運用・保守フェーズ

システムの開発が終わるとシステムの運用が始まります。SIerのほとんどは顧客に新システムを構築すると同時に運用・保守も受け持つことを提案します。
運用・保守は企業にとって儲けやすいからです。

ほとんどのシステムは、機器やユーザー端末の保守期限、Versionによるセキュリティが悪くなることなどを考慮して、5年くらいの間隔でシステムを更改していきます。

運用・保守は大きなトラブルが無い限り人件費もかかりませんし、今の時代はそもそもトラブルが起きないように設計するのが基本です。たとえトラブルが起きてもすぐに検知できる監視システムを導入しています。

そのため運用・保守は企業にとってとても儲かるフェーズです。実際には1年で構築して5年間の保守であっても、保守費用だけで構築期間中の人件費・機器費用の数倍程度を顧客からもらうことがあります。

しかし、夜間のシステム監視やトラブル対応が必須になってしまうので、提案や構築を担当した人とは別で、運用・保守専用のエンジニア部門が存在することがほとんどです。

メリット

◆IT業界自体が伸び続けており、人材が不足しがちな業界なので転職にはあまり困らない。
転職先としては、SIer、Web系、社内SE、コンサルティング、システム監査など幅広い。
◆マネージメント経験から、テクニカル経験、顧客に新製品・技術を売り込むセールス経験など幅広く経験できる。
◆技術の深いところまで関われることができるため、スキルアップがしやすい
◆数多くの人と関わり、交渉・かけひきの経験が詰める
◆仕事のIT知識がたまに実生活に役に立つ。

デメリット

◆上位企業に入れないと給料もスキルも上昇が見込めない。
◆大手企業の場合、仕事が細分化されすぎてしまっているので仕事の幅が広がらないうえに、同じような仕事が続いてしまう。
◆システム開発は、システムを停止して作業しなければいけないときがあるので深夜作業や休日作業がそこそこ発生する。(システムリリース前になると月に1,2度くらいだが、提案や基本設計段階ではほとんどない。)

PG(プログラマー)


PGとは、SEの基本設計を基に実際のWebサービスや、アプリケーションのプログラミング(コーディング)を行う人たちの総称です。
アプリケーションエンジニアと呼ばれることもあります。

エンジニアとは違い、目には見えないサービスの中身を作りこむことが業務です。サーバーと呼ばれるSEが構築する機器に導入するパッケージ製品の開発をプログラマーが担うことがよくあります。

イメージしやすいものでいうと、ウイルスバスターのようなセキュリティソフトをPCにインストールしますよね。

インストールするだけで機能が簡単に使えるようになるのはPGが中身を作り込んでくれているからです。PCに限らずサーバーなどのインフラ機器においてPGの開発した製品やコードは導入されているものです。
他にもわかりやすい例をあげると、ゲームやスマートフォンアプリの開発もPGが担当しています。あれらも一種のパッケージ製品です。

プログラマーは見えない部分の開発を中心に担当しているということですね。
SEのようにシステム自体の開発をするのではなく、システムで使う製品や、個人で使う製品の開発がメインです。

主な業務内容

PGの業務内容はプログラミング言語を用いた開発と、開発した製品のテストがほとんどです。
プログラミング言語は世界で200以上あると言われていますが、主流なのは20程度です。具体的によく使われている言語は下記のようになっています。

Web開発系
PHP、Ruby、Python、Java、C#、HTML、CSS3、JavaScript

ゲーム開発系
C++、C#、JavaScript、Swift、Ruby、Lua

アプリ、パッケージ開発系
Java、JavaScript、C#、Objective-C、Swift、Visual Basic

業務内容によって扱う言語が異なってくるのが特徴です。そんなにプログラミングなんて覚えられないと思うかもしれませんが、プログラミングにはどの言語でも似たようなルールがあったり、大元が同じ言語でそこからの派生言語だったりするので慣れてしまえば多くの言語が扱えるようになります。

メリット

◆開発の深いところまで関われるのでスキルアップがしやすい。
◆開発以外の工程にはあまり関わらないので、好きな作業に専念しやすい。
◆最新の言語・技術を使って製品開発ができる。
◆客先との接触も多くはないので、外出は少なく自社での開発も多い。
◆SEのような夜間作業や休日作業は比較的少ない。(システムリリース前の余裕がない時期は別)

デメリット

◆開発以外の工程にはあまり関わらないので、スキルの幅は広がりにくい。
◆プログラミング言語は数年で新しい言語が出てくるので、常に新しい言語への勉強と慣れが要求される。
◆日本では評価されにくい職種なので給料が上がりにくい。逆に海外では優秀なPGには数千万円単位でのオファーが多くPGが活躍しやすい環境。
◆チームプレイが多い職種ではないのでコミュニケーション能力が伸びづらい。苦手な人も比較的多い。

まとめ


社内SE、SE、PGの違いをまとめると、担当範囲の違いですね。

社内SEは自社内を相手に、応対業務、管理業務が中心。
SEは外部企業を相手に、提案から設計、構築、運用、保守を中心。管理業務多め。
PGは外部企業を相手に、設計、構築を中心。設計(開発)業務多め。
ということになります。

 

このようなシステム開発に関わるSEの入門書をKindleから出版しました。kindle unlimitedであれば無料で読むことができます。
ブログ内の内容と基本は同じですが、ちゃんとした流れで記載しているので理解しやすいかと思います。

Kindle Unlimitedとして出版しているので、加入している人は無料で読むことができます。「ちゃんとした順序で読みたい」「電子書籍でスキマ時間に読みたい」「無料だからとりあえず読んでみる」といった方はぜひ読んでみてください。

ITカテゴリの最新記事