SE(システムエンジニア)の仕事内容とやりがい、年収相場、必要スキル

SE(システムエンジニア)職の具体的な仕事内容や年収相場、必要スキル、向いている人・向いていない人などを解説していきます。

SE(システムエンジニア)の主な仕事内容

システムエンジニアの仕事には大きく分けて5つがあります。

  1. システム要件定義
  2. 外部設計
  3. 内部設計
  4. プログラミング
  5. テスト

それぞれ1つずつ解説していきましょう。

①システム要件定義

システムを作り上げる目的を明確にして、何をするかを決定する重要なプロセスです。

システム化する範囲や条件を決定するプロセスのため、プロジェクト全体の中では上流工程となります。

SEは要件定義の工程で顧客からシステム化する目的や実現したいことをヒアリングします。その上で何をシステム化する必要があるかを見定め、顧客と調整します。

楽しいところ、やりがい

顧客の業務をヒアリングするところから始まるため、顧客の事業の一端に触れることが出来て、幅広い業務知識を身に付けるチャンスがあります。

SEという職業の醍醐味は様々な業界の業務に深く入り込めることです。

他の職業ではなかなかこうした経験をする機会は無いと思います。

業務をシステムに結びつける入口のプロセスですので、顧客の課題を正しく捉え、最適な解決方法を提案が出来るようになると、社内からも顧客から一目置かれる可能性があります。

大変なところ、辛いところ

徹底的に利用者の立場で考えることが必要です。顧客は業務のプロであり、システム部門の責任者は実際に利用するエンドユーザの現場に精通しています。

SEは顧客の知識レベルに完全に肩を並べるのは難しくても、業務を正しく理解し、システム化することの意義を見出す力が必要になります。

またこの工程では顧客のニーズをシステム化しようとしたときに、最終的にコストをどれだけ要するのか、リリースまで間に合う納期なのか、品質は確保出来そうなのかを大まかに見極める必要があります。

顧客には予算や納期の事情があり、出来もしない条件で安請け合いをしてしまうと後で苦しい立場に追い込まれる可能性があります。

まだシステムの詳細の形に落とし込む前の工程ですが、原価、納期、品質の全てを守る形で最終的に完成させるための前提条件を顧客とはきちんと合意しておく努力が必要です。

必要なスキル、あると良いスキル

システム機器や構成に関する知識、構築面でのプログラミング知識などSEに関する業務全般への知識が求められます。

また、相手からニーズを引き出す高度なコミュニケーションスキル、ヒューマンスキルを有していると強みになります。

これらのスキルが高いと顧客と円滑な関係を保ちやすくなり、真のニーズを引き出しやすくなります。

この工程は何をシステム化するのかを決定するものですが、曖昧な合意形成のまま後続工程に進むと様々なリスクが生じるため、最終的なシステムのアウトプットを俯瞰できる技術力を身に付け、経験も含めての実現性を判断出来るようになることが望ましいです。

②外部設計

要件定義で決定したシステム化範囲を基に、とりわけ顧客の業務に直接関わる部分のシステム機能を設計して顧客と合意形成していく工程です。

具体的には画面機能、帳票機能といった入出力に関わるものが代表的な外部設計です。

また、各種マスタの構成、入出力項目の一覧を確定させることも当工程で実施すべきです。

楽しいところ、やりがい

外部設計はシステムを利用する利用者が直接必要とする機能の設計が中心となるため、システムの視覚的な動きを捉えやすいです。

どんな画面操作だと分かり易く使い易いのか、どんな帳票機能ならば見易いのか、といったユーザビリティを追求していくプロセスに絶対の正解は無く、顧客と協議して決めていくプロセスそのものにやりがいを見出すことが出来ます。

大変なところ、辛いところ

システムの利用者の実務に具体的に踏み込む工程であるため、浅薄な業務理解力では顧客が望む形での設計仕様を提示することは出来ません。

