エンジニアってにゃんだ?

こんにちは、エバンジェリストのきよごんです。

 

2022年7月26日(火)にTwitterのスペースで、

エンジニアって何をやってるんだろうか、XXXエンジニアっていろいろ聞くけど、

どう違うんだろう?

みたいな謎を解き明かすため、集まったメンバーでアマゾンの奥地へ向かって、語り合いましたので、その結論を整理して共有します。

 

少しでもエンジニアがやっていることの広さ、深さ、大変さをご理解いただいた上で、

エンジニアの奥深さ/おもしろさを感じていただけると嬉しいです。

 

本記事のおすすめ対象者:

・ネコ好きな方

・エンジニアの方

・これから仕事を行う新人の方、エンジニアへの転職を考えてる方

・エンジニアの採用や営業を行う方

 

■ざっくり全体像

以下は、完璧な図ではありません。

会社によって、エンジニアが表している役割や、求められる期待値は異なるため、この図を参考にして、今ここでは、どうなのか?の認識合わせを行うためのDraftとして利用できるとよいと思います。

 

カテゴリ 種類 ざっくり スキル 大変なこと
インフラ ①ネットワークエンジニア ユーザのPC/スマホとサービス用のサーバまでを通信できるようにする。具体的なネットワーク機器は、ルーター、L3、L2など。 ネットワーク設計、構築、障害対応 24時間365日対応、出張対応
  ②サーバーエンジニア サーバの選定(台数、CPU、メモリ、ディスクなど)、OS導入、ミドルウェア導入など OS(windows、Linux)、ハードウェア(マザーボード、CPU、ファン、メモリ、電源、ネットワークカードなど) OS、ミドルウェア(apache、tomcat、hulftなど)、ネットワークなど必要なスキルの範囲が広い。
  ③データベースエンジニア DBMS(Oracle、MySQL、SQLServerなど)の設計、導入など。 データベース設計、設定スキル、ユーザ管理、バックアップ、リカバリなど。 サービスやアプリケーションの理解をした上で、データベースのサイズや、データベース構成を決める必要がある。
  ④セキュリティエンジニア 外から不正なアクセスを防いだり、中から重要なデータが外に出ていくのを防いだりすることを考える。具体的な機器はFW(FireWall)など。 FWの設計、設定スキル データのカテゴリ分け(重要、重要でない)など ログ取得対象/期間を決めるなど。 セキュリティの重要性を経営者に説明し理解してもらう必要がある。 他チームからの要望で夜間対応が必要になることもある。
アプリ ⑤マークアップエンジニア ユーザが最終的に見えるHTML/CSSの静的コンテンツのコーディングなど。 html/cssのコーディングスキル CSSは人によって設計方針が違うなど、人に拠るところが多いため、チームとしての設計方針を決める/理解する必要がある。
  ⑥フロントエンドエンジニア Webデザイナーとデザインを作成、ユーザが最終的に見る画面をHTML/CSS/JavaScriptなどで、動的なコンテンツを設計、開発を行う。 最近ではReactやVue.jsなどのJavaScriptフレームワークが使われている。 Webデザイナーとのコミュニケーションスキル、UIUX設計、開発スキル ユーザ部門の望む姿と、難易度のせめぎあい。
  ⑦バックエンドエンジニア ビジネスロジック(法律起因、サービス起因、社内ユーザ起因など)を考えて開発を行う。 アプリケーション開発の肝となる部分でもある。 Java、PHPなど。 ユーザ部門が行いたいことをロジック化すること。 java等の開発スキル。 ユーザ部門とロジックについて認識合わせをすること
  ⑧スマホアプリエンジニア iPhoneやAndroid端末上で動作するアプリケーションを設計、開発する。 Webデザイナーとのコミュニケーションスキル iPhoneやAndroidのアプリ設計、開発スキル ユーザ部門の望む姿と、難易度のせめぎあい。 iOSとandroidでプログラム言語が異なる。 バージョンアップで仕様が変わる。
  ⑨アプリ導入エンジニア salesforceやSAPなどのサービスを導入&設定&アプリの個別カスタマイズなど。 製品知識、業務コンサルスキル 身につくスキルが製品に特化しがち (ただし顧客業務をよく理解する必要があり、業務コンサルスキルは身につく)
システム運用 ⑩システム運用エンジニア システム運用設計、監視による障害検知、障害暫定対応(インシデント管理)、障害恒久対応(問題管理)、予防保守(windowsupdateなど) Linux/windows操作、ログ解析、アプリチームとのコミュニケーション、経営者への報告スキル 障害対応/メンテナンス対応などで、24時間365日対応をせまられることが多い。技術的なスキルがあまりつかないことも多い(が、システム運用設計ができる人材はレアスキルで、重要。)
社内SE ⑪オフィスインフラエンジニア 会社PCやネットワークが壊れたときの社内ヘルプデスク対応、社内ツールの導入対応など。 windowsPCまわりのトラブルシューティングスキル 社員とのコミュニケーションスキル パソコンに関係しているものは何でもかんでも仕事として放り込まれがち。 (ただし社内ユーザから直接感謝をもらえるいい面もある)
  ⑫自社サービス開発エンジニア 上記記載のインフラ/アプリエンジニアの業務をすべて含む。 新機能企画〜開発、テストや、既存サービスのバグ修正/機能追加など。 上記すべてのスキルを浅く広く。 必要なスキルの範囲が広い。 (業務、サービス、開発すべてに触れることができるという利点もある)
その他 ⑬Webデザイナー コーポレートサイトのデザインや、Webサービス、スマホアプリのデザイン。 全体のデザイン、背景、アイコンのイラスト、ボタン配置等、ユーザの目に触れるものをどうするかを考える人。 デザイン能力、Webアプリケーションの一般的な知識、フロントエンドエンジニアとのコミュニケーション フロントエンドエンジニアとの協業が大変。デザインとして実現したいこと、プログラムとして実現しやすいことが異なるから。 フロントエンジニア側のスキルも得たほうが仕事がしやすくなる。

 

以下はもう少し細かく、インフラエンジニア、アプリエンジニア、社内SE、フルスタックエンジニアの領域を図示しています。

 

インフラエンジニア🐱

いわゆるアプリケーションが動作する土台となる部分を構築したり運用したりするエンジニア。

アプリエンジニア🐱

ユーザの皆さんの目に触れるようなものを作ったり、計算ロジックを実装したりするエンジニア。一般的なエンジニアと言うと、ここを指すことが多いと思います。

社内SE🐱

自社内のエンジニア。もちろんこの中には、インフラエンジニアもアプリエンジニアも含まれますが、上記に書いてきたようにエンジニアの範囲はとても広いです。社内SEはこの広さを求めらます。

 

フルスタックエンジニア🐱

最近流行りのインフラ〜アプリまで作ることができるエンジニア。

足りないメンバーをサポートすることもできるし、新規ビジネスのためのプロトタイプを素早く作ったりできることもあり、重宝がられる人材になりえます。

エンジニアの皆さんはこの領域を浅くでも良いので理解しておくと将来につながる知識になるでしょう。

 

上記のように表現していますが、これが正解というわけではなく、

あくまで一つの例としてこういうカテゴリ分けの考え方もある、

と理解いただき、カテゴリごとの理解を深めていただくことに役立てば嬉しいです。

 

仕事が理解できると仕事が楽しくなります!

ぜひぜひ我々と一緒にエンジニアスキルを高めて世界平和に貢献していきましょう。