概要
働き方が今大きく変わろうとしている中、ソフトウェアエンジニアの方のキャリア形成や今後のキャリアについて考える機会が最近増えたという方も多いのではないでしょうか。
私自身も今後のキャリアをどうしようかと悩んでいますが具体的に考えることは容易でなく、今後自分がどうなりたいのかということまで深堀する必要があり、何かテンプレートのようなものが欲しいな、と思うことも多々あります。
そんな中、GitHub 上にソフトウェアエンジニア専用のキャリアを考えるのに最適なテンプレートを見つけましたので、今回はそちらを紹介しようと思います。
今回ご紹介する OSS は主にソフトウェアエンジニアマネージャー向けとはなりますが、ソフトウェアエンジニアの今後のキャリアを考える・管理するフレームワーク「Engineering Ladders」というものになります。
「Engineering Ladders」においてソフトウェアエンジニアは以下の 4 パターンに分けられると考えられていて、それぞれのキャリアとしての理想像が提唱されています。
- Developer
- Tech Lead
- Technical Program Manager
- Engineering Manager
それでは早速それぞれのソフトウェアエンジニアについてどのようにキャリが提唱されているか、掘り下げてみていきましょう!
利用手順
「Engineering Ladders」では公式ページが用意されていますので、以下からご覧ください。
使用感
それでは実際に「Engineering Ladders」について見ていきたいと思います。
キャリアを形成するための軸として、まずは以下の 5 つの軸を基準として考えているようですね。
技術力
技術とツールに関する知識について評価します
- 技術を採用する : チームによって定義されたテクノロジーとツールを積極的に学び、採用をします
- 専門性 : 1 つまたは複数の技術の頼りになる人物であり、新しい技術を学ぶために率先して行動します
- 伝道 : 調査、概念実証の作成、新しい技術をチームへの導入します
- マスター : システム技術全体について非常に深い知識を持っています
- 作成 : 内部または外部のチームによって広く使用される新しい技術を設計および作成します
システム
システムの所有レベル具合について評価します
- 改良 : システムを改善および拡張するために、新機能とバグ修正を正常にプッシュします
- 設計 : システムの技術的負債を削減しながら、中規模から大規模なサイズの機能を設計および実装します
- 所有 : システムの本番運用と監視を所有し、その SLA を認識しています
- 進化 : アーキテクチャを進化させて将来の要件をサポートし、その SLA を定義します
- リード : システムの技術的な卓越性をリードし、機能停止を軽減するための計画を作成します
人間関係
チームとの関係性について評価します
- 学ぶ : 他の人からすぐに学び、必要に応じて一貫してステップアップします
- サポート : 他のチーム メンバーを積極的にサポートし、彼らが成功するのを助けます
- メンター : 他の人を指導してキャリアの成長を加速させ、参加を奨励します
- 調整 : 効果的なフィードバックを提供し、議論をモデレートするチーム メンバーを調整します
- 管理 : チーム メンバーのキャリア、期待、パフォーマンス、幸福度を管理します
プロセス
開発プロセスへの関与のレベルについて評価します
- フォロー : チームのプロセスに従い、機能の一貫したフローを本番環境に提供します
- 実施 : チームのプロセスを実施し、全員がメリットとトレードオフを確実に理解できるようにします
- 課題 : チームのプロセスに挑戦し、それらを改善する方法を探します
- 調整 : チームのプロセスを調整し、フィードバックに耳を傾け、変更を通じてチームを導きます
- 定義 : チームの成熟度に適したプロセスを定義し、敏捷性と規律のバランスをとります
影響力
役職の影響範囲について評価します
- サブシステム : 1 つ以上のサブシステムに影響を与えます
- チーム : チームの特定の部分だけでなく、チーム全体に影響を与えます
- 複数のチーム : 自分のチームだけでなく、他のチームにも影響を与えます
- 会社 : 技術組織全体に影響を与えます
- コミュニティ : 技術コミュニティに影響を与えます
参考例
「Engineering Ladders」で定義しているキャリア像はあくまで一例であり、それぞれの会社・環境によってこの 5 つの軸は変わると説明されています。
そのため、こちらで上げている 5 つの軸はあくまで参考程度に、各会社・環境に沿った軸を設定してくださいとあります。
なお、それだけだと投げやりということもあるので、こちらの「Engineering Ladders」では参考例が載っています。
一部紹介したいと思います(なお、各レベルごとの詳細に関しては各ページをご覧ください)。
-
Developer レベル 3 の場合
-
Tech Lead レベル 4 の場合
-
Technical Program Manager レベル 6 の場合
-
Engineering Manager レベル 7 の場合
上記を見るに、レベルが高いからと言ってすべての軸のレベルが高い必要はないということですね。
あくまで、各ロールの中で必要な軸を磨いていき、その中でレベルを上げていきましょうということで考えていくことが大切なようです。
まとめ
今回は、主にソフトウェアエンジニアマネージャー向け、ソフトウェアエンジニアの今後のキャリアを考える・管理するフレームワーク「Engineering Ladders」をご紹介しました。
近年ではキャリアについては自分で考えるということが大切だといわれていますので、ぜひこちらの「Engineering Ladders」を参考に今後のキャリアや身の振り方などを検討されてみてはいかがでしょうか。
ライセンス
リンク