本ページは下書きです。整理した結果はブログへ。 → https://gmo-aozora.hatenablog.com/entry/2022/07/29/163900
2022年7月26日(火)にTwitterのスペースで、
エンジニアって何をやってるんだろうか、XXXエンジニアっていろいろ聞くけど、
どう違うんだろう?
みたいな謎を解き明かすため、集まったメンバーでアマゾンの奥地へ向かって、語り合いましたので、
その結論を整理して共有します。
少しでもエンジニアがやっていることの広さ、深さ、大変さをご理解いただいた上で、
エンジニアの奥深さ/おもしろさを感じていただけると嬉しいです。
本記事のおすすめ対象者:
エンジニアの方、これから仕事を行う新人の方、エンジニアへの転職を考えてる人、
エンジニアの採用や営業を行う方
■ざっくり全体像
以下は、完璧な図ではありません。
会社によって、エンジニアが表している役割や、求められる期待値は異なるため、この図を参考にして、今ここでは、どうなのか?の認識合わせを行うためのDraftとして利用できるとよいと思います。
■資料ダウンロード
20220726space_エンジニアキャリア全体像.pptx
■エンジニアの種類と仕事内容のざっくりまとめ
カテゴリ | 種類 | ざっくり | スキル | 大変なこと |
---|---|---|---|---|
インフラ | ①ネットワークエンジニア | ユーザのPC/スマホから、サービス用のサーバまでの経路を効率よくつなげることをやる。 | ||
具体的なネットワーク機器は、ルーター、L3、L2など。 | ネットワーク機器を利用した設計スキル、構築スキル、トラブルシューティングスキル | 障害対応/メンテナンス対応(ネットワーク機器の中のOSupdateなど)などで、24時間365日対応をせまられることが多い。また構築時などは地方や海外のデータセンターへ行く必要もある。 | ||
②サーバーエンジニア | サーバの選定(台数、CPU、メモリ、ディスクなど)、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などのサービスを導入&設定&アプリの個別カスタマイズなど。 | 製品知識、業務コンサルスキル | 身につくスキルが製品に特化しがち | |
(ただし顧客業務をよく理解する必要があり、業務コンサルスキルは身につく) | ||||
運用 | ⑩システム運用エンジニア | システム運用設計、監視による障害検知、障害暫定対応(インシデント管理)、障害恒久対応(問題管理)、予防保守(windowsupdateなど) | Linux/windows操作、ログ解析、アプリチームとのコミュニケーション、経営者への報告スキル | 障害対応/メンテナンス対応などで、24時間365日対応をせまられることが多い。技術的なスキルがあまりつかないことも多い(が、システム運用設計ができる人材はレアスキルで、重要。) |
社内SE | ⑪オフィスインフラエンジニア | 会社PCやネットワークが壊れたときの社内ヘルプデスク対応、社内ツールの導入対応など。 | windowsPCまわりのトラブルシューティングスキル | |
社員とのコミュニケーションスキル | パソコンに関係しているものは何でもかんでも仕事として放り込まれがち。 | |||
(ただし社内ユーザから直接感謝をもらえるいい面もある) | ||||
⑫自社サービス開発エンジニア | 上記記載のインフラ/アプリエンジニアの業務をすべて含む。 | |||
新機能企画〜開発、テストや、既存サービスのバグ修正/機能追加など。 | 上記すべてのスキルを浅く広く。 | 必要なスキルの範囲が広い。 | ||
(業務、サービス、開発すべてに触れることができるという利点もある) | ||||
その他 | ⑬Webデザイナー | コーポレートサイトのデザインや、Webサービス、スマホアプリのデザイン。 | ||
全体のデザイン、背景、アイコンのイラスト、ボタン配置等、ユーザの目に触れるものをどうするかを考える人。 | デザイン能力、Webアプリケーションの一般的な知識、フロントエンドエンジニアとのコミュニケーション | フロントエンドエンジニアとの協業が大変。デザインとして実現したいこと、プログラムとして実現しやすいことが異なるから。 | ||
フロントエンジニア側のスキルも得たほうが仕事がしやすくなる。 |