質問箱:システムエンジニアとはなんですか?

画像1

これ、たぶん本業のシステムエンジニア(SE)の人でもよくわかっていない気がします。

「ITエンジニア」をネットで検索すると、全部で10種類!15種類!20種類!などバラバラです。大まかに分類すると「私も同じ肩書だけど全然違う仕事をしている」ということになり、細かくしてしまうとほとんどの人が「◯◯エンジニア 兼 ◯◯エンジニアで、たまに〇〇エンジニア」みたいなことになります。

このようなことになる理由のひとつは、◯◯エンジニアを定義するときの “切り口” が複数あるからだと思います。どの切り口で◯◯エンジニアを説明するかによって、その仕事の範囲が微妙に変わってきます。

私がすぐに思いつく切り口は次の4つです。
 A. システム全体における担当領域によって分ける
 B. 開発しているシステムの種類によって分ける
 C. システム開発の工程によって分ける
 D. 使用技術の種類によって分ける

「システム」というのも意味をとるのが難しい言葉ですが、日本語では「系」と訳されて、本来は「互いに関係する要素で構成されたまとまり」、言い換えれば「他と区別できる範囲」を意味します。かたや日本のIT業界では、商品として売り出される“単位”として、「大規模なソフトウェア」や「特定の機器の組み合わせ」、「機器とその制御ソフトウェアの組み合わせ」などを指してシステムと呼びます。

このように、「システム」という言葉は文脈によって意味が大きく変わります。「システムエンジニア」という職業の定義が難しい理由はここにもあると思っています。なお、上記の4つの切り口では、Aでは本来の意味、BとCではIT業界の意味で「システム」という言葉を使っています。

ちなみに、このIT業界(技術業界)独特の“システム”の使い方を典型的に表している例が「ソーラーシステム/Solar System」だと私は思っていて、日本語では「太陽光発電(の機器)」を指しますが、英語の意味は「太陽系」です。

余談が過ぎたので「質問箱」の文字数制限(5000文字?)が心配になってきました(そして軽く2倍近くオーバーしたのでひとまずnoteに持ってきました)。

A. システム全体における担当領域によって分ける

この切り口は、従来は「ハードウェア/ソフトウェア」で大別されてきた分類です。現在は「アプリケーション/インフラ」で分けることも多いです。なお、この切り口ではSEは登場しません。

このアプリケーションとインフラは、文理融合系の学生さんも意識しておいたほうがいいと思います。というのは、“インフラ系エンジニア”は文系思考の学生にも合う仕事にも関わらず、最初から志望していく人が少ないからです。

インフラは「infrastructure」の略で、IT業界では「サーバ」や「ネットワーク」など、アプリケーション開発を下層から支える基盤を指します。これらの知識は(授業を受けてもわかるように)ちょっと小難しいのですが、IT業界としては技術の変化が少なく、仕事をパターン化しやすい領域です。つまり、2~3年かけてマニュアルを頭に叩き込めば、文系思考の人でも一人前に戦うことができます。

アプリケーション開発のほうが表舞台ではあるのですが、技術領域によっては更新や入れ替えが早く、2~3年かけて身に着けた頃にはその技術は古くなっている…というようなことが起こります。状況に応じてその場で論理(ロジック)を組み立てるのが得意な理系思考の人向きの仕事です。

ただ、インフラもサーバ系はソフトウェア化されているので、変化の早い領域になりつつあります。IaaSやPaaSという用語を調べてみてください。それでもまだまだマニュアルを頭に叩き込んで身体で覚える領域であるとは思いますし、プログラミングというよりも「設定」という感じの仕事になります。

ネットワーク系の方はハードウェアからは逃れられませんので、スイッチという機器を設定したり、天井に潜ってケーブルを這わせたりする仕事になります。この分野はそうそう変化はないでしょう。ただし、ネットワークの状況を監視するソフトウェアは多少変化すると思います。

アプリケーション開発も繁忙期は終電に間に合わない…ということが生じますが、インフラ系も何か問題が起こったら週末でも盆正月でも呼び出されるという類の仕事ではあるようです。

