【IT職種図鑑】|システムエンジニア(SE)

IT業界には様々な職種が存在します。今回は、「システムエンジニア(以下、SE)」について見ていきましょう。

仕事内容

SEと聞くと、”コンピュータの前に座ってプログラミングをしている”というイメージを持つ人が多いのではないでしょうか。しかし、実際は顧客との打ち合わせやヒアリング、システムの設計などが主な業務となります。SEの仕事内容について詳しく見ていきましょう。

システムを開発する際は必ずプロジェクトを発足し、上図の工程で作られます。各工程の担当は異なり、一つのシステムを作り上げるために大勢の人が関わっています。

この中でSEが主に携わる工程は、「要件定義」、「基本設計」、「詳細設計」、「テスト」、「総合テスト」、「導入(本番移行)」で、SEの業務が多岐に渡ることがわかります。

要件定義は、システム開発において必要になる機能や性能、システム化する範囲などを明確にしていく工程です。顧客の要求が文書化された資料や打ち合わせでのヒアリングから、顧客がどのようなシステムを望んでいるのかを明らかにしていきます。(要求分析)

それを踏まえて「どのようなシステムが必要か」、「どのような技術を使って実装していくか」を考え、併せてプロジェクトを行うための人員数や時間、リスクなども検討していきます。

要件定義がまとまったら、次は設計です。外部設計とも呼ばれる基本設計では、「どのような操作画面や操作方法なのか」、「どのような機能が使いやすいか」など、主に顧客が関わる部分を設計します。

内部設計とも呼ばれる詳細設計では、システム開発に必要なものを明確化し、「開発はどのような環境で行うのか」、「実装予定の機能に対してどのような技術や仕組みで実現するのか」などを取り決めていきます。

ここで決まった内容は「仕様書」と呼ばれる設計書のようなものにまとめられ、実際に開発を担当するプログラマ(以下、PG)に渡ります。PGは、仕様書に基づいてプログラミングを行い、システムを開発します。

システム開発が完了したら、システムが正常に作動するかをテストします。バグが発生した場合はPGに修正を依頼し、改めてテストを行います。全てのテストが完了したら、顧客の元へ導入します。

こんな人におすすめ

新しい技術・知識を身に着ける意識がある

システム開発に用いられる技術は、日々新しいものが生まれています。そのため、主流の技術を身に着けたら勉強しなくて良いということにはなりません。常に知識を最適化していくことが求められます。

また、システム開発を行うためには、IT以外の知識も必要です。例えば、金融関係のプロジェクトでは金融知識、医療関係なら医療の知識など、顧客の業務を理解しておかなければなりません。プロジェクトが変わるごとに、新しい知識を吸収するという意識・意欲のある人には適した職種です。

論理的に考えることができる

特に上流工程(要件定義・基本設計・詳細設計)では、道筋を立てて考えることと、仮説を立てて検証することが要求されますが、それには論理的な思考が必要です。また、チームで協調して業務を進めるためには、目標や方法を理解してもらう必要があり、順序立てたわかりやすい説明が不可欠です。
あらゆる場面でこのような思考が必要になるので、論理的に考えることのできる方にはおすすめの職種です。

必要なスキル

SEとして活躍するためには多くのスキルが必要になります。以下では、各スキルの必要性と発揮されるシーンについて解説していきます。

コミュニケーション力

打ち合わせや会話が多いSEには必要不可欠なスキルです。特に要件定義や、開発からテストへ移行する段階では、一日の大半を会議に費やしてしまうことも珍しくありません。顧客や上司への報告も多発するため、普段からコミュニケーションを取っておく必要があります。

また、顧客の要求を引き出すという意味でも欠かせないスキルです。
ここで言うコミュニケーション力とは、積極的に話すというよりは考えていることを会話の中で探ったり、必要な情報を引き出して要求を明確にすることを指します。

読解力・想定力

要件定義では、資料やヒアリングから「顧客が何を求めているか」を正確に汲み取り、システム規模の見積りや人員の選出などを行います。システム開発を行う上で軸となる部分のため、読解力(理解力)と想定力は欠かせないスキルです。

また、大規模案件の場合は「競争入札」を行うことがあります。ここでも顧客の要望を理解することが重要になるため、これらのスキルを役立てることができます。

競争入札
競争入札

競争入札とは、顧客となる企業や官公庁が「こういったシステムが欲しい」という募集をかけ、複数の契約希望者の中から契約者を決める方法です。最も有利な条件やシステムの開発案を提示した者が選ばれます。建設業界で言うところのコンペのようなものです。

資料作成力・説明力

SEの必須スキルには、資料作成力と説明力も含まれます。システム開発を依頼する顧客は、ほとんどの場合IT初心者です。ITの知識があまり無い相手にシステムの詳細や開発の流れを理解してもらうためには、分かりやすい表現を使った説明と資料が必要になります。

また、基本設計・詳細設計の工程で決定したものを、開発担当であるPGに正しく伝えることも重要な業務です。伝達には「仕様書」が用いられますが、内容が分かりにくいと認識の違いが生じ、バグの発生やスケジュールの遅れに繋がります。それらを防ぐためにも、誰が見ても同じものができる資料を作成する必要があります。

プログラミングスキル

SEにはプログラミング言語の知識は不要」という意見もありますが、実際にソースコードを見て仕様をイメージできるかどうかがシステムの完成度に影響してきます。SEがプログラミング言語の特性を理解していないと、バグを内包した仕様書を作成してしまう可能性があります。

プログラミング以外のITスキル

システムはプログラム単体で動くことはありません。システムを正常に動作させるためには、データベースやネットワークが必要になります。SEであれば、担当するシステムが使用するデータベースやネットワークの知識は習得しておいた方が良いでしょう。

SEのやりがい

SEのやりがいは、「システムが完成した時の達成感」「顧客からの感謝」です。

システム開発には、作り上げるまでの厳しさがあります。顧客との打ち合わせを重ねたり、繰り返すバグを乗り越えてやっとの思いで完成します。メンバー全員で作り上げたという喜びも相まって、大きな達成感を得ることができるでしょう。

また、システムが実際に導入されると、顧客から感謝の言葉をもらうことが多くあります。導入したシステムが好評だということは、打ち合わせ段階でうまく要求を引き出し、更にそれを実現できたということです。つまり、SEとして素晴らしい働きをしたということになります。
厳しい意見や無理難題に向き合ったプロジェクトでは、一層やりがいを感じることがでしょう。

SEの需要と将来性

ITが発展している今日では、ほとんどの企業がシステムを利用しています。そのため、システム開発を支えるSEの需要は増加傾向になります。

また、IT業界(特に情報処理サービス(SI)業界)では慢性的な人材不足に陥っているため、SEになれる可能性は誰にでもあります。

将来性については、AI(人工知能)の存在が大きく影響してくると予想されています。開発現場にAIを導入することにより、簡単なプログラミングやテストの効率化が実現されるでしょう。

一見すると、AIに仕事を奪われてしまうように感じますが、そんなことはありません。AIが関与できない領域、つまり人間ならではの発想やコミュニケーションが必要な業務は残り続けます。例えるなら、「システム開発の企画立案」、「要求分析」、「要件定義」、「各種調整や近郊などのコミュニケーション業務」などです。

今後のSEは、このような上流工程での業務をより高度化することで、さらに需要が高まっていくでしょう。

SEの詳細データ

気になるSEの詳細なデータをまとめてみました。
※以下は、厚生労働省『平成28年賃金構造基本統計調査』を参考にしています。

平均年収

SEの平均年収は約547万円となっており、一般的な会社員よりもやや高い水準にあります。従業員数別で見てみると、100人未満規模の企業におけるSEの平均年収は511.5万円、1000人未満の規模では527.1万円、1000人以上の規模では605.4万円となり、従業員数が多い企業ほど年収が高い傾向にあります。

勤続年収

SE全体の平均的な勤続年収は、約10.8年となっています。ただし、創業50年で平均年齢が40歳の会社と、創業10年で平均年齢が30歳の会社では比較のしようがありません。会社選びの際は、あくまでも創業年数が近く同規模の会社を比較材料にすべきでしょう。

主な資格

SEが保有していると評価されやすい資格を、一部ご紹介します。