ソフトウェアエンジニアのキャリアを眺める

ソフトウェアエンジニアのキャリアパスと求められるスキルを紹介します

投稿日: 2024年12月8日

最終更新日: 2024年12月9日

初めに

レバテックキャリアの調査によれば、約63%のITエンジニアが将来のキャリアに不安を抱えています。そのうち、約12%のITエンジニアがキャリアパスの見通しが立たないことに不安を感じています。キャリア形成に悩む背景には、雇用制度や技術の急速な変化があるようです。

これを踏まえ、この記事ではソフトウェアエンジニア (SWE) のキャリアパスを取り上げます。初めにSWEの現状を分析し、キャリアの全体像を理解します。次にそれぞれのキャリアパスで求められるスキルを探り、キャリアパスの関係性を考察します。

SWEが扱う技術

現在のSWEは多くの技術を扱います。2024 Stack Overflow Developer Surveyによれば、言語、データベース、フレームワーク、クラウドサービスだけでなく、GitHub Projectsなどの非同期ツールやSlackなどの同期ツールも技術スキルに含まれるようです。さらに、ChatGPTなどのAIツールを扱える能力さえも技術スキルの1つとみなされています。

SWEが抱える不満

ソフトウェアに求められる価値の増加に伴い、SWEは様々な不満を抱えています。2024 Stack Overflow Developer Surveyによれば、技術的負債の多さや技術スタックの複雑さを課題と捉えるエンジニアが多いようです。

SWEの主なキャリアパス

SWEのキャリアパスで最も有名なものは、「テックリード」と「エンジニアリングマネージャー」です。テックリードは主に技術的な判断を担当し、アーキテクチャの設計、重要な機能の実装、コードレビュー、技術的な指導、技術選定、チーム間の技術的な調整を行います。エンジニアリングマネージャー (EM) は主に組織的な判断を担当し、チームメンバーの目標設定・パフォーマンス評価、プロジェクトの進捗管理、リスク管理、予算管理、関係者との調整を行います。

この2つのキャリアパスをさらに細分化し、テックリードやEMになるまでの過程を見てみましょう。

テックリードになるまで

初めに、シニアエンジニアとして技術的な専門性を確立します。例えば、アーキテクチャ設計の経験を積むことで大規模なシステムの全体像を把握する力を養ったり、コードレビューでの指導経験を積むことで技術的な知見を他社に伝える能力が磨かれます。

次に、アーキテクチャ設計を主導することで関係者に設計理由を説明する能力を身に付けたり、技術的負債を評価して対策を提案することでチームの生産性を改善する習慣を付けます。最終的には、技術的な取り組みによって技術と経営を繋げる役割を担います。

EMになるまで

初めに、シニアエンジニアとして組織的な専門性を確立します。例えば、プロジェクトマネジメントの経験を積むことで決められた成約の中での最適化を図ったり、チーム内での調整を行うことで技術的な課題を共有し、メンバーのスキルレベルに応じた作業分担ができるようにします。

次に、チームマネジメントの観点からチームの目標を設定したり、メンバーの動機と役割を明確にします。これにより、チームとしての方向性を統一し、チームの生産性を向上させます。また、プロジェクトマネジメントの観点からスケジュールや工数を管理したり、プロジェクトの優先順位を付けたりします。最終的には、チームの生産性を最大化する役割を担います。

SWEのキャリアパスの関係性

テックリードとEMは立場や最終的な目的が異なりながらも、同じ課題に取り組むことがあります。例えば、先ほど挙げた「SWEが抱える不満」について考えてみましょう。テックリードの視点では技術的負債の可視化、アーキテクチャの簡素化の提案、リファクタリング計画の策定などの対応が考えられます。EMの視点では技術改善のためのリソース確保、経営層への課題の説明、チーム編成の最適化などの対応が考えられます。

このことから、テックリードとEMは異なる役職ではなく、技術とマネジメントのバランスが異なる、同じリーダーシップの形態であると考えられます。

例えば、あるリーダーは技術的な判断により多くの時間を費やし (テックリード寄り) 、別のリーダーはチーム運営により注力する (EM寄り) という具合です。このバランスは、組織のニーズやリーダー自身の得意分野によって自然に決まってきます。

つまり、「テックリードかEMか」という二者択一の選択ではなく、「技術とマネジメントをどのように組み合わせて貢献できるか」を考えることが、より現実的なキャリアの考え方であると言えます。