Skip to content

DEV-01] Create a junior developer learning pathway that AI cannot shortcut #85

Description

@paruff

[DEV-01] Create a junior developer learning pathway that AI cannot shortcut

Labels: process, documentation, ai-ops, p2-important, effort-medium
Assignee: 👤 Human
Phase: Phase 6 — Code Quality
DORA 2025 Source: “Junior developer growth is at risk unless teams intentionally create learning pathways” (p. 88, sociocognitive impact section)
Effort: Medium (1–2 days)


Why This Is a 2025 DORA Finding, Not Optional Good Practice

The 2025 DORA report flags a significant risk: “As generative tools handle more of the entry-level coding work, early-career engineers risk losing the ‘muscle memory’ and problem-solving depth that come from direct practice.”

The report frames this as a paradox: AI can both erode and enable skill development depending on whether the organisation intentionally creates learning pathways. Teams that don’t design for this find that junior developers become dependent on Copilot for reasoning they should be developing themselves — which produces code that passes tests but lacks architectural understanding.

For Goald, this matters now because:

  1. The team may onboard contributors as the project grows
  2. Vibe-coding without understanding creates a “write-only” codebase — features accumulate but no one understands the full system
  3. Even as a solo developer, the habit of understanding (not just accepting) every line Copilot produces is the difference between a Pragmatic Performer and a Harmonious High-Achiever archetype

Acceptance Criteria

The Learning Pathway Document

  • docs/LEARNING_PATHWAY.md created with a structured onboarding guide for anyone new to the codebase (including future contributors or the developer returning after 3 months away)
  • Covers four levels — each must be understood before using Copilot for that domain:

Level 1 — Read Before You Write (Day 1)

  • Walk through src/types/index.ts — understand every type, every field, every constraint
  • Walk through src/services/ — understand what each service does, what Firebase collections it touches
  • Walk through src/utils/ — understand compoundInterest.ts, badges.ts, streakCalculator.ts by reading the unit tests, not the implementation
  • Read .github/copilot-instructions.md end-to-end

Level 2 — Understand the Data Flow (Days 2–3)

  • Trace a deposit: DepositScreen → depositService → Firestore → useGoals hook → DashboardScreen
  • Trace a badge award: deposit saved → badges.ts → userStats document update → BadgesScreen
  • Trace the onboarding flag: registration → UserStats.hasCompletedOnboarding → AppNavigator routing
  • Draw the data flow for at least one feature in docs/DATA_MODEL.md

Level 3 — Build Something Small Without Copilot (Days 4–5)

  • Implement one small issue (effort-small, purely logic) from scratch before using Copilot
  • Write the failing test first; implement to make it pass; only then ask Copilot to improve
  • This builds the mental model that Copilot extends, not replaces

Level 4 — Review AI Output Critically (Week 2+)

  • Review at least 3 Copilot-generated PRs against the GITOPS-04 checklist before authoring PRs independently
  • For each PR: identify one thing Copilot got right architecturally and one thing it missed or over-engineered

Anti-Pattern Documentation

  • docs/LEARNING_PATHWAY.md includes a section: “Things Copilot Gets Wrong in This Codebase” — populated from the GITOPS-04 review checklist patterns
  • Examples: “Copilot often calls Firestore directly from screens — always route through a service”, “Copilot uses TouchableOpacity instead of AppButton”, “Copilot adds any to catch blocks”

Protected Learning Tasks

  • A GitHub label learning-task created for issues that should be attempted manually before using Copilot
  • At least 5 existing effort-small issues tagged learning-task — these are the “muscle memory” tasks that build real understanding

Files to Create

  • docs/LEARNING_PATHWAY.md
  • Update README.md — link to docs/LEARNING_PATHWAY.md under “Contributing”
  • Add learning-task label to GitHub (document in project setup guide)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions