Lesson 3: What is Specification-Driven Development?
Anatomy of a Specification
A production-ready specification has four components:
1. Intent
What you're building and why it matters
2. Success Criteria
Testable outcomes that define "done"
3. Constraints
Non-negotiable rules (security, performance, etc.)
4. Non-Goals
What the feature explicitly does NOT do
Example: User Login
Intent: Allow users to access their accounts securely
Success Criteria:
- User can log in with email and password
- Invalid credentials show clear error
- Successful login redirects to dashboard
Constraints:
- Passwords must be hashed (bcrypt)
- Rate limiting: 5 attempts per 15 minutes
- Response time < 200ms
Non-Goals:
- Social login (OAuth)
- Password reset (separate feature)
- Multi-factor authentication (future)
Key Takeaway
✅ Four components make specs complete
✅ Testable criteria ensure quality
✅ Non-Goals prevent scope creep