同じ"エンジニア"でも全然違う!エンジニアの働き方分類と求人の見方まとめ
はじめに
タイトルからこの記事を開いた方はエンジニア志望、ないしこれからエンジニアを目指そうとしている方でしょうか。
では、この記事を開くとき、エンジニアとはどんな仕事でどのような働き方であるかをイメージしていましたか?
一口に"エンジニア"といっても、パソコンで一日中プログラミングする仕事もあれば
デスクで書類とひたすら向き合ったり、作業服を着てヘルメットをつけて行うエンジニアもあります。
※エンジニア(engineer)の語源はラテン語の「ingenium」、中世では"水車技師"もエンジニアと呼ばれていたそうで、広く技師という意味があります。
さて、巷によく聞く"エンジニア"は情報系エンジニア、ITエンジニア、ICTエンジニアと呼ばれるものですので、
今回はこれらの機械系では無いエンジニアについてまとめてみました。
なお、こちらはエンジニアってよくわからないです(^q^)エンジニアの働き方なんて知りません( ゚Д゚)という人向けに解説しているので、ゲーム系とか、自社サービス運用といった経験者向けの職種は基本的に端折っています。
エンジニアの働き方について
概要 (忙しい人向け)( ゚Д゚)
エンジニアのキャリア・働き方は基本的に案件内容と職種と受注形態でだいたい決まります。
例えば
エンジニアとして長く安定して働きたい
→ キーワード「中〜大規模案件の運用・保守」「(クラウド系)インフラエンジニア」「受託」
エンジニアになって色々なものを沢山作りたい
→ キーワード「小規模案件開発」「アプリ/Webエンジニア」「SES」,
エンジニアとなったら将来は大きなプロジェクトを統括したい
→ キーワード「大規模案件の開発」「システムエンジニア(PM候補)」「SES/受託(直受け)」
エンジニアでは一つのサービスをずっと育てていきたい
→ キーワード「自社開発」「自社サービス」
エンジニアの職種での大きな分類
所謂「ITエンジニア」
IT・通信・Webエンジニア
ex) アプリケーション開発、データベースエンジニア、社内SE
ざっくり言うと、パソコンに向き合ってコードを書く所謂イメージするエンジニア。
仕事の特徴
ひたすらパソコンに向き合いプログラミングをする場合が多いです。
仕様(何をつくるか)の相談などのコミュニケーションが必要になることもあります。
日本で「エンジニア」といった時、最も多いのがこのカテゴリでしょう。
ロジックを組み立てることが好きな方、バグと向き合うことが苦では無い方はストレスが少ないでしょう。
プロジェクトマネージャー・ITコンサル
ex) オープン・Web系(PM)、システムコンサル
開発の進行管理や何を開発するかをクライアントと相談して開発案件に落とし込む、
開発知識は必要だけれどパソコンよりも人とやりとりすることがメイン。
仕事の特徴
他の仕事だと"現場監督"や"ディレクター"と言い換えられるでしょうか。
コードを書くことは基本的にあまりありません。
クライアントと開発メンバーの間に立ってプロジェクト全体を進行する人と関わる仕事です。
仕事の責任追求やプログラマーのストレス管理などが向いてそうな人はかなり適性があるでしょう。
クリエイティブ系
ex) Webディレクター、Webデザイナー、ゲームクリエイター
上のIT・通信・Webエンジニアと同じくコードを書くけれど、機能というよりも見た目や利用体験(UI/UX)を追求する職種
システムをカッコよく、より使いたくなるようにする。
仕事の特徴
一番"目に見えるものを作ってなんぼ"な仕事です。
エンジニアが考えたデザインはどのようにユーザー・クライアントに受け入れられるか、といった部分が価値になるため、予め設計図を描くことが難しいです。
そのため、上の3つの中では最も制作物が"ボツ"になりやすいカテゴリといえるでしょう。
成果物はもっとも華やかですが、そこに至るまでは最も泥臭い試行錯誤があるため、全て加味した上でそれでも物を作るのが好きな人におすすめです。
所謂「ITじゃないエンジニア」
電子・電気技術・メカトロ技術者
ex) デジタル回路設計、機械・機構設計(自動車等)、生産技術
工場で作るものを設計・開発するとイメージすればだいたいあってる。
土木設計、建築・設備設計
ex) 施工管理、建築・設備設計、CADオペレーター
家とかビルとか橋とかの設計や工期などのマネジメント。計算やプログラミングも必要になる職種も。
建築の知識は遅かれ早かれ必要になる。
補足
エンジニアの募集職種を見ればいいが、人数が少ない規模の場合は上に分類されるものは兼任することもある。(ITエンジニアは顕著)
例えば、アプリケーション開発もデータベース社内SEもプロジェクトマネジメントもシステムコンサルもWebディレクションもデザインも
私は全てやってます。
以下はITエンジニアに絞って解説。
エンジニアの職種での細かな分類 〜 システム開発編
プロジェクトマネージャー(PM)
案件を炎上させず納期に間に合わせるのがお仕事。
その為に、要件定義(何を作ればいいかを具体化する。)や他社への依頼、
開発チームのメンタリングも行う。
納期交渉もする。
プロジェクトリーダー(PL)
人数規模が多いとマネージャーの下にリーダーがつく
小さいとPMだけ、とかPLだけ、になる
チームに割り振られた開発内容を納期に間に合わせるのが仕事。
システムエンジニア(SE)
残念ながらこの言葉の定義は曖昧。
ITエンジニアの中の、ゲームやアプリではなくシステム開発を担う、として
案件の分類で書かれていることもある。職種にSEしかなければこの傾向が高い。
"プログラマ"、"システムエンジニア"と分けて書いてある場合は
さらに上流工程〜下流工程で分類して用いており
プログラミング以外にクライアントと相談して要件定義を行うところまで含むことが多い。
プログラマ(PG)
人が多いところだと要件定義された内容をコーディングするお仕事。
少ないところだと要件定義までやる。
テスター
テスト項目の一覧表にそって、ひたすらボタンを押したり入力したりする仕事。
サボるとリリース後にバグが発覚する。~~頑張るとリリースが延期される~~
職種での細かな分類 〜 Web開発編
Webディレクター
システム開発でいうプロジェクトマネージャに相当。
Webマーケッター - GoogleAnalytics
サイトをグーグルで上の方に来るようにしたり(SEO対策)
サイトに来た人がすぐに帰らないようにしたり
ボタンやバナーをちゃんと押されるようにしたり
ちゃんと会員登録してもらえるようにするために
ABテストとかGoogleAnalyticsの数字とにらめっこする仕事。
Webデザイナー
サイトの見た目を作る人。最近は見た目だけじゃなく、ボタンを押した時の挙動や動きなども求められることが多い
photoshopやillustlatorで絵を書くだけでなく、最近はコーディングまでできるのがスタンダード
もちろん、Webマーケティングとも大いに関わるのでその知識もあるとベター
HTMLコーダー
Webデザイナーが描いた絵をブラウザで見えるようにコードに書き起こす仕事
HTMLコーディングがWebデザイナーでも必須技能となりつつある最近では、コーディング専門の正社員募集はあまり見かけない。
バックエンドエンジニア - AWS, Azule, Linux
WebサイトはWebサーバーからインターネットを通じて配信されているが、そのサーバーを管理する人。
サーバー立てて高速に表示されるようにチューニングして、ネットワーク最適化して〜
という縁の下の力持ち?
昔は暗く寒いサーバールームで一人作業するということも多かったそうだが、
最近はクラウドサーバー/サービスが増えてきたので格段に労働環境が向上している。
フロントエンドエンジニア - JavaScript, Angular, React
ブラウザで処理される部分を開発するエンジニア
Webデザイン+UXデザインを含むこともある。
更に言えば、最近は機能開発もフロントで行うような案件も増えてきている
Webエンジニア - PHP, Ruby ( on Rails )
サーバーサイドで処理を行う案件の時に機能開発する人。
いや、バックエンドもフロントエンドも全部Webのエンジニアなのだけれど、
ミドルエンジニアという言い方はあまりしない。
バックもフロントもとりあえずできる人は多いと思う。
※流行りのプログラミングスクールでRuby on Rails勉強した人はだいたいここ。
職種での細かな分類 〜 アプリ開発編
ここではスマホアプリ(iOS/Android)をいう。
プロジェクトマネージャー
上と同じ。納期に間に合わせる人。
UI/UXデザイナー
アプリはWebサイトよりも更にUXが重要になるので
独立しているケースも多い
アプリエンジニア
アプリ作る人。デザイン+ロジックを両方組むケースも多い。
Web開発編のフロントエンドエンジニアはここに含む。
バックエンドエンジニア
Webとだいたい同じ。アプリから送られた情報を処理し、また返すサーバー側の処理。
アプリと言いつつWebサイト埋め込んだだけのものの場合はWeb開発編のバックエンドエンジニアと一緒。
受注形態での分類 〜 職場やチームメンバー
自社開発
社内で企画したものを社内で作る。
もちろん一部他社に頼むこともある。*
受託開発
他の会社から作って〜って依頼されたものを受注し開発する。
もちろん一部他社に頼むこともある。*
SES (System Engineering Service)
他の会社から人足りないから手伝って〜って依頼されたところにエンジニアを派遣する。
個人で参加することもあれば、チームで参加することもある。
もちろん一部他社に頼むこともある*
補足 一部他社に頼むこともある*
頼み方が「〇〇開発して!」だったら受託、「〇〇人足りないから手伝って!」だったらSES。
フリーランスは後者で、SESの会社に登録して案件をもらうケースが多い。
一般的なのは、
銀行などが大規模案件を依頼する
→大手ベンダーが受注して(一次請け)、開発内容を分割する
→いろんな会社に依頼する(二次請け)
→依頼された会社が手が足りないと別の会社に依頼する(二次請け)
→依頼された会社が手が足りないと別の会社に依頼する(三次請け)
→依頼された会社が手が足りないと別の会社に依頼する(四次請け)
→...
となり、下に行くほど後から依頼されるので~~つらい~~自由度が少なく納期が厳しい傾向
"IT土方"というイメージはこの末端を描いている
なお、一次請けはエンジニアがおらず全部他社に頼むこともしばしば(営業・コンサル/PMのみ~~で現場が苦労する~~)。
補足 - 働く場所について
自社開発や受託開発は社内で、SESは依頼先で働くケースが多いが例外はよくある。
受託開発でもセキュリティ上外部に出せないものだったら依頼先に行くことはあるし、
SESでもリモートOKで先方まで行く必要がないこともある。
自社開発だって遠くのテストセンターまで行かなきゃいけないこともある。全ては案件次第。
(追記)
コロナ禍を乗り越えた(はず!)日本の市場では仕事のオンライン化が進み、
SESでのリモート案件は以前より大きく増加している。
「SESは客先常駐があるから嫌だ!」という方も、リモートワーク案件に絞って働くことができるかも?
リリースフローでの分類
企画
何を作るか、何を目的にどんな機能が必要かを決める。
ふわっとした"〜〜できるようにしたい"を形にしていく
開発
つくる。
下のテスト/デバッグから修正内容を受け取り、開発・テストを繰り返す.
基本的にリリースしたら終わり。
テスト/デバッグ
どんな環境でどんな使い方をしても問題がないか検証する。
ネットが繋がらない環境だとどうなるか、絵文字を入力しても大丈夫か
AとBを同時に押しても大丈夫か、ボタンを連打しても大丈夫か
どのバージョンのOSでも動くか、Chromeでもfirefoxでも動くか etc.
修正点が見つかったら開発に戻す。
運用・保守
作った後のシステムがちゃんと動き続けるか監視し、何か起こったら対応する。
継続的な改修を含むことも(年度が変わるからシステム改修、新規に機能追加〜など)。
テレビに取り上げられてアクセスが一気に増えてサーバーダウンなどの対応もここ。
基本的にサービスが続く限り必要
おまけ 広告で書かれている言葉の裏を読む
こういうキーワードがあったら大規模案件を数年かけて開発する硬い案件のことが多い
- プロジェクトマネージャー
- SIer
- 文系・未経験OK
- ステップアップ
- 汎用機系
- 取引先(仕事)実績に金融、物流
こういうキーワードがあったらたとえ自社開発って書いてても基本SES
- 文系・未経験OK
- ※プロジェクトにより異なります。
- 仕事のところに※本人の希望を重視します。
- オフィスに明らかに入りきらないほど従業員数が多い
- 帰社日
※自社開発と受託開発とSES、複数の業態を同時に展開している企業も多いです。
そういった企業への未経験入社の場合、最初はまだ経験が浅い人でもアサインしやすいSES事業での仕事がメインになるでしょう。
こういう職種はエンジニアじゃなくて営業。人と話するのがメイン
- システムコンサルタント,
- ITコンサルタント
- セールスエンジニア
こういうのはエンジニアといっても開発よりデザインとコーディングとマーケティングが強い
- WordPress
- EC系
- ランディングページ
Web開発でよく使われる言語など(Web開発以外で使われないとは言っていない)
- HTML
- CSS
- JavaScript
- 最後に".js"で終わるやつ
- PHP
- Laravel
- CakePHP
- Ruby
- Rails
※自社開発サービスを主軸にしている会社は、未経験新卒はほぼ採用しません。
中途枠で採用されるレベルの技術力・実績を身につけるか、
最低限のプログラミングを学んで長期インターンで経験をつみましょう。