仕事

【現役エンジニアが語る】システムエンジニアの仕事は大変?仕事内容と苦労すること

まつ
まつ

こんにちは、IT業界で約20年間システムエンジニアとして働いている管理人の「まつ」です。

IT業界で長いことシステムエンジニアとして働いていると、いろいろな経験をします。

「楽しい仕事」や「やりがいのある仕事」はもちろんありますが、大変なこともたくさんあります。

本記事では、現役エンジニアである管理人の経験から「システムエンジニアは何が大変なのか」、このテーマについて紹介します。

システムエンジニアの仕事内容

システム開発はお客様の要望をシステム化する仕事です。

例えば、お客様から「社内の勤怠を管理するシステムが作りたい」という依頼があったとします。その依頼を具体的にどうすれば実現できるかを提案し、システム化していく仕事です。

システム開発には主に次の工程があります。

  • 要件定義:お客様の要望を聞き、どうすれば実現できるか提案し、実現方法を明確にする。
  • 基本設計:要件定義の内容からお客様向けの設計書を作る。
  • 詳細設計:要件定義と基本設計の内容からプログラマー向けの設計書を作る。
  • 開発:設計書を見ながらプログラマーがプログラムを作る。
  • 試験:作成したプログラムが仕様どおりに動くか確認する。

要件定義~詳細設計までの工程を「上流工程」、開発~試験までの工程を「下流工程」といいます。

そして、システムエンジニアは主に「上流工程」を行います。(ただしシステムエンジニアでも、現場によっては開発や試験をすることもあります。)

システムエンジニアは何が大変なのか

お客様の要望を聞いて、システム化を提案するには知識が必要

知識が必要

要件定義の工程では、お客様お要望を聞いて、どうやればシステム化できるか検討します。

システム開発は基本チームで行うため、要件定義に参加しているメンバーはリーダークラスだったり、チーム内の有識者だったりします。知識の浅い若手社員が要件定義に参加することは基本ありません。

なぜなら要件定義には幅広い知識が必要だからです。

お客様の要望を聞いて、どうすればシステム化できるか検討するのです。幅広い知識がなければ、お客様にシステム化の提案はできません。

また、お客様のIT知識レベルに合わせて話をする必要があるので、お客様が理解できるように話し方を工夫する必要があります。

なかにはIT知識の高いお客様もいて、お客様からITの専門用語が次々と出てくることも。

まつ
まつ

やばい・・・その用語知らないんですけど。

お客様が話す言葉が理解できない、そんなことはよくあります。

理不尽なお客様の対応

理不尽なお客様の対応

理解力のあるお客様の場合はよいのですが、なかには理不尽のお客様もいます。

お客様との打ち合わせでは、打ち合わせの内容を議事録に残しておくのが一般的です。議事録を残しておくことで、会議で何を話したのか、何を決定したのかなどの情報が記録に残ります。

人の記憶は曖昧で、すぐ忘れてしまう生き物です。会議の内容を議事録に残しておくことで、後から確認できます。

僕が過去に携わっていた案件で、お客様試験のときに「こっちが思っていたのとは違う」と言われたことがあります。ただその内容は打ち合わせの席で、議論し決めた内容です。議事録にもしっかり残っています。

そのため、お客様には「○月○日」の打ち合わせの中で、決めた内容のとおりに作っております。と説明したのですが、まったく納得してくれませんでした。

お客様試験の工程まで進んでいるので、作る直すには時間がかかります。その分のリスケを提案したのですが、「うるせーやれ」と言われました。さすがに理不尽すぎると思い、議事録を見せたのですが、「こんなのは知らない」と言われました。

システムエンジニアとして約20年間働いていますが、ここまで酷いお客様はこの人しか見たことがありません。

ここまで理不尽なお客様はなかなかいませんが、あきらかに仕様変更の内容を、もともとそういう仕様だったみたいに言ってくるお客様は意外にいます。(仕様変更だと追加にお金がかかるので、仕様変更にしたくない)

システムエンジニアの役割は重要

重要な仕事

システムエンジニアの仕事はお客様との打ち合わせだけではありません。

要件定義の内容からプログラマーが開発できるように設計書を作る必要があります。

システムエンジニアのメイン仕事である「要件定義」と「設計」、この2つはプロジェクトが成功するために重要な工程です。

システムエンジニアはお客様とプログラマーの間に入り、どちらにもわかるように説明・設計するのが仕事です。

「お客様 - システムエンジニア」間で認識祖語があると、お客様の要望どおりのシステムは作れません。

また「システムエンジニア - プログラマー」間で認識祖語がある場合も同じです。

そのため、お客様が理解できるレベルの資料を作り認識合わせをします。そして、プログラマーが見て開発できるレベルの設計書を作ります。

このようにシステムエンジニアはプロジェクトが円滑に進むように、いろいろな人とコミュニケーションを取りながら仕事を進めていく必要があります。

終わりに

本記事では「システムエンジニアは何が大変なのか」というテーマについて紹介しました。

大変なことばかり書いているので、システムエンジニアの仕事は大変だと感じたと思います。

ただ、システムエンジニアはやりがいのある仕事です。

世の中の生活を便利にしているITという技術。システムエンジニアはこのIT技術を使いさまざまなものをシステム化しています。

苦労することも多いですが、その分 達成感を感じることも多いです。

僕も長いことシステムエンジニアとして働いていますが、やりがいのある仕事だと思っています。

-仕事