システムエンジニアってどんな仕事?現役SEが赤裸々告白!

「システムエンジニアってどんな仕事なんですか?」
最近、婚活に勤しんでいる私ですが、相手方の女性から良くこのような質問を受けます。

この質問、簡単そうで難しいんです。私もかれこれシステムエンジニアとして15年以上働いていますが、未だに「システムエンジニア」という定義がわからないところがあります。

ただ、この質問はこれからシステムエンジニアになりたいと思っている方にとって、とても興味があるものなのではないかと思います。

そこで、現役システムエンジニアであるわたくしがシステムエンジニアを目指しているあなたに、システムエンジニアとはどんな仕事なのか、赤裸々に解説していきたいと思います。

システムエンジニアとは

冒頭でも少し書きましたが、システムエンジニアの定義は結構曖昧であり、どんな仕事なのか一言で表すには難しいです。例えば、現役のシステムエンジニアにこの質問をすると、人によってバラバラな回答が返ってくることも珍しくありません。

例えば、

SEってどんな仕事ですか?
  1. お客さんと話して仕様書を書き直し、プログラマーと話して仕様書を書き直し、納品後も仕様書を書き直し続ける人
  2. プログラムの開発からコンピュータの設定までなんでも請け負う「よろずや」的存在
  3. プログラムも書かずにエンジニアを名乗っている世界的に稀な存在

あまり良いイメージが湧きませんね。2と3なんかは相反していますが、どれも間違いではありません。どれに当てはまっても、みんな「システムエンジニア」と名乗って仕事しています。

ではなぜこのように定義が曖昧なのでしょうか。その答えを考えていく前に、世の中に出回っている一般的な正しいシステムエンジニアの定義について見てみましょう。

正しいシステムエンジニアの定義

システムエンジニアの正しい定義はすばり、「上流工程を担当するエンジニア」です。

システム開発の一連の流れを図にすると以下のようになります。

システムエンジニアとはこれからどのようなシステムを作り上げていくのか、お客さんから要求を聞き出し仕様書・設計書(ドキュメント)に起こす作業をする人のことを言います。。

例えば以下のようなイメージです。

お客さんお客さん

コロナ禍において在宅勤務率が高くなったが、従業員の作業や進捗状況を管理しづらくなった。何か良い解決策はないかな?

システムエンジニアシステムエンジニア

わかりました。ではまず、現状はどのように作業、進捗管理を行っているか教えてください。

お客さんお客さん

①担当者には日報をメールで提出させる。
②リーダーは各担当者から届いた日報メールをチェックする。
③リーダーは日報メールから各担当者の作業、進捗状況を把握し、翌日の作業指示を出す。
こんな感じで行ってるよ。

システムエンジニアシステムエンジニア

なるほど、これだとリーダーの方は日報メールをチェックする負担が大きそうですね。担当者の方も日報を作成するために毎日余計な手間がかかっていそうです。また、各担当者の作業状況を把握できるのはリーダーだけになってしまい、担当者間でのコミュニケーションも取りづらくなっているのではないでしょうか。

お客さんお客さん

そうなんだよ。日報は終業時に記入し提出させているため、リーダーは勤務時間外にしか確認できないんだ。外回りの業務も多く、日報を書くためだけに帰宅してからパソコンを起動しないといけないという不満もでている。何より、リアルタイムでの情報共有ができないので、遅延状況の把握が遅れて困っている。

システムエンジニアシステムエンジニア

メールだと、日報以外のメールも色々混ざってしまうため、管理が煩雑になるでしょうし、書くのも読むのも手間がかかるでしょう。
外出先からでも確認できるようクラウド上で日報を管理しましょう。テンプレートをいくつか用意し、日報作成の負担を減らせるような仕組みを取り入れた日報管理システムを開発しましょう。

お客さんお客さん

うーん、しかし、そのシステムを導入したら具体的にどのような効果が見込めるのかね?