B. 開発しているシステムの種類によって分ける

Aの切り口では、インフラのほうは「サーバ」「ネットワーク」という具体的なキーワードを出しましたが、アプリケーション開発のほうは掘り下げませんでした。アプリケーションを細かく分類するのは、このBの切り口で進めます。こちらにはインフラ系は出てきません(そしてSEもまだです)。

アプリケーションは、その開発しているシステムの種類によって、業務システム系/アプリ系/ウェブ系/ゲーム系/組み込み系などに分けられます。

業務システム系は、更に汎用系とオープン系に分けられたりします。代表的なのは銀行システム(汎用系)や会計/顧客管理システム(オープン系)などです。私たちの身近なところでいうとM◯SESや履修登録システムも「業務システム」になります。COBOLやJavaなどレガシーな(≒古い)技術を使うことも多い仕事ですが、業務システムもウェブ技術で組まれることが多くなってきました。そのため、業務システムを主軸としながらウェブ開発も請け負っている会社も多いようです。

アプリ系は、業務システムにもウェブ系にもゲーム系とも重複するのでわざわざ切り離して考える必要があるのか微妙なところですが、業務向けではないコンシューマ向けのソフトウェア開発を指します。大きくはデスクトップアプリとスマホアプリに分かれますが、コンシューマ向けはスマホが主戦場だと思います。ゲーム開発は、技術的にはもっと総合的になりますが、広く捉えればアプリ系の一種です。

ウェブ系は、更にウェブアプリ開発とウェブサイト制作に分かれます。「ウェブ系」というとウェブサイト制作だけを指すこともあります。一方、「ウェブエンジニア」といえばウェブアプリ開発に携わる人を指すことが一般的です。

ウェブアプリ開発は業務システム系やアプリ系とも重なります。専用の機器(汎用機)を使用しない業務システムはウェブ技術に置き換えが進んでいます。WebAssembly(検索してね)によってこの流れは加速するものと思われます。また、スマホアプリには同時にウェブアプリを用意することも一般的ですし、スマホアプリ自体も両方のOSで動作するウェブ技術(HTML・CSS・JavaScript)に置き換わっていくかもしれません。

ウェブサイト制作は、今回取り上げる職業の中では独特の立ち位置で、「広告」の分野ともいえます。技術的にはHTML・CSSだけでなく、PHPを使うWordPressは現在でも広く使われていますし、JavaScriptを使ってウェブサイトの一部を自動生成するようにもなってきています。ウェブデザイナという非プログラミングな仕事もありますが、ウェブサイト制作の仕事を目指す場合もJavaScriptは勉強しておくとよいと思います。

ウェブ系は変化の激しい業界ではありますが、私の授業が楽しいと思う人にはぜひ狙ってほしい仕事ではあります。

そして、文理融合系の学生が軽視しがちなのが組み込み系です。組み込み系エンジニアは、家電をはじめとする電子機器や装置の中のマイコン(マイクロコンピュータ)上で動くプログラムを書く仕事です。C言語など古いプログラミング言語が使われたりしますが、技術的には大きな変化はなく、コードも比較的小規模になると思うので、数年訓練すれば文系思考の学生でも戦えるでしょう。女性人気はまだ低いので、有名家電メーカーへの就職も夢ではないと思います。

以上はアプリケーション開発の立場で説明しましたが、上記のいずれのエンジニアにもインフラに関わる人が出てきます。ウェブ系やアプリ系はサーバ・クライアント方式でシステムを構成するのが一般的で、例えばウェブエンジニアの中にもサーバやネットワークを担当する人がいます。切り口の違う「エンジニア」を並列して列挙すると混乱するのはこのためです。

C. システム開発の工程によって分ける

さて、だいぶ遠回りしましたが、いよいよシステムエンジニア(SE)の登場です。切り口Cでは、システム開発の工程によって◯◯エンジニア(というか仕事)を分けます。そのなかにシステムエンジニアが登場します。

システム開発の工程はBの切り口のジャンルによって変わるのですが、おおよそ次のようになります。

