最近、IT業界へ転職したい方向けのプログラミングスクールができたり、ITに特化した転職サービスができたりとIT業界が賑やかになってきていますね!
大学でITを4年間勉強してきた自分もそうだったんですが、
そもそもシステムエンジニアってどんな仕事をするの?
と思っている方もいるのではないでしょうか?
そこで今回は、ITについて全く知らない方でも「わかった!」と思えるように、システムエンジニアの仕事内容を徹底解説します!
【本記事の信頼性】
この記事を書いている私は学生~社会人まででプログラミング歴9年ほど。
過去には、ITエンジニアの国家試験である「基本情報技術者試験」「応用情報技術者試験」にも合格しています。
システムエンジニアとは何か?
そもそもシステムエンジニアとは一言で表すと
システムを作る仕事をする人のこと
です。
つまり「作業を効率化したり、お客様が困っている問題を解決するためのシステムを作る人」のことをシステムエンジニアと言います。
そもそも「システム」と言われてもイメージしづらいかと思いますので、具体例を使って説明します!
具体例:居酒屋の予約管理システム
例えば、居酒屋の予約管理を例に考えてみましょう。
この居酒屋はこれまで紙で予約を取っていましたが、予約やキャンセルの連絡が多く、紙での管理が煩雑で分かりづらくなっていたため、予約管理をするためのシステムを導入することにしました。
この場合の問題は「紙での予約管理は煩雑で分かりづらい」です。
この問題を解決すべく、システムを作る人のことをシステムエンジニアと呼びます!
システムエンジニアの仕事内容とは?
システムエンジニアの仕事内容はズバリ、
システム開発の中で要件定義~システム設計・テストまでの工程を担当すること
です。
よ、よくわからない・・・
言葉で聞いただけではよくわからないかと思いますので、次はシステム開発の流れを説明します。
システム開発の流れを説明します!(具体例あり)
システムだけ説明するとなかなかイメージが付きづらいので、システム開発の流れを「家を建てる工程」と比較して説明します!
システム開発の流れ
具体例:家を建てる流れ
システムエンジニアとプログラマーの違いは?
システムエンジニアと似ている職業として「プログラマー」という職業があり、システムエンジニアとプログラマーはそれぞれシステム開発の中での役割が違います。
それぞれの役割を以下の表にまとめました。
このようにシステムエンジニアとプログラマーの職業は工程で分かれています。
ただ自分の経験としては、上記のように仕事が分かれている現場は少なく、システムエンジニアもプログラムを書く場合が多いので、システムエンジニアでもプログラミング技術は身に着けておいた方が良いと思います!
システムエンジニアに必要なスキル
問題解決能力(問題を解決する力)
お客様がシステムに求めることとは、
- お客様の問題を解決する
- システムを使うことによって効率化する
がほとんどです。
つまり、問題を解決する力はシステムエンジニアとしてとても重要なスキルになります。
また、システムを作る過程で「プログラムが思った通り動ない・・・」など様々な問題が発生します。システムエンジニアにはその問題を迅速に解決する能力が求められます。
プロセス設計力
プロセス設計力とはつまり、目標を達成するための方法を順番に考える力です。
例えば、予約管理システムの場合は、予約の重複を避けるため「予約が埋まっていた場合、新しい予約を入れることができないようにする」など、予約管理のシステムを作るためには何が必要かを考える力のことを指します。
システム開発が上手くいくかどうは「要件定義・システム設計」で決まると言っても過言ではありません。よって、プロセス設計力はシステムエンジニアにとって、とても重要なスキルだと思います。
コミュニケーション能力
システムエンジニアにとって重要なことは
お客様の要求を正しく理解してシステムの仕様を検討すること
です。
なぜ正しく理解することが重要なのかと言うと、
システムを作る目的というのは、「お客様の問題を解決する」という所にあり、その問題を正しく理解できなければ、システムでの解決もできません。まずはお客様の要求を正しく理解する所からシステム開発は始まるからです。
また、システム開発中に問題が発生した場合、お客様がわかる言葉に噛み砕いて、正確に状況を説明する必要があります。
さらに、システムは一人では開発できず、基本的にチームで開発を行います。チームで開発するということはコミュニケーションがとても重要になります。
正直なところ、個人的にはコミュニケーション能力が一番の必須のスキルではないかと思っています。
システムエンジニアの実態(実体験)
システムエンジニアの楽しい所・辛い所
〇楽しい所
- お客様の要求を一緒に練り上げて物を作り上げることができるところ
- チームで意見を出し合いながら、力を合わせてシステムを作っている時
- システムが完成した時の達成感を感じた時
×辛い所
- システムや技術が目に見えないため、技術的な難しさをあまり理解してもらえない
- プログラムが魔法のようになんでもできるものと思われることがある
- システムを知らない人に、状況を説明するのが難しい
IT業界はなぜ激務と言われるの?
- そもそも開発途中の要件変更が多い
- システムは目に見えないため、変更が難しい要件の場合も、必要があれば変更しなければならない
- 要件変更が発生しても納期をずらせない場合が多い
上記のIT業界が激務と言われる理由は、家を建てる例で考えると以下の通りです。
- そもそも開発途中の要件変更が多い
⇒ 家を建てている途中で「1部屋増やしてほしい」と言われる
- システムは目に見えないため、変更が難しい要件の場合も必要があれば変更しなければならない
⇒ 家を建てて内装がほぼ完成した段階で、「1階建てだったけど、やっぱり2階建て変更にして欲しい」と要件が変更になる
- 要件変更が発生しても納期をずらせない場合が多い
⇒ 上記2つの要件変更に対応した時でも、納期をずらすことができない場合が多い
つまり個人的な意見ですが、システムは目に見えないので、難しさがわかりにくいという状況が「IT業界激務」という状況を生んでいるのではないかと思います。
まとめ
システムエンジニアとは一言で表すと
システムを作る仕事をする人のこと
です。
作業を効率化したり、お客様が困っている問題を解決するためのシステムを作る人のことをシステムエンジニアと言います。
そしてその仕事内容は、
システム開発の中で要件定義~システム設計・テストまでの工程を担当すること
です。
私はシステムエンジニアとして働いていた5年間の中で、チームで仕事をする楽しさや開発が上手くいかない辛さなど色々な経験をすることができました。システムエンジニアを経験して良かったと感じることは、現場で働けたことで技術が身に着いたことです。
現在、IT市場は盛り上がっていて人が不足している状況です。ITは今後も拡大していく市場だと思いますので、システムエンジニアに興味がある人は、一度挑戦してみても良いと思います!
※「プログラミングとは何か?」について知りたい方はこちらをご覧ください。