プログラマーとの違いやスキル、キャリアパスについても解説
システムエンジニア(SE)ってどんな仕事なの?

  • このエントリーをはてなブックマークに追加

メイン画像

IT関係の仕事について調べていると、 「システムエンジニア」(SE)という職種がよく出てきます。システムエンジニアはいわばITエンジニアの代名詞といえます。一方で、システムエンジニアの仕事は、外部からはわかりにくかったり、人や会社によって解釈が違ったりすることも多いでしょう。そこで、ここではシステムエンジニアという職種について改めて整理します。

 


本記事の執筆者 高木和人
プログラマーおよびSE、ソフトウェアのマニュアル・ヘルプの制作、ユーザーサポートなどの業務に従事。好きな技術ジャンルは、リレーショナルデータベースとSQL、ExcelとExcel VBA、プログラミング言語Ruby、Linux、C言語など。また、情報処理試験で用いられるアセンブラ言語「CASL II」の処理システム「YACASL2」をオープンソースで開発している。 
https://www.j8takagi.net/yacasl2/
 

フリーランス専門エージェントに無料相談する

 

0. 目次

1. そもそもシステムエンジニアとは
2. システムエンジニアとプログラマー
3. 委託開発におけるシステムエンジニア
4. システムエンジニアのキャリアパス
5. システムエンジニアに求められるスキル
6. システムエンジニアと他のITエンジニア系職種との違い
7. IT系職種の年収
8. まとめ

 

1. そもそもシステムエンジニアとは

システムエンジニアはもともと、ITシステム開発に従事するエンジニア(技術者)に対して、「プログラマー」とセットで用いられる言葉でした。システムエンジニアとプログラマーの違いを理解するためには、ソフトウェア開発のプロセスを知る必要があります。

 

ソフトウェア開発プロセス

ソフトウェア開発プロセスは一般に次のようになります。

要件定義→外部設計→内部設計→ユニットテスト→システムテスト→受け入れテスト→運用・保守

要件定義はどのようなシステムを求めているのか顧客から聞き出してまとめる作業です。外部設計は要件定義を元にシステム全体の仕様を、内部設計は外部仕様を元にシステムの部分ごとの機能を、それぞれまとめてドキュメント(書類)を作成します。

そのあと、実装(コーディング)により、設計に基づくプログラムが記述され、実際にシステムが動作するようになります。テスト(ユニットテストとシステムテスト)でシステムの動作が検証されたあとで、運用・保守のプロセスに移行します。

こうしたソフトウェア開発プロセスは1970年代までに、それまで多かった「とにかくプログラムにして書く」式アプローチ失敗の反省から多くの開発現場で普及しました。 

ソフトウェア開発論の古典として知られているフレデリック・P・ブルックス Jr.『人月の神話』とその続編『デザインのためのデザイン』では、こうしたソフトウェア開発プロセスの登場の経緯が記載されています。

ITに詳しくない人は、システム開発では実装だけが必要なプロセスだと思うかもしれません。しかし実際のシステム開発では、実装は要件定義や設計やテストなどとともに、作業の一部に過ぎないのです。

また、もし要件定義や外部設計に問題があり実装後に発覚した場合には、大幅な作業のやり直しが必要です。作業のやり直しは、開発コストの増大や、極端な場合には開発失敗の原因にもなります。

実装で問題があった場合にも作業のやり直しは発生するものの、要件定義や外部設計ほど大きな影響はありません。そのため、要件定義や外部設計はシステム開発においてより重大な責任があるのです。

こうした責任の重大さと、実装に先立って作業が行われることなどがあいまって、システム開発において要件定義や外部設計は上流工程とも呼ばれます。

 

フリーランス専門エージェントに無料相談する

2. システムエンジニアとプログラマー

ソフトウェア開発では、プロセスごとに多くの人が業務を分担することになります。
システムエンジニアは、ソフトウェア開発プロセスのなかですべての業務を担います。実装や内部設計も、要件定義や外部設計なども、システムエンジニアは担当するのです。

プロジェクトが大規模になると、スケジュールやリソース(人員などの経営資源)などのマネージメントをすることもあります。もちろん、すべての作業を1人ではできないので、他の人と協力しながら作業します。
それに対してプログラマーとは、主に内部設計や実装を担当するエンジニアのことです。

なお、システムエンジニアには、一般(非IT系)の企業でシステム運用などを担当する社内SEが含まれることがあります。