1. 要求分析・要件定義
2. 設計(外部・内部)
3. プログラミング
4. テスト(単体・結合・統合・運用)
[リリース]
5. 運用・保守

切り口Bのところで話していた内容はこのうちの「プログラミング」のところに当たるのですが、実はそれ以外にこれだけの工程(≒仕事)があり、これらにも◯◯エンジニアの称号が付けられていたりします。

この工程のうち、主に「要求分析・要件定義」「設計」「テスト」をするのがコアなシステムエンジニアです。コアな…とわざわざ付けたのは、SEがプログラミングや運用・保守を担当することも多いからです。プログラミングの中にはインフラ系の仕事も含まれるので、SE=なんでも屋という位置づけだったりします。

本学科ではプログラミングの授業が充実している(みんなの印象に残っている)と思いますが、就職先の業種としてはSEが圧倒的に多いです。なので、本当は「システム設計」や「システム設計演習」の授業がとても大事なのですが、あまり記憶している学生がいません。とても大事な技術・知識だと思うのですけれども…

また、SEの仕事の中には、開発チームにおける立ち位置という分類もあります。仕事はチームでやりますし、プログラミングやテストが別チーム(or 外注)の場合もありますので、それを取りまとめる人が必要です。プロジェクトリーダーやプロジェクトマネージャーといいますが、SEとしてレベルアップしていくといずれこれらの役職になります。就活時にコミュニケーション能力やスケジュール管理能力を問われるのはそのためです。

さて、文理融合系の学生の就職を考える上では、ここでも意識しておくべき仕事はあります。テストと運用・保守です。テストだけを専門とするテストエンジニアなる呼称もあるようです。運用・保守もサポートエンジニアと呼ばれ、納品したシステムや機器の定期点検・修理・苦情受付などをする仕事もあります。仕事にやりがいは求めないという人なら狙ってもいいですが、あまり楽しい仕事ではないかもしれません。

また、上記の工程の前段には仕事を取ってくる「営業」があるのですが、SEとして就職しても女性ということで営業に駆り出されることがあるみたいです(酷い)。「セールスエンジニア」と呼ばれたりもしますが、そんなにエンジニアの仕事ではありません。ただ、そもそもIT業界を考えておらず営業職を狙っていた人は、SEとして就職して「営業~要求分析」のプロになる…というのはありだと思います。ちなみに、この部分だけを指して「ITコンサルティング」という仕事に切り分けている場合もあります。

D. 使用技術の種類によって分ける

最後に、使用する技術の種類によっても◯◯エンジニアと呼ばれたりします。

セキュリティエンジニアやAIエンジニアなどがあり、AWSなどのクラウド技術をサーバ分野以外にも広げた「クラウドエンジニア」という言葉も聞きます。データベースを専門とする人をデータベースエンジニアと呼ぶこともあるようで、何でもありな気がします。

また、「エンジニア」とは付きませんが、データアナリスト(データを分析する人)やデータサイエンティスト(データアナリストの強い版)もこの切り口です。欧米先進国ではデータサイエンティストと並んで人気&高給取りが「グロースハッカー」という仕事です。詳しくは検索してほしいのですが、マーケティングとコミュニケーションの知識・技術が必要という点で、本学科にはマッチした仕事だと思います(なれるかどうかは別として)。

Bの切り口のアプリ系やウェブ系では、スマホやブラウザのユーザインタフェース部分に特化した技術を持つ人を「フロントエンドエンジニア」、サーバ側のプログラミングに特化した人を「バックエンドエンジニア」と呼んだりもしますが、この区分けもこちらの切り口によるものといえそうです。

このなかでも、文理融合系の学生にお勧めなのはセキュリティエンジニアです。これもまた奥の深い知識・技術が必要ですが、変化がそこまで大きくないことと、女性が少ないのも狙い目だと思います。年々需要が高まっているわりにはそこまで人気があるように思えません。AWSやGCPなどのクラウドも併せて勉強していけば、条件の良い会社を渡り歩けるエンジニアになれるかもしれません。勉強好きな人は挑戦してみてください。

この記事が気に入ったらサポートをしてみませんか?