Conflict Type Patterns
This reference provides comprehensive patterns for detecting conflicts in software requirements.
Table of Contents
- Logical Conflicts
- Technical Conflicts
- Resource Conflicts
- Temporal Conflicts
- Data Conflicts
- State Conflicts
- Priority Conflicts
- Scope Conflicts
Logical Conflicts
Description
Requirements that directly contradict each other or specify mutually exclusive behaviors.
Detection Patterns
Direct Contradictions:
- REQ-A: "System must work offline"
- REQ-B: "System requires continuous internet connection" → Conflict: Cannot be both offline and require continuous connection
Mutually Exclusive Features:
- REQ-A: "All data must be encrypted at rest"
- REQ-B: "Support full-text search across all data fields" → Conflict: Full-text search typically requires unencrypted searchable indexes
Opposite Behaviors:
- REQ-A: "Automatically save changes without user confirmation"
- REQ-B: "Require explicit user confirmation before saving any changes" → Conflict: Cannot both auto-save and require confirmation
Resolution Strategies
- Prioritize: Choose the more critical requirement
- Conditional: Apply different rules in different contexts
- Compromise: Find middle ground (e.g., auto-save drafts, confirm final save)
- Stakeholder Decision: Escalate for business decision
Technical Conflicts
Description
Requirements with incompatible technical constraints, platforms, or technologies.
Detection Patterns
Platform Incompatibility:
- REQ-A: "Support Internet Explorer 11"
- REQ-B: "Use ES2022 JavaScript features" → Conflict: IE11 doesn't support modern JavaScript
Technology Stack Conflicts:
- REQ-A: "Use MySQL database"
- REQ-B: "Store documents with flexible schema" → Conflict: MySQL is relational; flexible schema suggests NoSQL
API Version Conflicts:
- REQ-A: "Integrate with Payment API v1"
- REQ-B: "Use webhook signature validation" (only available in v2) → Conflict: Feature requires newer API version
Protocol Incompatibility:
- REQ-A: "Support real-time collaboration"
- REQ-B: "Use REST API exclusively" → Conflict: Real-time typically requires WebSockets, not just REST
Resolution Strategies
- Upgrade: Move to compatible versions/technologies
- Polyfill: Add compatibility layers
- Isolate: Use different tech for different features
- Drop: Remove less critical incompatible requirement
Resource Conflicts
Description
Requirements competing for limited resources (time, budget, personnel, infrastructure).
Detection Patterns
Team Capacity:
- REQ-A: "Deliver mobile app by Q1" (requires 3 developers, 3 months)
- REQ-B: "Rebuild backend API by Q1" (requires 3 developers, 3 months) → Conflict: Only 3 developers available, both can't be done simultaneously
Infrastructure Limits:
- REQ-A: "Store all user activity logs indefinitely"
- REQ-B: "Operate within $500/month cloud budget" → Conflict: Unlimited storage exceeds budget
Performance vs. Features:
- REQ-A: "Page load time under 1 second"
- REQ-B: "Display 500 items per page"
- REQ-C: "Include high-resolution images for each item" → Conflict: Loading 500 hi-res images violates performance requirement
Bandwidth Constraints:
- REQ-A: "Support 10,000 concurrent video streams"
- REQ-B: "Maximum bandwidth: 1 Gbps" → Conflict: 10,000 streams exceed bandwidth
Resolution Strategies
- Prioritize: Sequence features by importance
- Phase: Implement in stages over time
- Scale Resources: Increase budget/team/infrastructure
- Optimize: Find more efficient implementations
- Reduce Scope: Lower targets (e.g., fewer items per page)
Temporal Conflicts
Description
Requirements with incompatible timelines, sequences, or deadlines.
Detection Patterns
Dependency Deadline Conflict:
- REQ-A: "Launch user dashboard by March 1"
- REQ-B: "User authentication system ready by March 15" → Conflict: Dashboard depends on auth, but auth is due after dashboard
Impossible Timeline:
- REQ-A: "Complete full redesign in 2 weeks"
- REQ-B: "Conduct user research and A/B testing before launch" → Conflict: Research + testing + redesign cannot fit in 2 weeks
Frequency Conflicts:
- REQ-A: "Send daily summary email"
- REQ-B: "Send weekly summary email" → Conflict: Cannot be both daily and weekly (unless both are needed)
Processing Time Conflict:
- REQ-A: "Process all transactions in real-time (< 100ms)"
- REQ-B: "Run fraud detection on all transactions" (requires 500ms) → Conflict: Fraud detection time exceeds real-time requirement
Resolution Strategies
- Reschedule: Adjust deadlines to respect dependencies
- Parallel Work: Work on independent parts simultaneously
- Fast Track: Add resources to critical path
- Async Processing: Move time-consuming tasks to background
- Relax Constraints: Extend deadlines or reduce scope
Data Conflicts
Description
Requirements specifying incompatible data structures, formats, or validation rules.
Detection Patterns
Format Conflicts:
- REQ-A: "Store phone numbers in international format (+1-555-1234)"
- REQ-B: "Accept phone numbers in any format users prefer" → Conflict: Storage format differs from input format
Validation Rule Conflicts:
- REQ-A: "Password must be at least 12 characters"
- REQ-B: "Support legacy accounts with 6-character passwords" → Conflict: Minimum length differs for new vs. legacy
Data Type Conflicts:
- REQ-A: "Store price as integer (cents)"
- REQ-B: "Support fractional cents for tax calculations" → Conflict: Integer storage can't represent fractional cents
Uniqueness Conflicts:
- REQ-A: "Email addresses must be unique across all users"
- REQ-B: "Allow multiple accounts with same email" → Conflict: Cannot be both unique and non-unique
Retention Conflicts:
- REQ-A: "Delete user data immediately upon account closure"
- REQ-B: "Maintain audit logs of all transactions for 7 years" → Conflict: Audit logs contain user data that should be deleted
Resolution Strategies
- Normalize on Input: Accept flexible input, normalize to standard format
- Versioning: Support different rules for different versions
- Precision Upgrade: Use more precise data type
- Anonymize: Keep logs but remove PII
- Exception Handling: Define specific exceptions to rules
State Conflicts
Description
Requirements defining incompatible state machines or state transitions.
Detection Patterns
Invalid Transition:
- REQ-A: "Orders can be cancelled if status is 'pending' or 'processing'"
- REQ-B: "Orders in 'processing' status cannot be modified" → Conflict: Cancellation is a modification
State Overlap:
- REQ-A: "When order is 'shipped', mark as 'complete'"
- REQ-B: "Order status is 'delivered' when customer receives it" → Conflict: When does 'complete' happen? At shipping or delivery?
Circular State:
- REQ-A: "Draft documents can be published"
- REQ-B: "Published documents can be reverted to draft"
- REQ-C: "Draft documents are deleted after 30 days" → Conflict: Published→Draft→Deleted means published docs can be deleted
Concurrent State Conflict:
- REQ-A: "User can be in only one role: Viewer, Editor, or Admin"
- REQ-B: "Users can have Editor role for some projects and Admin for others" → Conflict: Single role vs. multiple roles per context
Resolution Strategies
- Refine States: Add intermediate states
- Context-Specific: States apply per context (e.g., per project)
- State Hierarchy: Allow sub-states or composite states
- Transition Guards: Add conditions to transitions
- History Tracking: Keep state history to resolve ambiguities
Priority Conflicts
Description
Requirements from different stakeholders with competing priorities.
Detection Patterns
Feature Priority:
- Stakeholder A: "Search is critical, must be in v1"
- Stakeholder B: "Export is critical, must be in v1"
- Reality: "Only time/budget for one feature in v1" → Conflict: Both can't be critical if only one fits
Performance vs. Security:
- Security Team: "All API calls require 2FA" (adds latency)
- Product Team: "API response time must be under 200ms" → Conflict: Security requirement prevents meeting performance target
User Experience vs. Compliance:
- UX Team: "Single-click checkout for returning customers"
- Legal Team: "Require explicit consent checkbox for each purchase" → Conflict: Extra click conflicts with single-click UX
Cost vs. Reliability:
- Finance: "Reduce cloud costs by 50%"
- Engineering: "Maintain 99.99% uptime" → Conflict: Cost reduction may compromise redundancy needed for uptime
Resolution Strategies
- Stakeholder Negotiation: Facilitate discussion to align priorities
- Data-Driven: Use metrics to objectively prioritize
- Phasing: Address different priorities in different releases
- Trade-off Analysis: Quantify costs/benefits of each option
- Executive Decision: Escalate to decision authority
Scope Conflicts
Description
Requirements that expand beyond defined project boundaries or contradict scope constraints.
Detection Patterns
Scope Creep:
- Project Scope: "User management for internal employees"
- REQ-A: "Support external partner accounts" → Conflict: Partners are outside defined scope
Platform Scope:
- Project Scope: "Web application only"
- REQ-A: "Users can upload photos from mobile app" → Conflict: Requires mobile app outside scope
Integration Scope:
- Project Scope: "Standalone application"
- REQ-A: "Sync data with ERP system" → Conflict: Integration outside standalone scope
Boundary Violations:
- Component Scope: "Shopping cart handles cart operations only"
- REQ-A: "Shopping cart sends confirmation emails" → Conflict: Email is outside cart responsibility
Resolution Strategies
- Scope Expansion: Formally expand scope if critical
- Defer: Move to future phase/project
- Reject: Remove requirement as out of scope
- Bridge: Create minimal integration point
- Redefine: Clarify what's actually in scope
Detection Checklist
For each pair of requirements, check:
- Do they specify opposite behaviors?
- Do they require incompatible technologies?
- Do they compete for the same limited resources?
- Do they have conflicting deadlines or sequences?
- Do they specify different data formats/rules?
- Do they define incompatible state transitions?
- Do stakeholders prioritize them differently?
- Does one expand scope beyond the other's boundaries?
- Are success criteria mutually exclusive?
- Would satisfying both create technical debt or complexity?
Severity Assessment
Critical:
- Impossible to satisfy both requirements
- Fundamental architectural conflict
- Legal/regulatory conflict
High:
- Major rework needed to reconcile
- Significant cost or timeline impact
- Affects core functionality
Medium:
- Workaround available but not ideal
- Moderate effort to resolve
- Affects secondary features
Low:
- Minor inconsistency
- Easy to resolve through clarification
- No significant impact