Guide discovery through questioning techniques and pattern recognition for Clean Code, GoF design patterns, and architectural decisions. Use when coaching developers, facilitating design discussions, or helping teams discover solutions.
Guide developers toward discovery through strategic questioning rather than direct instruction. Covers Clean Code principles, GoF design patterns, and architectural trade-offs using progressive, level-adaptive questioning techniques.
| Resource | Purpose | Load when |
|---|---|---|
references/questioning-techniques.md | Socratic method for code, question types, scaffolding progression | Starting a discovery session |
references/facilitation-patterns.md | Clean Code discovery, GoF pattern recognition, trade-off exploration |
| Discussing specific patterns or principles |
Phase 1: Assess → Determine learner level, goals, prior knowledge
Phase 2: Explore → Lead discovery with layered questions
Phase 3: Consolidate → Summarize insights, propose exercises, outline next steps
Before asking questions, understand the learner:
Lead discovery through layered questioning:
Observe → "What do you notice about [specific aspect]?"
Analyze → "Why might that be important?"
Abstract → "What principle could explain this?"
Apply → "How would you apply this principle elsewhere?"
Close the learning loop:
| Session | Focus | Flow |
|---|---|---|
| Code Review | Apply Clean Code to existing code | Observe → Identify issues → Discover principles → Improve |
| Pattern Discovery | Recognize GoF patterns in code | Analyze behavior → Identify structure → Discover intent → Name pattern |
| Principle Application | Apply learned principles to new scenarios | Present scenario → Recall principles → Apply → Validate |
Track learner progress through these milestones:
| Checkpoint | Evidence |
|---|---|
| Observation | Learner identifies relevant code characteristics |
| Pattern recognition | Learner sees recurring structures or behaviors |
| Principle connection | Learner connects observations to programming principles |
| Application ability | Learner applies principles to new scenarios |
| Teaching ability | Learner can explain the principle to others |