ストーリー
ミッション概要
| ミッション | テーマ | 難易度 |
|---|---|---|
| Mission 1 | 成長段階の診断 | 初級 |
| Mission 2 | ジュニア向けメンタリング計画 | 中級 |
| Mission 3 | ミドル向けメンタリング計画 | 中級 |
| Mission 4 | コードレビューコメントの改善 | 中級 |
| Mission 5 | チーム学習計画の策定 | 上級 |
| Mission 6 | 心理的安全性の改善計画 | 上級 |
メンバープロフィール
## メンバーA: 佐々木さん(入社3ヶ月)
- 前職: 未経験からプログラミングスクール卒
- スキル: HTML/CSS/JavaScript の基礎
- 特徴: 真面目だが、質問するのを躊躇する
- 課題: エラーメッセージを読まずに止まることが多い
## メンバーB: 田村さん(入社2年)
- 前職: SIer でJava 2年
- スキル: TypeScript, React, 基本的なDB操作
- 特徴: 手は速いが、設計を考えずにコードを書き始める
- 課題: PRのサイズが大きく、テストカバレッジが低い
## メンバーC: 中村さん(入社4年)
- 前職: Web系スタートアップで3年
- スキル: バックエンド全般、インフラの基礎、CI/CD構築
- 特徴: 技術力は高いが、チームへの共有が少ない
- 課題: 自分だけで解決しがちで、チームの知識共有が進まない
Mission 1: 成長段階の診断(10分)
3人のメンバーのドレイファスモデルにおける成長段階を診断してください。
要件
各メンバーについて、成長段階とその根拠を記述する。
解答例
## 診断結果
### 佐々木さん: 初心者(Novice)
根拠:
- プログラミングの基礎段階にある
- エラーメッセージを自分で解釈できない(ルールに基づく行動がまだ)
- 質問を躊躇する(何が分からないかが分からない状態)
### 田村さん: 中級者(Advanced Beginner)
根拠:
- 経験をもとに動くコードは書ける(パターン認識あり)
- 設計の全体像を考えずに始める(全体の把握が不十分)
- テストの重要性の理解が浅い(文脈の考慮が限定的)
### 中村さん: 一人前〜熟練者(Competent〜Proficient)
根拠:
- 技術的な問題を自力で解決できる
- CI/CD構築などチーム貢献もできる
- 知識共有が少ない(他者への教育段階に入りきれていない)
Mission 2: ジュニア向けメンタリング計画(15分)
佐々木さんの3ヶ月間のメンタリング計画を作成してください。
解答例
## 佐々木さん メンタリング計画(3ヶ月)
### 目標
3ヶ月後に「簡単な機能を一人で実装し、PRを出せる」状態にする。
### 月1: 基礎固め
| 週 | テーマ | 方法 |
|----|--------|------|
| 1 | 開発環境の理解 | ペアプロ(Strong-Style)|
| 2 | エラーメッセージの読み方 | 毎日15分のデバッグセッション |
| 3 | Git の基本操作 | ハンズオン + チートシート提供 |
| 4 | 簡単なバグ修正 | ペアプロで一緒に取り組む |
### 月2: 自走力の育成
| 週 | テーマ | 方法 |
|----|--------|------|
| 1 | テストの書き方 | テンプレートを提供し、真似て書かせる |
| 2 | 小さな機能の実装 | 要件を細かく分割して渡す |
| 3 | コードレビューの受け方 | レビューの意図を一緒に読み解く |
| 4 | 自分のPRを出す | レビュー前にセルフレビューを習慣化 |
### 月3: 自立への移行
| 週 | テーマ | 方法 |
|----|--------|------|
| 1-2 | 機能を一人で実装 | 困ったら相談する形に変更 |
| 3-4 | 振り返りと次の目標設定 | 1on1で成長を言語化 |
### 1on1の頻度
- 月1: 週2回(30分)
- 月2: 週1回(30分)
- 月3: 隔週1回(30分)
### 心理的安全性の確保
- 「質問は何度でもOK」と繰り返し伝える
- 小さな成功を一緒に喜ぶ
- 失敗したときは原因を一緒に探す(責めない)
Mission 3: ミドル向けメンタリング計画(15分)
田村さんの3ヶ月間のメンタリング計画を作成してください。
解答例
## 田村さん メンタリング計画(3ヶ月)
### 目標
3ヶ月後に「設計を考えてからコードを書き、適切な粒度のPRを出せる」状態にする。
### 月1: 設計思考の導入
| 活動 | 頻度 | 内容 |
|------|------|------|
| 設計レビュー | 実装前に毎回 | 実装前に5分間の設計スケッチを書かせる |
| ペアプロ | 週1回 | 設計判断のプロセスを見せる |
| 書籍 | 自習 | 「リーダブルコード」を推薦 |
### 月2: テスト文化の定着
| 活動 | 頻度 | 内容 |
|------|------|------|
| TDDペアプロ | 週1回 | Ping-Pongスタイルで実践 |
| PR分割の練習 | 毎PR | 300行以下を目標に分割指導 |
| テスト戦略の理解 | レッスン | Unit/Integration/E2Eの使い分け |
### 月3: コードレビュー力の向上
| 活動 | 頻度 | 内容 |
|------|------|------|
| レビュアー経験 | 週2-3件 | 佐々木さんのPRをレビュー |
| 設計ADR | 月1件 | 自分の設計判断をADRに書く |
| 振り返り | 月末 | 成長の言語化と次の目標 |
### コーチングの方針
- 答えを教えるのではなく、「なぜそう設計した?」と質問する
- 失敗を許容し、レビューで学ばせる
- 良い設計をした時は具体的に褒める
Mission 4: コードレビューコメントの改善(15分)
以下の「悪いレビューコメント」を、建設的なコメントに書き換えてください。
悪いコメント
1. 「これはダメ」
2. 「なんでこんな書き方するの?」
3. 「テスト書いて」
4. 「全部直して」
解答例
## 改善後
### 1. 「これはダメ」→
「この部分、ユーザーが null を入力した場合に
例外が発生しそうです。バリデーションを追加すると
安全になります。例えば:
`if (!input) throw new ValidationError('入力が必要です');`」
### 2. 「なんでこんな書き方するの?」→
「ここで for ループを使っている意図を教えてもらえますか?
Array.map() を使うとより宣言的に書けるかもしれません。
もし意図的に for を使っているなら、コメントがあると
次の人が理解しやすくなります」
### 3. 「テスト書いて」→
「この関数はビジネスロジックの核心部分なので、
テストがあると安心です。特に以下のケースが重要だと思います:
- 正常系: 有効な入力でユーザーが作成される
- 異常系: メールアドレスが重複した場合
参考: tests/user.test.ts に似たパターンがあります」
### 4. 「全部直して」→
「いくつかフィードバックを書きました。
優先度の高いものから対応してもらえると助かります:
1. [BLOCKER] SQLインジェクションの脆弱性(L45)
2. [CONCERN] N+1クエリの可能性(L78)
3. [SUGGESTION] 変数名の改善(L23)
3は時間がなければ次のPRでも大丈夫です」
Mission 5: チーム学習計画の策定(20分)
中村さんの知識共有不足を解消するための、チーム全体の学習計画を策定してください。
解答例
## チーム学習計画(四半期)
### 目標
チーム内の知識の偏在を解消し、全員が学び合う文化を作る。
### 週次活動
| 活動 | 時間 | 担当 | 内容 |
|------|------|------|------|
| テックトーク | 金曜30分 | ローテーション | 最近学んだことを15分で共有 |
| モブプロ | 水曜1.5時間 | テクニカルリード | 複雑なタスクを全員で取り組む |
### 中村さんへの施策
- テックトークの最初の登壇者として依頼
- 佐々木さんのメンター役を正式にアサイン
- ADRの作成を担当し、設計判断を文書化してもらう
- 「教えることは最大の学び」の価値を1on1で伝える
### 知識共有の仕組み
1. Wikiに技術ナレッジベースを構築
2. Slack #til チャンネルで日々の学びを共有
3. 月次で「チーム技術状況レポート」を作成
### 効果測定
| 指標 | 現状 | 目標 |
|------|------|------|
| テックトーク登壇率 | 20% | 80% |
| Wiki記事数(月) | 2件 | 8件 |
| ペアプロ実施回数(週) | 0回 | 3回 |
Mission 6: 心理的安全性の改善計画(15分)
佐々木さんが質問を躊躇する問題を解消するための改善計画を書いてください。
解答例
## 心理的安全性の改善計画
### 現状の問題
佐々木さんが質問を躊躇する。他のメンバーにも同様の傾向がある可能性。
### 改善アクション
#### 即座に実施
1. テクニカルリード自身が「分からない」と積極的に発言する
2. 佐々木さんの質問に対して「いい質問だね」と反応する
3. Slack #質問-なんでも チャンネルを作り、リードが最初に質問を投稿
#### 1ヶ月以内
4. チームのグラウンドルールを設定:
- 「初歩的な質問は存在しない」
- 「同じ質問は2回までOK。3回目はドキュメント化の合図」
5. ペアプロの機会を増やし、自然に質問できる場を作る
6. 1on1で「何か困っていることはない?」を毎回聞く
#### 3ヶ月以内
7. Blameless Postmortemを導入し、失敗を学びに変える文化を作る
8. 「今週の良い質問」をチーム会議で共有する
9. 匿名フィードバックで心理的安全性を定期測定
### 効果測定
- Slack での質問投稿数の推移
- 1on1 での佐々木さんの自己評価
- チーム全体の匿名アンケートスコア
達成度チェック
| ミッション | テーマ | 完了 |
|---|---|---|
| Mission 1 | 成長段階の診断 | [ ] |
| Mission 2 | ジュニア向け計画 | [ ] |
| Mission 3 | ミドル向け計画 | [ ] |
| Mission 4 | レビューコメント改善 | [ ] |
| Mission 5 | チーム学習計画 | [ ] |
| Mission 6 | 心理的安全性改善 | [ ] |
まとめ
| ポイント | 内容 |
|---|---|
| 診断 | メンバーの成長段階を見極めてから計画を立てる |
| 個別計画 | レベルに応じた支援方法を設計する |
| レビュー | 建設的で教育的なコメントを書く |
| 組織学習 | 仕組みとして知識共有を定着させる |
チェックリスト
- メンバーの成長段階を診断できた
- レベル別のメンタリング計画を作成できた
- レビューコメントを建設的に書き換えられた
- チーム学習計画を策定できた
- 心理的安全性の改善計画を立てられた
次のステップへ
お疲れさまでした。次はチェックポイントで理解度を確認しましょう。
推定所要時間: 90分