俺が考える最強のITエンジニアキャリア戦略

## はじめに

だれしも自身のITエンジニアのキャリアについて悩んだことがあると思います。
所属する会社の評価軸だけではなく、世の中のITエンジニアのキャリアについても意識することで、より市場価値の高いキャリアを歩むことができると考えています。
今回の記事では世の中で一般的に知られているITエンジニアのキャリア、ポジションについて紹介します。
この中で自分はどこのポジションを目指したいのかをより具体的にして、自分に足りない能力は何かを定義し、今後のキャリア戦略に活かして頂ければと思います。

本記事では、以下の図のポジションについて説明します。

![Snag_4b40b5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192873/7ad52ac6-d075-4554-b6e7-8587639f7c98.png)

## 初級ITエンジニア

新入社員1~2年目相当の役職想定です。
基本的には上司のサポートの元作業を実施し、各工程の経験を積むことが主な目的になります。

### 要求スキル

* ビジネス基礎		
	業務の一部に関して顧客と直接やり取りをすることができる	
    * 経験、実績：	
        * チケット単位で顧客と直接やり取りをする
        * 例：電話やWeb会議で顧客に対して内容の説明ができる
* プログラミング知識基礎		
	要件が明確な状態で先輩のサポートを受けて実装できる
    * 経験、実績：	
        * チケット単位で要件が明確なコーディングを実装する
* インフラ知識基礎	
	基本的なインフラの知識を有している
    * 経験、実績：	
        * 例えば、AWSの場合は、AWS Certified Cloud Practitioner合格レベルの知識など
* IT知識		
	基本的なIT知識を有している	
    * 経験、実績：	
        * 基本情報技術者試験合格レベルの知識
* その他		
	開発、テスト、運用の経験、知識を有している	
    * 経験、実績：	
        * 開発、テスト、運用の経験を積む


## 中級ITエンジニア

職歴3~4年目相当のエンジニア相当のイメージです。
一部の作業については自分で判断して作業できる必要があります。
また、指導という観点の業務も新しく入ってきます。

### 要求スキル

* ビジネス応用							
	上司の最低限のサポートで顧客と直接やり取りができる						
    * 経験、実績：						
        * 最低限の上司への確認のみで、原則独力で顧客と仕様等についてやり取りする					
        * 顧客への説明内容作成、資料作成等も独力で実施できる					
* プログラミング知識応用
    * 要件が明確でない状態でも、独力で調査し、要求仕様を達成するプログラムを作成できる
    * プログラムの動作だけではなく、機能修正や分かりやすいコード、品質を意識できている
    * 下位者への指導ができる						
	* 経験、実績：						
		* 要件が明確でない状態で、コードの詳細設計を実施し、動くプログラムを実装する				
		* 下位者のプログラムについて適切にレビューを実施する					
* インフラ知識応用							
	応用的なインフラの知識を有していること						
    * 経験、実績：						
        * AWSであれば以下の資格レベル相当
        * AWS 認定ソリューションアーキテクト - アソシエイト					
        * AWS 認定ソリューションアーキテクト - プロフェッショナル					
        * AWS 認定デベロッパー – アソシエイト					
        * AWS Certified DevOps Engineer - Professional					
* その他							
	要件定義、設計、開発、テスト、運用の知識、経験を有している						
    * 経験、実績：						
        * 要件定義、設計、開発、テスト、運用の経験を積む


## リーダー

職歴5年目以降相当のイメージです。
具体的な要求スキルは自分が目指す上位職種によって異なります。
例えば、プロジェクトマネージャを目指す場合は、プロジェクトマネージャの要求スキルの一部をリーダーの役職で習得します。

## エンジニアリングマネージャー(EM)

![Snag_61b4e0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192873/b5a329c4-82f1-49ca-b508-38360df4c98e.png)

職歴10年目以降相当。
エンジニア組織の価値最大化が主な目的の職種。

### 役割定義

