「プログラマー」とは違うのかな?
こんにちは、古賀です。
「システムエンジニア」って響きがいいですね。
「システムエンジニア」という言葉を、聞いたことがある方も多いのではないでしょうか?
でも実際は、
はてな
「どんな仕事をしているのか?」
「プログラマーと一緒じゃないの?」
「自分にもできるのか?」
と疑問に思うことも多いかもしれません。
本記事では、その「システムエンジニア」の「仕事内容」について、
わたしの経験も踏まえて、お話したいと思います。
自己紹介が遅れましたが、
わたしは大学卒業後、上場「SIer」企業に就職し、プログラマー、システムエンジニアとして
約10年間働いておりました。
「自社製品」&「自社完結型」の「SIer」企業でしたので、全システム工程を経験しております。
プロフィールの詳細はこちらです。
-
プロフィール
こんにちは、古賀正雄です。現在36歳です。 簡単ではありますが、こちらのページで自己紹介とこのブログについてお話します。 高校時代 学生時代は主に野球をしていました。 進学先の高校も野球で選びました。 ...
続きを見る
「システムエンジニア」の仕事を簡単に言いますと、
「システム開発において、設計やテストを担当する仕事」
と言えます。
これから上記詳細について、お話します!
※YouTubeで同内容を公開しております。
システムエンジニアとは?
まず「システムエンジニア」は、「SIer」業界の職種の1つになります。
「SIer」業界については、下記記事にまとめていますので、こちらをご覧ください。
-
SIer業界ってどんな仕事?独立系SIer企業で働いた経験からお答えします!
IT業界に挑戦したいけど、その中のSIer業界ってどういうとこなんだろう? 自分の能力に合っているかどうか、どんな仕事をしているか知りたい。。 IT業界と一口に言っても、そ ...
続きを見る
「システムエンジニア」は顧客からシステムに必要な要件をヒアリングし、設計書を作成します。
そして出来上がったシステムのテストを行い、システムの導入をサポートする仕事です。
もう少し詳しくご説明しますと、
「SIer」業界の仕事の流れは、下図のように、
「要件定義」から始まり、「受入テスト」へ流れていきます。
その中の、
- 要件定義
- 基本設計
- 詳細設計
- 単体テスト
- 結合テスト
- 受入テスト
が「システムエンジニア」の仕事の範囲になります。
「詳細設計」と「単体テスト」は企業により、
「プログラマー」が行う場合もありますので、範囲を半分としています。
これだけ見ると、
「広い範囲で仕事をするんだな~」
と思われると思いますが、複数人で仕事を分担することが基本です。
上級の「システムエンジニア」であれば「要件定義」のみ行うこともあります。
「システムエンジニア」の卵であれば、上流工程には参加せず、
テスト工程から参加する場合が多いでしょう。
また、プロジェクトの「スケジュール管理」や、「人員管理」、「工数見積」など、
「プロジェクトマネージャー」の役割を担うこともあります。
もちろん大きな規模のプロジェクトとなると、
別途「プロジェクトマネージャー」がいますが、
「システムエンジニア」は最終的に「プロジェクト管理者」にステップアップしていきますので、
徐々に「プロジェクト管理」としての仕事もするようになっていくでしょう。
ちなみに「インターネット・WEB業界」では「システムエンジニア」という職種はなく、
「プログラマー」と1セットで「WEBエンジニア」と呼ばれます。
システムエンジニアの仕事内容
「システムエンジニア」の各工程の「仕事内容」を、掘り下げてご説明していきます!
要件定義
顧客からシステムに必要な要件をヒアリングすることを「要件定義」と言います。
「システムエンジニア」の中でも最も重要な仕事になりますので、
上級「システムエンジニア」が担当することが多いです。
「どのような業務を行っているか?」
「どのようにシステムを活用しているのか?」
「手作業となっている部分がシステム化できないか?」
と様々な目線でヒアリングをします。
最終的にヒアリングした内容をまとめ、
どのような方向で要件を満たすかまとめた資料「要件定義書」を作成します。
駆け出しの「システムエンジニア」は、
打合せに同行し「議事録」や、打合せで使用する「資料」を作成したりします。
要件定義の詳細は、こちらの記事でまとめています。
-
システム開発における要件定義とは?要件定義書の中身や要件定義の進め方について
こんにちは、古賀です! 今回は「要件定義」についてお話します! 要件定義は、 システムエンジニアの重要な仕事であり、 システム開発プロジェクトの出発点です! ...
続きを見る
基本設計
要件定義で決めた内容を基に、
実際のシステム上の、
「画面設計」
「画面の動き」
「各画面の繋がり」
「使い方」
などを、「基本設計」工程で決めていきます。
上記内容をまとめ、
「基本設計書」
を作成していきます。
大規模プロジェクトとなると、
基本設計工程から「システムエンジニア」の人員を増やすことが多いです。
ここまでが顧客と実際に打合せを行い、プロジェクトを進めていきますが、
「詳細設計~結合テスト」までは、開発企業の中だけで、プロジェクトを進めていきます。
基本設計の詳細は、こちらの記事でまとめています。
-
システム開発における基本設計とは?基本設計書の成果物や進め方について
こんにちは、古賀です! 今回は「基本設計」についてお話します! システム開発プロジェクトは要件定義を終えると、 「基本設計」工程に移っていきます。 基本設計工 ...
続きを見る
詳細設計
基本設計の内容を実際にプログラムができるように、「詳細設計」を作成します。
基本設計は「顧客目線」で作成しますが、詳細設計は「プログラマー目線」で作成します。
「このボタンを押したら登録する」
「この場合はエラーとする」
というように事細かに、設計書を作成していきます。
基本的に詳細設計は「システムエンジニア」が作成しますが、
企業によっては「プログラマー」に詳細設計をお願いすることもあります。
実際わたしが「プログラマー」をやっていた頃は、詳細設計を作成することも多くありました。
単体テスト
詳細設計通りにプログラムが動作するか、確かめる作業が「単体テスト」です。
単体テストも「システムエンジニア」だけでなく、「プログラマー」が行う場合もあります。
「画面デザインのサイズは正しいか?」
「登録、削除が正しく処理されるか?」
など、細かくテストをします。
単純作業が多く、システムの理解が深まることから、
「システムエンジニア」の卵が、最初の仕事として行うことが多いです。
こちらの記事で説明しています。
-
単体テストのやり方!高品質かつ効率の良い単体テストの方法とは?
いきなり「単体テストをやれ!」って言われても、何をしたらいいかわからん。。 クソ真面目にやると、めっちゃ時間かかるし。。 どんな感じで進めていけばいいんだろう? こんにちは ...
続きを見る
結合テスト
基本設計通りにプログラムが動作するか、確かめる作業が「結合テスト」です。
一つ一つのプログラム動作を確認するのではなく、
各プログラムの繋がりをテストします。
「○○プログラム」で登録した内容を「××表」で確認できるかなど、
実際の使い方に沿って、テストを行います。
受入テスト
実際にシステムを使って業務が行えるかどうか、
顧客側がテストを行うことが「受入テスト」です。
「システムエンジニア」は、「受入テスト」を行っている顧客からの質問や操作をサポートします。
受入テスト前に「操作説明書」を作成し、「操作説明会」を行うことが一般的です。
単体テストや結合テストを行った「システムエンジニア」の卵が説明する機会も多いです。
「操作説明会」が「受入テスト」をスムーズに進めれるかどうかのカギになります。
運用保守・その他
システムが稼働する際、または稼働後の「運用保守サポート」も「システムエンジニア」の仕事です。
また顧客と金額交渉を行う際、営業メンバーのサポートすることもあります。
前項でお話した「プロジェクト管理」も仕事の1つです。
「システムエンジニア」のメインの仕事は、「設計」や「テスト」になるかと思いますが、
非常に幅広く仕事があり、キャリアとともに変化していきます。
自分に合った仕事内容を見つけて、その分野を磨いていくことも良いでしょう!
システムエンジニアとプログラマーとの違いは?年収は?
今までのお話でお気づきかと思いますが、
「プログラマー」は実際にプログラムを作成し、
「システムエンジニア」はプログラムの設計書を作成します。
建設業で例えると、
「システムエンジニア」は「設計者」であり、
「プログラマー」は「大工」ですね。
「SIer」業界は、まず「プログラマー」としてキャリアをスタートして、
徐々に「システムエンジニア」へステップアップすることが多いです。
もちろん個々の能力を見て、
「プログラマー」を続けたり、
「プログラム」が苦手だから早めに「システムエンジニア」になる、
といったこともあります。
ただし、年収は一般的に「システムエンジニア」の方が高いです。
「SIer」の業界的に「開発工程」を下請け企業が担当することが多く、
得られる利益も多くなく、何より「プログラマー」という職種が下に見られがちです。
わたしは自社完結型の企業でしたが、「システムエンジニア」の方が年収は高く、出世します。
両方経験したからこそ分かるのですが、やはり「責任」の重さが違います。
直接顧客の前に立ってプロジェクトを進めますから、
責任の重さは「プログラマー」より重いでしょう。
「プログラマー」のミスを「システムエンジニア」が負うこともあります。
上流工程を担当する「責任」や「難しさ」が、
「システムエンジニア」の方が給料が高い理由です。
システムエンジニアにプログラムの知識はいるのか?
「開発自体はやらないんだから、プログラム知識はなくて大丈夫そうだ!」
と思われるかもしれません。
例外はありますが、プログラムの知識は「必要」です!
プログラムの知識がないと、基本設計を行う際に、
その設計した内容で、プログラムが作成できるかどうかの判断がつきません。
また、運用保守を行っている最中にトラブルが起きた場合、
トラブルの原因を突き止めるためにもプログラム知識が必要です。
さらに言うと、
プログラム作成にかかる「工数の見積」、
プログラマーに優しい「詳細設計」、
システム入替時の「データ移行」など
挙げればキリがありません。
とはいえ、ほとんどの「SIer」企業が「プログラマー」として、
キャリアをスタートさせてくれるはずです。
その期間に最低限の知識が身につきますので、不安にならなくても大丈夫ですよ!
文系でもシステムエンジニアになれる?未経験でも大丈夫?
「最初はプログラマーからスタートか。。じゃあ文系の俺は無理か。。」
と思われるかもしれませんが、文系でも問題ありません。
わたしの元職場でも、文系理系関係なく、システムエンジニアとして活躍していました。
むしろコミュニケーション上手な文系出身者の方が、
うまく立ち回って活躍しているところをよく目にします。
完全未経験でも問題ありません。
徐々にステップアップしていけば大丈夫です。
継続して勉強できるどうかの方が大事です。
不安がらずに挑戦してみてください!
まとめ:システムエンジニアとは?
ここまでの話をまとめます。
まとめ
<システムエンジニアの仕事>
・顧客からシステムに必要な要件をヒアリングする「要件定義」
・顧客の要望をシステムでどのように実現するかを示す「基本設計」の作成
・プログラマーがプログラムを作成するための「詳細設計」の作成
・「詳細設計」通りに動作するか確認する「単体テスト」
・「基本設計」通りに動作するか確認する「結合テスト」
・顧客がシステムを使って実際に業務を行えるかどうか確認する「受入テスト」のサポート
・その他「プロジェクト管理」、「運用保守サポート」
<プログラマーとの違い>
・プログラムは行わないが、「プログラム知識」はあらゆる場面で必要
・年収は「システムエンジニア」の方が高い
・「プログラマー」から「システムエンジニア」へステップアップすることが一般的
実はわたしは学生の頃、
「システムエンジニア」とはどんな仕事かあまり理解もせず、
この「SIer」業界に入りました。
「パソコンカタカタするんだろうなぁ。。」と思ってましたが、
実際はお客さんと話したり、プログラマーと話したりと、
人と話すことが多いです。
「どんなふうに話せば伝わるか?」
「どんなふうにしたら使いやすいか?」
働いている時は、そんなことばかり考えていました。
常に相手の気持ちを理解しようとしている方に向いている仕事だと思います。
もちろんシステムの知識は必要です。
ただ、それだけではありません。
お客さんの業界の知識や業務を学んだり、
メール、議事録、設計書を始めとした文章の書き方、
電話対応、打合せでの話し方など、
求められるスキルも多いです。
その分ビジネスマンとして成長できる環境でもあります!
「人として成長したい!」と思われたならぜひ挑戦してみてください!
まとめ記事に戻る
-
未経験からエンジニアへ!エンジニアデビューから年収1000万までの完全ロードマップ!
※本記事は、各記事のまとめ記事です。 こんにちは、古賀です! 本記事では、 「プログラミング未経験者がエンジニアとして働き、 年収1000万に到達するまでの道のり」 をご説 ...
続きを見る