システムエンジニアとは?仕事内容ややりがい・魅力なども!
システムエンジニアって何者なのでしょう。
就活サイトなどでは詳しくこんな人~なんて説明がありますが、カチッとした説明はそちらにおまかせして、ここでは私が歩んできたシステムエンジニア人生を振り返って、完全なる独断と偏見で、私を含め私が見てきたシステムエンジニアの世界を紹介したいと思います。
※あくまで私の意見ですので、その辺りはご了承くださいませ!
システムエンジニアとはざっくりシステムに携わる人。その仕事内容は多種多様!
「システムエンジニアとは」と検索してみると、だいたいこのように書かれていると思います。
システムエンジニアの役割は、クライアントにヒアリングを行い、要求に最適な仕様のシステム開発を行うことです。
(引用元:https://mynavi-agent.jp/it/jobindex/04.html)
「システム開発の上流工程をする人」などと書かれているかもしれません。
もちろんあっています。
これらの人たちは純粋な?開発案件に携わっているシステムエンジニアです。
例えばこんな感じです。
クライアントが業務効率を図るために、今まで紙ベースで管理していた顧客情報をシステム化したい!と考えていたとしましょう。
システム化するとリアルタイムでデータが参照できるし、欲しい情報を検索もできるし便利ですね。
はい、ここでシステムエンジニアの登場です。
まず、クライアントにシステム化することでどんなことを実現したいのかなどをヒアリングし、具体的にシステム化する内容・実現方法を検討します(要件定義)。
- 紙ベースで管理していた顧客情報をデータベース化することで、いつでも参照・登録・編集・検索ができる
- データベース化することでデータ消失のリスクを抑える
などなどですね。
システム化する内容が決まったら、それを元に設計図を作成(基本設計)していきます。
- 画面レイアウト
- 入力値に対する処理や出力項目の編集方法
- データベースで管理したい項目
などなどを決めていきます。
そして、更にそれをプログラミングできるようにもっと細かく設計をしていきます(詳細設計)。
詳細設計書が出来上がったら、プログラマーに詳細設計書を渡してプログラミングしてもらいます。
システムエンジニアはプログラマーが作成したプログラムが仕様通りに動いているかチェックをするためにテスト仕様書を作成します。
その後、テスターにテスト仕様書を渡し、テストを実施してもらいます。
テストが完了したら、クライアントに納品するための手続きをクライアントとコミュニケーションしながらやっていきます。
開発案件のシステムエンジニアの役割はざっくりこんな感じです。
「要件定義・基本設計・詳細設計・プログラミング・テスト(単体テスト、結合テスト)」という流れを説明しましたが、これを開発工程と言います。
小さなシステムの場合は、プログラミングもシステムエンジニアが行うこともありますし、テストも行います。
みなさんが思っているシステムエンジニアは主に↑のような感じではないでしょうか?
でも実際の現場では開発工程に沿った開発案件ばかりではありません。
システムを動かすための環境を構築する人であったり、システムをリリースした後のメンテナンスをする人、運用をする人、人員・お金を管理する人、などなど様々な人達が生息しています。
これらはネットワークエンジニア、インフラエンジニア、プロジェクトマネージャなどとそれぞれ分けて呼ばれる単語がありますが、実際はこれらの単語が定義する内容のことだけをやっているわけではないのです。
大きな案件では明確に分かれていることもありますが、中小規模の案件の場合は、環境構築もすれば、保守運用、プロジェクト管理など、何でもやります。
やっている本人たちも自分はXXエンジニアだ!と思ってやっている人も少ないのではないのかな?(笑)
私の周りだけでしょうか??
ある意味なんでも屋ですので、私の中の勝手な定義は、システムエンジニア=システムに関わっている人です。
ここには反論もあるかもしれませんが、ざっくり私はこう捉えています。
という私ですが、システムの世界に入った頃は、テスターから始まり⇒プログラミング⇒設計⇒要件定義⇒プロジェクト管理という王道?!の道を歩みました。
ですが、プロジェクト管理はとっても苦手(苦痛)だったので、そこをなるべく避け、現在は、保守運用、問い合わせ対応、とはいってもちょこっとプロジェクト管理、テスト設計、テストなどなど、複数のシステムを持っているので割と何でもやっています。
特化したスキルを持つエンジニアは、そのスキル専用で契約をすると思いますが、多くのシステムエンジニアはシステムにまつわる色々なことをやっていると思います。
そしてびっくりする人もいるかもしれませんが、プログラミングをやったことのないシステムエンジニアも割といるんですよ。
システムエンジニアのやりがい・魅力は
一般的なやりがい・魅力は、それこそ転職サイトなどに書いてある通りだと思います。
私は人それぞれ感じ方が違うのかな?と思っていますので、私の感じていることをお伝えしますね。
まず、システム開発は面白い!です。
システムが出来上がってく過程に携われて、また出来上がったシステムが動いたときはとっても感動します。
もちろんその間は、システムエンジニアってキツそうって思われているようなイメージどおり、残業たくさんできついこともあります。(最近はあまりないかもしれませんが・・・)。
でも、でもですよ、システムが出来上がってリリースされたとき、この上ない達成感を感じることができます。
そして、そのシステム開発を通じて技術スキルだけではなく人間スキルも磨くことができます。
実はシステムエンジニアって、技術よりもコミュニケーションスキルが大事だったりします。
プロジェクト内のコミュニケーションがうまく行ってないといいものが作れないですからね。
そして、技術スキル・人間スキルを身につければ、誤解を恐れずに言うとどこででも食べていけます。
独立もできます。
プログラミングが得意な人は、自分で受注できれば好きな時間、好きな場所で働くこともできますね。
私はプログラミングがすごく好きというわけではないのでできませんが・・・。
そして、これは完全に個人的なことかつ、話が飛んでしまうかもしれませんが・・・。
私は子供のころから謎解きが大好きでした。
クロスワードとかミステリー小説(これは自分が謎を解くわけではないのですが・・・)とかとか。
目の前にあるものから、回答を導き出すために推測して、試して、謎を説いて、さらに新しい発見をする。
そんなときがとてもワクワクするのです。
私の中で、システムエンジニアという仕事はこのワクワクする瞬間を与えてくれるものです。
エラーが発生したときの対応、システムに関する問い合わせ時の対応、システムでの実現方法の模索など、どれも私にとっては謎解きであり、謎を解いた後に新しい発見があります。
なので、私の場合は、システムエンジニアという仕事を通じて、私の知的好奇心を満たしている感じです。
だから・・・プロジェクト管理などの仕事は向いていないのですね(笑)
振り返ってみると、システムエンジニアでなくても、謎解きの楽しさを与えてくれるものであれば、他の職種でも良かったのかもしれませんが、今の仕事がしっくり来ているのでこれはこれで良かったなと思っています。
もし、どんな仕事を選んだらよいのか迷われているのであれば、自分が好きだったこと得意だったことを思い出してみてください。
私の場合は「謎解き」だったのですが、どんな小さなことでもワクワクすることがあれば、それを満たしてくれる仕事を探してみたらいいのではないかと思います。
それは他人目線ではなく、自分しか分からない自分の心なのですから、きっと自分がしっくりと来る答えが導かれると思います。
システムエンジニアの世界は、システム開発の基礎が身に付いていれば、先が広がっていくと思っています。
やっぱり開発が楽しいと思えれば開発現場でずっと現役、管理が楽しいと思えればプロジェクト管理、クライアントとのコミュニケーションが楽しいと思えればコンサルなど、可能性は色々あると思います。
そうするには、仕事をやりながらでも自分のスキルの棚卸しをしてみてくださいね。
なんだか、システムエンジニアのやりがい・魅力とはずれてしまったかもしれません・・・。
まとめ
システムエンジニアの仕事内容、やりがい・魅力を紹介しました。
私が思っていることですので、もしかして他の見方もあるかもしれませんが、ざっくりこんな感じです(笑)。
もし興味があるのなら、ぜひシステムエンジニアの世界へ!