Scope features before you ask engineers for estimates.
Understand what code already exists, what patterns to follow, and what dependencies are involved. Write better specs and get more accurate estimates by knowing the codebase first.
- "Does infrastructure for X already exist?"
- "What similar features can we reference?"
- "What systems would this feature touch?"
Feature estimates often miss by 2-3x because PMs don't know what exists in the codebase. Reduce surprises with better context upfront.
Existing:
•
app/services/sms_service.rb - Twilio integration•
app/models/sms_message.rb - Message logging• Used for: 2FA, password reset
Would need:
• User opt-in preferences (notification_preferences table exists)
• New message templates
Estimate: Infrastructure exists, mainly UI + preferences work.
Questions that make estimates more accurate.
What Exists?
Foundation"Do we have email infrastructure?" "Is there an existing admin panel?" "Where do we handle file uploads?" Know what you're building on.
What's Similar?
Patterns"How did we build the notifications feature?" "What's the pattern for API endpoints?" "How do other forms handle validation?" Reference existing work.
What's Involved?
Scope"What systems does checkout touch?" "What services depend on user data?" "What would a pricing change affect?" Understand the blast radius.
Write specs that don't surprise engineering.
Don't propose features that require massive rewrites. Understand the current architecture before scoping.
"Build it like we built X" is way better than "build a new thing." Save engineering time with context.
Come to estimation meetings with context. Ask fewer clarifying questions. Get to accurate estimates faster.
Stop writing specs in the dark.
Know your codebase before you scope features.