エンジニアリングマネージャー（EM）は、技術チームを統括する管理職であり、エンジニアの採用・育成・評価を担いながら、チーム全体の技術力と生産性の向上を推進する役割
健全な技術文化の醸成と組織の技術的競争力の向上に貢献することが求められる

### 責務

* エンジニアの採用・育成・評価
* チームの技術力と生産性の向上
* プロジェクトの技術的な成功の担保
* チームメンバーのキャリア開発支援

### 要求スキル

* テクニカルスキル		
	技術的な課題解決能力	
	ソフトウェア開発手法（アジャイル、スクラムなど）の理解	
	チームが使用する技術スタックへの理解	
    * 経験、実績：	
        * 技術的な課題について独力で解決策を提示する
        * ソフトウェア開発手法についての基礎的な知識を有し、改善提案を行う
        * チームが利用する技術スタックを理解し、評価、改善の提案を行う
* ピープルマネジメントスキル		
	* チームメンバーの育成と評価	
		* メンバーに対して適切な目標設定を提案し、客観的に評価できる
	* キャリア開発支援とメンタリング、モチベーション管理	
		* 継続的な学習機会の提供
		* キャリアパスの明確化
    * 経験、実績：	
        * メンバーの育成、評価を実施する
        * メンバーのキャリア開発支援を行う
* コミュニケーションスキル/渉外スキル		
    対エンジニア	
	対経営陣	
	対部門	
* 戦略的思考		
	経営的視点からの判断力	
	組織全体の技術戦略の理解	
	ビジネス目標との整合性の確保	

### 評価指標