例えばある画面入力機能を設計するときに、その画面の利用者は現場でどのような責任を持ち、何を満たしてあげれば使い易いと思ってもらえるのかを理解する必要があります。

SEは直接の現場の担当者では無いため、現場の実情を理解するためのヒアリング力がこの工程でも求められます。

必要なスキル、あると良いスキル

業務理解力、顧客へのヒアリング能力、システムの専門家としての知識、技術力、提案力を幅広く有している必要があります。

当工程はユーザーインターフェースを具体化させる大切な工程のため、後に顧客から実用に耐えないと判断されないようにするために、設計理念も正しく顧客に理解させるべきです。

SEはどの工程でもコミュニケーション能力が大切ですが、要件定義と外部設計工程までは顧客を相手にしての調整力が求められます。

③内部設計

基本設計に対し、内部設計はシステムの内部の動きを設計する工程です。

この工程の設計は利用者には直接影響しづらいですが、最終的にシステムの品質を確保する上でも大切な工程です。

SEの技術者としてのスキルにより、設計の良し悪しに差が付きやすいのを実感する工程です。

楽しいところ、やりがい

この工程で良い設計が出来ると品質不良を起こしづらく、コストパフォーマンスの高い設計を実現することが出来ます。

利用者からは見えにくい部分の設計だけに、入力に対する正しい出力結果が得られればシステムとしては及第点と思いがちです。

しかし、望ましくない設計をすると後続工程の生産性が低下し、テストによる品質確保も困難となります。

さらにメンテナンス性の低いシステムを本番リリース後も運用し続けなくてはならない可能性が高まります。

大変なところ、辛いところ

良い設計をするには情報処理の幅広い知識と経験を有していなければなりません。

また既存システムに対する分析に苦労します。多くのプロジェクトは完全な新規システム開発でなく、既存システムの改修案件ですが、改修を加える元のシステムの内部部品の構成を理解する必要があります。

必ずしも元の設計が望ましい形となっていないこともある中で、既存の動きを劣後させず、秩序を保ちながらも最適な手の加え方を判断する必要があります。

新規の開発案件であるならば、システムの内部処理を実現する理想的なモジュール構成を考慮して設計する必要があります。

必要なスキル、あると良いスキル

情報処理技術者試験の基本情報技術者試験、応用情報技術者試験で出題されるシステム設計やアルゴリズムの知識は幅広く身に付けておく必要があります。

基本情報技術者試験の知識を正しく理解出来ているだけでも実務には役立てることが出来ます。

④プログラミング

外部設計、内部設計で確定した仕様に基づき、コンピュータが認識するためのプログラムを作成する工程です。

プログラミングは必ずしもSEの業務領域ではありません。

しかし、納品するシステムの品質を確保することがSEの使命ある以上、コーディングの内部レビュー、標準化を守れていることのチェックなど、当工程においてもSEが果たすべき役割があります。

楽しいところ、やりがい

プロジェクトの状況や要員の事情などにより、SEがプログラミングを実施することもありますので、プログラミングを得意とするSEにとってはやりがいがあります。

また、特に駆け出しのSEはプログラミング経験を必ず積むべきです。

プログラミング経験を積んでおけば、実装の姿や良し悪しを頭に描けるようになり、外部設計や内部設計の設計力向上を見込めます。

また生産性の判断が利くようになり、見積やプロジェクト管理にも役立てられるようになります。

実際にどう作るのかを知っておかないと、良いシステム設計することは難しいでしょう。

大変なところ、辛いところ

プログラミングした通りにシステムが動いてしまうことからも体力と集中力を要します。普段から経験して慣れていないと対応するのは難しいです。

また、プロジェクトによっては、設計段階での不備や仕様変更など様々な要因によってスケジュールがタイトになっていき、しわ寄せがプログラミング工程に押し寄せて、非常に忙しく残業しまくりといった状況になることもあります。(いわゆるデスマーチ)

必要なスキル、あると良いスキル

何か一つでも良いので得意なプログラミング言語の実装経験を有していることが望ましいです。

