LESSON 40分

ストーリー

あなた
最近入ったジュニアの佐々木さん、どう指導したらいいか悩んでいるんです。できることとできないことの差が激しくて…
高橋アーキテクト
成長には段階がある。ドレイファスモデルって知っているか?
あなた
聞いたことはありますが…
高橋アーキテクト
人は”初心者”から”エキスパート”まで5段階で成長する。段階によって、必要な支援の仕方が全く違う。初心者にはルールを、中級者にはパターンを、上級者には自由を与えるんだ。メンタリングの第一歩は、相手が今どの段階にいるかを見極めることだ

ドレイファスモデル:5つの成長段階

enum DreyfusStage {
  NOVICE = "初心者",
  ADVANCED_BEGINNER = "中級者",
  COMPETENT = "一人前",
  PROFICIENT = "熟練者",
  EXPERT = "エキスパート",
}

interface GrowthStage {
  stage: DreyfusStage;
  characteristics: string[];
  needsFrom_mentor: string[];
  mentoringApproach: string;
  timeframe: string;
}

const stages: GrowthStage[] = [
  {
    stage: DreyfusStage.NOVICE,
    characteristics: [
      "ルールに従って行動する",
      "文脈を考慮できない",
      "何が重要かの判断が難しい",
    ],
    needsFrom_mentor: [
      "明確なルールと手順",
      "すぐにフィードバック",
      "安全に失敗できる環境",
    ],
    mentoringApproach: "具体的な手順を示し、手厚くサポートする",
    timeframe: "0-6ヶ月",
  },
  {
    stage: DreyfusStage.ADVANCED_BEGINNER,
    characteristics: [
      "過去の経験をもとにパターンを認識し始める",
      "部分的に文脈を考慮できる",
      "まだ全体像の把握が困難",
    ],
    needsFrom_mentor: [
      "パターンの提示",
      "失敗からの学びの言語化",
      "少し広い視野の提供",
    ],
    mentoringApproach: "パターンを教え、自分で試す機会を増やす",
    timeframe: "6ヶ月-2年",
  },
  {
    stage: DreyfusStage.COMPETENT,
    characteristics: [
      "計画を立てて問題を解決できる",
      "何が重要かを判断できる",
      "責任感が芽生える",
    ],
    needsFrom_mentor: [
      "自主性の尊重",
      "困った時の相談相手",
      "新しい挑戦の機会",
    ],
    mentoringApproach: "目標を共有し、方法は本人に任せる",
    timeframe: "2-5年",
  },
  {
    stage: DreyfusStage.PROFICIENT,
    characteristics: [
      "全体像を直感的に把握できる",
      "過去のパターンから逸脱した判断ができる",
      "他者に教え始める",
    ],
    needsFrom_mentor: [
      "高度な問題へのアサイン",
      "リーダーシップの機会",
      "メンタリングの方法論",
    ],
    mentoringApproach: "スパーリングパートナーとして議論する",
    timeframe: "5-10年",
  },
  {
    stage: DreyfusStage.EXPERT,
    characteristics: [
      "直感的に正しい判断ができる",
      "ルールを超えた創造的な解決策",
      "他者の成長を促進できる",
    ],
    needsFrom_mentor: [
      "新しい領域への挑戦",
      "組織レベルの影響力の場",
      "同レベルのピアとの対話",
    ],
    mentoringApproach: "コーチングとファシリテーション",
    timeframe: "10年以上",
  },
];

エンジニアリングラダー

組織内でのレベル定義の例です。

## エンジニアリングラダーの例

| レベル | 名称 | 影響範囲 | 期待される行動 |
|--------|------|---------|---------------|
| L1 | ジュニア | 自分のタスク | 指示された作業を完遂できる |
| L2 | ミドル | チーム内 | 自走して機能を設計・実装できる |
| L3 | シニア | チーム全体 | 技術的判断を主導し、メンバーを育成 |
| L4 | スタッフ | 複数チーム | アーキテクチャ設計、技術方針策定 |
| L5 | プリンシパル | 組織全体 | 技術ビジョン、全社的な技術戦略 |
// 各レベルで期待されるスキルのマッピング
interface LevelExpectation {
  level: string;
  technical: string[];
  leadership: string[];
  communication: string[];
  impact: string;
}

const expectations: LevelExpectation[] = [
  {
    level: "L1",
    technical: ["基本的なコーディング", "テストの作成", "バグの修正"],
    leadership: ["自分のタスクの管理"],
    communication: ["チーム内での報告"],
    impact: "自分に割り当てられたタスクの完了",
  },
  {
    level: "L2",
    technical: ["機能の設計と実装", "コードレビュー", "パフォーマンス改善"],
    leadership: ["技術的判断の主導", "ジュニアの支援"],
    communication: ["設計の提案", "RFC/ADRの作成"],
    impact: "チームの生産性向上に貢献",
  },
  {
    level: "L3",
    technical: ["アーキテクチャ設計", "技術選定", "障害対応の主導"],
    leadership: ["メンタリング", "技術ロードマップ策定"],
    communication: ["ステークホルダーとの調整", "技術発信"],
    impact: "チーム全体の技術力向上を牽引",
  },
];

成長段階の見極め方

メンタリングの第一歩は、メンティーの現在地を把握することです。

観察ポイント初心者の兆候一人前の兆候熟練者の兆候
質問の仕方「何をすればいいですか?」「AとB、どちらが良いですか?」「Aで進めます。懸念点は…」
問題解決手順を逐一確認する計画を立てて取り組む直感的に全体を把握する
コードレビューレビュー受ける側が中心的確なレビューを行えるレビューの方針を決められる
障害対応何が起きているか分からない原因を特定し対処できる予防策まで提案できる

段階に応じたメンタリング

## 初心者へのメンタリング
- ペアプロで一緒にコードを書く
- チェックリストやテンプレートを提供する
- 小さな成功体験を積ませる
- 質問しやすい雰囲気を作る

## 中級者へのメンタリング
- 設計判断を任せ、レビューでフィードバック
- 「なぜ」を問う質問で思考を深める
- 失敗を許容し、学びに変える
- コードレビューを担当させる

## 上級者へのメンタリング
- リーダーシップの機会を提供
- 組織レベルの課題に関与させる
- メンタリングの仕方を教える
- 対等なパートナーとして議論する

まとめ

ポイント内容
ドレイファスモデル初心者→中級者→一人前→熟練者→エキスパートの5段階
エンジニアリングラダー組織内でのレベル定義と期待値
見極め方質問の仕方、問題解決、コードレビューで判断
段階別メンタリング段階に応じて支援の仕方を変える

チェックリスト

  • ドレイファスモデルの5段階を説明できる
  • 各段階で必要な支援の違いを理解した
  • エンジニアリングラダーの概念を把握した
  • メンティーの成長段階を見極める観察ポイントを学んだ

次のステップへ

次は「コードレビューの指導法」を学びます。日常的なコードレビューを通じてメンバーを育てる方法を掘り下げましょう。


推定読了時間: 40分