@shaykec/bridge 0.4.25 → 0.4.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/journeys/ai-engineer.yaml +34 -0
- package/journeys/backend-developer.yaml +36 -0
- package/journeys/business-analyst.yaml +37 -0
- package/journeys/devops-engineer.yaml +37 -0
- package/journeys/engineering-manager.yaml +44 -0
- package/journeys/frontend-developer.yaml +41 -0
- package/journeys/fullstack-developer.yaml +49 -0
- package/journeys/mobile-developer.yaml +42 -0
- package/journeys/product-manager.yaml +35 -0
- package/journeys/qa-engineer.yaml +37 -0
- package/journeys/ux-designer.yaml +43 -0
- package/modules/README.md +52 -0
- package/modules/accessibility-fundamentals/content.md +126 -0
- package/modules/accessibility-fundamentals/exercises.md +88 -0
- package/modules/accessibility-fundamentals/module.yaml +43 -0
- package/modules/accessibility-fundamentals/quick-ref.md +71 -0
- package/modules/accessibility-fundamentals/quiz.md +100 -0
- package/modules/accessibility-fundamentals/resources.md +29 -0
- package/modules/accessibility-fundamentals/walkthrough.md +80 -0
- package/modules/adr-writing/content.md +121 -0
- package/modules/adr-writing/exercises.md +81 -0
- package/modules/adr-writing/module.yaml +41 -0
- package/modules/adr-writing/quick-ref.md +57 -0
- package/modules/adr-writing/quiz.md +73 -0
- package/modules/adr-writing/resources.md +29 -0
- package/modules/adr-writing/walkthrough.md +64 -0
- package/modules/ai-agents/content.md +120 -0
- package/modules/ai-agents/exercises.md +82 -0
- package/modules/ai-agents/module.yaml +42 -0
- package/modules/ai-agents/quick-ref.md +60 -0
- package/modules/ai-agents/quiz.md +103 -0
- package/modules/ai-agents/resources.md +30 -0
- package/modules/ai-agents/walkthrough.md +85 -0
- package/modules/ai-assisted-research/content.md +136 -0
- package/modules/ai-assisted-research/exercises.md +80 -0
- package/modules/ai-assisted-research/module.yaml +42 -0
- package/modules/ai-assisted-research/quick-ref.md +67 -0
- package/modules/ai-assisted-research/quiz.md +73 -0
- package/modules/ai-assisted-research/resources.md +33 -0
- package/modules/ai-assisted-research/walkthrough.md +85 -0
- package/modules/ai-pair-programming/content.md +105 -0
- package/modules/ai-pair-programming/exercises.md +98 -0
- package/modules/ai-pair-programming/module.yaml +39 -0
- package/modules/ai-pair-programming/quick-ref.md +58 -0
- package/modules/ai-pair-programming/quiz.md +73 -0
- package/modules/ai-pair-programming/resources.md +34 -0
- package/modules/ai-pair-programming/walkthrough.md +117 -0
- package/modules/ai-test-generation/content.md +125 -0
- package/modules/ai-test-generation/exercises.md +98 -0
- package/modules/ai-test-generation/module.yaml +39 -0
- package/modules/ai-test-generation/quick-ref.md +65 -0
- package/modules/ai-test-generation/quiz.md +74 -0
- package/modules/ai-test-generation/resources.md +41 -0
- package/modules/ai-test-generation/walkthrough.md +100 -0
- package/modules/api-design/content.md +189 -0
- package/modules/api-design/exercises.md +84 -0
- package/modules/api-design/game.yaml +113 -0
- package/modules/api-design/module.yaml +45 -0
- package/modules/api-design/quick-ref.md +73 -0
- package/modules/api-design/quiz.md +100 -0
- package/modules/api-design/resources.md +55 -0
- package/modules/api-design/walkthrough.md +88 -0
- package/modules/clean-code/content.md +136 -0
- package/modules/clean-code/exercises.md +137 -0
- package/modules/clean-code/game.yaml +172 -0
- package/modules/clean-code/module.yaml +44 -0
- package/modules/clean-code/quick-ref.md +44 -0
- package/modules/clean-code/quiz.md +105 -0
- package/modules/clean-code/resources.md +40 -0
- package/modules/clean-code/walkthrough.md +78 -0
- package/modules/clean-code/workshop.yaml +149 -0
- package/modules/code-review/content.md +130 -0
- package/modules/code-review/exercises.md +95 -0
- package/modules/code-review/game.yaml +83 -0
- package/modules/code-review/module.yaml +42 -0
- package/modules/code-review/quick-ref.md +77 -0
- package/modules/code-review/quiz.md +105 -0
- package/modules/code-review/resources.md +40 -0
- package/modules/code-review/walkthrough.md +106 -0
- package/modules/daily-workflow/content.md +81 -0
- package/modules/daily-workflow/exercises.md +50 -0
- package/modules/daily-workflow/module.yaml +33 -0
- package/modules/daily-workflow/quick-ref.md +37 -0
- package/modules/daily-workflow/quiz.md +65 -0
- package/modules/daily-workflow/resources.md +38 -0
- package/modules/daily-workflow/walkthrough.md +83 -0
- package/modules/debugging-systematically/content.md +139 -0
- package/modules/debugging-systematically/exercises.md +91 -0
- package/modules/debugging-systematically/module.yaml +46 -0
- package/modules/debugging-systematically/quick-ref.md +59 -0
- package/modules/debugging-systematically/quiz.md +105 -0
- package/modules/debugging-systematically/resources.md +42 -0
- package/modules/debugging-systematically/walkthrough.md +84 -0
- package/modules/debugging-systematically/workshop.yaml +127 -0
- package/modules/demo-test/content.md +68 -0
- package/modules/demo-test/exercises.md +28 -0
- package/modules/demo-test/game.yaml +171 -0
- package/modules/demo-test/module.yaml +41 -0
- package/modules/demo-test/quick-ref.md +54 -0
- package/modules/demo-test/quiz.md +74 -0
- package/modules/demo-test/resources.md +21 -0
- package/modules/demo-test/walkthrough.md +122 -0
- package/modules/demo-test/workshop.yaml +31 -0
- package/modules/design-critique/content.md +93 -0
- package/modules/design-critique/exercises.md +71 -0
- package/modules/design-critique/module.yaml +41 -0
- package/modules/design-critique/quick-ref.md +63 -0
- package/modules/design-critique/quiz.md +73 -0
- package/modules/design-critique/resources.md +27 -0
- package/modules/design-critique/walkthrough.md +68 -0
- package/modules/design-patterns/content.md +335 -0
- package/modules/design-patterns/exercises.md +82 -0
- package/modules/design-patterns/game.yaml +55 -0
- package/modules/design-patterns/module.yaml +45 -0
- package/modules/design-patterns/quick-ref.md +44 -0
- package/modules/design-patterns/quiz.md +101 -0
- package/modules/design-patterns/resources.md +40 -0
- package/modules/design-patterns/walkthrough.md +64 -0
- package/modules/exploratory-testing/content.md +133 -0
- package/modules/exploratory-testing/exercises.md +88 -0
- package/modules/exploratory-testing/module.yaml +41 -0
- package/modules/exploratory-testing/quick-ref.md +68 -0
- package/modules/exploratory-testing/quiz.md +75 -0
- package/modules/exploratory-testing/resources.md +39 -0
- package/modules/exploratory-testing/walkthrough.md +87 -0
- package/modules/git/content.md +128 -0
- package/modules/git/exercises.md +53 -0
- package/modules/git/game.yaml +190 -0
- package/modules/git/module.yaml +44 -0
- package/modules/git/quick-ref.md +67 -0
- package/modules/git/quiz.md +89 -0
- package/modules/git/resources.md +49 -0
- package/modules/git/walkthrough.md +92 -0
- package/modules/git/workshop.yaml +145 -0
- package/modules/hiring-interviews/content.md +130 -0
- package/modules/hiring-interviews/exercises.md +88 -0
- package/modules/hiring-interviews/module.yaml +41 -0
- package/modules/hiring-interviews/quick-ref.md +68 -0
- package/modules/hiring-interviews/quiz.md +73 -0
- package/modules/hiring-interviews/resources.md +36 -0
- package/modules/hiring-interviews/walkthrough.md +75 -0
- package/modules/hooks/content.md +97 -0
- package/modules/hooks/exercises.md +69 -0
- package/modules/hooks/module.yaml +39 -0
- package/modules/hooks/quick-ref.md +93 -0
- package/modules/hooks/quiz.md +81 -0
- package/modules/hooks/resources.md +34 -0
- package/modules/hooks/walkthrough.md +105 -0
- package/modules/hooks/workshop.yaml +64 -0
- package/modules/incident-response/content.md +124 -0
- package/modules/incident-response/exercises.md +82 -0
- package/modules/incident-response/game.yaml +132 -0
- package/modules/incident-response/module.yaml +45 -0
- package/modules/incident-response/quick-ref.md +53 -0
- package/modules/incident-response/quiz.md +103 -0
- package/modules/incident-response/resources.md +40 -0
- package/modules/incident-response/walkthrough.md +82 -0
- package/modules/llm-fundamentals/content.md +114 -0
- package/modules/llm-fundamentals/exercises.md +83 -0
- package/modules/llm-fundamentals/module.yaml +42 -0
- package/modules/llm-fundamentals/quick-ref.md +64 -0
- package/modules/llm-fundamentals/quiz.md +103 -0
- package/modules/llm-fundamentals/resources.md +30 -0
- package/modules/llm-fundamentals/walkthrough.md +91 -0
- package/modules/one-on-ones/content.md +133 -0
- package/modules/one-on-ones/exercises.md +81 -0
- package/modules/one-on-ones/module.yaml +44 -0
- package/modules/one-on-ones/quick-ref.md +67 -0
- package/modules/one-on-ones/quiz.md +73 -0
- package/modules/one-on-ones/resources.md +37 -0
- package/modules/one-on-ones/walkthrough.md +69 -0
- package/modules/package.json +9 -0
- package/modules/prioritization-frameworks/content.md +130 -0
- package/modules/prioritization-frameworks/exercises.md +93 -0
- package/modules/prioritization-frameworks/module.yaml +41 -0
- package/modules/prioritization-frameworks/quick-ref.md +77 -0
- package/modules/prioritization-frameworks/quiz.md +73 -0
- package/modules/prioritization-frameworks/resources.md +32 -0
- package/modules/prioritization-frameworks/walkthrough.md +69 -0
- package/modules/prompt-engineering/content.md +123 -0
- package/modules/prompt-engineering/exercises.md +82 -0
- package/modules/prompt-engineering/game.yaml +101 -0
- package/modules/prompt-engineering/module.yaml +45 -0
- package/modules/prompt-engineering/quick-ref.md +65 -0
- package/modules/prompt-engineering/quiz.md +105 -0
- package/modules/prompt-engineering/resources.md +36 -0
- package/modules/prompt-engineering/walkthrough.md +81 -0
- package/modules/rag-fundamentals/content.md +111 -0
- package/modules/rag-fundamentals/exercises.md +80 -0
- package/modules/rag-fundamentals/module.yaml +45 -0
- package/modules/rag-fundamentals/quick-ref.md +58 -0
- package/modules/rag-fundamentals/quiz.md +75 -0
- package/modules/rag-fundamentals/resources.md +34 -0
- package/modules/rag-fundamentals/walkthrough.md +75 -0
- package/modules/react-fundamentals/content.md +140 -0
- package/modules/react-fundamentals/exercises.md +81 -0
- package/modules/react-fundamentals/game.yaml +145 -0
- package/modules/react-fundamentals/module.yaml +45 -0
- package/modules/react-fundamentals/quick-ref.md +62 -0
- package/modules/react-fundamentals/quiz.md +106 -0
- package/modules/react-fundamentals/resources.md +42 -0
- package/modules/react-fundamentals/walkthrough.md +89 -0
- package/modules/react-fundamentals/workshop.yaml +112 -0
- package/modules/react-native-fundamentals/content.md +141 -0
- package/modules/react-native-fundamentals/exercises.md +79 -0
- package/modules/react-native-fundamentals/module.yaml +42 -0
- package/modules/react-native-fundamentals/quick-ref.md +60 -0
- package/modules/react-native-fundamentals/quiz.md +61 -0
- package/modules/react-native-fundamentals/resources.md +24 -0
- package/modules/react-native-fundamentals/walkthrough.md +84 -0
- package/modules/registry.yaml +1650 -0
- package/modules/risk-management/content.md +162 -0
- package/modules/risk-management/exercises.md +86 -0
- package/modules/risk-management/module.yaml +41 -0
- package/modules/risk-management/quick-ref.md +82 -0
- package/modules/risk-management/quiz.md +73 -0
- package/modules/risk-management/resources.md +40 -0
- package/modules/risk-management/walkthrough.md +67 -0
- package/modules/running-effective-standups/content.md +119 -0
- package/modules/running-effective-standups/exercises.md +79 -0
- package/modules/running-effective-standups/module.yaml +40 -0
- package/modules/running-effective-standups/quick-ref.md +61 -0
- package/modules/running-effective-standups/quiz.md +73 -0
- package/modules/running-effective-standups/resources.md +36 -0
- package/modules/running-effective-standups/walkthrough.md +76 -0
- package/modules/solid-principles/content.md +154 -0
- package/modules/solid-principles/exercises.md +107 -0
- package/modules/solid-principles/module.yaml +42 -0
- package/modules/solid-principles/quick-ref.md +50 -0
- package/modules/solid-principles/quiz.md +102 -0
- package/modules/solid-principles/resources.md +39 -0
- package/modules/solid-principles/walkthrough.md +84 -0
- package/modules/sprint-planning/content.md +142 -0
- package/modules/sprint-planning/exercises.md +79 -0
- package/modules/sprint-planning/game.yaml +84 -0
- package/modules/sprint-planning/module.yaml +44 -0
- package/modules/sprint-planning/quick-ref.md +76 -0
- package/modules/sprint-planning/quiz.md +102 -0
- package/modules/sprint-planning/resources.md +39 -0
- package/modules/sprint-planning/walkthrough.md +75 -0
- package/modules/sql-fundamentals/content.md +160 -0
- package/modules/sql-fundamentals/exercises.md +87 -0
- package/modules/sql-fundamentals/game.yaml +105 -0
- package/modules/sql-fundamentals/module.yaml +45 -0
- package/modules/sql-fundamentals/quick-ref.md +53 -0
- package/modules/sql-fundamentals/quiz.md +103 -0
- package/modules/sql-fundamentals/resources.md +42 -0
- package/modules/sql-fundamentals/walkthrough.md +92 -0
- package/modules/sql-fundamentals/workshop.yaml +109 -0
- package/modules/stakeholder-communication/content.md +186 -0
- package/modules/stakeholder-communication/exercises.md +87 -0
- package/modules/stakeholder-communication/module.yaml +38 -0
- package/modules/stakeholder-communication/quick-ref.md +89 -0
- package/modules/stakeholder-communication/quiz.md +73 -0
- package/modules/stakeholder-communication/resources.md +41 -0
- package/modules/stakeholder-communication/walkthrough.md +74 -0
- package/modules/system-design/content.md +149 -0
- package/modules/system-design/exercises.md +83 -0
- package/modules/system-design/game.yaml +95 -0
- package/modules/system-design/module.yaml +46 -0
- package/modules/system-design/quick-ref.md +59 -0
- package/modules/system-design/quiz.md +102 -0
- package/modules/system-design/resources.md +46 -0
- package/modules/system-design/walkthrough.md +90 -0
- package/modules/team-topologies/content.md +166 -0
- package/modules/team-topologies/exercises.md +85 -0
- package/modules/team-topologies/module.yaml +41 -0
- package/modules/team-topologies/quick-ref.md +61 -0
- package/modules/team-topologies/quiz.md +101 -0
- package/modules/team-topologies/resources.md +37 -0
- package/modules/team-topologies/walkthrough.md +76 -0
- package/modules/technical-debt/content.md +111 -0
- package/modules/technical-debt/exercises.md +92 -0
- package/modules/technical-debt/module.yaml +39 -0
- package/modules/technical-debt/quick-ref.md +60 -0
- package/modules/technical-debt/quiz.md +73 -0
- package/modules/technical-debt/resources.md +25 -0
- package/modules/technical-debt/walkthrough.md +94 -0
- package/modules/technical-mentoring/content.md +128 -0
- package/modules/technical-mentoring/exercises.md +84 -0
- package/modules/technical-mentoring/module.yaml +41 -0
- package/modules/technical-mentoring/quick-ref.md +74 -0
- package/modules/technical-mentoring/quiz.md +73 -0
- package/modules/technical-mentoring/resources.md +33 -0
- package/modules/technical-mentoring/walkthrough.md +65 -0
- package/modules/test-strategy/content.md +136 -0
- package/modules/test-strategy/exercises.md +84 -0
- package/modules/test-strategy/game.yaml +99 -0
- package/modules/test-strategy/module.yaml +45 -0
- package/modules/test-strategy/quick-ref.md +66 -0
- package/modules/test-strategy/quiz.md +99 -0
- package/modules/test-strategy/resources.md +60 -0
- package/modules/test-strategy/walkthrough.md +97 -0
- package/modules/test-strategy/workshop.yaml +96 -0
- package/modules/typescript-fundamentals/content.md +127 -0
- package/modules/typescript-fundamentals/exercises.md +79 -0
- package/modules/typescript-fundamentals/game.yaml +111 -0
- package/modules/typescript-fundamentals/module.yaml +45 -0
- package/modules/typescript-fundamentals/quick-ref.md +55 -0
- package/modules/typescript-fundamentals/quiz.md +104 -0
- package/modules/typescript-fundamentals/resources.md +42 -0
- package/modules/typescript-fundamentals/walkthrough.md +71 -0
- package/modules/typescript-fundamentals/workshop.yaml +146 -0
- package/modules/user-story-mapping/content.md +123 -0
- package/modules/user-story-mapping/exercises.md +87 -0
- package/modules/user-story-mapping/module.yaml +41 -0
- package/modules/user-story-mapping/quick-ref.md +64 -0
- package/modules/user-story-mapping/quiz.md +73 -0
- package/modules/user-story-mapping/resources.md +29 -0
- package/modules/user-story-mapping/walkthrough.md +86 -0
- package/modules/writing-prds/content.md +133 -0
- package/modules/writing-prds/exercises.md +93 -0
- package/modules/writing-prds/game.yaml +83 -0
- package/modules/writing-prds/module.yaml +44 -0
- package/modules/writing-prds/quick-ref.md +77 -0
- package/modules/writing-prds/quiz.md +103 -0
- package/modules/writing-prds/resources.md +30 -0
- package/modules/writing-prds/walkthrough.md +87 -0
- package/package.json +1 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Technical Debt Walkthrough — Learn by Doing
|
|
2
|
+
|
|
3
|
+
## Step 1: Recognize the Metaphor
|
|
4
|
+
|
|
5
|
+
Debt has principal and interest. So does tech debt.
|
|
6
|
+
|
|
7
|
+
**Task:** Pick a piece of code in a project you know (or imagine one) that's hard to change. Estimate: (a) how long to fix it properly (principal), and (b) how much extra time each change in that area costs (interest per touch).
|
|
8
|
+
|
|
9
|
+
**Question:** If you touch this code 10 times a year, is the total interest more or less than the principal? When does it become worth paying down?
|
|
10
|
+
|
|
11
|
+
**Checkpoint:** The user can distinguish principal (one-time fix) from interest (recurring cost). They recognize that high-touch code has higher interest.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Step 2: Place Debt in the Quadrant
|
|
16
|
+
|
|
17
|
+
Fowler's quadrant: deliberate vs inadvertent, prudent vs reckless.
|
|
18
|
+
|
|
19
|
+
**Task:** For each scenario, place it in the quadrant and explain why:
|
|
20
|
+
1. Team ships without tests to hit a deadline, plans to add tests next sprint
|
|
21
|
+
2. Junior dev writes a 500-line function; doesn't know better
|
|
22
|
+
3. Team chooses a quick prototype that becomes production; never refactors
|
|
23
|
+
|
|
24
|
+
**Question:** Which scenario is "prudent deliberate"? Which is "reckless deliberate"? Why does the distinction matter for how you talk about it?
|
|
25
|
+
|
|
26
|
+
**Checkpoint:** (1) Prudent-deliberate if they actually add tests. (2) Prudent-inadvertent (didn't know). (3) Reckless-deliberate (knew but never paid). The user can explain the quadrant.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Step 3: Identify Code Smells
|
|
31
|
+
|
|
32
|
+
Smells are signals, not proof — but they point to debt.
|
|
33
|
+
|
|
34
|
+
**Task:** Look at a file in your codebase (or a sample online). List at least 3 potential smells: long functions, duplication, deep nesting, unclear names, etc.
|
|
35
|
+
|
|
36
|
+
**Question:** Why is each a "smell" rather than necessarily bad? What would you need to verify before calling it debt?
|
|
37
|
+
|
|
38
|
+
**Checkpoint:** The user lists concrete smells and understands they're indicators. They recognize that some "smells" might be acceptable in context (e.g., a simple 100-line script).
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Step 4: Measure What Matters
|
|
43
|
+
|
|
44
|
+
Different metrics reveal different aspects of debt.
|
|
45
|
+
|
|
46
|
+
**Task:** For a hypothetical module that keeps having bugs: what metrics would you collect to make a case for paying down debt? List at least 3.
|
|
47
|
+
|
|
48
|
+
**Question:** How would you explain "cyclomatic complexity" or "churn" to a non-technical stakeholder? What's the business impact?
|
|
49
|
+
|
|
50
|
+
**Checkpoint:** The user suggests metrics like: bug count by module, complexity, files changed per feature, cycle time. They can translate at least one into business impact (e.g., "slows releases by X%").
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Step 5: Prioritize Paydown
|
|
55
|
+
|
|
56
|
+
Not all debt is equal. Prioritize by interest and risk.
|
|
57
|
+
|
|
58
|
+
**Task:** You have three debt items:
|
|
59
|
+
- A: Rarely touched, ugly code (principal: 2 days)
|
|
60
|
+
- B: Touched every sprint, moderate mess (principal: 5 days, interest: 1 day/sprint)
|
|
61
|
+
- C: Security concern in auth module (principal: 3 days)
|
|
62
|
+
|
|
63
|
+
Order them by paydown priority and explain your reasoning.
|
|
64
|
+
|
|
65
|
+
**Question:** When might you fix A before B? When would C always come first?
|
|
66
|
+
|
|
67
|
+
**Checkpoint:** User likely orders C first (risk), then B (high interest), then A (low interest). They can articulate when risk trumps interest.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Step 6: Communicate to a Manager
|
|
72
|
+
|
|
73
|
+
Stakeholders need outcomes, not jargon.
|
|
74
|
+
|
|
75
|
+
**Task:** Write a 2–3 sentence pitch to your manager for paying down debt in module X. Include: what's wrong, what it costs now, what fixing it would unlock, and a simple ask (e.g., "1 sprint").
|
|
76
|
+
|
|
77
|
+
**Question:** What would make a manager say yes? What would make them say "we can't afford it"?
|
|
78
|
+
|
|
79
|
+
**Checkpoint:** The user's pitch uses business language (time, risk, roadmap), not just "code quality." They have a concrete ask.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Step 7: Choose Refactor vs Rewrite
|
|
84
|
+
|
|
85
|
+
Different situations need different strategies.
|
|
86
|
+
|
|
87
|
+
**Task:** For each scenario, choose Refactor or Rewrite and justify in one sentence:
|
|
88
|
+
1. 50-line function doing 4 things
|
|
89
|
+
2. Legacy monolith, 10 years old, no tests, wrong architecture
|
|
90
|
+
3. New feature needs different data model; current one is workable but awkward
|
|
91
|
+
|
|
92
|
+
**Question:** What's the main risk of a full rewrite? When is "strangler fig" better?
|
|
93
|
+
|
|
94
|
+
**Checkpoint:** (1) Refactor — extract functions. (2) Often rewrite or strangler — but strangler is safer. (3) Refactor or incremental migration. User understands rewrite is risky and refactor is usually preferable.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Technical Mentoring — Growing Engineers on Your Team
|
|
2
|
+
|
|
3
|
+
<!-- hint:slides topic="Technical mentoring: mentoring vs coaching vs sponsoring, Dreyfus skill model, Socratic questioning, and SBI feedback" slides="5" -->
|
|
4
|
+
|
|
5
|
+
## Mentoring vs Coaching vs Sponsoring
|
|
6
|
+
|
|
7
|
+
These three roles overlap but serve different purposes:
|
|
8
|
+
|
|
9
|
+
| Role | Focus | Example |
|
|
10
|
+
|------|-------|---------|
|
|
11
|
+
| **Mentoring** | Sharing experience, advice, and guidance | "Here's how I approached this; what would work for you?" |
|
|
12
|
+
| **Coaching** | Asking questions to unlock mentee's own thinking | "What have you tried? What's blocking you?" |
|
|
13
|
+
| **Sponsoring** | Actively advocating for visibility and opportunity | "I'm putting you up for the architecture review lead." |
|
|
14
|
+
|
|
15
|
+
Effective mentors blend all three: they share experience when it helps, ask questions to stretch thinking, and sponsor when the mentee is ready.
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart LR
|
|
19
|
+
subgraph Roles["Mentor's Toolkit"]
|
|
20
|
+
M[Mentoring: Share]
|
|
21
|
+
C[Coaching: Ask]
|
|
22
|
+
S[Sponsoring: Advocate]
|
|
23
|
+
end
|
|
24
|
+
M --> R[Mentee Growth]
|
|
25
|
+
C --> R
|
|
26
|
+
S --> R
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## The Dreyfus Skill Model
|
|
30
|
+
|
|
31
|
+
The Dreyfus model describes how people move from novice to expert. Your mentoring style should match the stage:
|
|
32
|
+
|
|
33
|
+
| Stage | Characteristics | How to Support |
|
|
34
|
+
|-------|-----------------|----------------|
|
|
35
|
+
| **Novice** | Wants rules; overwhelmed by context | Clear instructions, checklists, safe practice |
|
|
36
|
+
| **Advanced Beginner** | Starts seeing context; still rule-focused | Guided decisions, explain *why* rules exist |
|
|
37
|
+
| **Competent** | Can prioritize; handles routine well | Give stretch assignments; debrief afterward |
|
|
38
|
+
| **Proficient** | Intuition kicks in; wants principles | Challenge with ambiguity; share mental models |
|
|
39
|
+
| **Expert** | Intuitive; invents new approaches | Get out of the way; sponsor for bigger scope |
|
|
40
|
+
|
|
41
|
+
**Example:** A novice might need "Always validate input at the API boundary." A proficient engineer benefits from "Where does validation belong in this architecture, and why?"
|
|
42
|
+
|
|
43
|
+
## Socratic Questioning
|
|
44
|
+
|
|
45
|
+
Instead of giving answers, ask questions that lead the mentee to the insight. This builds ownership and deeper learning.
|
|
46
|
+
|
|
47
|
+
**Instead of:** "Use a hash map here for O(1) lookups."
|
|
48
|
+
**Try:** "What's the complexity of repeated lookups in a list? Is there a data structure that would improve that?"
|
|
49
|
+
|
|
50
|
+
**Socratic patterns:**
|
|
51
|
+
- "What would happen if...?"
|
|
52
|
+
- "What have you already tried?"
|
|
53
|
+
- "What's the constraint you're working around?"
|
|
54
|
+
- "How would you explain this to someone who hasn't seen it?"
|
|
55
|
+
|
|
56
|
+
## Pairing and Stretch Assignments
|
|
57
|
+
|
|
58
|
+
**Pairing** builds skills through real-time collaboration. Rotate who drives; the mentor observes and questions. Good for: debugging, design decisions, unfamiliar codebases.
|
|
59
|
+
|
|
60
|
+
**Stretch assignments** push the mentee slightly beyond comfort. They should:
|
|
61
|
+
- Have clear success criteria
|
|
62
|
+
- Include support (you're available but not hovering)
|
|
63
|
+
- Be scoped so failure is recoverable
|
|
64
|
+
|
|
65
|
+
**Example:** A competent backend engineer gets a stretch assignment: "Own the design for the new notification service. I'll review your proposal and pair on the trickiest part."
|
|
66
|
+
|
|
67
|
+
## SBI Feedback
|
|
68
|
+
|
|
69
|
+
**Situation, Behavior, Impact** keeps feedback specific and non-accusatory:
|
|
70
|
+
|
|
71
|
+
| Part | Example |
|
|
72
|
+
|------|---------|
|
|
73
|
+
| **Situation** | "In yesterday's design review..." |
|
|
74
|
+
| **Behavior** | "...you proposed a solution before hearing others' ideas." |
|
|
75
|
+
| **Impact** | "The team felt their input wasn't valued, so they disengaged." |
|
|
76
|
+
|
|
77
|
+
Follow with: "What would you do differently?" or "What support do you need?" This makes it actionable.
|
|
78
|
+
|
|
79
|
+
```mermaid
|
|
80
|
+
flowchart LR
|
|
81
|
+
S[Situation: When/Where] --> B[Behavior: What happened]
|
|
82
|
+
B --> I[Impact: Effect on others/outcome]
|
|
83
|
+
I --> A[Ask: What next?]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Psychological Safety
|
|
87
|
+
|
|
88
|
+
Mentees need to feel safe to ask "dumb" questions, admit mistakes, and try things that might fail.
|
|
89
|
+
|
|
90
|
+
**Practices:**
|
|
91
|
+
- **Admit your own gaps** — "I don't know; let's figure it out."
|
|
92
|
+
- **Normalize mistakes** — "I've made that error; here's what I learned."
|
|
93
|
+
- **Separate person from code** — "This design has a flaw" not "You're wrong."
|
|
94
|
+
- **Create low-stakes experiments** — Pair first, then solo with review.
|
|
95
|
+
|
|
96
|
+
**Red flag:** If a mentee never asks questions or admits uncertainty, they may not feel safe. Check in: "What would make it easier to bring up when you're stuck?"
|
|
97
|
+
|
|
98
|
+
## When to Answer vs When to Question
|
|
99
|
+
|
|
100
|
+
| Context | Prefer | Why |
|
|
101
|
+
|---------|--------|-----|
|
|
102
|
+
| Urgent production issue | Answer | Speed matters; learning can follow |
|
|
103
|
+
| Design decision | Questions | Ownership and deeper understanding |
|
|
104
|
+
| First-time concept | Answer + explain | Build foundation before questioning |
|
|
105
|
+
| Recurring pattern | Questions | They likely know; need to retrieve it |
|
|
106
|
+
| Mentee is stuck and frustrated | Answer or pair | Reduce overload first |
|
|
107
|
+
|
|
108
|
+
## Mentoring Plan Template
|
|
109
|
+
|
|
110
|
+
A simple one-page plan keeps mentoring intentional:
|
|
111
|
+
|
|
112
|
+
1. **Stage** — Where are they (Dreyfus)? What evidence?
|
|
113
|
+
2. **Goals** — 2–3 learning goals for the next quarter
|
|
114
|
+
3. **Stretch assignment** — One project or ownership area
|
|
115
|
+
4. **Feedback cadence** — How often? What format?
|
|
116
|
+
5. **Revisit** — When will you adjust? (e.g., mid-quarter check-in)
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Key Takeaways
|
|
121
|
+
|
|
122
|
+
1. **Mentoring ≠ coaching ≠ sponsoring** — Use all three as needed.
|
|
123
|
+
2. **Match style to stage** — Novices need rules; experts need space.
|
|
124
|
+
3. **Socratic questions** build ownership; direct answers build speed.
|
|
125
|
+
4. **SBI feedback** is specific, non-accusatory, and actionable.
|
|
126
|
+
5. **Psychological safety** enables risk-taking and growth.
|
|
127
|
+
6. **Stretch assignments** with clear criteria and support drive learning.
|
|
128
|
+
7. **Document your plan** — A one-page plan keeps mentoring intentional.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Technical Mentoring Exercises
|
|
2
|
+
|
|
3
|
+
## Exercise 1: Map a Mentee to Dreyfus
|
|
4
|
+
|
|
5
|
+
**Task:** Think of someone you mentor (or a hypothetical junior engineer). Using the Dreyfus model, place them at a stage. List 2–3 observable behaviors that support your assessment. Then write one change you'd make to your mentoring style based on that stage.
|
|
6
|
+
|
|
7
|
+
**Validation:**
|
|
8
|
+
- [ ] Stage is identified with reasoning
|
|
9
|
+
- [ ] Behaviors are concrete and observable
|
|
10
|
+
- [ ] Style adjustment is specific (e.g., "more questions, fewer answers")
|
|
11
|
+
- [ ] You could explain your choice to a peer
|
|
12
|
+
|
|
13
|
+
**Hints:**
|
|
14
|
+
1. Novices ask "what do I do?"; experts ask "what matters here?"
|
|
15
|
+
2. Look for: reliance on rules vs intuition, handling of ambiguity, need for context
|
|
16
|
+
3. Stage isn't fixed—someone can be novice in one area, competent in another
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Exercise 2: Turn Answers Into Socratic Questions
|
|
21
|
+
|
|
22
|
+
**Task:** Pick a common technical question you get (e.g., "How do I debug this?", "Which library should I use?"). Write the answer you'd usually give. Then rewrite it as 3–4 Socratic questions that lead the mentee to the same conclusion.
|
|
23
|
+
|
|
24
|
+
**Validation:**
|
|
25
|
+
- [ ] Original answer is clear and correct
|
|
26
|
+
- [ ] Questions build logically (each sets up the next)
|
|
27
|
+
- [ ] Questions don't give away the answer
|
|
28
|
+
- [ ] You can articulate when you'd use questions vs direct answer
|
|
29
|
+
|
|
30
|
+
**Hints:**
|
|
31
|
+
1. Start with "What have you tried?" or "What do you already know?"
|
|
32
|
+
2. Use "What would happen if...?" for exploration
|
|
33
|
+
3. If the mentee is blocked or stressed, direct answer may be better
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Exercise 3: Design a Stretch Assignment
|
|
38
|
+
|
|
39
|
+
**Task:** For a mentee you know (or a hypothetical competent engineer), design a stretch assignment. Include: what they'll do, why it's a stretch, what support you'll provide, and how you'll know they succeeded.
|
|
40
|
+
|
|
41
|
+
**Validation:**
|
|
42
|
+
- [ ] Scope is clear and achievable in 2–4 weeks
|
|
43
|
+
- [ ] Stretch is justified (what's new or harder for them?)
|
|
44
|
+
- [ ] Support is explicit (availability, check-ins, review)
|
|
45
|
+
- [ ] Success criteria are measurable or observable
|
|
46
|
+
|
|
47
|
+
**Hints:**
|
|
48
|
+
1. Stretch = slightly beyond comfort zone, not drowning
|
|
49
|
+
2. "Own the design" or "lead a small project" are good stretch types
|
|
50
|
+
3. Define "done" so both of you agree when it's complete
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Exercise 4: Write SBI Feedback
|
|
55
|
+
|
|
56
|
+
**Task:** Recall a situation where you gave (or wished you'd given) technical or behavioral feedback. Write it using SBI: Situation, Behavior, Impact. Add one follow-up question: "What would you do differently?" or "What support do you need?"
|
|
57
|
+
|
|
58
|
+
**Validation:**
|
|
59
|
+
- [ ] Situation is specific (when, where)
|
|
60
|
+
- [ ] Behavior is observable (what they did, not intent)
|
|
61
|
+
- [ ] Impact is clear (effect on outcome or others)
|
|
62
|
+
- [ ] Follow-up invites action, not defensiveness
|
|
63
|
+
|
|
64
|
+
**Hints:**
|
|
65
|
+
1. Avoid "you always" or "you never"—stick to one instance
|
|
66
|
+
2. Impact can be positive too: "That helped the team move faster"
|
|
67
|
+
3. End with a question, not a prescription
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Exercise 5: Create a One-Page Mentoring Plan
|
|
72
|
+
|
|
73
|
+
**Task:** Create a one-page mentoring plan for a mentee (real or hypothetical). Include: their Dreyfus stage, 2–3 learning goals for the next quarter, one stretch assignment, how you'll use questions vs answers, and how you'll track progress.
|
|
74
|
+
|
|
75
|
+
**Validation:**
|
|
76
|
+
- [ ] Plan fits on one page
|
|
77
|
+
- [ ] Stage, goals, and stretch are aligned
|
|
78
|
+
- [ ] Questions vs answers approach is explicit
|
|
79
|
+
- [ ] Progress tracking has a cadence (e.g., biweekly check-in)
|
|
80
|
+
|
|
81
|
+
**Hints:**
|
|
82
|
+
1. Goals should be learning outcomes, not project deliverables
|
|
83
|
+
2. "Track progress" can be simple: debrief after stretch, 1:1 check-ins
|
|
84
|
+
3. Revisit the plan mid-quarter—plans should evolve
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
slug: technical-mentoring
|
|
2
|
+
title: "Technical Mentoring — Growing Engineers on Your Team"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Mentor effectively: Dreyfus model, Socratic method, pairing, feedback (SBI), and creating psychological safety."
|
|
5
|
+
category: leadership
|
|
6
|
+
tags: [mentoring, coaching, leadership, career-growth, team-development, feedback]
|
|
7
|
+
difficulty: intermediate
|
|
8
|
+
|
|
9
|
+
xp:
|
|
10
|
+
read: 15
|
|
11
|
+
walkthrough: 40
|
|
12
|
+
exercise: 25
|
|
13
|
+
quiz: 20
|
|
14
|
+
quiz-perfect-bonus: 10
|
|
15
|
+
|
|
16
|
+
time:
|
|
17
|
+
quick: 5
|
|
18
|
+
read: 20
|
|
19
|
+
guided: 50
|
|
20
|
+
|
|
21
|
+
prerequisites: []
|
|
22
|
+
related: [one-on-ones, code-review, technical-debt]
|
|
23
|
+
|
|
24
|
+
triggers:
|
|
25
|
+
- "How do I mentor junior developers?"
|
|
26
|
+
- "How do I help my team grow technically?"
|
|
27
|
+
- "What's the difference between mentoring and coaching?"
|
|
28
|
+
- "How do I give technical feedback without micromanaging?"
|
|
29
|
+
|
|
30
|
+
visuals:
|
|
31
|
+
diagrams: [diagram-mermaid, diagram-flow]
|
|
32
|
+
quiz-types: [quiz-matching, quiz-timed-choice]
|
|
33
|
+
slides: true
|
|
34
|
+
|
|
35
|
+
sources:
|
|
36
|
+
- label: "The Manager's Path by Camille Fournier"
|
|
37
|
+
type: book
|
|
38
|
+
url: "https://www.oreilly.com/library/view/the-managers-path/9781491973882/"
|
|
39
|
+
- label: "An Elegant Puzzle by Will Larson"
|
|
40
|
+
type: book
|
|
41
|
+
url: "https://lethain.com/elegant-puzzle/"
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Technical Mentoring — Quick Reference
|
|
2
|
+
|
|
3
|
+
## Mentoring vs Coaching vs Sponsoring
|
|
4
|
+
|
|
5
|
+
| Role | Focus | Example |
|
|
6
|
+
|------|-------|---------|
|
|
7
|
+
| **Mentoring** | Share experience and advice | "Here's how I approached this." |
|
|
8
|
+
| **Coaching** | Ask questions to unlock thinking | "What have you tried? What's blocking you?" |
|
|
9
|
+
| **Sponsoring** | Advocate for visibility/opportunity | "I'm putting you up for the lead role." |
|
|
10
|
+
|
|
11
|
+
Use all three as the situation demands.
|
|
12
|
+
|
|
13
|
+
## Dreyfus Stages — Style Guide
|
|
14
|
+
|
|
15
|
+
| Stage | They need | You do |
|
|
16
|
+
|-------|-----------|--------|
|
|
17
|
+
| **Novice** | Rules, checklists | Clear instructions, safe practice |
|
|
18
|
+
| **Advanced Beginner** | Context for rules | Explain why; guided decisions |
|
|
19
|
+
| **Competent** | Stretch, debrief | Assign ownership; review afterward |
|
|
20
|
+
| **Proficient** | Principles, ambiguity | Challenge; share mental models |
|
|
21
|
+
| **Expert** | Space, sponsorship | Get out of the way; advocate |
|
|
22
|
+
|
|
23
|
+
## Socratic Question Patterns
|
|
24
|
+
|
|
25
|
+
| Pattern | Example |
|
|
26
|
+
|---------|---------|
|
|
27
|
+
| "What would happen if...?" | "What if we didn't validate at the API?" |
|
|
28
|
+
| "What have you tried?" | Opens reflection; avoids re-explaining |
|
|
29
|
+
| "What's the constraint?" | Surfaces assumptions |
|
|
30
|
+
| "How would you explain this?" | Tests understanding |
|
|
31
|
+
|
|
32
|
+
## SBI Feedback Template
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Situation: [When and where—specific]
|
|
36
|
+
Behavior: [What they did—observable, not intent]
|
|
37
|
+
Impact: [Effect on outcome or others]
|
|
38
|
+
Ask: [What would you do differently? / What support do you need?]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## When to Answer vs Question
|
|
42
|
+
|
|
43
|
+
| Context | Prefer | Why |
|
|
44
|
+
|---------|--------|-----|
|
|
45
|
+
| Urgent / production issue | Answer | Speed first |
|
|
46
|
+
| Design decision | Questions | Ownership, deeper learning |
|
|
47
|
+
| First-time concept | Answer + explain | Build foundation |
|
|
48
|
+
| Recurring pattern | Questions | They likely know |
|
|
49
|
+
| Mentee stuck/frustrated | Answer or pair | Reduce overload |
|
|
50
|
+
|
|
51
|
+
## Stretch Assignment Checklist
|
|
52
|
+
|
|
53
|
+
- [ ] Clear scope (2–4 weeks)
|
|
54
|
+
- [ ] Slightly beyond comfort (recoverable if it fails)
|
|
55
|
+
- [ ] Success criteria defined
|
|
56
|
+
- [ ] Support explicit (availability, check-ins)
|
|
57
|
+
- [ ] Debrief scheduled
|
|
58
|
+
|
|
59
|
+
## Psychological Safety Practices
|
|
60
|
+
|
|
61
|
+
| Do | Avoid |
|
|
62
|
+
|----|-------|
|
|
63
|
+
| Admit "I don't know" | Acting like you have all answers |
|
|
64
|
+
| Normalize mistakes | Punishing or hiding errors |
|
|
65
|
+
| Separate person from code | "You're wrong" |
|
|
66
|
+
| Create low-stakes experiments | High-stakes first attempts |
|
|
67
|
+
|
|
68
|
+
## One-Page Mentoring Plan
|
|
69
|
+
|
|
70
|
+
1. **Stage** — Dreyfus level + evidence
|
|
71
|
+
2. **Goals** — 2–3 learning outcomes this quarter
|
|
72
|
+
3. **Stretch** — One assignment with criteria
|
|
73
|
+
4. **Cadence** — How often you'll check in
|
|
74
|
+
5. **Revisit** — When to adjust (e.g., mid-quarter)
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Technical Mentoring Quiz
|
|
2
|
+
|
|
3
|
+
## Question 1
|
|
4
|
+
|
|
5
|
+
What is the main difference between mentoring and coaching?
|
|
6
|
+
|
|
7
|
+
A) Mentoring is for juniors; coaching is for seniors
|
|
8
|
+
B) Mentoring shares experience and advice; coaching asks questions to unlock the mentee's own thinking
|
|
9
|
+
C) Mentoring happens in 1:1s; coaching happens in meetings
|
|
10
|
+
D) There is no difference—they are the same
|
|
11
|
+
|
|
12
|
+
<!-- ANSWER: B -->
|
|
13
|
+
<!-- EXPLANATION: Mentoring involves sharing knowledge and experience. Coaching focuses on asking questions so the mentee arrives at their own insights. Both are valuable; effective mentors use each when appropriate. -->
|
|
14
|
+
|
|
15
|
+
## Question 2
|
|
16
|
+
|
|
17
|
+
According to the Dreyfus model, how should you support a *novice* engineer?
|
|
18
|
+
|
|
19
|
+
A) Give them ambiguous problems to build intuition
|
|
20
|
+
B) Provide clear rules, checklists, and safe practice
|
|
21
|
+
C) Get out of the way and sponsor them for bigger projects
|
|
22
|
+
D) Challenge them with stretch assignments
|
|
23
|
+
|
|
24
|
+
<!-- ANSWER: B -->
|
|
25
|
+
<!-- EXPLANATION: Novices are overwhelmed by context and want rules to follow. Clear instructions and checklists reduce cognitive load. Ambiguity, sponsorship, and stretch assignments are better for competent or expert stages. -->
|
|
26
|
+
|
|
27
|
+
## Question 3
|
|
28
|
+
|
|
29
|
+
What does SBI stand for in feedback?
|
|
30
|
+
|
|
31
|
+
A) Specific, Brief, Impactful
|
|
32
|
+
B) Situation, Behavior, Impact
|
|
33
|
+
C) Start, Build, Improve
|
|
34
|
+
D) Support, Behavior, Improvement
|
|
35
|
+
|
|
36
|
+
<!-- ANSWER: B -->
|
|
37
|
+
<!-- EXPLANATION: SBI is Situation (when/where), Behavior (what happened—observable), Impact (effect on outcome or others). It keeps feedback specific and non-accusatory. -->
|
|
38
|
+
|
|
39
|
+
## Question 4
|
|
40
|
+
|
|
41
|
+
When is it better to give a direct answer instead of Socratic questions?
|
|
42
|
+
|
|
43
|
+
A) Always—mentees prefer answers
|
|
44
|
+
B) When the mentee is stuck, stressed, or the situation is urgent
|
|
45
|
+
C) Never—questions always lead to better learning
|
|
46
|
+
D) Only when the mentee explicitly asks for the answer
|
|
47
|
+
|
|
48
|
+
<!-- ANSWER: B -->
|
|
49
|
+
<!-- EXPLANATION: Socratic questions work best when the mentee has bandwidth to think. When they're stuck, frustrated, or there's a production fire, a direct answer reduces overload. You can debrief and explore afterward. -->
|
|
50
|
+
|
|
51
|
+
## Question 5
|
|
52
|
+
|
|
53
|
+
What is "sponsoring" in the context of mentoring?
|
|
54
|
+
|
|
55
|
+
A) Paying for a mentee's conference ticket
|
|
56
|
+
B) Actively advocating for their visibility and opportunity
|
|
57
|
+
C) Assigning them stretch projects
|
|
58
|
+
D) Giving them SBI feedback
|
|
59
|
+
|
|
60
|
+
<!-- ANSWER: B -->
|
|
61
|
+
<!-- EXPLANATION: Sponsoring means using your influence to advocate for the mentee—putting them forward for projects, visibility, or promotions. It goes beyond advice and stretch assignments; it's active championing. -->
|
|
62
|
+
|
|
63
|
+
## Question 6
|
|
64
|
+
|
|
65
|
+
Which practice best supports psychological safety for a mentee?
|
|
66
|
+
|
|
67
|
+
A) Only give feedback when they ask for it
|
|
68
|
+
B) Admit your own gaps and normalize mistakes
|
|
69
|
+
C) Avoid assigning challenging work
|
|
70
|
+
D) Review their code before every commit
|
|
71
|
+
|
|
72
|
+
<!-- ANSWER: B -->
|
|
73
|
+
<!-- EXPLANATION: Admitting "I don't know" and normalizing mistakes shows that learning and uncertainty are expected. This makes it safe for mentees to ask questions and take risks. Avoiding challenge or over-reviewing can undermine growth. -->
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Technical Mentoring — Resources
|
|
2
|
+
|
|
3
|
+
## Books
|
|
4
|
+
|
|
5
|
+
- **The Manager's Path** by Camille Fournier — O'Reilly. Covers mentoring, 1:1s, and growing engineers. [Amazon](https://www.amazon.com/Managers-Path-Leaders-Navigating-Growth/dp/1491973897)
|
|
6
|
+
- **An Elegant Puzzle** by Will Larson — Stripe Press. Systems of teams, leveling, and technical leadership. [Amazon](https://www.amazon.com/Elegant-Puzzle-Systems-Engineering-Management/dp/1732265186)
|
|
7
|
+
- **Radical Candor** by Kim Scott — Giving and receiving feedback; caring personally while challenging directly. [Amazon](https://www.amazon.com/Radical-Candor-Revised-Kickass-Without/dp/1250235375)
|
|
8
|
+
|
|
9
|
+
## Articles
|
|
10
|
+
|
|
11
|
+
- [The Dreyfus Model of Skill Acquisition](https://www.infoq.com/articles/dreyfus-model-skill-acquisition/) — InfoQ. Overview of the five stages and implications.
|
|
12
|
+
- [Socratic Method in Software Development](https://www.thoughtworks.com/insights/blog/socratic-method-software-development) — Thoughtworks. Applying Socratic questioning to technical mentoring.
|
|
13
|
+
- [The Art of Giving and Receiving Advice](https://hbr.org/2015/01/the-art-of-giving-and-receiving-advice) — Harvard Business Review. Why advice fails and how to improve it.
|
|
14
|
+
- [How to Give Feedback That Actually Works](https://www.atlassian.com/blog/inside-atlassian/giving-feedback) — Atlassian. Practical feedback techniques including SBI.
|
|
15
|
+
- [Psychological Safety at Work](https://hbr.org/2023/11/what-is-psychological-safety) — Harvard Business Review. What it is and why it matters for teams.
|
|
16
|
+
|
|
17
|
+
## Videos
|
|
18
|
+
|
|
19
|
+
- [Radical Candor: The Surprising Secret to Being a Good Boss](https://www.youtube.com/watch?v=4yODalLJy2M) — Kim Scott (Google Talks). Feedback framework.
|
|
20
|
+
- [The Skill of Giving Feedback](https://www.youtube.com/watch?v=FGjTbcTgH_s) — Farnam Street. Clear, actionable feedback.
|
|
21
|
+
- [Socratic Method in Practice](https://www.youtube.com/watch?v=PaqbOPk5aGw) — Teaching Channel. Classroom application; principles apply to mentoring.
|
|
22
|
+
|
|
23
|
+
## Tools & Frameworks
|
|
24
|
+
|
|
25
|
+
- [SBI Feedback Model](https://www.ccl.org/articles/leading-effectively-articles/constructive-feedback-the-situation-behavior-impact-model/) — Center for Creative Leadership. Official SBI reference.
|
|
26
|
+
- [Dreyfus Model — Wikipedia](https://en.wikipedia.org/wiki/Dreyfus_model_of_skill_acquisition) — Academic background and stages.
|
|
27
|
+
- [Manager Tools — Mentoring Series](https://www.manager-tools.com/) — Podcasts on mentoring and 1:1s (subscription).
|
|
28
|
+
|
|
29
|
+
## Further Reading
|
|
30
|
+
|
|
31
|
+
- [The Coaching Habit](https://www.amazon.com/Coaching-Habit-Say-Less-Ask-More/dp/0978440749) by Michael Bungay Stanier — Seven questions to coach effectively.
|
|
32
|
+
- [Thanks for the Feedback](https://www.amazon.com/Thanks-Feedback-Science-Receiving-Well/dp/0143127136) by Douglas Stone & Sheila Heen — Receiving feedback; useful for mentees and mentors.
|
|
33
|
+
- [The Five Dysfunctions of a Team](https://www.amazon.com/Five-Dysfunctions-Team-Leadership-Fable/dp/0787960756) by Patrick Lencioni — Trust and psychological safety in teams.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Technical Mentoring Walkthrough — Learn by Doing
|
|
2
|
+
|
|
3
|
+
## Step 1: Map Your Mentee's Stage
|
|
4
|
+
|
|
5
|
+
**Task:** Think of someone you mentor (or would mentor). Using the Dreyfus model, place them at a stage. List 2–3 behaviors that support your assessment. Then write one change you'd make to your mentoring style based on that stage.
|
|
6
|
+
|
|
7
|
+
**Question:** How might you be over- or under-supporting? What would "just right" look like?
|
|
8
|
+
|
|
9
|
+
**Checkpoint:** You've identified a stage and one concrete style adjustment.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Step 2: Turn One "Answer" Into Questions
|
|
14
|
+
|
|
15
|
+
**Task:** Pick a common technical question you get (e.g., "How do I debug this?", "Which library should I use?"). Write the answer you'd usually give. Then rewrite it as 3–4 Socratic questions that lead the mentee to the same conclusion.
|
|
16
|
+
|
|
17
|
+
**Question:** When would you use the questions vs when would you give the direct answer?
|
|
18
|
+
|
|
19
|
+
**Checkpoint:** You have both the answer and the question sequence; you can articulate when to use each.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Step 3: Design a Stretch Assignment
|
|
24
|
+
|
|
25
|
+
**Task:** For a mentee you know (or a hypothetical junior engineer), design a stretch assignment. Include: what they'll do, why it's a stretch (what's new or harder), what support you'll provide, and how you'll know they succeeded.
|
|
26
|
+
|
|
27
|
+
**Question:** How do you prevent it from being too easy or so hard they give up?
|
|
28
|
+
|
|
29
|
+
**Checkpoint:** Assignment has clear scope, support, and success criteria.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Step 4: Practice SBI Feedback
|
|
34
|
+
|
|
35
|
+
<!-- hint:card type="concept" title="SBI: Situation (when/where), Behavior (what you observed), Impact (effect on team or outcome)" -->
|
|
36
|
+
|
|
37
|
+
**Task:** Recall a situation where you gave (or wished you'd given) technical feedback. Write it using SBI: Situation, Behavior, Impact. Then add one "What would you do differently?" or "What support do you need?" follow-up.
|
|
38
|
+
|
|
39
|
+
**Question:** How does SBI change the tone compared to "You did X wrong"?
|
|
40
|
+
|
|
41
|
+
**Checkpoint:** Feedback is specific, non-accusatory, and actionable.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Step 5: Create a Mentoring Plan
|
|
46
|
+
|
|
47
|
+
<!-- hint:list style="cards" -->
|
|
48
|
+
|
|
49
|
+
**Task:** Create a one-page mentoring plan for a mentee. Include: their Dreyfus stage, 2–3 learning goals for the next quarter, one stretch assignment, how you'll use questions vs answers, and how you'll track progress.
|
|
50
|
+
|
|
51
|
+
**Question:** How will you revisit and adjust this plan? What signals would trigger a change?
|
|
52
|
+
|
|
53
|
+
**Checkpoint:** Plan is concrete and covers stage, goals, assignments, and tracking.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Step 6: Consider Your Senior Engineers
|
|
58
|
+
|
|
59
|
+
<!-- hint:celebrate -->
|
|
60
|
+
|
|
61
|
+
**Task:** List 2–3 senior engineers on your team. For each, identify one way you could mentor or develop them (stretch project, sponsorship, teaching opportunity). Write a sentence on why it matters.
|
|
62
|
+
|
|
63
|
+
**Question:** Why do we often neglect mentoring senior engineers? What's the cost?
|
|
64
|
+
|
|
65
|
+
**Checkpoint:** Each senior has at least one development opportunity; you've articulated the value.
|