SEという職域においては必ずしもプログラミングを必要とするわけではありませんが、実装のイメージが理解できることは品質を守るために必要です。

⑤テスト

システムを正しく動かすための品質を確保する工程です。

プロジェクトに応じたテスト計画の立て方によりますが、単体テスト、結合テスト、システムテスト、ユーザーテスト、移行テストなど工程に応じたテストの種類があります。

テスト自体はQA部隊・テストエンジニアが担当するケースもありますが、SEの至上命題は最終的に品質を確保することです。テストにより障害を検出したら、障害の解消方法をリードします。

また、障害の発生傾向を分析して、障害が収束に向かいテストを完了させて良いかどうかの判断も必要になります。

楽しいところ、やりがい

テストケースを正しく消化していくことで確実にシステムの品質が向上するところはやりがいがあります。

大変なところ、辛いところ

テストは地道なプロセスであり忍耐が求められます。テスト計画やシナリオを立て、品質確保に十分となるテストケースを作成し、スケジュールを守りながらひたすら消化していく必要があります。

障害が発生した際の不良を作り込んでいる機能部分の特定が難しいケースもあり、期限に追われて焦ることも多々あります。

必要なスキル、あると良いスキル

単体テストや結合テストにおいてはプログラムロジックやモジュール構成を理解するスキルが必要です。

システムテストにおいてはシステム全体の個々のサブシステムの機能の位置付けと入出力のパターン、データの流れなどシステム全体を俯瞰出来る力が必要です。

これらのスキルを有していないと、品質確保に十分なテストケースを立てられているかどうかが判断出来ません。

特にSEはテストケースを立てる前に、各工程でどのようなテストを実施するべきかテスト計画を立てられることが望ましいです。

システムエンジニアの年収相場について

以下の表は、大手転職支援サイトが作成した、職種別の年収ランキングの一部です。すべてを掲載できないので、システムエンジニア種を抜き出しました。

[業種別平均年収ランキング(全316職種)]

順位職種平均年収
1システムアナリスト1,100万円
2システムエンジニア964万円
3コンサルタント(経営戦略)915万円
4不動産営業870万円
5コンサルタント(経営戦略)836万円
6システムエンジニア
(DB・ミドルウェア設計/汎用機系)
796万円
18システムエンジニア
(パッケージソフト・ミドルウェア)
693万円
64システムエンジニア
(マイコン・計測・画像等/制御系)
572万円
122システムエンジニア
(アプリ設計/WEB・オープン・モバイル系)
525万円
138システムエンジニア
(通信制御ソフト開発/制御系)
517万円
141システムエンジニア
(DB・ミドルウェア設計/WEB・オープン・モバイル系)
516万円
315パタンナー・縫製300万円
315その他保育関連職300万円

調査対象:2016年4月1日〜2017年3月31日の期間中にマイナビ転職に掲載された求人の「モデル年収例」から平均値を算出
出典:「2017年版 職種別 モデル年収平均ランキング」(マイナビ)

システムエンジニアの給与は他職種と比較して給料が高い職種です。
ただ、汎用機系やパッケージソフト、Web系など業種業界と扱うシステムによって、仕事の難易度や平均年収に大きく差がある職種でもあります。

またシステムアナリストやシステムコンサルタント、セールスエンジニアなど他の平均給与が高い職種への転職もしやすい、いわゆる潰しが効く職種と言えるでしょう。

業種ごとのシステムエンジニアの仕事の違い

筆者自身は転職によりベンダー系とユーザー系の企業での就業経験がありますので、この両者の違いについて述べたいと思います。

決定的な違いは親会社を持つかどうかです。

ベンダー系は親会社を持たないので、自由競争に晒されます。

即ち会社として顧客から受注を獲得する営業力が必要になります。

私は新卒当時はベンダー系企業に入社しましたが、入社早々「営業もSEも本質の仕事内容は変わらない」と先輩に言われました。

