Document Type: ☐ Project-Level PRD | ☐ Feature-Level PRD
Project/Feature Name: [Name]
Author: [Author Name]
Date Created: [YYYY-MM-DD]
Last Updated: [YYYY-MM-DD]
Status: ☐ Draft | ☐ In Review | ☐ Approved | ☐ In Development | ☐ Shipped
Version: 1.0
Next Review Date: [YYYY-MM-DD]
| Item | Details |
|---|---|
| Project Owner | [Name & contact] |
| Product Manager | [Name & contact] |
| Tech Lead | [Name & contact] |
| Timeline | [Start Date] → [Target Launch] |
| Priority | P0 (Critical) / P1 (High) / P2 (Medium) / P3 (Low) |
| Estimated Effort | [X person-weeks] |
| Success Metric (Primary) | [Key metric: e.g., 20% increase in user engagement] |
Purpose: [In 2-3 sentences: What problem are we solving + what solution are we building + expected business impact]
Key Highlights:
For Reviewers: Read this section to quickly understand what we’re building and why.
| Role | Name | Contact | Responsibilities |
|---|---|---|---|
| Product Owner/PM | [Name] | [Email] | Vision, prioritization, decision-making |
| Tech Lead | [Name] | [Email] | Technical architecture, feasibility review |
| Design Lead | [Name] | [Email] | UX/UI design, user research insights |
| Eng Manager | [Name] | [Email] | Team capacity, timeline management |
| Business Sponsor | [Name] | [Email] | Budget approval, strategic alignment |
| QA Lead | [Name] | [Email] | Test strategy, quality standards |
| Other | [Name] | [Email] | [Specific responsibility] |
[Describe the present state: What does the user/business currently do? What tools/processes exist? What are the current limitations?]
Example:
Currently, users manually export data to CSV, then import into a separate tool for analysis. This is error-prone and takes 15 minutes per report.
Who is affected:
How they’re affected (Pain Points):
Evidence/Data:
| Severity: ☐ Critical | ☐ High | ☐ Medium |
Cost of Problem:
Opportunity:
Strategic Alignment:
Timing Rationale:
Goal Description:
[What outcome are we trying to achieve? Write in business terms, not technical terms.]
Why This Goal:
[How does achieving this goal address the problem statement?]
Success Metric:
[Repeat structure above for each additional goal—typically 2-4 goals per PRD]
[Optional: Goals that would be nice to hit but aren’t blocking success]
Profile:
Context: [2-3 sentences: Their workflow, environment, constraints, priorities]
As a [user persona/type],
I want to [action/capability],
So that I can [benefit/outcome/why it matters].
Acceptance Criteria:
| Priority: P0 (Must Have) | P1 (Should Have) | P2 (Nice to Have) |
| Effort Estimate: Small (1-3 days) | Medium (4-7 days) | Large (1-2 weeks) |
| Dependencies: [None | Other story | External service] |
[Repeat above structure]
High-Level Approach:
[2-3 paragraphs describing the solution at a conceptual level—how does this solve the problem?]
Key Features:
User Flow Diagram:
[ASCII diagram or Mermaid flowchart showing key user journey]
Example:
┌─────────────┐
│ User │
│ Opens App │
└──────┬──────┘
│
▼
┌──────────────────┐
│ Clicks "Import" │
└──────┬───────────┘
│
▼
┌──────────────────────────┐
│ Selects CSV File │
└──────┬───────────────────┘
│
▼
┌──────────────────────────┐
│ Data Processed & Stored │
│ (Success message shown) │
└──────────────────────────┘
Design Mockups/Prototypes: [Link to Figma, Adobe XD, or include screenshots]
Functional requirements define what the system does. They describe features, workflows, integrations, and user-facing capabilities.
These requirements are blocking; the product cannot ship without them.
Description:
[Clear, detailed description of the feature. What does it do? How does it work? What triggers it?]
User Benefit:
[How does this solve a user problem or address a business goal?]
Functional Specification:
Inputs:
- [Input 1]: [Description, format, constraints]
- [Input 2]: [Description, format, constraints]
Processing:
- [Step 1]: [What happens]
- [Step 2]: [What happens]
Outputs:
- [Output 1]: [Description, format]
- [Output 2]: [Description, format]
Example Flow:
User uploads CSV → System parses columns → System validates data →
System displays preview → User confirms → Data stored in database
Acceptance Criteria:
Task Breakdown (for Planning):
Related User Stories: [Story X, Story Y]
Dependencies: [None | REQ-F002 (must complete first) | External Service Z]
Risk/Notes: [Any known challenges or considerations]
[Repeat above structure for each P0 requirement]
These requirements enhance the solution but aren’t critical for launch. If timeline is tight, these are deprioritized first.
[Same structure as above]
These are ideas for future iterations or post-launch improvements.
[Brief description; less detail required than P0/P1]
Non-functional requirements define how the system performs (speed, security, reliability, etc.).
Response Time:
Throughput:
Resource Usage:
Optimization Targets:
Authentication:
Authorization:
Data Protection:
Compliance:
Audit & Monitoring:
User Load:
Horizontal Scaling:
Data Scaling:
Uptime SLA:
Error Handling:
Disaster Recovery:
Standards Compliance:
Specific Requirements:
Testing:
Desktop Browsers:
Mobile Devices:
Network Conditions:
Supported Languages:
Localization Requirements:
Data Residency:
Industry Standards:
Current Architecture (if applicable):
[Describe existing system or state that context for changes]
Example:
┌──────────────────────────────────────────────────────────────┐
│ Web Browser │
└────────────────────────┬─────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────┐
│ API Gateway │
└────────────────────────┬─────────────────────────────────────┘
│
┌────────────────┼────────────────┐
▼ ▼ ▼
[Service A] [Service B] [Service C]
│ │ │
└────────────────┼────────────────┘
▼
┌──────────────────────┐
│ PostgreSQL DB │
└──────────────────────┘
Proposed Architecture (New Components):
[Describe what changes: new services, data stores, integrations]
Technology Stack:
| Layer | Technology | Rationale |
|---|---|---|
| Frontend | React 18 | Component reusability, large ecosystem |
| Backend | Node.js + Express | JavaScript full-stack, real-time capabilities |
| Database | PostgreSQL | ACID compliance, complex queries |
| Cache | Redis | Session storage, rate limiting |
| Message Queue | RabbitMQ | Async job processing |
| Infrastructure | AWS EC2 + S3 | Scalability, cost-effective |
| Monitoring | Datadog | Observability, alerting |
Rationale for Tech Choices: [Why did we choose these technologies? What were alternatives considered?]
Base URL: https://api.example.com/v1
POST /items
Request:
{
"name": "string (required, max 255 chars)",
"description": "string (optional)",
"category_id": "integer (required)"
}
Response (201 Created):
{
"id": "integer",
"name": "string",
"description": "string",
"category_id": "integer",
"created_at": "ISO 8601 timestamp",
"updated_at": "ISO 8601 timestamp"
}
Error Response (400 Bad Request):
{
"error": "Invalid input",
"details": {
"name": "Name is required"
}
}
Rate Limiting:
X-RateLimit-Remaining headerGET /items?category_id=1&limit=20&offset=0
Response (200 OK):
{
"data": [
{ "id": 1, "name": "Item 1", ... },
{ "id": 2, "name": "Item 2", ... }
],
"pagination": {
"total": 500,
"limit": 20,
"offset": 0,
"has_more": true
}
}
[Continue for each major endpoint]
New Tables:
CREATE TABLE items (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
description TEXT,
category_id INTEGER NOT NULL REFERENCES categories(id),
created_by INTEGER NOT NULL REFERENCES users(id),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP NULL -- soft delete
);
CREATE INDEX idx_items_category_id ON items(category_id);
CREATE INDEX idx_items_created_at ON items(created_at);
Modified Tables: [If updating existing schema, document changes]
Migration Strategy:
Third-Party Services:
| Service | Purpose | SLA | Fallback |
|---|---|---|---|
| AWS S3 | File storage | 99.99% | [e.g., queue for retry] |
| Stripe | Payments | 99.95% | [e.g., manual processing] |
| SendGrid | 99.9% | [e.g., retry with exponential backoff] |
Contract/Licensing:
System Integrations:
Third-Party APIs Used:
Unit Testing:
Integration Testing:
End-to-End Testing:
Performance Testing:
Security Testing:
Accessibility Testing:
QA Plan:
Deployment Environment:
| Environment | Purpose | Update Frequency | Data |
|---|---|---|---|
| Development | Local development | Continuous | Dev data |
| Staging | Pre-production testing | Per PR | Prod-like data (anonymized) |
| Production | Live users | Controlled rollout | Real user data |
Deployment Process:
main branchFeature Flags:
Rollback Plan:
For Developers:
For Users:
For Support:
[Choose a format: Gantt chart, phases, or weekly breakdown]
Goal: Set up infrastructure, data model, and basic API skeleton
Tasks:
Deliverables:
Validation Gate:
Goal: Implement primary user-facing features from REQ-F001, REQ-F002
Tasks:
Deliverables:
Validation Gate:
Goal: Bug fixes, performance optimization, documentation, launch readiness
Tasks:
Deliverables:
Validation Gate:
Goal: Gradually roll out to users; monitor for issues
Tasks:
Validation Gate:
Internal Dependencies:
External Dependencies:
Blockers:
Timeline Risks:
Technical Assumptions:
Business Assumptions:
User Assumptions:
Validation:
Explicitly Excluded (v1):
Why Excluded:
Future Considerations:
| Risk | Likelihood | Impact | Mitigation | Owner |
|---|---|---|---|---|
| Performance degradation under load | Medium | High | Load test early (Week 3); cache strategy; database optimization | Tech Lead |
| Third-party API reliability issues | Low | Medium | Implement circuit breaker; fallback logic; monitor SLA | Backend Lead |
| Data migration problems | Medium | High | Test migration script on production-size dataset (Week 4); dry run before launch | DBA |
| Security vulnerability in dependencies | Low | Critical | Weekly dependency scans (Snyk); prompt patching; security review (Week 7) | Security Team |
| Risk | Likelihood | Impact | Mitigation | Owner |
|---|---|---|---|---|
| Insufficient user adoption | Medium | High | Launch with beta user group; gather feedback early; iterate based on usage | PM |
| Competitive feature launch | Low | High | Accelerate timeline where possible; differentiate on quality/UX | PM |
| Scope creep during development | High | Medium | Strict scope gate at Phase 1 completion; defer nice-to-haves to v1.1 | PM |
| Key team member departure | Low | High | Document code/decisions; pair programming on critical features | EM |
| Risk | Likelihood | Impact | Mitigation | Owner |
|---|---|---|---|---|
| Timeline slippage | Medium | High | Weekly status reviews; early identification of blockers; buffer week in schedule | PM |
| Resource constraints | Medium | Medium | Cross-train team; prep for contingency with junior devs | EM |
Before launch, ALL of the following must be true:
Code Quality:
Documentation:
Security & Compliance:
Performance:
Accessibility:
Monitoring & Alerting:
Support Readiness:
Checkpoint 1: End of Phase 1 (Week 2)
Gate Criteria:
If Failed:
Checkpoint 2: End of Phase 2 (Week 5)
Gate Criteria:
If Failed:
Checkpoint 3: End of Phase 3 (Week 8)
Gate Criteria:
If Failed:
Checkpoint 4: Post-Launch (Week 10)
Gate Criteria:
If Failed:
| Term | Definition |
|---|---|
| DAU | Daily Active Users |
| P0 | Critical priority—blocks launch |
| P1 | High priority—should complete before launch |
| SLA | Service Level Agreement |
| RTO | Recovery Time Objective |
| UAT | User Acceptance Testing |
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | [Date] | [Author] | Initial draft |
| 1.1 | [Date] | [Author] | Added non-functional requirements |
| 2.0 | [Date] | [Author] | Approved for development |
| Role | Name | Signature | Date |
|---|---|---|---|
| Product Owner | [Name] | ____ | ____ |
| Tech Lead | [Name] | ____ | ____ |
| Design Lead | [Name] | ____ | ____ |
| Eng Manager | [Name] | ____ | ____ |
| Business Sponsor | [Name] | ____ | ____ |
Use this to populate your Jira, Asana, or Linear board.
Phase 1 Tasks:
Phase 2 Tasks:
[Continue for all phases…]
For clarifications on this PRD or to discuss scope changes, please contact: