システムエンジニア(SE)という仕事は、IT全盛期の今では、とても有名な職種となりました。ひと昔前であれば、「えっ!?サウンドエンターテイナー??」などと間違われたSEがいた、という笑い話が嘘のようです。
また、少し前までは「将来性がある代わりに、徹夜や残業がある」というイメージが付いてしまっていたIT業界ですが、近年のブラック企業叩きの流れを受けて、無理な残業や徹夜はなくなってきています。
つまりIT業界の仕事全体が、将来性もあり労働条件も優れている仕事に変貌を遂げようとしているのです。
今から、IT業界に飛び込んでSEとしてのスキルを身に付ければ、間違いなく転職市場で引っ張りだこになれます。さらに、フリーランスとして独立したり、起業してWebサービスを開発したりするなど、人生の選択肢が広がるでしょう。
そこでこのページでは、「SEの仕事内容・SEのキャリアパス・SEになる方法」を解説します。
Contents
SEの仕事内容
はじめに、SEの仕事内容を解説します。今回は、顧客企業が「新しいシステムが欲しい」と考えてから、実際に納品して運用するまでに、SEがどのような仕事をしているかを解説します。
ちなみに、一言でSEといっても、その職種はさまざまです。現在では、開発寄りのSEからシステムを運用するSEまで、多くのジャンルのSEが協力して一つのシステムを構築しています。
実際に、これから一般的なSEの仕事内容を解説しますが、その中でも複数のSEが活躍しています。(そのため、仕事内容と合わせて、「その仕事ではどのようなSEが活躍しているか」についてもお伝えします。)
一般的なSEの仕事内容は以下の通りです。
- 要求分析
- 要件定義
- 基本設計
- 詳細設計
- プログラミング(プログラマー含む)
- テスト
- 運用
それぞれ順を追って解説させて頂きます。
1.要求分析
要求分析とは、端的にいうと、顧客の要求をヒアリングすることです。
要求分析では、顧客が欲しがっているシステムなどを聞き出しつつも、顧客の言いなりにならないように気をつける必要があります。顧客はシステム開発の専門家ではないため、より効率の良いシステムを知らないからです。
そこで、顧客の要望を聞き出した上で、「Aという機能を実現したいなら、〇〇ではなく△△という方法がありますよ」などのように提案できれば、顧客の満足度を高められます。
要求分析では、顧客が求めるシステムを構築できるかどうかを判断できる「技術力」だけではなく、顧客から要望を引き出す「コミュニケーション能力」も重要視されるのが特徴です。
2.要件定義
要件定義では、要求分析で顧客からヒアリングした情報を元に、どのようなシステムがあれば顧客の要望を実現できるかを考えます。
仮に、顧客側に潤沢な資金やシステム導入のための十分な時間などがあれば、理想のシステムが完成するはずです。
しかし、現実は予算に限りがあり、開発するシステムの機能を取捨選択する必要があります。そこで、機能の重要度などを検討して、「理想を現実に落とし込みながらも現場で使えるシステム」を決定するのが要件定義です。
3.基本設計
要求分析と要件定義で決定したシステムの完成図を元に、システムの全体像をざっくりと設計するのが基本設計です。操作法や機能など、システムの大まかな仕様を決めます。
なお、基本設計書は顧客も閲覧してヒアリングすることがあり、非技術者にも理解できる作りになっていることが多いです。
4.詳細設計(プログラマー含む)
基本設計で決まったシステムの仕様を元に、プログラマーがシステムを実装できるレベルに落とし込むのが詳細設計です。「どのようなアルゴリズムで処理を実現するのか?」、「データの保存に使う変数(データの格納場所)には何を使うか?」などの情報が記載されます。
詳細設計は、主にエンジニア向けの設計書です。SEだけではなく、プログラマーが参加して詳細設計を完成させることもあります。
5.プログラミング(プログラマー含む)
完成した詳細設計書を元に、プログラミング言語を用いてシステムを実装します。このとき、プログラマーだけにシステムを実装させるのか、SEがプログラマーの役割を兼任するかは、企業によって異なります。
少人数の開発会社や、技術力を重視する企業の場合、SEでもプログラミング作業に従事することが多いです。
6.テスト
プログラミング作業が終われば、ソフトウェアが正常に動作するかを確認する「テスト」が始まります。テストには、機能が単体で動作するか確認する「単体テスト」と、複数人が作ったソフトウェアを結合して動作を確認する「結合テスト」に分けられます。
一般的に、プログラミング直後のソフトウェアは、必ずバグが発生しているものです。ここで、いかにしてバグを取り除けるかで、システム導入後の顧客満足度につながります。
なお、要求分析~プログラミングまでは開発系SEの仕事ですが、テスト工程に関しては、専門の「テストエンジニア」が実施することもあります。その中でも、テストケースを作成するエンジニアと、作成されたテストケースを元にテストを実施するエンジニアに分類される現場もあるのが特徴です。
7.運用
完成したシステムを顧客先に導入しただけでは、プロジェクトが完了したとは言い切れません。新システム導入後はトラブルがつきものなので、システムの不具合を日々修正していく必要があります。
また、顧客先企業のIT担当者だけではシステム運用のノウハウを持っていないことも多く、大きな組織であれば、システムを運用する「運用SE」が顧客先の社内SEと協調して仕事をしています。
システムの不具合の修正、効率の良いシステム運用のための改善活動などを、次回のシステムが導入されるまで継続的に行っています。
まだまだ存在するエンジニアの仕事
ここまで紹介した内容で、一般的にSEと呼ばれる職種の仕事が理解できたと思います。
ただし、上記で紹介したSE以外にも、世の中にはまだまだ多種多様なエンジニアの仕事があります。
例えば、インフラエンジニアと呼ばれる人たちがいます。インフラエンジニアは、会社・大学・組織などで使用するサーバーなどを構築する役割を果たしています。
仮に、大学であれば、授業の成績照会システムなどのインフラを整えることになるでしょう。
このようなインフラエンジニアの仕事は、「どこの現場でも、使っている技術がそれほど変わらない」という特徴があります。つまり、SE以上に「技術がどこの会社でも通用するため、スキルを活かしやすい」ということです。
ほかにも、データベースエンジニアと呼ばれる職種もあります。これは、商品の売れ行きや購買層などの解析が重要になるビックデータ時代に注目されている職業です。
通常の会社ではプログラマーやSEがデータベースを構築しますが、高速なデータ処理が必要になる現場では、データーベースのスペシャリストが求められます。
このように、IT業界の重要度が増して市場が拡大する中で、職業は細分化されているのです。
どうすればSEになれるか?
次に、「どうすればSEになれるか?」を解説していきます。開発系のSEなのか、その他のSEなのかでも、なり方が違うため注意が必要です。
具体的には、以下のようにしてSEにステップアップします。
- プログラマーからステップアップ(開発系の場合)
- 下積みから始める(非開発系の場合)
それぞれ解説していきます。
1.プログラマーからステップアップ(開発系の場合)
開発系のSEになるための最も簡単な方法は、プログラマーからステップアップすることです。プログラマーは、SEが作った設計書を元に、実際にソフトウェアを開発する職種です。
一般的に、ソフトウェア開発の企業に入社した場合、SEの前にプログラマーの仕事を経験します。そこで十分に経験を積んでから、SEにステップアップすることでSEになれます。
例えば、僕がかつて働いていた開発会社では、始めはプログラマーとして活動して簡単な詳細設計とプログラミングを業務としていました。
その後、顧客先への導入作業などを含めた開発経験を積むことで、「徐々に基本設計を任せていき、最終的にはプロジェクトを任せる」というルートができていました。
このように、SEになりたいとしても、最初はプログラマーから始めるのが良いでしょう。
一部の大手会社ではプログラミングを軽視し、最初から設計しかやらせないこともあります。
ただし、開発経験の有無が、SEとして良い設計書を作れるかどうかのカギを握っていることは間違いありません。
プログラマーになりたいなら、以下の記事も参考にしてください。
2.下積みから始める(非開発系の場合)
開発系SEではない場合、下積みから始めるのが一般的です。比較的技術力がいらない仕事からスタートして、徐々に難しい業務を任せるのが順当なパターンです。
例えば、運用SEになる場合、まずは「運用オペレーター」という仕事を任されることがあります。これは、システムのトラブルを意味するアラートが発生した場合に、手順書通りに対策を取る仕事です。
このような簡単な仕事を経験したのち、システムの運用方法を考えたりシステムの設定をしたりする運用SEにステップアップする方法があります。
ほかにも、前述のテストエンジニアやインフラエンジニアの仕事であっても、最初はベテランが設計した仕組みを元に、下働きのような仕事に従事します。テストエンジニアであればテストの実施、インフラエンジニアであればパソコンやサーバーの設定作業からスタートすることになります。
このように、未経験を受け入れているIT企業に入社して、下働きからステップアップしてください。
キャリアパスは?
SEのキャリアパスを気にする人がいます。一昔前までは、35歳定年説が蔓延っていたIT業界ですが、実際には40~50代のエンジニアも現役で働いています。
ただし、ずっと下働きのSEでは、徐々に居場所がなくなっていくのも事実です。そこで、自分が目指したいキャリアを思い描いて、ステップアップしていくことで、末永くIT業界で通用するSEになれます。
具体的には、SEには以下のようなステップアップが存在します。
- 管理職
- スペシャリスト
- その他(教師、中小企業のIT担当者、IT系ライター、起業家)
近年、SEのキャリアパスは多様化しています。自分が目指すキャリアを実現したいなら、会社の言いなりになるのではなく、明確なビジョンを持つ必要があるのです。
1.管理職
最も一般的なキャリアパスの一つが、「管理職」です。通常のSEからプロジェクトリーダー(PL)になり、その後はプロジェクト全体をマネジメントするマネージャー職(PM)を目指していきます。
20代のうちは現場で多くの経験を積み、早ければ20代後半からリーダーとしての業務を始めます。その後、40~50代でマネジメント側に回るのが、一般的です。
ただし、管理職のポストには数に限りがあります。そこで、20代のうちから新人教育を行うほか、飲み会での幹事を引き受けるなどして、管理者側の素養があることを組織全体にアピールしていくのが良いでしょう。
2.スペシャリスト
技術力を卓越させて、スペシャリストとして生きていくのもキャリアパスの一つです。IT業界が多様化した現在、様々な分野でエキスパートが求められています。
例えば、前述したデータベースエンジニアであれば、データベースの設計次第でシステム導入後のコストが大幅に削減できます。自分に支払う報酬以上に会社に価値を提供できることが明確にしやすく、フリーランスのエンジニアとしても引っ張りだこになれるのがスペシャリストの特徴です。
3.その他(教師、中小企業のIT担当者、IT系ライター、起業家)
管理職とスペシャリスト以外にも、SEの経験が役に立つ業界が存在します。すべての企業にITが必須になった現在、SEとして経験を積むと一般企業でも活躍できます。
例えば、IT系の知識・スキルを教える教師としてのキャリアがあります。僕はIT系の専門学校に通っていたことがありますが、若ければ29歳の教師が教鞭をとっていました。
IT業界は日進月歩で技術が変わっていくため、若手がベテランより技術に詳しい状況も発生します。前述した29歳の教師は、年齢が若く現場から離れて間もないため、学生から人気の教師になっていました。
ほかにも、中小企業などでは、まだまだITに詳しい人間が少ない現状があります。そのような企業のIT担当者(社内SEを含む)になることで、自分の好きな業界で働くことができるのです。
例えば、「自動車が好きだから、自動車会社のIT担当者」のように、ITスキルを身につけることで好きな業界で力を発揮することもできるでしょう。
また、当サイトの管理人ヤマダの話になりますが、IT業界に精通することで、IT系ライターとしても活動することができます。SEは技術力一本で稼ぐ人も多く、IT系の記事を書ける人間は重宝されていました。
さらに、起業家のように「新たに事業を興す人」になる際も、SEとしての経験が生きてきます。技術力で受託開発を始めることもできますし、場合によっては新サービスを立ち上げる際に、自分でサービスを開発できるのです。
もし、あなたが非エンジニアであれば、一人のエンジニアを雇うのに月80~200万円程度支払う必要があります。これは、新サービス立ち上げ期には大きなコストになります。
SEを経験していたら、新サービスの開発から離れた後も、ソフトウェアの品質を見分けることは可能です。採用するSEのレベルも、見極めることができます。
このように、SEを経験するだけで、圧倒的に未来が広がるのです。
あなたが現在「フリーターやスキルの身につかない正社員」などの仕事に従事しているなら、SEへの挑戦はメリットしかありません。ダメで元々、上手くいけば将来の可能性が広がるIT業界で、未来につながる努力を始めましょう!