みなさんシステムエンジニアというのはご存知でしょうか。
SEという略称で呼ばれることも多いですね。
今回はシステムエンジニアってなに?どういう仕事内容?といったさまざま疑問に答えていきたいと思います。
システムエンジニアとは
システムエンジニアとはその名の通り「システムを作る」人のことを指します。
具体的には、仕事などで効率化したいこと(課題)があるクライアントに対して、アンサーとなる仕組み(システム)をITを利用して解決する人のことです。
(そういった業務形態の企業をSI(System Integration)といい、システムエンジニアをSIer(System Integrator)と言ったりします。)
主な仕事内容としては、
クライアント(お客様)からどういった作業を効率化したいのかヒアリングを行いその内容をまとめる(要件定義)
↓
そこから作るシステム(サービス)の画面であったり機能であったり具体的に作る前に設計書を作成する(基本設計書、詳細設計書等作成)
↓
設計書をもとにプログラミングを行いシステム(サービス)を形にしていく(開発)
↓
作成したシステム(サービス)をテストして実際にクライアントの要求通りの動きをするか確認する(テスト)
↓
納品
という流れになります。
webエンジニアやアプリエンジニアとの違いは?
正直線引きは曖昧です。
システムエンジニアはある作業にITを駆使して効率化を行うのが仕事であるので、webやアプリを作成することもあるのです。
収入の面から見てもどちらも平均年収550万ほどでさほど変わることはないです。
プログラミングを行うというところも一緒ですね。
じゃあ全く一緒ってこと?
確かに似ている部分はありますが、細かくみると違いもあります。
基本的にwebエンジニアやアプリエンジニアなどはBtoCという形をとっています。
つまり、何か消費者にとって喜んでもらえるサービスを自分達から主導して作って発信していくという形態になります。
それに比べてシステムエンジニアはBtoBという形をとっています。
つまり、誰かから依頼や要求をもらって、それに対してサービスを作るという形態になります。
こういった目的の違いから働き方や使う技術に違いが出ます。
具体的には、webエンジニアやアプリエンジニアなどの自社開発を行なっているエンジニアは明確なクライアントというのは存在しないため比較的自由度が高いです。
服装も自由なことも多く、企業によっては働く時間も融通が効くこともあったりします。
さらにリリースしない限り売り上げは発生しないことや、作ったサービスの動作の数ミリ秒単位で使ってくれる利用者の数は変動するといった要因もあり、動作を早くできる新しい技術などを使用することが多いです。
システムエンジニアは、明確なクライアントというのが存在するためクライアントに合わせる必要があり、そこまで自由度は高くないことが多いです。
クライアントが早い時間に打ち合わせがしたいということになったら早い時間に始業する必要がありますし、納期を守れるかどうかがその企業の信頼になるので、納期に間に合わなそうだってなると残業が入ってくることもあります。
使う技術も作ったサービスの動作の速さは重要ですが、それよりも正確に動くことであったり、セキュリティがしっかりしているかということの方が重要であるため昔から使われている技術を使っていることも多いです。
ただし、コロナの影響もあり、システムエンジニアもリモートで働ける案件がすごく増えてきているのでそこに関しては自由度が高くなってきています。
システムエンジニアはオワコン?
実際システムエンジニアはオワコンといったことがよく言われたりします。
自社開発のエンジニアの方が格上と認識している人もいるでしょう。
理由としては以下の3つが挙げられます。
- 受託開発の案件はなくなっていくと予想される
- 他の国ではシステムエンジニアという職種はない
- 古い技術であったり技術力がそこまで問われないので移り変わりの早いIT業界では取り残される人材で溢れる
確かにこういった言い分も正しいんだと思います。
ただ、個人的には無くなるとしてもまだまだ先だと思っています。
それぞれの反論として
- 人間の欲望は終わらないから
- 「他の国がこうだから日本もこう」という主張は役立たないから
- 古い技術であろうが考え方は同じだし、結局その人次第だから
ということが挙げられます。
まず、「人間の欲望は終わらないから」というのについてですが、人間というのは欲深き生き物で便利なものができても無意識化では何かを欲しています。
つまり、何か効率化できたらさらにより効率化したくなるという欲も当然存在します。
なので「もうこれ以上より良くしたいことはない」ということは無くならないでしょう。
次に、「「他の国がこうだから日本もこう」という主張は役立たないから」ということについて、
例えば「寿司」について考えてみましょう。
寿司は日本食として有名ですが、外国では日本では見たことない寿司を提供していたりします。
日本が主流であるのならその国オリジナルのネタというのは衰退してなくなっているはずです。
なのに廃れることはなく現在もその国オリジナルの寿司ができていたりしますよね。
それは「その国ではその寿司が求められているから」なのです。
つまり、「他の国はこうだから日本もこう」という主張は何の意味も成さないのです。
最後に「古い技術であろうが考え方は同じだし、結局その人次第だから」というのは、そもそも技術というのは目的を果たすための手段でしかありません。
技術の違いは手段の違いなだけで、結果的に出来上がるものはそこまで大きな変化はないです。
むしろ古い技術の方がそもそもの技術のなりたちであったり古い言語はメモリ管理も自分で行う必要があるのでたくさんの知識を得ることができたり、できることが多くなるというメリットもあるのです。
確かにプログラミングに関して言えば、システムエンジニアは自社開発のエンジニアよりもプログラミングする時間はあまり多くないので技術力に差が出ることもあるかもしれませんが、プログラミング力というのは自分でいくらでも鍛えることはできます。
具体的なプログラミング力の鍛え方は以下を参照してください。
システムエンジニアにはどうやったらなれるの?
システムエンジニアは自社開発のエンジニアと比べると即戦力である必要性はそこまで高くないため未経験者募集の企業は比較的多いです。
なので自分でプログラミングやある程度ITについて勉強したら応募してみると良いでしょう。
具体的ななり方や勉強方法は以下を参照してみてください。
まとめ
システムエンジニアについて自社開発のエンジニア(webエンジニア、アプリエンジニアなど)を引き合いに出して紹介しました。
簡単にまとめるとシステムエンジニアは依頼のあった課題をITを駆使して解決する少し畏まった働き方をする職種になります。
なので、エンジニアになりたくて、でもシステムエンジニアかwebエンジニアやアプリエンジニアかはまだ迷っているという方は、
ゆっくりと力をつけていきたい、ある程度畏まっている方が自分に合っているという方はシステムエンジニアが良いでしょう。
より新しい技術に触れたい、自由度をある程度持って働きたい、といった方はシステムエンジニアを志すよりも自社開発の方が良いです。
結局は自分の性格や価値観などと照らし合わせて選ぶことが大事です。
エンジニア・プログラマーランキング