ストーリー
ドレイファスモデル: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分