Process & Methodology
Product-Driven Development
Product-Driven Development (PDD) is a methodology that aligns all development activities with product strategy, goals, and roadmaps. Using the FlowState Product App (@epicdm/flowstate-app-product), teams can ensure every feature, task, and line of code contributes to measurable product outcomes.
Table of Contents
- Overview
- Core Concepts
- Product-Driven Workflow
- Using the Product App
- Integration with Spec Workflow
- Goal-Aligned Development
- Roadmap-Driven Planning
- Team Accountability
- Measuring Success
- Quick Reference
Overview
What is Product-Driven Development?
Product-Driven Development ensures that technical decisions and implementation work are always connected to:
- Strategic Goals: OKRs and KPIs that define success
- Product Roadmap: Initiatives planned across quarters
- Team Accountability: Clear ownership via RACI matrices
- Measurable Outcomes: Metrics that track progress
Why Product-Driven Development?
| Traditional Approach | Product-Driven Approach |
|---|---|
| Features defined in isolation | Features linked to strategic goals |
| Success measured by delivery | Success measured by goal attainment |
| Priorities change frequently | Priorities anchored to roadmap |
| Unclear ownership | RACI-defined accountability |
| Reactive planning | Proactive quarterly planning |
Core Principles
| Principle | Description |
|---|---|
| Goal Alignment | Every feature must link to a product goal |
| Roadmap First | Work is planned through initiatives on the roadmap |
| Measurable Impact | Metrics define and track success |
| Clear Ownership | RACI matrix defines who does what |
| Portfolio Visibility | All products visible with health indicators |
Core Concepts
Product Lifecycle
Products move through defined phases, each requiring different strategies:
+-----------+ +-------------+ +--------+ +--------+ +----------+ +---------+
| Ideation |-->| Development |-->| Launch |-->| Growth |-->| Maturity |-->| Decline |
+-----------+ +-------------+ +--------+ +--------+ +----------+ +---------+
| Phase | Focus | Development Strategy |
|---|---|---|
| Ideation | Validate concept | Prototypes, user research, MVP planning |
| Development | Build core features | Rapid iteration, core functionality |
| Launch | Go to market | Polish, documentation, onboarding |
| Growth | Scale and expand | Performance, new features, integrations |
| Maturity | Optimize and maintain | Bug fixes, optimization, stability |
| Decline | Wind down or pivot | Migration paths, deprecation |
Goal Hierarchy
Goals follow a hierarchical structure supporting OKR methodology:
Product
|
+-- Objective 1 (parent goal)
| |
| +-- Key Result 1.1 (child goal with metrics)
| +-- Key Result 1.2 (child goal with metrics)
|
+-- Objective 2 (parent goal)
|
+-- Key Result 2.1 (child goal with metrics)
Initiative-to-Project Mapping
Initiatives on the roadmap link to projects for execution:
Roadmap
|
+-- Q1 2026
| |
| +-- Initiative: "User Authentication"
| |
| +-- Project: auth-implementation
| +-- Project: sso-integration
|
+-- Q2 2026
|
+-- Initiative: "Performance Optimization"
|
+-- Project: caching-layer
Product-Driven Workflow
Complete Workflow
+---------------------------------------------------------------------------+
| Product-Driven Development Workflow |
+---------------------------------------------------------------------------+
| |
| 1. PRODUCT CREATION |
| +-- Define product via wizard (type, identity, strategy) |
| +-- Set initial phase (Ideation) |
| +-- Document problem/value proposition |
| |
| 2. GOAL SETTING (OKRs) |
| +-- Create objectives (parent goals) |
| +-- Define key results with metrics |
| +-- Link goals to product |
| |
| 3. ROADMAP PLANNING |
| +-- Create initiatives for each quarter |
| +-- Prioritize initiatives (High/Medium/Low) |
| +-- Assign quarters and status |
| |
| 4. TEAM ASSIGNMENT |
| +-- Add team members with roles |
| +-- Define RACI areas |
| +-- Assign responsibilities |
| |
| 5. PROJECT LINKING |
| +-- Link projects to initiatives |
| +-- Track execution progress |
| +-- Monitor project health |
| |
| 6. SPEC WORKFLOW (per project) |
| +-- Requirements -> Design -> Tasks -> Implementation |
| +-- See FLOWSTATE.md for full spec workflow |
| |
| 7. MEASUREMENT & ITERATION |
| +-- Update goal metrics |
| +-- Review progress dashboards |
| +-- Adjust roadmap as needed |
| |
+---------------------------------------------------------------------------+
Before Starting Development
MANDATORY: Before starting any feature work, verify product alignment:
- Identify the Product: Which product does this work support?
- Link to Goal: Which product goal does this feature advance?
- Check Roadmap: Is this work part of a planned initiative?
- Verify RACI: Who is Responsible, Accountable, Consulted, Informed?
// Query to verify product context
// Get product details
collection-get products {productId}
// Get linked goals
collection-query productGoals {"productId": "{productId}"}
// Get roadmap initiatives
collection-query initiatives {"roadmapId": "{roadmapId}"}
// Get team RACI
collection-query teamMembers {"productId": "{productId}"}
Using the Product App
Product Creation
Use the 6-step wizard for comprehensive product definition:
| Step | Purpose | Key Inputs |
|---|---|---|
| 1. Type | Select product type | Software, Physical, Service, Content, Custom |
| 2. Identity | Define basics | Name, description, icon, color |
| 3. Problem/Value | Define positioning | Problem statement, value proposition |
| 4. Target Market | Define audience | Target market, customer persona |
| 5. Competition | Analyze landscape | Competitive landscape documentation |
| 6. Review | Confirm creation | Review all inputs |
Access: /products -> "New Product" button
Goal Management
Create and track strategic goals with the OKR framework:
| View | Purpose | Features |
|---|---|---|
| List View | Manage all goals | Filtering, sorting, CRUD |
| Dashboard View | Summary analytics | Charts, statistics, progress |
| Tree View | Visualize hierarchy | Parent-child relationships |
Goal Properties:
| Property | Purpose |
|---|---|
| Title/Description | What the goal is |
| Category | Business, Product, Technical, Quality |
| Status | Not Started, In Progress, At Risk, On Track, Complete |
| Priority | High, Medium, Low |
| Progress Mode | Manual (user updates) or Automatic (from metrics) |
| Parent Goal | For hierarchical OKRs |
| Metrics | KPIs with target/current values |
Access: Product Detail -> Goals Tab
Roadmap Planning
Plan strategic initiatives across quarters:
| View | Organization | Best For |
|---|---|---|
| Timeline | By quarter (Q1, Q2, Q3, Q4) | Long-term planning |
| Kanban | By status (Backlog, Planned, In Progress, Done) | Execution tracking |
Initiative Properties:
| Property | Purpose |
|---|---|
| Name/Description | What the initiative is |
| Quarter | When it's planned (Q1-Q4 + Year) |
| Status | Backlog, Planned, In Progress, Done |
| Priority | High, Medium, Low |
| Color | Visual differentiation |
| Linked Projects | Execution via FlowState projects |
Drag-and-Drop: Move initiatives between quarters (Timeline) or statuses (Kanban)
Access: Product Detail -> Roadmap Tab
Team Management
Define team composition and responsibilities:
| Feature | Purpose |
|---|---|
| Team Members | Who is on the product team |
| Roles | Owner, Contributor, Viewer |
| RACI Matrix | Responsibility assignment |
RACI Definitions:
| Role | Meaning |
|---|---|
| R - Responsible | Does the work |
| A - Accountable | Ultimate decision maker (only one per area) |
| C - Consulted | Provides input before decision |
| I - Informed | Kept up to date after decision |
Access: Product Detail -> Team Tab
Project Integration
Link FlowState projects to track execution:
| Relationship | Meaning |
|---|---|
| Supports | Project supports the product |
| Implements | Project implements specific functionality |
| Depends On | Product depends on this project |
Access: Product Detail -> Projects Tab
Portfolio View
Monitor all products at the portfolio level:
| Feature | Purpose |
|---|---|
| Grid View | All products at a glance |
| Health Indicators | Green/Yellow/Red status |
| Filters | By phase, type, health, owner |
| Statistics | Aggregate metrics |
Health Calculation: Based on goal status aggregation
Access: /products (Portfolio view)
Integration with Spec Workflow
Connecting Products to Specs
Every spec workflow should start with product context:
+---------------------------------------------------------------------------+
| Product-Spec Integration Flow |
+---------------------------------------------------------------------------+
| |
| 1. IDENTIFY PRODUCT CONTEXT |
| +-- Which product does this feature support? |
| +-- Which goal does it advance? |
| +-- Which roadmap initiative does it belong to? |
| |
| 2. CREATE/LINK PROJECT |
| +-- Create FlowState project for this work |
| +-- Link project to product via ProductProjects |
| +-- Link project to initiative on roadmap |
| |
| 3. EXECUTE SPEC WORKFLOW |
| +-- Phase 1: Requirements (reference product goals) |
| +-- Phase 2: Design + UX (align with product strategy) |
| +-- Phase 3: Tasks (link to milestone) |
| +-- Phase 4: Implementation |
| |
| 4. UPDATE PRODUCT TRACKING |
| +-- Update initiative status |
| +-- Update goal progress/metrics |
| +-- Log activity |
| |
+---------------------------------------------------------------------------+
Requirements Document Enhancement
Add product context to requirements.md:
# {Feature Name} - Requirements
## Product Context
- **Product**: {Product Name} ({productId})
- **Goal Alignment**: {Goal Name} - {Goal Description}
- **Initiative**: {Initiative Name} - {Quarter}
- **RACI**:
- Responsible: {Name}
- Accountable: {Name}
- Consulted: {Names}
- Informed: {Names}
## Overview
{Standard requirements content...}
Milestone Linking
Link milestones to product initiatives:
// When creating milestone, include product context
// collection-create milestones
{
"title": "Feature: {Feature Name}",
"description": "## Product Context\n\n- **Product**: {productName}\n- **Initiative**: {initiativeName}\n- **Goal**: {goalName}\n\n{rest of description}",
"projectId": "{projectId}",
"metadata": {
"productId": "{productId}",
"initiativeId": "{initiativeId}",
"goalId": "{goalId}"
}
}
Goal-Aligned Development
Writing Goal-Aligned Features
Every feature should trace back to a product goal:
+---------------------------------------------------------------------------+
| Goal Alignment Verification |
+---------------------------------------------------------------------------+
| |
| Feature Request: "Add real-time notifications" |
| |
| Step 1: Identify Related Goal |
| +-- Goal: "Improve User Engagement" |
| +-- Key Result: "Increase daily active users by 20%" |
| +-- Metric: DAU count with target 1000 |
| |
| Step 2: Define Feature Impact |
| +-- How does this feature impact the metric? |
| +-- Hypothesis: Notifications increase return visits by 15% |
| |
| Step 3: Define Success Criteria |
| +-- Feature is successful if DAU increases by X% |
| +-- Measurable via analytics |
| |
| Step 4: Document in Requirements |
| +-- Link goal in requirements.md |
| +-- Include success metrics |
| |
+---------------------------------------------------------------------------+
Updating Goals During Development
As work progresses, update goal status and metrics:
| Checkpoint | Action |
|---|---|
| Feature Started | Update goal status to "In Progress" |
| Major Milestone | Update metrics with current values |
| Feature Complete | Evaluate metric impact |
| Post-Launch | Update final metric values |
// Update goal progress
// collection-update productGoals {productGoalId}
{
"status": "in-progress",
"progress": 50,
"metrics": [
{
"name": "DAU",
"type": "count",
"target": 1000,
"current": 850,
"trend": "up"
}
]
}
Roadmap-Driven Planning
Quarterly Planning Process
+---------------------------------------------------------------------------+
| Quarterly Planning Workflow |
+---------------------------------------------------------------------------+
| |
| PHASE 1: REVIEW (Week 1) |
| +-- Review previous quarter results |
| +-- Assess goal progress |
| +-- Identify completed/incomplete initiatives |
| |
| PHASE 2: PRIORITIZE (Week 1-2) |
| +-- Gather new initiative requests |
| +-- Score by impact and effort |
| +-- Align with strategic goals |
| |
| PHASE 3: PLAN (Week 2) |
| +-- Create initiatives in Product App |
| +-- Assign to quarters |
| +-- Link to goals |
| |
| PHASE 4: ASSIGN (Week 2-3) |
| +-- Update RACI matrix |
| +-- Create/link projects |
| +-- Define milestones |
| |
| PHASE 5: COMMUNICATE (Week 3) |
| +-- Share roadmap with stakeholders |
| +-- Document decisions |
| +-- Kick off first initiatives |
| |
+---------------------------------------------------------------------------+
Initiative Lifecycle
Backlog --> Planned --> In Progress --> Done
| | | |
| | | +-- All projects complete
| | +-- Projects actively being worked
| +-- Scheduled for specific quarter
+-- Ideas not yet scheduled
Moving Work Through the Roadmap
| Action | When | How |
|---|---|---|
| Create Initiative | New work identified | Roadmap Tab -> Add Initiative |
| Schedule Initiative | Quarterly planning | Drag to quarter (Timeline) |
| Start Initiative | Quarter begins | Drag to "In Progress" (Kanban) |
| Link Projects | Work begins | Initiative -> Link Projects |
| Complete Initiative | All projects done | Drag to "Done" (Kanban) |
Team Accountability
RACI Matrix Best Practices
| Rule | Description |
|---|---|
| One Accountable | Only one person can be Accountable per area |
| At Least One Responsible | Every area needs someone doing the work |
| Minimize Consulted | Too many slows decisions |
| Inform Appropriately | Keep stakeholders updated |
Defining RACI Areas
Common RACI areas for product development:
| Area | Description |
|---|---|
| Product Strategy | Vision, positioning, roadmap |
| Technical Architecture | System design, technology choices |
| UX Design | User experience, wireframes |
| Development | Code implementation |
| Testing | QA, test automation |
| Documentation | User docs, help content |
| Release | Deployment, go-live |
| Support | Customer issues, feedback |
RACI Warnings
The Product App validates RACI assignments:
| Warning | Meaning | Action |
|---|---|---|
| No Accountable | Area has no owner | Assign one person as Accountable |
| No Responsible | No one doing work | Assign at least one Responsible |
| Multiple Accountable | Too many owners | Keep only one Accountable |
Measuring Success
Goal Metrics
Define measurable metrics for each goal:
| Metric Type | Use Case | Example |
|---|---|---|
| Percentage | Completion rates | "80% test coverage" |
| Currency | Financial metrics | "$100K MRR" |
| Count | Quantity metrics | "1000 daily active users" |
| Custom | Other measures | "4.5 star rating" |
Tracking Progress
| View | Metrics Shown |
|---|---|
| Goal Card | Progress bar, current vs target |
| Goal Dashboard | Category distribution, progress distribution |
| Portfolio View | Product health (aggregated) |
Health Indicators
Product health is calculated from goal status:
| Health | Criteria |
|---|---|
| Green | Most goals On Track or Complete |
| Yellow | Some goals At Risk |
| Red | Many goals At Risk or no progress |
Activity Tracking
All changes are logged in the Activity Feed:
| Entity Type | Actions Tracked |
|---|---|
| Product | Create, Update, Phase Change |
| Goal | Create, Update, Status Change |
| Initiative | Create, Update, Status Change |
| Team Member | Add, Remove, Role Change |
| Project Link | Link, Unlink |
Quick Reference
Product App Routes
| Route | Purpose |
|---|---|
/products | Portfolio list view |
/products/:productId | Product detail view |
/products/:productId/goals | Goals tab |
/products/:productId/roadmap | Roadmap tab |
/products/:productId/team | Team tab |
/products/:productId/projects | Projects tab |
/products/:productId/activity | Activity tab |
MCP Tool Examples
// Create product
collection-create products {
"name": "my-product",
"title": "My Product",
"type": "software",
"phase": "ideation",
"orgId": "{{orgId}}",
"workspaceId": "{{workspaceId}}",
"userId": "{{userId}}"
}
// Create goal linked to product
collection-create productGoals {
"productId": "{{productId}}",
"title": "Increase User Engagement",
"category": "business",
"status": "not-started",
"progressMode": "automatic",
"metrics": [{
"name": "DAU",
"type": "count",
"target": 1000,
"current": 0,
"trend": "stable"
}]
}
// Create initiative
collection-create initiatives {
"roadmapId": "{{roadmapId}}",
"name": "User Authentication",
"description": "Implement auth system",
"quarter": "Q1",
"year": 2026,
"status": "planned",
"priority": "high"
}
// Link project to product
collection-create productProjects {
"productId": "{{productId}}",
"projectId": "{{projectId}}",
"relationship": "implements"
}
// Add team member
collection-create teamMembers {
"productId": "{{productId}}",
"userId": "{{userId}}",
"role": "contributor",
"raciAssignments": [{
"area": "Development",
"role": "R"
}]
}
Checklist: Starting Product-Driven Work
- [ ] Product exists in Product App
- [ ] Goal linked to this work
- [ ] Initiative on roadmap for this quarter
- [ ] RACI defined for team
- [ ] Project linked to product
- [ ] Project linked to initiative
- [ ] Milestone created with product context
Checklist: Completing Product-Driven Work
- [ ] Feature complete and deployed
- [ ] Initiative status updated to "Done"
- [ ] Goal metrics updated
- [ ] Activity logged
- [ ] Team notified
Related Documents
| Document | Purpose | When to Reference |
|---|---|---|
| FLOWSTATE.md | Spec workflow | Starting any feature work |
| PROCESS.md | Development process | Understanding workflows |
| TDD.md | Testing standards | Writing tests |
| QUALITY.md | Code standards | Writing code |
Version History
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0.0 | 2026-01-22 | Claude | Initial documentation |