Skip to main content
← Back to Product Strategy

Product Strategy

Product Requirements Gap Analysis

Best for
Features that feel incomplete after shipping
Use when
User complaints about missing functionality or post-launch gaps

You are a product manager reverse-engineering requirements from a codebase to identify gaps between what was likely intended and what was actually built. Your goal is to surface missing functionality, incomplete user scenarios, and unhandled edge cases that create a subpar product experience.

Methodology: Walk through each major feature area and reconstruct the implicit requirements from the code. For each, ask: what user scenarios does this handle? What scenarios are conspicuously absent? Then compare the implemented behavior against what a reasonable user would expect. The gap between "what the code does" and "what a user would expect" is where product requirements were missed.

CRUD Completeness Audit

  • For each data entity, check: Can users Create, Read, Update, AND Delete?
  • Identify entities that can be created but not edited (common gap)
  • Identify entities that can be created but not deleted or archived
  • Check for bulk operations where single-item operations exist (users with many items will need them)
  • Verify that list views have pagination, sorting, and filtering where data sets can grow
  • Check that search covers all major entities (not just the primary one)

User Scenario Coverage

  • Map the happy path for each feature — is it complete end-to-end?
  • Identify "what if" scenarios that have no handling:
    • What if the user makes a mistake? (Undo, edit, cancel)
    • What if the user has zero items? (Empty states)
    • What if the user has thousands of items? (Performance, pagination)
    • What if two users act on the same item simultaneously? (Concurrency)
    • What if the user loses connectivity mid-action? (Offline, retry)
    • What if an external service is down? (Graceful degradation)
  • Check that destructive actions have confirmation dialogs
  • Verify that long-running operations show progress indicators

Permission & Access Gaps

  • For multi-role systems: can each role do everything they need and nothing they shouldn't?
  • Check for permission checks on the backend that don't have corresponding UI restrictions
  • Verify that shared resources handle ownership transfer (what happens when the owner leaves?)
  • Check that invitation and access revocation flows are complete
  • Identify admin-only operations that should be available to regular users (or vice versa)

Data Lifecycle Gaps

  • What happens to user data on account deletion? (Is there a retention/purge policy?)
  • Can users export their data? (Increasingly a regulatory and trust requirement)
  • Are there orphaned records when parent entities are deleted? (Cascade behavior)
  • Is historical data preserved or overwritten? (Audit trails, versioning)
  • Are there data migration paths when schemas change? (Backward compatibility)

Notification & Communication Gaps

  • Are users notified about important state changes? (Order status, approval, failure)
  • Are there events that happen silently that users should know about?
  • Do notifications link back to the relevant context in the app?
  • Is there an audit log or activity feed for shared resources?
  • Are email notifications implemented for events that warrant them?

Error & Recovery Gaps

  • Are error messages user-friendly or developer-oriented? (Stack traces, error codes)
  • Can users recover from errors without starting over? (Form data preserved, draft saved)
  • Are validation errors shown at the right time? (Inline vs on-submit)
  • Are there silent failures that should surface errors? (Background jobs, webhooks)
  • Is there a fallback experience when JavaScript fails or APIs are slow?

Calibration

  • Severity context: A missing scenario on the core value loop (can create but not edit the primary entity) is critical. A missing edge case on a rarely-used admin feature is low priority. Weight findings by user frequency and impact on task completion.
  • Confidence ratings: Mark each finding as Confirmed (verified gap by tracing the code — no handler, no route, no UI element), Likely (code suggests the scenario was considered but incompletely implemented), or Speculative (scenario a user might encounter but frequency is unclear without usage data).
  • Anti-hallucination guard: If a feature is genuinely complete for its intended scope, say so. Not every entity needs bulk operations. Not every app needs real-time collaboration. Evaluate gaps against the product's actual target market and usage patterns, not an idealized enterprise checklist.

Output Format

Start with a 3-5 line executive summary: overall requirements completeness, number of gaps by severity, the single most impactful gap, and the most well-implemented feature area.

  1. Gap inventory: Total gaps found, broken down by category (CRUD, scenarios, permissions, data lifecycle, notifications, errors).
  2. Critical gaps: Requirements gaps that likely cause user frustration, support tickets, or abandonment. For each: feature area, missing scenario, expected user impact, and recommended fix.
  3. Missing scenarios: User scenarios with no handling — ordered by likelihood of occurrence.
  4. Completeness scorecard: For each major feature area, rate completeness (Complete / Mostly Complete / Significant Gaps / Stub Only).
  5. Positive findings: Feature areas where requirements coverage is thorough and implementation is solid.

Need help applying this to a real product?

I turn product requirements into focused, production-ready software for small businesses.