Product
Overview
Before a single line of code, we run a structured Sprint Zero. Here's the exact checklist, documents, and decisions we nail down in week one.
Priya Shah
Early in my career, I spent six weeks building a product feature that nobody wanted. The client signed off, the requirements were clear, and we delivered exactly what they asked for.
Then nobody used it.
The problem wasn't our execution — it was the assumptions we made before writing a single line of code. That's why we invented Sprint Zero.
Product planning whiteboard
Sprint Zero is the structured week before development begins. No code. No prototypes. Just answers to the questions that determine success or failure.
Sprint Zero outputs:
Start with the stakeholder's problem statement, then ask "why" five times:
Problem: "We need a dashboard to track sales"
Why #1: "So managers can see team performance"
Why #2: "Because we miss quarterly targets"
Why #3: "Because we can't identify struggling reps until too late"
Why #4: "Because we only review metrics monthly"
Why #5: "Because data is spread across three spreadsheets"
ROOT PROBLEM: Unifying sales data in near-real-time
Now you're building something that solves the actual problem, not the symptom.
Equally important: Define what you won't build.
✅ WILL BUILD:
- Unified sales data view
- Daily rep performance metrics
- Automated alerts for struggling reps
❌ WON'T BUILD (this sprint):
- Predictive analytics (nice-to-have)
- Mobile app (desktop first)
- Custom report builder (power users only)
Prioritization matrix
Document every significant technical decision:
# ADR-001: Data Storage Solution
## Context
We need to store sales data from multiple sources (CRM, spreadsheets, manual entry).
## Decision
Use PostgreSQL with TimescaleDB extension for time-series data.
## Alternatives Considered
- MongoDB: Worse for reporting queries
- Firebase: Too expensive at scale
- Raw Postgres without Timescale: Missing time-series optimizations
## Consequences
- Pros: Efficient time-series queries, familiar SQL
- Cons: Need Timescale expertise, more complex setup
## Status
Accepted
No "let's try this cool new framework" during Sprint Zero. Pick boring, proven technology:
// Our default stack (proven across 50+ projects)
{
"frontend": "Next.js 14 (App Router)",
"styling": "Tailwind CSS + shadcn/ui",
"backend": "Next.js API routes",
"database": "PostgreSQL + Prisma",
"auth": "NextAuth.js",
"hosting": "Vercel"
}
Most teams only track lagging indicators (what happened), not leading indicators (what will happen).
LAGGING (outcome metrics):
- Revenue
- User retention
- Feature adoption rate
LEADING (input metrics):
- Daily active users
- Time to first value
- Feature discovery rate
Define what you need to measure before writing code:
// Every action that matters gets tracked
trackEvent('user_signed_up', {
source: 'referral',
plan: 'pro',
time_to_value: 120 // seconds
})
trackEvent('feature_used', {
feature: 'dashboard_export',
user_segment: 'manager'
})
| Risk | Probability | Impact | Mitigation |
|---|---|---|---|
| Data sync fails | Medium | High | Build retry logic, alert on failure |
| Slow dashboard queries | High | Medium | Implement caching, pagination |
| Users don't enable notifications | Medium | Medium | A/B test notification timing |
| Third-party API rate limits | Low | High | Queue requests, monitor limits |
Risk assessment matrix
Spend 2 hours intentionally trying to break your assumptions:
Monday: Project setup, CI/CD, database schema
Tuesday: Authentication + user roles
Wednesday: Data import from CSV (MVP version)
Thursday: Basic dashboard (read-only)
Friday: Deploy to staging + internal testing
Every feature requires:
- [ ] Code reviewed by at least one engineer
- [ ] Unit tests for business logic
- [ ] Integration test for critical path
- [ ] Manual QA in staging
- [ ] Error tracking implemented (Sentry)
- [ ] Feature flag ready for gradual rollout
- [ ] Documentation updated
- [ ] Performance budget met (< 100ms p95)
Here's what we produced for a recent e-commerce personalization project:
Problem validated: Users abandon carts because recommendations feel generic Solution: Real-time collaborative filtering on product views
Technical decision: Use Redis for session tracking, Postgres for user history, Replicate for model inference
Success metric: 15% reduction in cart abandonment within 30 days
Risks mitigated: Model cold-start (fallback to popular items), Redis memory limits (TTL 1 hour)
Week 1 plan: Session tracking → Basic recommendations → A/B test framework
Before Sprint Zero (typical project):
After Sprint Zero:
One week of planning saves months of rework. That's not an expense — that's the highest ROI activity in product development.
The best code is the code you never have to rewrite. Start with Sprint Zero.
Written by
Priya Shah
Let's work together