社内SEは、ソフトウェア開発現場のシステムエンジニアとは業務内容がやや異なります。システムの運用や保守などが主業務であり、システム開発に直接従事する機会は少ないのが一般的です。

また、委託開発の場合には、システムエンジニアの役割も変わります。
 

3. 委託開発におけるシステムエンジニア

ソフトウェア開発では、1つの会社で上流工程を含めたすべてのプロセスを行う自社開発のほかに、内部設計や実装などを中心にほかの会社に業務を委託する委託開発の場合も多くあります。この場合、業務を委託する企業が元請け、委託された業務を行う企業が下請けです。

委託開発はとくに、金融システムや官公庁の各種システム、大手企業の基幹システム(会計、給与、人事などのシステム)などの大規模案件で多く見られます。また、業務を委託された企業が別の企業に業務委託し、多重の委託開発になる場合も多いです。

元請け企業は多くの場合、システムインテグレータ(SIer)と呼ばれる大手企業です。 

委託開発での元請けのシステムエンジニアは、上流工程や下請け企業に対するスケジュールやリソースなどのマネージメントが主業務になり、内部設計や実装を担当する機会は少なくなります。

 

4. システムエンジニアのキャリアパス

自社開発を中心にしている会社や下請け企業の場合、システムエンジニアはまず実装や内部設計を担当することが多いでしょう。この段階ではシステムエンジニアとプログラマーは、同じスキルを求められるといえます。ある程度経験を積んだシステムエンジニアは、上流工程やマネージメントなどの業務を任せられるようになります。

内部設計や実装の現場でまわりをまとめてリーダーシップを発揮できるようなシステムエンジニアに与えられる立場が、プロジェクトリーダー(PL)です。また、1つの開発案件全体のマネージメント業務を任せられるようなシステムエンジニアはプロジェクトマネージャー(PM)と呼ばれます。

元請け企業のシステムエンジニアの場合は、比較的早い段階から下請け企業などを含めたマネージメント業務を担当する場合が多いでしょう。

プログラマーは、プロジェクトリーダーを目指すのが有力なキャリアです。専門性を高め、ITアーキテクトと呼ばれる高度ITエンジニアを目指す道もあります。

システムエンジニアは、プロジェクトマネージャーなどの上級SEを目指すほか、経験を活かして社内SEへの転進なども考えられる方向性です。また、プログラミングやインフラのスキルをアップし、専門性の高いITアーキテクトやインフラエンジニアを目指す道もあります。
 

5. システムエンジニアに求められるスキル

システムエンジニアにはどのような能力が求められるのでしょうか。ここでは、次の能力を取り上げます。
 

  • プログラミングスキル
  • 幅広いIT知識
  • コミュニケーション能力

 

プログラミングスキル

プログラミングスキルは実装の際に必須であり、とくにプログラマーや、自社開発および下請けのシステムエンジニアにとっては真っ先に習得が求められるスキルとなります。

また、要件定義や外部設計といった上流工程においても、プログラミングスキルに基づく知識は重要です。顧客からの要求を受け入れるか判断したりシステムの仕様を決定したりするときには「要求や仕様が実装可能か」「可能な場合にはどれだけの時間と費用が必要か」などをプログラミングの知識を元に判断することになるためです。

プログラミングスキルは、業務や研修のほかに、書籍やインターネット上の情報を用いて独学できます。ほかの職業上のスキルとくらべると特別な設備や先生が必要ないので、やる気さえあればプログラミングは独学しやすいと言えます。一方で、プログラミングに必要な知識は幅広く複雑なため、自ら積極的にスキルを身につけることが求められます。

ただし、プログラミングスキルのなかには独学ではなく実際の業務のなかでしか身につけられない部分があることにも留意してください。とくに、他人と協力しながらプログラムを作成する際のノウハウは、実際の業務のなかでしか学べない部分が多くあります。 また、大規模なプログラムを開発するスキルも独学では学びにくいでしょう。

 

幅広いIT知識

システムエンジニアにとっては、プログラミング以外でも幅広いIT知識が必要です。
実装の際には一般に、ハードウェアの設置やネットワーク接続、各種サーバーの立ち上げなどといったインフラ構築を行わなければなりません。

インフラ構築は、部分的には専門のエンジニアに委託することもありますが、基本的な部分はシステムエンジニアが担当する場合が多いです。

また、要件定義や設計の段階でも、インフラ構築について考慮しておく必要があります。近年ではインフラ構築時に仮想化やクラウドなどが用いられることも多く、それらの知識もシステムエンジニアにとって必須です。

