The Blindside Problem
Scenario:
PM (Week 1): "Build a search feature that indexes user documents in real-time. Users can search immediately after upload."
Engineering (Week 4, mid-build): "Wait. We can't index in real-time. Our database architecture indexes documents once per day. Real-time indexing would require rebuilding the entire search infrastructure. That's a 3-month project."
PM: "WHAT? Why didn't you tell me this earlier?"
Engineering: "We told you in the architecture meeting. You said 'sure, whatever.'"
PM: "I was in a calendar meeting. I wasn't listening."
Result: Feature redesigned mid-build. Scope reduced. Timeline extended.
Cost: 2 weeks of rework. Stakeholder trust broken.
Framework: The PM-Engineering Constraint Conversation
What PMs Should Ask Upfront
Instead of: "Can we do X?"
Ask:
"If we want to do X, what would need to change?"
EXAMPLES:
"If we want real-time search, what would need to change?"
→ Engineering: "Rebuild indexing pipeline (3 months)"
"If we want to support 1 million concurrent users, what would change?"
→ Engineering: "Add database replicas, scale servers (2 months + cost increase)"
"If we want to support 500MB file uploads, what would change?"
→ Engineering: "Change file storage from in-memory to S3, streaming upload (1 month)"
Three Constraint Categories
HARD CONSTRAINTS (Impossible without major work):
- Database architecture prevents certain queries
- API scaling limits (e.g., current architecture tops at 1000 QPS)
- Deployment frequency (e.g., can only deploy weekly for compliance)
- Integration constraints (e.g., payment provider requires certain security setup)
SOFT CONSTRAINTS (Possible but expensive):
- Performance (e.g., feature requires 10 database calls, latency will be 500ms)
- Scalability (e.g., works at 10K users, needs resharding at 100K)
- Complexity (e.g., feature is possible but adds technical debt)
NO CONSTRAINTS (Easy to implement):
- Most feature requests, within current architecture bounds
Constraint Documentation Template
FEATURE: Real-time Document Search
TECHNICAL CONSTRAINTS:
Hard Constraints:
- Indexing: Current pipeline indexes once/day (batch). Real-time indexing requires
new infrastructure (Elasticsearch or similar). Effort: 3 months. Cost: $15K/month.
Options:
A. Real-time search (pay cost, 3-month delay)
B. Same-day search (index updates nightly, acceptable for docs)
C. Defer search, ship other features first
CHOSEN: B (same-day search, no 3-month delay)
Soft Constraints:
- Latency: Search requires 3 database queries (filter → rank → fetch metadata).
Estimated latency: 300-500ms p99.
Acceptable? Yes, <500ms is user-acceptable.
No Constraints:
- UI/UX design (no architecture limitations)
- Mobile support (no architecture limitations)
Real-World Example: Constraint-Driven Design
Scenario: Real-Time Notifications
What PM Wants: "Send notifications instantly when user does X"
What Engineering Discovers: "Our current system sends batch notifications every 5 minutes. Real-time requires event streaming (Kafka/RabbitMQ). Major undertaking."
Bad Outcome (Spec Doesn't Address Constraint):
PRD:
"Send notifications in real-time when user posts a comment"
Build starts. Week 3: Engineering realizes constraint.
Options: Rework mid-stream, delay launch, or ship with batch notifications anyway.
Result: Delayed by 2 weeks. Team stressed.
Good Outcome (Spec Addresses Constraint Upfront):
PRD:
"Send notifications when user posts a comment. Timing options:
1. Real-time (instant): Requires event streaming infrastructure (3 weeks +
$5K/month). Ships April.
2. Batch (every 5 min): Uses current infrastructure. Ships March.
CHOSEN: Batch (March launch). Real-time as Phase 2 (April).
RATIONALE: Launch sooner with batch. Users accept 5-min delay. Can upgrade
to real-time later when other priorities less pressing."
Build starts. Clear expectation: batch notifications. Ships March on time.
Later, Phase 2: Real-time upgrade, planned.
Anti-Pattern: "Don't Worry About Architecture"
The Problem:
- PM writes spec ignoring architecture constraints
- Engineer discovers constraint mid-build
- PM: "Why didn't you flag this?"
- Engineer: "We did. You weren't listening."
The Fix:
- PM asks engineering about constraints upfront
- Constraints are part of PRD
- Scope negotiated around constraints
- No surprises mid-build
Actionable Steps
Step 1: Have a Constraints Discussion
Before finalizing PRD:
MEETING: PM + Engineering Lead
PM: "Walk me through current architecture for [system]."
Engineering explains:
- Database limits (max 10M records efficiently)
- API limits (1000 QPS max)
- Deployment constraints (weekly only)
- Integration constraints (payment provider requires pre-auth)
Step 2: Map Feature Against Constraints
FEATURE: Multi-tenant SaaS with per-user data isolation
CONSTRAINT CHECK:
Does it require database schema changes?
→ Yes. Add tenant_id column. 2-day effort.
Does it scale to 100 users?
→ Yes.
Does it scale to 1000 users?
→ No. Would require database read replicas (2 weeks).
Does it integrate with payment provider?
→ Yes. But payment provider limits to 1000 trans/min.
We're currently at 100 trans/min, so OK.
What's the cost?
→ Schema migration: $0
→ Read replicas (if we scale): $500/month
Step 3: Document Constraint Decisions
TECHNICAL CONSTRAINTS:
Accepted constraints (documented, not a blocker):
- Multi-tenancy scales to 1000 users max (phase 1)
- Requires read replicas for 10K+ users (phase 2)
- Cost impact: $500/month at scale
Hard constraints (require decisions):
- Payment integration requires pre-auth setup (1 week pre-launch)
DECISION: Do this in Week 1 of build phase.
Negotiated constraints:
- Deployment every week (vs. on-demand): Acceptable for this feature
Step 4: Update Scope Based on Constraints
IF constraint is severe:
"Real-time search requires 3-month infrastructure rebuild. Instead:
Option A: Ship same-day search (batch indexing), 2-week timeline
Option B: Defer search, ship other features, come back to search later
Option C: Accept 3-month delay for real-time search
CHOSEN: Option A (same-day search, shorter timeline)"
Step 5: Include Constraint Plan in PRD
## Technical Constraints
Database:
- Current max efficient records: 10M
- This feature: estimated 2M records
- Status: Within constraints ✓
API:
- Current max QPS: 1000
- This feature: estimated 50 QPS
- Status: Within constraints ✓
Deployment:
- Current frequency: Weekly
- This feature: Requires schema migration (compatible with weekly) ✓
Infrastructure cost:
- Baseline: $10K/month
- This feature: +$200/month (caching layer)
- New total: $10.2K/month
Constraint decisions made:
- [X] Pre-auth payment integration (1 week setup, Week 1 of build)
- [X] Batch indexing for search (not real-time, acceptable)
PMSynapse Connection
Constraint discovery is manual. PMSynapse's Architecture Validator auto-checks specs: "Your search feature needs real-time indexing. Current architecture supports batch-only. Cost to change: 3 months + $15K/month. Recommend batch indexing instead." By automating constraint discovery, PMSynapse prevents mid-build surprises.
Key Takeaways
-
Constraints are part of the problem space. Not blockers—information.
-
Ask: "What would we need to change?" not "Can we do this?" Reframes conversation.
-
Hard vs. soft vs. no constraints matter. Different decisions for each.
-
Document constraints in PRD. No surprises mid-build.
-
Use constraints to negotiate scope. "We can do A (cheap) or B (expensive). Choose."
When you see a constraint that blocks your vision:
- Can we reduce scope? (narrower MVP that doesn't hit constraint)
- Can we parallelize? (infra work + feature work simultaneous)
- Can we accept degraded performance? (launch with 500ms latency; optimize later)
- Is the infra improvement worth it? (business upside vs. time cost)
4. Document Decisions
"We chose approach B instead of A because A would require database sharding (2 weeks); B is slightly slower but ships in 1 week, and we can optimize later if needed."
Key Takeaways
- Constraints aren't excuses—they're design inputs. The best PMs spec knowing the constraints, not in spite of them.
- Technical debt becomes a feature constraint. If you have 3 weeks of accumulated tech debt, that's 3 weeks of constraint on what you can ship.
- Communication prevents surprises. When engineering says "we can't" on launch day, you've failed to specify properly.
Specifying Technical Constraints Without Dictating Architecture
Article Type
SPOKE Article — Links back to pillar: /prd-writing-masterclass-ai-era
Target Word Count
2,500–3,500 words
Writing Guidance
Cover: the difference between specifying 'what' vs. 'how,' when it's appropriate for PMs to have architectural opinions, and how to express technical constraints in business terms. Soft-pitch: PMSynapse's Feature-to-Feasibility output focuses on constraints and requirements, not implementation.
Required Structure
1. The Hook (Empathy & Pain)
Open with an extremely relatable, specific scenario from PM life that connects to this topic. Use one of the PRD personas (Priya the Junior PM, Marcus the Mid-Level PM, Anika the VP of Product, or Raj the Freelance PM) where appropriate.
2. The Trap (Why Standard Advice Fails)
Explain why generic advice or common frameworks don't address the real complexity of this problem. Be specific about what breaks down in practice.
3. The Mental Model Shift
Introduce a new framework, perspective, or reframe that changes how the reader thinks about this topic. This should be genuinely insightful, not recycled advice.
4. Actionable Steps (3-5)
Provide concrete actions the reader can take tomorrow morning. Each step should be specific enough to execute without further research.
5. The Prodinja Angle (Soft-Pitch)
Conclude with how PMSynapse's autonomous PM Shadow capability connects to this topic. Keep it natural — no hard sell.
6. Key Takeaways
3-5 bullet points summarizing the article's core insights.
Internal Linking Requirements
- Link to parent pillar: /blog/prd-writing-masterclass-ai-era
- Link to 3-5 related spoke articles within the same pillar cluster
- Link to at least 1 article from a different pillar cluster for cross-pollination
SEO Checklist
- Primary keyword appears in H1, first paragraph, and at least 2 H2s
- Meta title under 60 characters
- Meta description under 155 characters and includes primary keyword
- At least 3 external citations/references
- All images have descriptive alt text
- Table or framework visual included