TechReach

SE(システムエンジニア)とはどのような職業?仕事内容や年収をわかりやすく紹介!

IT業界の転職情報を見ていたり、プログラミングの学習を進めていくとSE(システムエンジニア)という言葉を見聞きする機会があると思います。しかし、SEがどのような職業で、どういった仕事をしているかはご存知ない方もいらっしゃるのではないでしょうか? この記事では、それらの内容に加え、SEの働き方や平均年収、求められる能力などを説明しています。ぜひともご確認ください。説明しています。

 

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

SE(システムエンジニア)とは、顧客や自社内の要求を伺い、主に要件定義や基本設計などのシステム開発における上流工程を担当するエンジニアです。また、企業や現場、案件によって異なりますが、予算や人員の調整・管理など、プロジェクト全体のマネジメントなどもおこないます。

システム開発では、プログラミング言語のほかにサーバーやデータベースなどを利用するケースが多くなっているため、システム全体を設計するシステムエンジニアには幅広い知識が求められます。また、近年ではクラウドサービスやコンテナなどの仮想化技術のうえにシステム構築をするケースも増加傾向にあり、複合的な知識やスキルが求められる職業です。

PG(プログラマー)の違い

プログラマーもシステムエンジニアと同じように、企業や現場によって業務内容が異なり、明確な定義は存在しません。そのため、ここでは一般的な例を挙げての説明となります。

プログラマーは、システムエンジニアが作成した設計書に基づきプログラミングをする、プログラミングに特化したエンジニアと説明されます。JavaやPython、Rubyなどのプログラミング言語で開発をしていきますが、開発物によって利用するプログラミング言語が異なり、必要になる知識やスキルもさまざまです。

また、新人プログラマーの場合はプログラミング言語のみを利用したプログラミングを任されることが多くなっていますが、成長するにつれてプログラマーという肩書きは変わらずに、データベースへのデータ処理を実装することもあります。加えて、SEはプログラマーの次のキャリアとして人気のある職業となっています。

SE(システムエンジニア)の仕事内容を解説

SEの業務内容は、一般的にウォーターフォール開発という開発手法が採られます。ウォーターフォールは滝や落水を意味し、上から下に水が流れていくように、システム開発の工程が進んでいく手法です。基本的な工程は以下のとおりです。

 

①要件定義

②基本設計

③詳細設計

④プログラミング

⑤テスト

⑥リリース

⑦保守・運用

 

ここでは、SEの仕事内容である各工程について解説をする前に、開発の基本になるウォーターフォール開発の特徴をお伝えします。

ウォーターフォール開発とは

ウォーターフォール開発では、業務内容によって7個前後の工程に区切り、各工程を順番に、ひとつずつ開発を進めていきます。進んだ工程から以前の工程に戻すことは基本的におこなわず、厳格に開発を進め、仕様変更などは考慮してない手法です。そのため、クライアントの要求が変わったり、システム設計上のミスが発覚した場合は開発期間の延伸や費用の増加につながります。

しかし、進捗管理がしやすい、作りたいシステムが明確だとクオリティを上げやすい、大規模開発に適している、などのメリットがある手法です。また、開発期間は半年から数年と長期間に渡るケースが多くなっています。

ウォーターフォール開発は、「要件定義」から「詳細設計」までの上流工程と、「プログラミング」から「保守・運用」までの下流工程に分かれます。SEの業務は上流工程の担当をすることがメインとなりますが、企業や現場によっては最初から最後、あるいは工程の途中までSEが担当することもあります。次の項目から、ウォーターフォール開発の各工程の詳細を説明します。

要件定義

クライアントが希望するシステムの内容をまとめた「要求定義」に基づきヒアリングをおこない、「業務要件」、「機能要件」、「非機能要件」といった開発の屋台骨となる重要な要件を「要件定義書」にまとめます。この段階でクライアントと打ち合わせをし、システム開発に必要なものと不要なものを切り分け、要件定義書にしっかりと納得してもらうことが重要です。

要件定義書の内容に不備がなければ、上述したような仕様変更などの問題は発生せず、工程に沿った開発で完成まで結びつけることができます。また、次の工程は要件定義書をもとに作成されるため、システム全体の中心となる非常に重要な工程です。要件定義については下記関連記事で詳細をまとめています。気になった方はぜひともご確認ください。

 

関連記事:要件定義と要求定義の違い・システム開発プロセスについて解説

基本設計

要件定義書で決定した要件を機能ごとに分割し、それぞれにどのような機能を持たせるか、どのように作っていくかの概要を決定します。システム機能の一覧や、「業務フロー図」、「データフロー図」などでシステムの概要をまとめ、基本設計で決まった内容から「基本設計書」が作成されます。また、基本設計は主にクライアントへの説明に用いられ、「外部設計」と呼ばれることもあります。加えて、企業や現場によって基本設計は定める内容が異なり、まったく作成せずに次の工程に進むこともあります。

詳細設計

基本設計書で定めたシステムの概要を、どのような機能を使って実現するか決める工程です。一例としては、「クラス図」や「シーケンス図」などを利用してオブジェクト思考プログラミングにおけるシステムの関連性や処理の流れの詳細を決めたり、「ER図」や「CRUD図」などでデータベースの構造や処理をまとめた表を作ったりします。詳細設計は主に自社エンジニアに向けた内容となり、「内部設計」と呼ばれることもあります。また、詳細設計で決まった内容は「詳細設計書」にまとめられます。

プログラミング

詳細設計書で定めた内容をプログラミングしていく工程です。プログラミング業務は基本的にプログラマーが担当しますが、SEが開発に加わることも少なくありません。また、SEがマネジメント業務を兼任している際は、進捗管理もすることになります。

テスト

完成したシステムはテストをおこなってからリリースされます。テストには、プログラム単体の動作をチェックする「単体テスト」、複数のプログラムを連結させてチェックする「結合テスト」、すべてのプログラムを結合してチェックする「総合テスト」があり、企業や現場によっては本番に近い環境でチェックする「運用テスト」をおこないます。また、ミスやバグのチェックをする「テスター」というエンジニアがテストをおこなうケースもあります。

リリース

開発したシステムに問題がないことを確認し、リリースします。また、新規導入の場合と既存システムのリプレースではリリース方法が異なります。新規導入の場合、問題になることは特にありません。しかし、リプレースの場合は現行システムを停止して一括でデータ移行をする「一括移行」、業務や拠点単位で順次データ移行をする「段階移行」などの方法で既存システムからのデータ移行が必要です。そのため、新規導入よりも取り組む工数が増加します。

保守・運用

保守とは、システムトラブルやアップデートなどに対応することで、運用はトラブルを未然に防ぐためにシステムを監視することです。また、SEはクライアント企業に納品したシステムのメンテナンスをおこなうことも多くなっています。

保守・運用はSEの業務内容に含まれますが、保守・運用を専任でおこなうエンジニアに業務を任せたり、保守・運用を代行でおこなう企業に業務を依頼することもあります。

SE(システムエンジニア)の働き方の違い

SEは、業務形態によって4つの働き方があります。

自社開発

自社開発とは、自社リソースだけでシステムの最初から最後まで開発することを指します。そのため、自社開発をメインにおこなっている企業ではシステム開発時にクライアントが存在しません。しかし、商品やサービスを購入した企業、個人からの問い合わせ対応、メンテナンスサービスなどを実施している企業は多いです。

社内SE

自社内のシステム構築や保守・運用、社員からの問い合わせなどに対応するSEです。自社開発が社外に向けたシステムを開発することに対して、社内SEは自社内のシステム開発に関する業務を担います。しかし、企業によって社内SEの業務内容は異なり、明確な定義はありません。

受託開発

受託開発とは、自社で利用するシステムの開発を、社外企業に依頼して開発することです。社外企業から依頼を受ける側は受託開発、自社外に開発を依頼する側では委託開発といわれることが多いです。SEの仕事内容の例で挙げたクライアントとは、受託開発で依頼をする側の企業となります。

客先常駐

