Back to Courses
Intermediate
Spec Driven Development for Java Developers
Learn a structured, spec-first approach to building software. Write clear feature specs before touching code, generate implementation plans, implement with confidence, and review with purpose. SDD brings discipline and repeatability to AI-assisted development in Java projects.
Course Curriculum
- What is SDD and why it matters
- SDD vs TDD vs BDD
- The SDD workflow — 7 steps
- SDD with Claude Code & AI assistance
- Tooling setup — Claude Code skills & commands
- Running /sdd-init on a project
- What goes into project.md
- Tech stack & architecture discovery
- Keeping project.md up to date
- Running /sdd-feature from a requirement
- Anatomy of a feature.md spec
- Writing clear acceptance criteria
- Capturing edge cases & error scenarios
- Refining specs with /sdd-refine
- Signs of a high-quality spec
- Running /sdd-plan from feature.md
- Anatomy of a plan.md
- Identifying files to create & modify
- Ordering steps by dependency
- Reviewing & adjusting the plan
- Running /sdd-implement from plan.md
- Step-by-step execution & verification
- Verifying acceptance criteria as you go
- Handling blockers mid-implementation
- Incremental commits & partial rollback
- Running /sdd-review on implementation
- Confidence-based issue filtering
- Critical vs Major vs Minor findings
- Security & performance checks
- Verifying alignment with acceptance criteria
- Running /sdd-archive after review
- specs-archive directory structure
- Updating project.md with new features
- Recording architectural decisions
- /sdd-yolo — full pipeline in one command
- When to use the fast path
- The single confirmation gate
- Auto-stopping on Critical/Major issues
- Shared specs & collaborative review
- Spec versioning with Git
- Spec-driven pull requests
- Onboarding new developers with specs
- Keeping specs in sync with the codebase
- Reusable spec templates for common patterns
- Domain modelling from specs
- Iterative refinement across sprints
- SDD for refactoring & migration tasks
- Metrics — measuring SDD effectiveness