そのほかにも、 ドキュメントやプログラムコードの管理、テストの実行などに関連したIT知識も求められます。たとえばドキュメントやプログラムコードの管理には近年、Gitなどのバージョン管理システムが用いられることが多くなっています。こうしたツールについてもシステムエンジニアは知識を求められるでしょう。

 

コミュニケーション能力

システムエンジニアやプログラマーが実装する際には、要求仕様や仕様書の内容を正確する理解力が求められます。さらに、仕様書で記述が抜けていたり曖昧だったりする部分を確認したり、状況の変化を即座に把握して対応することも必要になります。また、自分の作成したプログラムを他人に説明する能力も求められます。

一方で、要件定義や外部仕様作成を担当するシステムエンジニアは、顧客の話を聞いたり交渉したりするような場面が増えます。そのため、コミュニケーション能力も重要です。

また、営業や会社の経営者とのコミュニケーションが必要な場合も出てきます。そうしたシステムエンジニアは、ほかのSEやプログラマーに仕事を指示したり作業の進捗を管理したりするような場面が多くなり、マネージメント能力やリーダーシップも求められます。 

 

6. システムエンジニアと他のITエンジニア系職種との違い

システムエンジニアとプログラマーは外部から見ると、要件定義や外部設計といった上流工程をシステムエンジニアが担当し、実装はプログラマーが担当する、というような明確な分業関係があると思うかもしれません。

しかし、実際の開発現場ではシステムエンジニアが実装を担当することも多く、両者の違いは不明確な場合も多いです。また、上流工程を担当するシステムエンジニアは直接実装をしない場合でも、プログラミングについての専門的な知識が必要になります。

加えて、 システムエンジニアは、Webエンジニアがフロントエンドエンジニア、サーバーサイドエンジニア、インフラエンジニアなどに分類されるのとは異なり、職種が細分化されません。

プログラマーとの違いが不明確なことや、職種の細分化が少ない背景には、システムエンジニアはシステム開発における「なんでも屋」的な性格があります。システムエンジニアは、上流工程を専門に担当するエンジニアではなく、上流工程を含めたあらゆる作業を担当するエンジニアである、と考えるのが実態に近いでしょう。

 

7. IT系職種の年収

日本の経済産業省は2017年8月に「IT関連産業の給与等に関する実態調査結果」を公表しています。

調査結果によると、顧客向けシステムの開発実装を行う一般の「SE・プログラマー」の平均年収は、593.7万円、「プロジェクトマネージャー」は891.5万円でした。また、プロジェクトマネージャーの年収は、プログラミングの専門的知識をもつITアーキテクトなどの「高度SE・ITエンジニア」(778.2万円)や、インフラの専門知識をもつ「IT技術スペシャリスト」(758.2万円)でした。

こうした結果から見えるのは、ソフトウェア開発の現場では技術のスペシャリストよりもマネージメント能力の高いシステムエンジニアが求められているということです。

もちろん、個別の実際の収入は状況によって大きく異なりますし、今後は技術のスペシャリストの方が求められるようになる可能性もあります。システムエンジニアなどのITエンジニアが自分のキャリアを考える際には、こうしたニーズと自分の特長や指向の両方を考えるとよいでしょう。

 

8. まとめ

システムエンジニアの実態がつかみにくいのは、プログラミングスキルなどの深い技術的専門知識が求められる一方で、コミュニケーションやマネージメントなども含めた幅広いスキルが求められることが一因です。

それだけ大変ですが、一方ではさまざまな人に活躍の場があるのがシステムエンジニアの仕事です。今回を機会にシステムエンジニアについての理解を深めていただければ幸いです。

フリーランスエンジニア向け常駐案件(準委任)ならレバテックフリーランス

レバテックフリーランスは、IT・Web系のフリーランスエンジニアに向けた案件を提案するエージェントです。

常駐案件をお探しの方はもちろん、「初めてフリーランスになる」「フリーランスに興味がある」という方もぜひお気軽にご相談ください。これまで多くのエンジニアの方を支援してきた実績を基にサポートいたします。

「今フリーランスになるべきか?」「自分のスキルで通用するか?」といった悩みにもお応えしますので、ご相談だけでもお待ちしております。

フリーランス専門エージェントに無料相談する

 

  • このエントリーをはてなブックマークに追加
いきなり相談するのは不安な方へ フリーランスになった時にどんな案件を提案されるのかメールでわかる! 詳しくはこちらから

プライバシーマーク

© 2014-2018 Levtech Co., Ltd.