自社外の企業(クライアント)に出向いて働くことを客先常駐といいます。客先常駐は下流工程の仕事をする場合が多くなっていますが、SEのように上流工程から携われる人間が現場を指揮し、プロジェクト進行を任される場合もあります。

SEの働き方を4つ説明しましたが、企業によってはひとつの業態のみを事業としているわけではありません。自社開発と受託開発、受託開発と客先常駐など、業態を組み合わせて事業展開している企業も存在します。

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

SEの業務は企業や担当する役割によって一日のスケジュールが異なるため、一律に説明することはできかねます。しかし、SE業務で9時〜18時を定時している企業も多いため、今回はこちらの勤務時間での業務例をお伝えします。また、業務内容はあくまで一例となりますのでご了承ください。

受注開発SEの午前中の例

受注開発のSEの場合、出勤とともにメールの確認や一日の業務の確認をします。SEの業務には納品したシステムのメンテナンスなども含み、クライアント企業から連絡があればすぐに対応する必要があるからです。そのため、朝に限らずメールチェックは頻繁におこなっています。

午前中はクライアント対応やクライアントとの新規打ち合わせの設定をすることが多く、抱えている案件があれば要件定義書や基本設計書などの各種資料を作成します。

受注開発SEの午後の例

午後はクライアントと打ち合わせをするために外出することが多くなり、打ち合わせが終わったあとは議事録に内容を記録します。議事録は会議で決定したことの資料となり、状況確認や議論の経緯、関係者への情報共有などに利用されます。また、一日の業務終わりには、チーム内の進捗状況などを確認する定例ミーティングが設けられることがあります。

9時〜18時を定時にしている企業が多いですが、納期前は残業が発生する可能性があります。また、自社開発や社内SEの場合はクライアントとのやりとりが基本的になくなり、客先常駐の場合は常駐先企業の規則に従います。加えて、保守・運用がメイン業務になるSEの場合、深夜帯にメンテナンスなどをおこなうことが多いので22時〜翌6時などの夜勤労働になることがあります。

SE(システムエンジニア)の平均年収

弊社TechReachのSE案件総数は1874件、平均月単価は約67.5万円、年収に換算すると約810万円で、月単価幅は30万円〜170万円です。(2023年1月27日現在)

 

最高年収の例

 

システムエンジニアは業務範囲が広いため、案件で求められるプログラミング言語やスキルもさまざまです。下記リンクのお仕事検索から、希望する条件を選択してシステムエンジニアの案件を絞り出すことができます。どのような案件があるのかを知りたい方はぜひともご活用ください。

 

お仕事検索 – テックリーチ

SE(システムエンジニア)に求められる能力

SEに求められる能力を4つお伝えします。

コミュニケーション力

SEはクライアントと打ち合わせをしてシステム開発をすることが多いため、クライアントの要望を適切に引き出し、提案に納得してもらうためコミュニケーション能力が不可欠です。

また、上流工程を担当するため開発チームの中心として業務を進めていくことが多く、コミュニケーション能力がないとチームをまとめられずにプロジェクトの進行を妨げてしまう可能性もあります。社内、社外を問わず、SEは開発だけをするエンジニアよりも人との接触が多くなるため、コミュニケーション能力が高いほうが望ましいです。

マネジメント能力

プロジェクトの進行を管理し、適切に業務を進めるマネジメント能力も必要です。ウォーターフォール開発の項目でお伝えしたように、SEの業務は基本的に前の工程に戻ることはせず、順次開発を進めていきます。そのため、特定のエンジニアに過度の負担がかかっている、予定よりも開発に時間がかかっている、などの問題に対応することはもとより、問題を未然に防ぐこともマネジメントには含まれます。

また、受注開発の場合はクライアントありきの契約となっており、契約内容で定めた開発期間に遅延してしまっては企業としての信用も損なってしまいます。加えて、企業や現場にもよりますが、SEは実質的なプロジェクトマネージャーとして業務を進めることもありますので、マネジメント能力は重要です。

技術力

技術力が乏しいと、システムの開発案を比較検討することができなくなり、複数の選択肢のなかから最善のものを選べなくなります。クライアントの要望に最も適したシステムや開発手法が存在しているにも関わらず、技術力不足が原因で提案ができなければ、双方にとってよくない結果を招きかねません。