* チームの生産性	
    * [DORA (DevOps Research and Assessments)メトリクス](https://www.google.com/url?q=https://www.splunk.com/ja_jp/data-insider/devops-research-and-assessment-metrics.html&sa=D&source=editors&ust=1740293142046548&usg=AOvVaw26OmSeimj8CFhZVvjD4GxN)
* エンジニアの成長度
    * エンジニアが前述のスキル、経験に沿って成長できているかどうか判断
* 技術的負債の管理	
    * [技術的負債：基礎知識とベストプラクティス](https://ltsgroup.tech/jp/blog/technical-debt/)
    * [技術的負債比率（Technical Debt Ratio：TDR）](https://jp.orientsoftware.com/blog/what-is-technical-debt/)
* チームの定着率	
    * 離職率/社員満足度

## プロジェクトマネージャー(PM)

![Snag_65b8d5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192873/4130788e-c8b6-4447-b07d-7be77a855e54.png)

職歴10年目以降相当。
プロジェクトの価値最大化が主な目的の職種。

### 役割定義

プロジェクトマネージャー（PM）は、プロジェクトを統括する管理職であり、スコープ・予算・品質・スケジュールの管理を担いながら、チーム全体の生産性と目標達成を推進する役割
ステークホルダーとの効果的なコミュニケーションを通じて、プロジェクトの価値最大化とリスク最小化に貢献することが求められる

### 責務

* プロジェクト計画と実行		
    * 全体スケジュール管理	
    * リソース調整	
* 品質とリスク管理		
    * QCD管理、リスク管理	
* ステークホルダーマネジメント		
    * 顧客との要件調整と進捗報告	
    * チームメンバーの進捗管理	
    * 関係部門との連携・調整

### 要求スキル				
* テクニカルスキル						
    * プロジェクト管理手法の知識					
        * [PMBOK（Project Management Body Of Knowledge）](https://www.linpress.co.jp/blog/c35#5f5f582d13cc412e0374d4ee-037443be96fbf9e23eb75227)			
    * [ビジネスアナリストの知識](https://clover.lt-s.jp/2063/)				
        * [BABOK （Business Analysis Body Of Knowledge）](https://clover.lt-s.jp/4736/)			
    * ソフトウェア品質の知識					
        * PMBOKの内容よりもより深い知識				
    * 予算管理の基礎知識					
	* 経験、実績：					
        * プロジェクト管理、ビジネスアナリストの知識を持って改善提案を実施する				
* プロジェクトマネジメントスキル						
	適切にプロジェクトを管理することができる					
	詳細は付録のPMBOK主要な知識10エリアを参照					
* コミュニケーションスキル/渉外スキル						
	対メンバー					
	対経営陣					
	対部門					
* 戦略的思考						
	経営的視点からの判断力					
	組織全体の技術戦略の理解					
	ビジネス目標との整合性の確保

### 評価指標

* プロジェクトの納期遵守比率						
* 予算計画の順守比率
* プロジェクト要件の充足度					
* ステークホルダーの満足度						

## プロダクトマネージャー(PdM)

![Snag_6d8450.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192873/9bd422af-8d98-48af-b8c6-e7c4a83e3d3f.png)

職歴10年目以降相当。
新しいプロダクトを生み出し、売上を創出することが目的。

### 役割定義

プロダクトマネージャー（PdM）は、プロダクトを統括する管理職であり、ビジョン策定・要件定義・優先順位付けを担いながら、プロダクトの市場価値と競争力の向上を推進する役割	
顧客ニーズの深い理解とステークホルダーとの効果的な連携を通じて、プロダクトの継続的な成長と事業価値の最大化に貢献することが求められる	

### 責務	
* ビジョンと戦略の策定	
    * プロダクトビジョンとロードマップの策定
    * 市場機会の特定と分析
    * プロダクトの価格戦略と市場ポジショニング
* 顧客価値の創出	
    * 顧客ニーズの調査と分析
    * 市場要件の優先順位付け
    * 顧客体験の最適化
* 部門横断的な協働	
    * エンジニアリングチームとの協働
    * デザインチームとの連携
    * マーケティング・営業との調整

### 要求スキル					

* テクニカルスキル					
    * 技術に対する知識				
        * 技術的実現可能性の評価			
    * UXの理解				
        * ユーザ目線で考えられること			
    * ビジネス知識				
        * 市場調査と分析/競合分析/トレンド分析			
        * 収益モデル/予算管理			
    * マーケティング知識				
* プロダクト開発力					
    * 顧客ニーズを理解し、コンセプト開発から市場投入までの一連のプロセスを実行できる				
    * 開発したプロダクトの価値を市場に効果的に伝え、売上を創出することができる				
* コミュニケーションスキル/渉外スキル					
	対メンバー				
	対経営陣				
	対部門				
* 戦略的思考					
	経営的視点からの判断力				
	組織全体の技術戦略の理解				
	ビジネス目標との整合性の確保				

### 評価指標

* 顧客満足度と定着率				
* ユーザーエンゲージメント				
    * アクティブユーザー数			
* 収益性指標				
* 市場パフォーマンス				
    * 市場シェア			

## テックリード

![Snag_790fc2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192873/1f0a3dfa-1ec2-4015-a408-e04264935491.png)


職歴7年目以降相当。
組織における技術責任者として、組織の技術力向上をリードする。

### 役割定義

テックリードは、技術的な意思決定を主導する上級技術職であり、アーキテクチャ設計・技術選定・品質担保を担いながら、プロダクトの技術的価値と開発効率の向上を推進する役割
深い技術知見とエンジニアリング組織との効果的な連携を通じて、持続可能な技術基盤の構築と技術的競争力の最大化に貢献することが求められる

### 責務

* 技術的意思決定						
    * アーキテクチャ設計と技術選定の主導					
    * 技術的ビジョンとロードマップの策定					
* 品質保証						
    * コード品質とベストプラクティスの確立					
    * 技術的負債の管理					
    * システム全体の品質担保					
* 技術指導						
    * チーム全体の技術力向上					
* 開発効率化						
    * 開発環境の整備と改善					
    * チームの生産性最大化					

### 要求スキル

* テクニカルスキル					
    * アプリケーションやシステムの設計とアーキテクチャ				
    * プログラミング言語やフレームワークの知識				
    * データベースの設計と最適化				
    * ソフトウェアテストと品質管理				
    * セキュリティとパフォーマンスの最適化				
* 高度な問題解決能力と分析力					
    * バグやパフォーマンスの問題の問題を解決できる				
    * 複数のメンバーとディスカッションし、多角的な視点で問題解決できる				
    * タイムリーな情報収集と技術的な知見の習得を通じて、迅速かつ効果的な解決策を提供できる
* 高度な情報収集能力					
    * 技術トレンドの把握				
    * 技術的ベストプラクティスの把握				
    * 技術カンファレンスやワークショップへの参加				
* コミュニケーションスキル					
	対メンバー				
	対経営陣				
* 戦略的思考					
	経営的視点からの判断力				
	組織全体の技術戦略の理解				
	ビジネス目標との整合性の確保				

### 評価指標			

* チームへの貢献指標				
	* チームメンバーの技術力向上支援			
	* 技術的な課題解決数			
* 組織への貢献指標				
	* 技術的負債の削減量			
	* 技術的戦略への貢献(チームのベストプラクティス作成等)			

## 終わりに

現在の仕事の知識をしっかりとつけるのはとても大切です。
しかし、将来自分がどういうポジションを目指したいのかを意識し、自分に足りない能力を割り出し、少しづつそのポジションへ近づける行為も大切です。
本記事が少しでも皆さんのキャリア形成の役に立てれば幸いです。

## 付録

### PMBOK 主要な知識10エリア

以下の記事から引用
[PMBOKとは｜プロジェクトマネジメントの標準ガイドラインを解説](https://leaders.seattleconsulting.co.jp/synergy/pmbok/)

* プロジェクト統合管理		
    * プロジェクトの計画、実行、制御、閉鎖などを統合的に管理します。	
* スコープ管理		
    * プロジェクトの目標や成果物の範囲を明確に定義し、変更を管理します。	
* スケジュール管理		
    * プロジェクトの作業項目とタイムラインを計画し、進捗を追跡します。	
* コスト管理		
    * プロジェクトの予算と費用を計画し、予算に対するコストの制御を行います。	
* 品質管理		
    * プロジェクトの品質要件を定義し、品質基準に従って品質を確保します。	
* リソース管理		
    * プロジェクトに必要な人材、設備、資材などのリソースを計画・調達し、効果的に活用します。	
* コミュニケーション管理		
    * プロジェクト参加者間の情報共有とコミュニケーションフローを確立します。	
* ステークホルダー管理		
    * プロジェクトに関与する関係者のニーズや期待を理解し、関係を築きます。	
* リスク管理		
    * プロジェクトのリスクを特定・評価し、適切な対策を立案してリスクを管理します。	
* 調達管理		
    * プロジェクトに必要な外部資源やサービスを調達し、契約や供給者との関係を管理します。	

### ICについて

IC（Individual Contributor）とは、マネジメントの責務を持たない技術専門職のことです。
部下を持たず、個人の技術力を活かしてチームやプロダクトに貢献する役割として知られています。
日本でも一部の企業での導入が始まっていますが、まだ一般的な役割ではないと思います。

### スタッフエンジニアについて

エンジニアの上位職種として位置し、参謀としての役割を持つ職種です。
定義自体が曖昧な部分も多いですが、スタッフエンジニアを分解すると以下の4つの職種として紹介されています。
参考：[技術に専念したいエンジニアのための上級職「スタッフエンジニア」とは？ 培った能力を生かして組織に貢献するキャリア](https://codezine.jp/article/detail/18981)

* テックリード
* アーキテクト
* ソルバー
    * 問題解決に特化した役割、いわゆる火消しのプロフェッショナル
* 右腕
    * CTO補佐

### さらなる上位職種について

VPoEやCTOなどの上位職種も存在しています。
これらは、上記で説明した上位職種をさらに統括する役割として定義されています。