数年して実感しましたが新規顧客の獲得は営業の仕事であるにせよ、一度ご縁のある顧客から受注を取り続けることが出来るかはSEに対する顧客からの信頼度によります。

ベンダー系は特に顧客と密着しないと効率的にプロジェクトを進めづらく、顧客先に常駐して働くことが多いです。

一方でユーザー系は親会社がITとは別の事業を持っており、そのシステム部門もしくはシステム会社であることが多く、親会社のためにシステム開発を行います。

基本的には自社の社員が固まって集中的に働くことが出来ます。

 

ベンダー系とユーザー系のSEの労働環境は大きく違うことが考えられます。一般的にはベンダー系の方が労働環境は過酷だと思います。

受注を取り続けなくてはならず、複数の顧客先に少ない社員が散らばって常駐することが多いことから、自社の一体感を発揮しづらくプレッシャーが掛かりやすいです。

一方でユーザー系企業は親会社の仕事を持てるという点では恵まれていますが、親会社との力関係が歪んでいたりすると、ベンダー系と同等以上に過酷な労働環境になる可能性もあります。

結局、労働環境は会社によってまちまちでもあり、SEとしての仕事や求められる
スキルの多くは共通していると言えます。

私見ですが、若いうちはベンダー系の企業で上流から下流までの一通りの工程を経験すると、歳を取ってからでも身に付けたことをどこの職場環境でも幅広く発揮できると思います。

システムエンジニアに向いている人

  • 向上心が強い人
  • ストレス耐性の強い人
  • 人に関心を持ち、利害関係のバランスが取れる人

まず向上心は欠かせません。SEは覚えたり順応しなくてはならないことが多く、環境や技術の変化に柔軟に対処していくことが必要です。

守備範囲を限定せず、業務知識やIT技術の研鑽を怠らない人はSEに向いています。

またSEの至上命題は原価、品質、納期を守ってシステムをリリースすることですが、様々な要因においてプロジェクトが暗礁に乗り上げてしまうことがあります。

そうしたことにもめげず、力強く舵を切り直せるストレス耐性の強い人は向いていると言えます。

また人に関心を持ち、その人の性格や立場を観察して分析出来る人は相手と高度なコミュニケーションを取れるチャンスがあります。

顧客企業の風土や文化は独特のものを有していることも多く、人それぞれの物事の受け止め方も随分と違うことが多いです。

そうした状況に直面したとき、相手との利害関係のバランスを取りながら相手に応じた対応が出来るSEは顧客から大いに信頼される可能性があります。

理系、文系の適性の違いは私が経験する限り、全く関係ありません。

システムエンジニアに向いていない人

  • 向上心が無い人
  • 論理的思考が出来ない人
  • 人との意思疎通が苦手な人

まず、どんな仕事にも共通していると思いますが、向上心が無い人は大成出来ない仕事です。

SEの仕事は取り扱うITの技術が目まぐるしく変化するため、取り巻く環境や新技術に付いていけるだけの順応性が不可欠です。

また論理的思考は訓練により多くの人が身に付くと思いますが、適性上どうしても向かない人は苦労すると思います。

要件定義におけるスコープとスコープ対象外の線引き、詳細設計における入力経路のパターン毎の網羅性の策定など、あらゆる局面で論理的できめ細かな思考が必要となります。

曖昧で抽象的な発想を繰り返していても仕事を消化することは出来ません。

そして、これは私の周囲でも多く見てきましたが、人と意思疎通を図ることに苦痛を感じる人はSEとしてやっていくのは厳しいです。

苦手なだけで積極的に克服する意欲がある人は大丈夫ですが、発信する意欲に欠ける人は周囲から信頼されず孤立しがちになります。

例え技術が有ってもステークホルダを巻き込んで動かしていくことが出来ないと、SEとしての力の発揮しどころは限定されてしまいます。

どちらかというとプログラマーの方が向いているかもしれません。(もちろんプログラマーにもコミュニケーション能力は大事ですが)