「SE(システムエンジニア)って最近人気の職業だけど、実際には何をするお仕事なの?プログラムを書いたことがないと全然出来ない?」
システムエンジニアに興味があっても、何の仕事をしているのかよくわかない。という人が多いのではないでしょうか。システムエンジニアはプログラムを書くこと以外にも多岐に渡った仕事内容があるのでここでは解説していきます。
目次
システムエンジニアとは
システムエンジニアとは、簡単に言えばシステムを作る人のことを言います。システムとは何か?と言われると今やシステムはみなさんの生活になくてはならないものになっています。
みなさんが普段使っているスマホのアプリもすべてシステムエンジニアが作っています。YoutubeやTwitterやInstagramもすべてシステムです。システムエンジニアが売り手市場と言われている理由はシステムが生活の必需品となっているのでそれを作ることができるシステムエンジニアは世の中に大いに必要とされているということです。システムエンジニアは細かくいうと20種類以上に分けられるのですが、今回はシステム開発に特化した業務を説明したいと思います。
- システムを作る人がシステムエンジニア
- システムエンジニアは売り手市場
システムエンジニアの業務内容
先ほど説明したようにシステムエンジニアはシステムを作る仕事になります。そしてシステムを作るには決まった内容に沿って仕事をすることになります。システムを作る流れは以下のようになります。
「企画/構想」「要件定義」「基本設計」「詳細設計」「開発」「テスト」「保守/運用」
何を言ってるのかよくわからないと思いますが、それぞれ詳細にこれから説明していきます。ただしこれは難しく考える必要は全然ないです。例えば家を建てる時のことを考えてください。家を建てる時は、どんな家にしたいか考えて、ハウスメーカーと相談して家のレイアウトを考えてもらって、家の設計をして、大工さんがそれを作って、住んでからもメンテナンスをしていく。これをシステム開発でも同じことをします。それを上記で書いたような言葉で表現しているだけになります。それではそれぞれの詳細について説明していきましょう。
- システム開発は以下の工程で構成される。
- 「企画/構想」「要件定義」「基本設計」「詳細設計」「開発」「テスト」「保守/運用」
企画/構想
企画/構想はシステムエンジニアとは少しだけ毛色の違う、ITコンサルタントが行うことが多い仕事になります。普通のシステム開発では省略されることが多い工程になりますが、とても大事な工程になります。具体的には将来の事業目標に対して課題を洗い出して、その課題に対してITの導入を提案する仕事になります。難しく聞こえますが、実際にこの工程はとても難しいです。経営層と将来の目標を同じ目線で語りあう知識と信頼関係コミュニケーション能力が必要になります。また課題にフィットしたITソリューションを提案する必要があるため、システムの知識も必須になります。ただ、この将来の事業に対してのアクションは企業にとっては非常に大事で需要はとてもあります。
実際にITコンサルタントは業務内容の難しさと需要の大きさから給料はとても高額になります。体験談になりますが、これまで一番高かったコンサルタントは1カ月500万の報酬をもらっていました。うらやましいです。
- 経営層と事業のビジョンを語り合う
- ITコンサルタントは高収入💰
要件定義
企画/構想は課題を洗い出すことが必要ですが、多くのシステム開発はすでに課題ややりたいことは決まっていることが多いです。自動化したい、紙を無くしてデータ化したい、便利なサービスを作りたい。お客さんやユーザーからやりたいことを聞き出してどういった要件があるのか、どういったシステムで実現するのかを要件定義書として作ります。家作りで言うと、2階建てにする、どこにキッチンを置く、部屋の間取りはどうする等になります。システムエンジニア=プログラムが必要と考えている人がいますが、要件定義はプログラムが書けなくてもよいです。ユーザーからどういったシステムを作りたいのか、どういうことを実現したいのかを聞き出せる能力があれば実施できる仕事になります。ゴリゴリの理系で学生時代にプログラムもやってました!という人ではなく、文系の人で相手の言いたいことやりたいことをくみ取る能力のほうが必要になってきたります。もちろん、ここでもシステムの話はでるのでプログラムをできることに越したことはないですが、必須ではないです。
- ユーザーの実現したい内容・要件をまとめる
- まとめた内容をシステム化する
- プログラミング能力は必須ではない
基本設計
要件定義を元にシステムにどういった機能を持たせるかを決める工程になります。ここでは実際にシステムを使うことを考える能力が必要になります。どこにどういったボタンを配置したら使いやすいのか。どういった項目をどこに表示させればよいのか。ユーザーが使っている場面を想像しながら基本設計を行います。システムを作ったあとにユーザーに使ってもらった場合に良く言われることが、「こんなシステム使えないよ」です。実際に使う人の業務内容や年齢、性別を意識せずにシステムを作ってしまうと、使いづらいシステムができることが多いです。システム開発では、上流工程と言われる、要件定義/基本設計が非常に重要になってきます。ここで8割方決まると言っても過言ではないです。家作りでも、同じことが言えます。世界一の大工さんが家を作ったとしても、建築士が家の設計をするときにリビングの中にトイレを作るように設計してしまったら台無しですよね。
- システムのレイアウトや機能を考える
- システム開発において非常に重要な工程
詳細設計
詳細設計は基本設計を元に、機能ぞれぞれに対してどうやってシステムを作るか説明書になります。基本設計は一般の人が見てもどういった機能があるかわかる資料に対して、詳細設計はプログラマー向けの設計書を作る工程になります。家作りで言うところの大工さんがどういった手順でどういった手法で家を組み立てるかになります。この工程からはプログラムの知識が必要になってきます。ここまで来たらわかると思いますが、システム開発においてプログラムが必要な場面は以外と少ないです。もちろん、プログラムはこの後の工程で必要でとても大事な工程になりますが、一般的に上流工程(要件定義/基本設計)と下流工程(開発/テスト)では上流工程のほうが報酬や給料は多くもらう傾向になります。それくらいシステム開発では上流工程が重視されているということですね。
- プログラミングの知識が必要になる
- プログラミングの設計書を作る
開発
ここでは詳細設計書を元にプログラムを書く工程になります。プログラムを書くことをコーディングといいますね。正直に言ってしまうと、詳細設計書が高品質で書かれている場合は、コーディングは詳細設計書通りにするだけなのでプログラムが書ければ誰でもよいことになります。ただし、詳細設計書が高品質で書かれている場合が多いというとそうでもないです。ある程度コーディングする人が詳細設計書からやりたいことを汲み取ってコーディングすることが多くあります。そういった場合は、コーディングになれた人が考えてエラーのでないようなコーディングをする必要があります。本当はよくないんですけどね(笑)。ここまで見ると、ITコンサルタントや上流工程ができるシステムエンジニアのほうが給料も高いし重要度も高いから必要なのではないか?と思いますよね。わざわざプログラムを覚える必要がないじゃんと。またまた家作りの話になりますが、同じで基本的に設計する人は少ないです。それに対して家を建てる人は1人ではできないです。複数に集まって家を組み立てていきます。システム開発も同じで上流工程の人数に対して開発する人は多いです。そのため、プログラムできる人が一般的に多く必要になってきます。また設計書さえきちんとしていたらある程度プログラム能力があれば問題ないので、経験が浅くても十分戦力になります。上流工程は、業界や業務に対しての知識、システムに対しての知識など専門的な知識が多く必要になるため経験が浅いとおすすめはできません。そのため、未経験の人はまずプログラミングスクールに通って開発工程から経験することがとてもおすすめになります。
- コーディング(プログラミング)をする工程
- 上流工程に対して要員が多く必要になる
- 未経験はプログラミングから始めることがおすすめ
- プログラミングスクールに入りましょう
おすすめプログラミングスクール
初心者向けから実践的なスキルを身に付けるまで幅広くカバーしたオンラインスクールです。マンツーマンの指導で学べるため、自分のペースで確実にスキルを身に付けることができます。また、卒業後の就職・転職サポートも充実しています。
未経験に特化した学習環境を提供しておりプログラミングを触れたことがない、パソコンに自信がない人も安心して利用できます。
また、学習中にプロのITエンジニアがサポートすることによってプログラミング学習で良くみられるわからなくなり挫折ということがなくなります。
特定の条件を満たした場合に返金保証があることも特徴です。
テスト
テスト工程は作ったシステムが思った通りに動くかの確認になります。テストの種類にもいろいろありますが、全部目的はちゃんとシステムが作られているかの確認になります。テスト工程も非常に大事で、ここを疎かにしてしまうと、とてつもない問題を抱えたシステムが世に出てしまいます。特に銀行系や電子マネーなどのお金を取り扱うシステムが不具合を起こしてしまうと取り返しのつかないことになります。そうならないためにもシステム開発の中でテストを行い問題がないか確認することが非常に大切になります。
- システムに問題がないか確認する工程
- 導入後にシステムに問題があった場合に大問題になる
保守/運用
保守/運用はシステム開発が終わって実際に使われ始めたあとに行う工程になります。使い方の問い合わせを受けたり、システムに何か問題があったときに調査を行います。実際にはシステム開発をする部隊と保守をする部隊は分かれていることが多いです。ここではシステムの機能や使い方を覚えることが非常に大事です。また、24時間稼働するシステムであれば問い合わせや問題があったときに対応する部隊が24時間常に交代勤務をしている場合があります。システムを開発するというより維持することを重要として工程になります。
- 導入後にユーザーをサポートする工程
- サービスの稼働時間によっては夜中勤務もありえる
まとめ
システム開発これほど多くの工程を通してシステムが作られていきます。またそれぞれの工程で必要なスキルが変わってきます。これまで出会ってきた人の中でも、プログラムが全然できない人や設計が全然できない人がたくさんいます。本当に小さいシステム開発でない限り、一人でシステムを作ることはできないので、自分の得意な分野に着目してやりたい業務を見つけるのがよいでしょう。
- 工程によって必要なスキルが違う
- 世の中にはプログラムができないシステムエンジニアはたくさんいる
まずは何を始めれば良いか
IT業界に興味はあるけど、これだけ多くの工程があって何をすれば良いかもっとわからなくなったという人もいるでしょう。そんな人はまずはプログラミングから実施することがよいと思います。実際に私も私の周りもプログラミングから初めて徐々にその他の工程でもできるようになりました。プログラマーは仕事がいっぱいあること、システム開発において問題を起こしてもリカバリーしやすい工程であるからです。上流工程をまったくの未経験で実施して問題が発生した場合はリカバリーするのに非常に時間とお金がかかります。なので未経験OKのシステム会社に入社するか、プログラミングスクールでコーディングを学ぶことをおすすめします。
おすすめプログラミングスクール
初心者向けから実践的なスキルを身に付けるまで幅広くカバーしたオンラインスクールです。マンツーマンの指導で学べるため、自分のペースで確実にスキルを身に付けることができます。また、卒業後の就職・転職サポートも充実しています。
未経験に特化した学習環境を提供しておりプログラミングを触れたことがない、パソコンに自信がない人も安心して利用できます。
また、学習中にプロのITエンジニアがサポートすることによってプログラミング学習で良くみられるわからなくなり挫折ということがなくなります。
特定の条件を満たした場合に返金保証があることも特徴です。