システムエンジニアシステムエンジニア

従来の日報作成にかかっていた時間を10分とし、その半分の5分で作成できると仮定すると、社員100人に対して年間3000時間以上の業務時間を削減できます。さらにチーム内でのコミュニケーションが円滑になることで業務の効率化も図れます。

といった感じで、お客さんとやりとりし、システム化を図る上でかかるコストと効果を資料にまとめ、お客さんに納得頂ければ、晴れてシステム開発を受注することになります。ちなみに最近今回の例のような相談を良く受けます。もっと早くこのニーズに気づいていれば・・・。

システムエンジニアの仕事はこれで終わりではありません。むしろここからが大変です。まず、お客さんの要件、要望をさらに突っ込んでヒアリングし、システムの仕様を決定します(システムの仕様書を作成する)。仕様がある程度固まったら、基本設計、詳細設計と進めていきます。予算や人員、進捗管理などのマネジメント業務も忘れてはいけない大切な仕事です。

詳細設計の成果物である詳細設計書には、プログラマーがプログラミングをするために必要な、細かな設計内容が書かれています。プログラマーはこれを見て、プログラムを作成(コーティング)していくことになります。

結局システムエンジニアって何なの?

これまでは、「正しいシステムエンジニアの定義」について記載してきました。ここで話を元に戻して、現役のシステムエンジニアに、「システムエンジニアとはどんな仕事か」聞いたときに返ってくる回答はバラバラだということでした。

SEってどんな仕事ですか?
  1. お客さんと話して仕様書を書き直し、プログラマーと話して仕様書を書き直し、納品後も仕様書を書き直し続ける人
  2. プログラムの開発からコンピュータの設定までなんでも請け負う「よろずや」的存在
  3. プログラムも書かずにエンジニアを名乗っている世界的に稀な存在

何故、こんなにバラバラなのか。その理由を簡単にまとめると、現場は生きものであり、「正しいシステムエンジニアの定義」という枠に必ずしもきれいに当てはめられるわけではないためです。

まず、1について。お客さんは、あらかじめ伺っていた予算からかけ離れた無茶な要求を結構出してきます。要件定義では落としどころを探りながらそのギャップを埋めていく工程とも言えるわけですが、全てのギャップを埋めきれないまま設計を進めていき、プログラマーはこんなスケジュールと人員では無理だと指摘する。お客さんとプログラマーの板ばさみになり、仕様書をころころ書き直すことになる。さらにシステムが完成した納品後も、不具合が見つかったが、「それは仕様だ」と押し通し、機能改修として追加のお金をもらって仕様書から書き直すといった感じです。

2について。プログラマーが無理だといったら自分でやるというカッコいいシステムエンジニアです。

本来、3が正しい姿です。健全なスケジュールのもと、システム開発を遂行できれば言うことなしの最高のシステムエンジニアと言えます。ただし、中には、プログラマーに命令だけだし、あとは知らんといった態度をとる人もいます。そういう人の下についたら、いわゆる「デスマーチ」という悲惨な月日を過ごすことになる可能性が高いです。私も若い頃ありました。

システムエンジニアは大変?

システムエンジニアは大変かどうかの質問については「大変です」が回答となります。楽な仕事ではありません。ストレスで体調を崩される方もいます。ただそれは別にどの業界でも同じことです。

IT業界ではシステムエンジニアが不足しているため、高度な知識やスキルを持っていれば引く手あまたの状態です。大変な職業ではありますが、その分やりがいがあるのは間違いありません。

システムエンジニアについてのイメージが少しでも掴めたでしょうか。この記事を読んだだけでは、システムエンジニアを目指してみてたいとまで思うことはないかもしれません。今後もシステムエンジニアの仕事内容や気になる年収などについての記事を書いていこうと思います。そうした記事を読んで、自分もシステムエンジニアになってみたいと考えてくれる方が現れたら幸いです。