エンジニアのキャリアパスについてざっくり整理してみた🙋
前提
キャリアパスは、企業間が結ぶ契約形態(= フリーランスやSES、派遣等)とは別になります。当記事におけるキャリアパスとは、エンジニア個人に焦点を当てた際の、スキルの分岐点のようなものと私は考えます。
また、当記事においてはシステムの規模を、小規模=数百万規模のプロジェクト、中規模=数千万のプロジェクト、大規模=数億規模のプロジェクトと分類しています。
基本分類:駆け出し〜シニア
いくつかのサイトで見られる分類は、ITの世界に初参入した状態(1年未満) 〜 シニアレベル(5〜8年目)までの表現です。
- 駆け出しエンジニア(= ジュニアクラス)
- ミドルクラス(= メンバクラス?)
- シニアクラス
ジュニアクラス
開発/テスト、運用/保守 ができる。プログラミングの基本文法を理解していて、設計書通りに実装が出来る。統合環境(IDE)、バージョン管理システム(Git,SVN等)、ビルドツール(CircleCI,Gradle,Ansible等)、プロジェクト管理ツール(Redmine,backlog等)、運用監視ツール(JP1,オペマネ等)の基本的な操作が出来る。QCD管理のうち、Delivery(=納期)を意識した報連相🥬が出来る。
ミドルクラス
小〜大規模(=数百万〜数億規模)のプロジェクトにおいて、開発/テスト 〜 リリース 〜 運用/保守 まで一貫して進めることができる。コンテナ化・仮想化ツール(Docker,VMWare,VirtualBox等)を使って開発環境を一から構築して、それをマニュアル化できる。また、ある一つの機能やサブシステムについて、技術選定や顧客折衝が出来る。QCDを意識した仕事ができる。
シニアクラス
小〜中規模(=数百〜数千万規模)のプロジェクトにて、ある機能またはサブシステムの上流(=要件定義) 〜 開発/テスト 〜 リリース 〜 運用/保守 まで、チームを率いて完遂できる。QCDに対する意思決定が出来る。ICT領域における横断的な技術(=セキュリティ,AI,ソフトウエア,データ,ネットワーク)をある程度網羅している。
分類①:シニア〜
シニアより上のキャリアパスは、シニアで培った基本的な技術力をベースに、自分が得意とする分野の専門性を高めていくような形となります。
極めて行く専門性は、様々な分類があるようですが、転職サイトとかでよく見る大きな分類法としては、『スペシャリスト(技術志向)』と『マネージャー(管理志向)』と『ゼネラリスト(技術志向と管理志向の中間)』です。
◎マネージャー
- プロジェクトリーダー
- プロジェクトマネージャー
- ディレクター
◎スペシャリスト
- プロダクトマネージャー
- アーキテクト
- ネットワークエンジニア
◎ゼネラリスト
- フルスタックエンジニア
- ITコンサルタント
- CTO、CIO
「エンジニア」という言葉が技術を想起させる事もあるので、「〇〇〇エンジニア」という言葉は、スペシャリストかゼネラリストに対して使われる言葉のようです。
あと、以下の分類法も時間があれば整理してみる👇
気をつけてほしいこと
技術志向のエンジニアでも、人・物・金の管理が求められることを覚えておきましょう。というのも、これらの管理は、基本分類の「シニアクラス」で身につけるものだからです。超上流工程・上流工程は、顧客との要求の調整、システムの成長性や方向性、人員の確保、お金の管理、工数の計算等、マネジメントの基本的なスキルが求められます。
技術志向のエンジニアは、こういった大局的な視点をベースに、自身の専門分野の関係性を整理し、どう振る舞うべきか、何が最適なのかを考えていきます。
よく、「人と関わることが苦手だから、技術よりのキャリアに進みたい」というのを目にします。それは個人の考えなので、何を考えても自由だと思うのですが、マネジメントを避ける理由としては不適切だし、大局的な視点に欠けているとも感じます。そして、避けている事は、結構簡単に見破られたりします。