システムエンジニアは業務範囲が広く、必要になる知識や技術も多岐に渡ります。また、ITの技術進歩も早くなっているため、日頃から勉強する姿勢が大切です。

論理的思考力(ロジカルシンキング)

上述してきたスキルにも関連しますが、適切な判断をするためには論理的思考力が必要です。論理的思考とは、物事を整理し道筋を立て、矛盾なく考えることを指します。

クライアントが何を要求しているのか、クライアントが求めるシステムには何が必要になるのか、システムを実装するにはどのような機能を設ければいいのかなど、思考をする際はさまざまな条件、情報を頭のなかで取捨選択しています。それらの膨大な情報を整理、体系化し、道筋を立てて考える論理的思考力は、ビジネス全般において重要な能力ともいえるでしょう。

SE(システムエンジニア)におすすめの資格

資格を取得することは、対外的なスキルの証明になる、体系的・網羅的な知識を得ることができる、昇進や面接などで有利になる可能性がある、などのメリットにつながります。ここでは、IPA(独立行政法人情報処理推進機構)が主催している国家資格の「情報処理技術者試験」のなかから、SEにおすすめの資格を4つお伝えします。

 

 

出典:IPA 独立行政法人 情報処理推進機構:試験区分一覧

基本情報技術者試験

IPAが主催する情報処理技術者試験では、試験の難易度によってスキルレベルを1〜4まで設定しており、「基本情報技術者試験」はスキルレベル2に該当します。公式サイトでは「エンジニアの登竜門」と説明され、これからSEを目指す人におすすめの試験です。

基本情報技術者試験では、SEに必要とされるIT関連の知識が多く出題されるため、資格を取得することでSEになるための土台を培えます。また、IT未経験者が転職する際は、IT関連の基礎力があると判断されるでしょう。

また、基本情報技術者試験は2023年4月から試験制度や一部試験内容が変わることが決定しており、2023年1月現在は新規の受験受付をしていません。新しく試験が開始されるのは2023年4月からとなり、今までの年2回の試験から一年を通して受験ができる資格試験に変更されます。

 

出典:制度の概要:基本情報技術者試験

応用情報技術者試験

応用情報技術者試験はスキルレベル3に該当し、IPAの公式サイトでは「ワンランク上のITエンジニア」と説明されています。実務経験を積んだエンジニアの方が、しっかりと勉強をして合格するレベルの試験のため、初心者からの挑戦は難しいでしょう。また、応用情報技術者試験に合格すれば、実務レベルで対応できるスキルを証明できるため、転職やフリーランスの案件探しで有利になることが期待されます。

 

出典:制度の概要:応用情報技術者試験

システムアーキテクト試験

システムアーキテクト試験は最高難易度のスキルレベル4に該当し、公式サイトでは「業務とITのグランドデザイナー」と説明されています。システムアーキテクトとは、システムエンジニアと同じくシステムの設計や構築を担当するエンジニアです。明確な基準はありませんが、システムエンジニアの上位職に当たると説明されることもあります。

試験内容は、情報システムや組み込み、IoT(Internet Of Things|モノがインターネットと接続されているシステム)などの要件定義やシステムを実現するためのアーキテクチャ設計などとなっており、SEの受験を想定した試験といっても過言ではないでしょう。

公式サイトでは、上級エンジニアを目指す方に最適な資格であると記載されており、資格を取得することで転職やフリーランスの案件探しで高く評価されるでしょう。

 

出典:システムアーキテクト試験(SA) ~ 業務とITのグランドデザイナ〜

ネットワークスペシャリスト試験

ネットワークスペシャリスト試験も最高難易度のスキルレベル4に該当し、公式サイトでは「ネットワーク社会を担う花形エンジニア」と説明されています。また、IT業界でのネットワークとは、複数のコンピュータやシステムを接続する通信ネットワークを指すことが一般的です。

