#paper [https://www.construx.com/professional-development-ladder/software-architect-career-path/](https://www.construx.com/professional-development-ladder/software-architect-career-path/) からPDFを入手できる ## Software Development Knowledge Areas - Configuration Managment (CNFG) - Construction (CNST) - Design (DSGN) - Foundations (FNDN) - Maintenance (MNTC) - Models and Methods (MTHD) - Process (PRCS) - Management (MGMT) - Quality (QUAL) - Requirements (RQMT) - Testing (TEST) ## Capability Level for Software Professionals - Introductory - 誰かの下で期待通りの基礎的なパフォーマンス - 自己のスキルを適切に伸ばしている - Competence - 単独で効率的にパフォーマンスを出せる - メンバーに対してロールモデル的振る舞いが可能 - ときどきコーチングが可能 - Leadership - 模範的なパフォーマンスが出せる - コーチングを日常的に行う - プロジェクトレベル以上のリーダーシップを発揮する - 会社内で主力なリソースであることが理解されている 以上の Knowledge Area と Capability Level のMatrixによって職能を定義する Matrix | | CNFG | CNST | DSGN | FNDN | MNTC | MGMT | MTHD | PRCS | QUAL | RQMT | TEST | | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | | Introductory | | | | | | | | | | | | | Competence | | | | | | | | | | | | | Leadership | | | | | | | | | | | | またそれぞれの能力を獲得するために、Reading、Training、Work Activities が定義される またそれぞれのレベルに至るための活動をそれぞれ定義する また職種は以下のように枝分かれで表現される ![image](https://gyazo.com/ec6b8c60bffdafa308ef107e8344b927/thumb/1000) ## To be a Software Architect Matrix | | CNFG | CNST | DSGN | FNDN | MNTC | MGMT | MTHD | PRCS | QUAL | RQMT | TEST | | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | | Introductory | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | | Competence | ● | ● | ● | ● | ● | | ● | | ● | ● | ● | | Leadership | | ● | ● | | | | | | ● | ● | ● | - Level1 (Developer) - 全ての Knowledge Area で Introductory レベルに達し、2つの Knowledge Area で Competence になる (約2年) - Level2 (Senior Developer) - さらに2つの Knowledge Area で Competance になり、1つの Knowledge Area で Leadership になる (約2年) - Level3 (Technical Lead) - さらに2つの Knowledge Area で Competance になり、1つの Knowledge Area で Leadership になる (約2年) - Level4 (Associate Architect) - さらに2つの Knowledge Area で Competance になり、1つの Knowledge Area で Leadership になる (約2年) - Levle5 (Software Architect) - さらに1つの Knowledge Area で Competance になり、2つの Knowledge Area で Leadership になる (約2年) Level5に至るまでには 8 - 10 年かかる。 全てのメンバーが Level 3 より上になる必要はない ### Level1 典型的なソフトウェア工学的アプローチを広く基礎的なことを学ぶ。この時点では、Software Architect、Agile Technical Coach、Software Technical Managerなど全てを目指すことができる。 このレベルを完了する頃には以下に熟練するはず - 最低2つの言語が書ける - コードの構造 - 命名 - コメント - データ構造 - DB実装 - インターフェース - 高度なデバッグスキル - 自動テスト - 境界値と同等性のテストケース - ブレークポイントなどを用いたデバッグスキル - リグレッションテスト - ステップテスト? / ユニットテスト / Integration Test / Component Test - テスト設計 Reading、Training、Work Activities TBD ### Level2 このレベルのエンジニアは、強いソフトウェア工学のバックグラウンドがあり、Team内で単独で強いコントリビューターである。またリーダーシップを徐々に見せ始めてる段階。プロダクトをリリースするまでのサイクルを経験して把握している。 このレベルを完了する頃には以下に熟練するはず - バージョン管理とビルドプロセス - APIの設計 - クラス、プログラム、ルーチンの設計 - リファクタリング - リリース管理とツールによるサポート - 最低4つの言語の経験 - Constrcution と Design の能力においてチームで秀でてると示している Reading、Training、Work Activities TBD ### Level3 このレベルのエンジニアは、成功したプロジェクトをいくつか経験していて、成功に大きな影響を与えている。 継続的に技術的に正しい判断をしており、プロジェクトレベルの問題についても考えている。 Construction と Testing の分野で Leadership をチーム内で発揮していて、より大きな組織に対して Leadership を発揮しつつある。 このレベルを完了する頃には以下に熟練するはず - レトロスペクティブをリードできる - チームレベルの品質の向上 - 熟練したデバッグ、リファクタリング、既存のシステムの保守 - 専門的なRDB設計スキル - システム、アーキテクチャ設計テクニック - UIデザインテクニック - 設計でいろんなプロジェクトで良い仕事を継続的にする Reading、Training、Work Activities TBD ### Level4 Level3は、ビジネスを支援するための技術的なリーダーシップを発揮するには十分とされていて、必ずしもLevel4に上がる必要はない。Level3とLevel4の大きな違いは、全体的な技術的決定のための non-coding-related な側面を要してるかどうか。 Construction、Testing、Design を含めた良い技術者に必要な能力の全てでリーダーシップを発揮する。 このレベルを完了する頃には以下に熟練するはず - 最低でも2つのモデリングテクニック - 最低でも2つの要求を分析するテクニック - 最低でも2つの要件定義テクニック - Requirements と Methods で継続的によい仕事をしている - 自動テストの専門的スキルを持っている - 境界条件や等価性のテストケーステクニック、テスト設計テクニック、TDDの専門的なスキルがある - Construction、Design、Test の観点でコーチングと認識されている - 全体的な開発のリードとして認識されている Reading、Training、Work Activities TBD ### Level5 Level5にならない決断をする人も多い。Level4との違いは、よい広範囲で技術的な決定をできる技術への理解がある。また深いリーダーシップもある。全てのスキルでリーダーシップを発揮する。会社全体の技術的な戦略などにオーナーシップを持ち、特異で大きな影響を与える。 このレベルを完了する頃には以下に熟練するはず - 経済的な意思決定をしている - ビジネスケースを作ったり、レビューしたり評価したりする - ビジネス上の不確実性や不正確性やリスクに対して基本的な分析ができる - 組織レベルの品質改善、障害減少、根本原因調査の専門的スキルを持ってる - 要求の引き出し、モデリング、要件定義、ファシリテーションの専門的スキルを持っている - 会社レベルの開発のリードとして認識されている Reading、Training、Work Activities TBD