SEと言えばパソコンの前に座ってカタカタする仕事と思われがちですが、実際はもっと幅広い仕事を担当する職種です。
パソコンの前でプログラミングを行う人は厳密にはプログラマーという職種に分類されます。
もちろんプログラマーとSEは異なる職種です。しかし、イメージとしてプログラマー = SEと思われていることが現実です。
しかも、システム開発 = プログラミングと思っている方も多いですが、もっと地味な裏方である作業を行うためのSEも存在します。
SEという職種は業務の範囲が広く、「SEになりたい!」というだけでなく、もっと深掘りして、「SEの『中の』どのポジションを担いたいか」まで考えなければなりません。
SEの仕事内容の大全集として、基本的な業務内容から、さらに深掘りしてあまり知られてないような裏方の業務内容を紹介します。
また、プログラマーを初めたとしたSEに関わりのある職種も紹介しますので、IT業界におけるSEのポジションも理解できるはずです。
SEを目指すすべての方の参考になるように作っておりますので、ぜひ参考にしてSEの業務選びや面接などで活用していただければと思います。
目次
SEの仕事内容一覧
SEはプログラミングするだけが仕事ではありません。もちろんプログラミングもします。しかし、それは一部であって全部ではないということです。
『開発の流れ』における役割と、
『開発を担当する場所(技術)』における役割でそれぞれ分かれます。
少しややこしいですが、ゆっくりと見ていきましょう。
開発の流れにおける仕事内容の違い
システム開発の主流はウォーターフォールモデルという開発モデルで進んでいきます。
図の通り、
- お客様と交渉する人(要件定義)
- 仕様書や設計書を作成する人(設計)
- プログラミングする人(開発)
- プログラミングの品質を確認する人(納品)
の流れでシステム開発は進んでいきます。
1、2と3、4で大きな違いあり、
上半分は上流工程と呼ばれていて、システム全般の流れや設計を決める重要な役割を担っている立場です。どちらかというと、人を管理する立場にいます。
下半分は下流工程と呼ばれていて、プログラミングやテスト(品質のチェック)といった実作業をメインに行う立場です。上流工程からの指示に従って行う立場にいます。
詳しくは以下にまとめていますので参考にしてください。
→ 上流工程と下流工程の違い
このように、システム開発の流れの中でどこを担当するかで、作業内容が大きく異なることがお分かりいただけましたでしょうか?
プログラミングがしたくてSEになった人は下流工程が担当できるSE会社に入らなければいけませんし、
お客様との対応やシステム全般の設計を行いたくてSEになる人は上流工程が担当できるSE会社に入らないといけないということです。
開発を担当する場所(技術)における仕事内容の違い
プログラミングするだけではシステムは完成しません。
プログラミングが動く場所を用意して、それらを相互に繋げなければ、システムは動かないのです。
SEの中でも担当する技術の分野によって呼び方が決まっています。〇〇エンジニアという言い方をするのですが、それぞれの技術の役割に応じたSEの仕事内容を見ていきましょう!
アプリケーションエンジニア
まずは多くの人がSEのイメージ像として捉えているアプリケーションエンジニアから紹介します。
実際にシステムの目に届くような部分を担当することも多いのがアプリケーションエンジニア。
Webシステムであれば、多くの人が目にする画面を設計したりもします。日の目を見やすいという意味ではSEの中でも花形のポジションかもしれません。
多くのプログラミング言語を駆使して要求されたシステムを効率よく作っていくことがアプリケーションエンジニアの仕事で、実際にシステムを作った実感をより具体的に持つことができます。
プログラミングのスキルを伸ばしていきたい方はアプリケーションエンジニアが向いていますね。
サーバーエンジニア
サーバーエンジニは、アプリケーションを支える技術であるサーバーを専門に扱うエンジニアです。
アプリケーションはコード書いて終わりと思っている方もいるかもしれませんが、そのコードが動く環境があって始めて成り立ちます。
独学でプログラミングを始めようとしてコードすら書く前に諦めてしまう人が多いのは、環境設定が難しいからです。コード書く前にそこで躓いてしまうわけですね。
このようにアプリケーションの土台となる部分はとても重要で、人の目に触れることは決してないのですが、なくてはならない存在なのです。
アプリケーションを支える土台のことをサーバーと呼び、この中でシステムに応じた最適な設定を施していくのがサーバーエンジニアの役割です。
サーバーの設定が、アプリケーションの性能に大きく関わってきます。システム開発においてサーバーエンジニアは縁の下の力持ち的な存在です。
ネットワークエンジニア
サーバー一台で動かすシステムはほとんどなく、多くの場合はそれらをネットワークで繋げて動かしています。一台でない理由は、処理が一台だけでは追いつかないためと、何かあった時のバックアップ用として待機させておくためですね。
システムは動いていることが当たり前という大きな使命を背負っています。企業においてはインフラ的な存在になっているわけですね。ですから通常は、1つのサーバーが止まっても待機しているもう一台にすぐに切り替えられるような設計をして安定的な稼働を担保しています。
ネットワークの技術は変わりにくく、SEの中でも変化が少ない職種とされています。
システム開発の全体像
色々な用語が出てきたので一度整理しておきましょう。
仕事の流れと、技術の違いで仕事内容が異なることを紹介しました。
仕事の流れでは、設計書などを作る上流工程のエンジニアとプログラミングなどを行う下流工程のエンジニアがいます。
技術の違いでは、実際にシステムの表側を担当するアプリケーションエンジニア。そして裏側を担当するサーバーエンジニアとネットワークエンジニアがいましたね。これらは部署の違いと考えてもらうといいでしょう。
アプリケーションを担当する部署A。サーバーを担当する部署B。ネットワークを担当する部署C。
そして、それぞれの部署の中で、上流工程のエンジニアと下流工程のエンジニアが分かれて仕事を進めていきます。
要するに、
- 上流工程を担当するアプリケーションエンジニア
- 下流工程を担当するアプリケーションエンジニア
- 上流工程を担当するサーバーエンジニア
- 下流工程を担当するサーバーエンジニア
- 上流工程を担当するネットワークエンジニア
- 下流工程を担当するネットワークエンジニア
と細かく分けると6つの役割に分類することができます。
この中で勤めている人数が一番多いのは下流工程を担当するアプリケーションエンジニアです。
圧倒的に数が多いのが下流工程のアプリケーションエンジニア
世の中で「SEはパソコンの前でプログラミングする人」という認識になっている一番の要因は、
下流工程を担当するアプリケーションエンジニアが一番多いからです。
本来であれば6つに分けられる(本当はもっと多いですが)SEの仕事内容を、下流工程のアプリケーションエンジニアだけをSEだと勘違いして、「SEになりたい」と言っている不幸な人がいます。
一生にわたって下流工程のアプリケーションエンジニアでよければSEではなくプログラマーという職種を選んだ方が天職だと思います。
参考 → SEとプログラマーの違い
すべてを俯瞰(ふかん)した上で下流工程のアプリケーションエンジニアを選ぶことはいいですが、下流工程のアプリケーションエンジニアこそがSEだと思っている人は、もっと勉強してから転職したほうが身のためです。
SEのキャリアプラン
SEの仕事の全体像がなんとなく分かったところで、SEのキャリアプランを見ていきましょう。
実は、SEという職種はめちゃくちゃ丁寧にキャリアプランが設定されており、The サラリーマンといいますか、レールに乗ればそのまま走ってくれるような安心感があります。(あくまで乗り続けていれたらですが・・・。)
SEのキャリアプランとは何なのか。見ていきましょう。
SE → PL → PM
よくわからない英単語が並びましたね・・・笑
そもそもSEも知らない人からしたら意味不明な単語ではあるのですが。
それぞれの単語の意味は以下のとおりです。
- SE・・・システムエンジニア
- PL・・・プロジェクトリーダー
- PM・・・プロジェクトマネージャー
SEの出世ルートは
SE → PL → PMという流れで進んでいきます。
もっと細かく言うと、
↓
↓
↓
という流れですね。
Pのプロジェクトとは、1つのシステム開発を行う上での単位みたいなものです。
システム開発が始まると「プロジェクトが始まった」と表現しますし、システム開発するにあたって作られたチームは「プロジェクトチーム」という呼び方がされます。
- SEとは、プロジェクトの作業員
- PLとは、プロジェクトのリーダー、まとめ役
- PMとは、プロジェクトの責任者
なんとなく理解できるかと思いますが、SEである以上は、平社員です。
多くの会社ではPLから役職が付き始めます。PMはマネージャー職ですから、その上は部長や役員といった流れですね。
多くの人は、SEの下流工程からスタートします。
下流工程で経験を積み、上流工程へ移り、さらに経験を積みます。下流工程と上流工程を経験すると、システム開発(プロジェクト)における全体の流れを俯瞰(ふかん)して眺めることができるようになります。
信頼を積み上げて「よし、そろそろリーダーを任せてみるか」と思われたらPL。プロジェクトメンバーをまとめる立場になるため責任感が増しますが、やりがいも増します。
そして、PLでマネジメントの経験を積み、マネージャー職であるPMへ移って行くという流れが一般的なSEのキャリアです。
まだいっぱいある!その他のSEの仕事内容
「その他」という不思議な見出しですが、
- アプリケーションエンジニア
- サーバーエンジニア
- ネットワークエンジニア
以外のSEについて紹介していきます。
なんでもかんでも名前が付くようになり、いっそのことSEという職種でくくるのではなく分けたほうがいいのではないかと思う今日このごろです。
では1つずつ簡単に紹介していきます。
社内SE
社内SEとは、IT会社でない会社のシステム開発を担当する人のことを言います。
例えば、化粧品会社の中にあるIT部署といった感じですね。
社内SEの仕事内容は、社内のIT関して実現した様々なことを解決することです。
先程紹介したように、アプリケーションエンジニア、サーバーエンジニア、ネットワークエンジニアなどで分かれていることはほぼなく、
全部を担当しなければなりません。
その為、一般のIT会社のSEよりも知識が広くないとやっていけない仕事でもあります。一方で社内の案件しかないため風通しがよく一般的なSEによく起こりうるコミュニケーション上のトラブルや疲れは起こりにくいです。
社内SEについては以下でさらに詳しく書いていますので参考にしてください。(けっこう辛辣なことを書いています)
→ 社内SEに未経験から転職なんて無理!
データベースエンジニア
商品情報や顧客情報などデーターとして出し入れするようなものはすべてデータベースという情報の集まり場所に保管しています。
データベースの管理は一般的にはアプリケーションエンジニアの範囲内で行われることが多いですが、開発の規模によってはデータベースエンジニアという役割を作り、データベースの設計から管理を任せることがあります。
大規模システムではデータベースの設計によって、システムの性能が大きく変わってくる、とても重要な役割です。
最近は、ビックデータの活用が話題になっていますよね。今後はますます重要な存在になってくるかもしれません。
セキュリティエンジニア
IT会社にとって一番やってはいけないことはなんでしょうか?
個人情報の流出ですね。数年前にベネッセで大規模な流出がありました。あれから更にセキュリティ意識が高まりました。
国家が運営する「情報処理技術者試験」の上位資格の中でもっとも人気なのが、「情報セキュリティスペシャリスト」になります。
データベーススペシャリスト、ネットワークスペシャリスト、プロジェクトマネージャーの資格を上回り断トツです。
SEの中でもセキュリティに詳しい人はほとんどいない現状があり、どこの会社もセキュリティの知識がしっかり身についている人間がほしいのです。
システム開発の中でのセキュリティのリスクや、ネットワーク犯罪に対する施策、対応などを行うことがセキュリティエンジニアの仕事になります。また、情報漏えいは企業の信用の失墜に繋がるため、セキュリティエンジニアに求められるスキルは高く、責任感も大きい仕事です。
組込みエンジニア(エンベデッドエンジニア)
最近はあらゆるものがインターネットに繋がるIoT(Internet of Things)がトレンドとなっていますよね。
冷蔵庫が「チーズの賞味期限まであと○日です」と教えてくれたり、テレビの予約を外から行えたり、コーヒーマシーンに入れると「使ったよ」と娘に届くなんてサービスもどこかのメーカーがやっていました。
これらは、モノに対してプログラミングを埋め込むことで実現しているわけですが、組み込みエンジニアは、そのモノへのプログラミングを担う仕事を行います。
分かりやすいところで言うと、スマホやタブレット。
先程も紹介したような冷蔵庫もそうですし、車やカーナビ、居酒屋にあるタッチパネルなんかも組み込みエンジニアが作っています。
わたしたちも実際に使えますし、実際に目に見える形で世の中に出ていきます。
自分の成果が分かりやすい形で残るため、「これわたしが開発したんだよ」とSEの中では人に自慢しやすい仕事ではあります笑
ブリッジSE
オフショア開発という言葉をご存知でしょうか?
海外の方と協力しながらシステム開発を行っていくという方法で、主に大きめなIT企業で盛んに行われています。
海外の人とやり取りするため、基本は英語の文書など交流します。
ブリッジSEとは、国際化の流れの中で誕生したSEです。日本と海外との橋渡し的なコミュニケーションを行うことが仕事になります。
技術的な内容はもちろんのこと、英語や、その国に応じたコミュニケーションのとり方など、ITの知識と英語の知識両方が必要となる仕事です。
今の社会では、ITと英語ができれば生きていけると言われている中で、その両方がマストスキルとなっているブリッジSEはもしかしたら現代社会において最強の職種かもしれません。
SEの近くで仕事する職種
もう少し範囲を広げてSEの周りの職種を見ていきましょう。
SEよりもさらにお客様よりに位置する仕事です。
ITコンサルタント
ITコンサルタントとは、企業の経営に対してIT技術で改善の提案を図ることが仕事となります。
その会社の経営によりそって、「御社が問題だと感じている〇〇の問題は〇〇のIT技術を使うことで解決できます!なぜなら~」みたいな提案をするわけですね。
SEはいいシステムを作れることを目的としていますが、ITコンサルタントは企業の経営がさらに上向くことを目的としています。
ITの知識はもちろんのこと経営に関する知識やマーケティング感覚、プレゼン力、人間力などあらゆるスキルが必要です。
給料がいいため、SEからI Tコンサルタントへ転職したいという人も多いですが、求められるスキルが大きく異なるため、中々難しいのが現状です。
ITコンサルタントになりたい人はITの知識だけでなく、マーケティングも勉強するといいでしょう。
セールスエンジニア
企業から仕事を取ってくることは基本的には営業の仕事です。セールスエンジニアも営業と似ていています。
営業と一緒に客先に出向き、技術的な観点から提案を行い、仕事を獲得することが仕事になります。
よく営業が的はずれなスケジュールで仕事を取ってきてSEから激怒されるなんて場面が映画やドラマであったりしますが、セールスエンジニアがいることで、現実的なスケジュールや内容の仕事を受注してくれるのです。
セールスエンジニアはSE的な視点と営業的な視点の両方が必要になります。
仕事を取ってこなければならないため、気質としては営業のようなガツガツした感じの人が向いています。
システムエンジニアの年収
今紹介したシステムエンジニアの参考として年収を紹介します。
SEは仕事内容で選ぶべきというのがわたしの持論ですが、もちろんお金も大事です。
参考:30代エンジニア2180人に聞いた平均年収の実態と満足度|【Tech総研】(http://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=002284)
職種 | 年収 |
---|---|
ITコンサルタント | 652万円 |
アプリケーションエンジニア | 510万円 |
サーバーエンジニア | 575万円 |
ネットワークエンジニア | 547万円 |
プロジェクトリーダー | 不明 |
プロジェクトマネージャー | 733万円 |
データベースエンジニア | 不明 |
セキュリティエンジニア | 不明 |
エンベデッドエンジニア | 不明 |
ブリッジSE | 不明 |
社内SE | 510 万円 |
セールスエンジニア | 不明 |
まとめ
SEの仕事内容でした。
多くのサイトで紹介されているSEの仕事内容はアプリケーションエンジニアの話であって、全てではありません。
SEになりたいのであれば、「どの」SEになりたいのかを考えないと後悔の残る転職になってしまうかもしれません。
プレイヤーのままでいいのか、マネジメントもしたいのか、
プログラミングがしたいのか、サーバーがしたいのか、
同じSEでも仕事内容は全然違います。
ぜひSEの仕事内容についての理解を深めて、職種を選ぶ際の参考にしていただけたら幸いです。