試験内容は、ネットワークシステムの要件定義や設計、構築、運用、セキュリティなどが問われ、ネットワークという専門分野に特化した資格となります。ネットワークシステムの構築とSEがおこなうWebアプリケーションや組み込みなどのシステム開発は別の分野の職務内容となりますが、SEがネットワーク構築を任される可能性もあるため、十分に価値のある資格だといえるでしょう。

システムアーキテクト試験と同じく最高難易度の資格であることに加え、SE業務でも役に立つ知識やスキルを有していることが証明できるため、転職やフリーランスの案件探しで高く評価されることが期待されます。

 

出典:制度の概要:ネットワークスペシャリスト試験

SE(システムエンジニア)になるためには?

SEはエンジニア職種のなかでも上位職にあたり、複合的な知識やスキルが必要です。そのため、未経験者がすぐにSEとして就職することは難しくなっています。また、SEとしての求人で未経験可になっているものは、段階を追って業務を教えていく、将来的にはSE業務をやってもらう、といった内容が多く見受けられます。

システム開発をするためには、プログラミング言語の習得が必須となり、IT関連の知識も覚えないといけません。未経験者がIT関連の知識を網羅的に習得するためには、IPAが主催をするスキルレベル1の国家資格、「ITパスポート」への合格を目指し、その後は「基本情報技術者試験」に挑戦することをおすすめします。

プログラミング言語の学習については、開発するシステムによって利用するプログラミング言語が異なるため、自身が開発したいものは何なのか、どういった基準でプログラミング言語を学習するのか、などを明確にしてみましょう。それから自分でプログラミング言語の特徴などを調べていき、気に入った言語の勉強を始めてください。この項目では、プログラミング言語の学習方法を2つお伝えします。

独学

独学は、「参考書」、「学習サイト」、「Web学習サービス」などを利用した方法で進めていきます。また、プログラミング言語によって参考書や学習サービスの充実度が異なり、昔から利用されているJava、Ruby、Python、PHPなどは参考書の数も多く、「paizaラーニング」、「Progate」、「ドットインストール」などのWeb学習サービスでも講座が用意されています。

それに対して、比較的最近に注目を浴び始めたGo言語やKotlin、Scalaなどは参考書の数が少なく、Web学習サービスで講座が用意されていないものもあります。また、これらは一番最初に勉強するプログラミング言語としてはあまり向いていないため、上述したJavaなどから学習することをおすすめします。

学校・プログラミングスクール

高校生以下の方は、プログラミングを学べる大学や専門学校に通うことでSEになるための勉強を始められます。大学の場合は○○情報学科や情報○○学科などの学部がプログラミングを扱っている場合が多いです。専門学校は、学校名や学科名から判断することが難しいため、【専門学校 プログラミング】などでブラウザ検索をしてみてください。

現在社会人の方は、プログラミングスクールに通って勉強することもおすすめです。独学と違ってカリキュラムが用意されているため勉強がしやすい、わからないことを質問できる、就職支援のあるスクールであれば就職活動がしやすくなる、といったメリットがあります。

また、学校やプログラミングスクールは通学ではなく通信、オンラインスクールも多数存在します。通学と通信でメリットとデメリットも変わってきますので、その点についてもよく調べてから学校やプログラミングスクールを選ぶようにしましょう。

まとめ

SEは複合的な知識やスキルが必要な職業のため、勉強することが多く大変かもしれません。また、システム開発の上流工程から関わるため、責任の重い仕事といっても過言ではないと思います。しかしその分、クライアントとの話し合いを経て、満足してもらえるシステムを開発したときのやりがいも大きいのではないでしょうか。SEを目指している方は、目的意識を明確に持ち、少しずつ勉強を始めていきましょう。

フリーランスの案件をお探しの方はTechReachにご相談ください。

TechReachを運営する株式会社アールストーンはIT・Web業界特化で15年以上の実績がございます。

そのため、高単価・高品質な数多くの案件紹介が可能です。

また一人のコンサルタントが企業と求職者様の担当を行う「両面型エージェント」を採用しているため、あなたの希望に合う案件がきっと見つかるはずです。

TechReachを活用して、理想の案件を見つけましょう!

関連記事

カテゴリ