Requirements Gathering - Deep Water

Advanced requirements engineering for complex systems.

Requirements Traceability Matrix

A traceability matrix links requirements to their source, design, implementation, and tests. This becomes critical for:

  • Compliance audits (prove you implemented what you said you would)
  • Change impact analysis (what breaks if we change this requirement?)
  • Test coverage (are all requirements tested?)

Structure:

Req ID | Source | Requirement | Design Doc | Code Module | Test Cases | Status
-------|--------|-------------|------------|-------------|------------|-------
R-001  | GDPR   | User data   | auth-design| auth.py     | test_auth  | Complete
       |        | deletion    | .md        | gdpr.py     | test_gdpr  |
R-002  | Client | Export to   | export-    | export.py   | test_expor | In Dev
       | email  | PDF         | design.md  |             | t          |

Benefits:

  • Know which requirements aren’t implemented yet
  • Find orphaned code (not tied to any requirement)
  • Identify missing tests
  • Support compliance evidence

Tools: JIRA, Azure DevOps, specialized requirements management tools (DOORS, Jama)

Compliance Requirements Mapping (GDPR, HIPAA, SOC2, etc.)

Different regulations impose specific requirements. Map them explicitly:

GDPR requirements:

  • Right to access: “Provide all user data in machine-readable format within 30 days”
  • Right to erasure: “Delete all user PII within 30 days of request, log deletion”
  • Breach notification: “Detect and report breaches within 72 hours”
  • Consent: “Obtain explicit consent for each data processing purpose, track consent version”
  • Data portability: “Export user data in JSON or CSV format”

HIPAA requirements (healthcare):

  • Access controls: “Implement role-based access, log all PHI access with user ID and timestamp”
  • Encryption: “Encrypt PHI at rest (AES-256) and in transit (TLS 1.3+)”
  • Audit trails: “Retain access logs for 7 years, protect from modification”
  • Business associate agreements: “All vendors with PHI access must sign BAA”

SOC2 requirements (SaaS trust):

  • Availability: “99.9% uptime, documented incident response”
  • Security: “MFA for all accounts, annual penetration testing”
  • Confidentiality: “Data classification and handling procedures”
  • Processing integrity: “Automated testing, code review for all changes”

For each requirement, document:

  • Where it’s implemented (code, process, policy)
  • How it’s verified (automated test, manual audit)
  • Who’s responsible
  • Evidence for auditors

Accessibility Standards (WCAG level, screen reader support)

Accessibility isn’t optional for many systems. Document specific requirements:

WCAG 2.1 Level AA (minimum for many regulations):

  • “All images have alt text describing content”
  • “Color contrast ratio minimum 4.5:1 for normal text, 3:1 for large text”
  • “All functionality available via keyboard (no mouse required)”
  • “Form errors identified and described in text, not just red color”
  • “Video content has captions and audio descriptions”

Screen reader requirements:

  • “Proper heading hierarchy (h1, h2, h3) for navigation”
  • “ARIA labels for interactive elements”
  • “Focus indicators visible when tabbing through page”
  • “Semantic HTML (nav, main, article, aside)”

Testing requirements:

  • “Test with NVDA and JAWS screen readers”
  • “Keyboard-only navigation testing”
  • “Automated accessibility scanning with axe or WAVE”
  • “User testing with disabled users”

Accessibility requirements should be testable and specific, not just “make it accessible.”

Internationalization/Localization Needs

If your app will support multiple languages/regions:

Internationalization (i18n) - technical requirements:

  • “All user-facing text externalized to translation files”
  • “Support for right-to-left languages (Arabic, Hebrew)”
  • “Unicode UTF-8 encoding throughout”
  • “Date/time formatting per locale (MM/DD vs DD/MM)”
  • “Currency formatting with correct symbols and decimal places”
  • “No hardcoded strings in code or images”

Localization (l10n) - language/region requirements:

  • “Initial launch: English (US), Spanish (Latin America), French (Canada)”
  • “Phase 2: German, Japanese, Simplified Chinese”
  • “Legal text reviewed by local counsel for each region”
  • “Customer support available in all supported languages”

Technical considerations:

  • “UI accommodates 30% text expansion (German text often longer than English)”
  • “Images with embedded text available in all languages”
  • “Number formatting: 1,000.00 (US) vs 1.000,00 (Germany) vs 1 000,00 (France)“

Disaster Recovery Time Objectives (RTO/RPO)

Critical for systems that can’t afford extended downtime:

RTO (Recovery Time Objective): How long can the system be down?

  • Tier 1 (Critical): RTO = 1 hour (financial trading, emergency services)
  • Tier 2 (Important): RTO = 4 hours (e-commerce, business applications)
  • Tier 3 (Standard): RTO = 24 hours (internal tools, reporting)

RPO (Recovery Point Objective): How much data can you afford to lose?

  • Tier 1: RPO = 0 (zero data loss, requires synchronous replication)
  • Tier 2: RPO = 15 minutes (can lose small amount of recent data)
  • Tier 3: RPO = 24 hours (daily backups acceptable)

Requirements documentation:

System: Payment processing
RTO: 30 minutes
RPO: 0 (zero data loss)
Requirements:
- Active-active deployment across 2 regions
- Synchronous database replication
- Automated failover with health checks every 60s
- Runbook for manual failover if automated fails
- Monthly DR drills with documented results

Different components can have different RTO/RPO:

  • User authentication: RTO 15 min, RPO 0
  • Analytics dashboard: RTO 4 hours, RPO 1 hour
  • Marketing website: RTO 1 hour, RPO 24 hours

Service Level Agreements (SLAs) and Operational Level Agreements (OLAs)

SLA (Service Level Agreement): Contract with customers

Uptime SLA: 99.9% per month
- Downtime allowance: 43 minutes/month
- Measurement: HTTP 200 response from /health endpoint
- Exclusions: Scheduled maintenance (announced 72 hours prior)
- Credits: 10% monthly fee for each 0.1% below 99.9%
- Support response: Critical issues within 1 hour

OLA (Operational Level Agreement): Internal targets (tighter than SLA)

Internal uptime target: 99.95% (more headroom than SLA)
Response times (internal targets):
- P0 (system down): 15 minutes acknowledgment, 1 hour resolution start
- P1 (degraded): 30 minutes acknowledgment, 4 hours resolution
- P2 (minor issue): 4 hours acknowledgment, 24 hours resolution

Requirements should support these targets:

  • “Monitoring detects outages within 60 seconds”
  • “Automated alerts to on-call engineer via PagerDuty”
  • “Runbooks for common incidents accessible from mobile device”

Audit Trail and Forensic Requirements

For regulated industries or high-security systems:

What to log:

  • Authentication events (login, logout, failed attempts)
  • Authorization decisions (user tried to access X, was allowed/denied)
  • Data modifications (who changed what, when, old value → new value)
  • Administrative actions (user role changes, configuration changes)
  • Deletion events (what was deleted, by whom, can it be recovered?)

Log requirements:

Required fields:
- Timestamp (UTC, millisecond precision)
- User ID (authenticated user or "anonymous")
- Action performed
- Resource affected
- Result (success/failure)
- Source IP address
- Session ID

Example:
2025-11-15T14:23:45.123Z | user:12345 | UPDATE | patient:789 |
SUCCESS | 192.168.1.50 | session:abc-def | Changed diagnosis from
"flu" to "pneumonia"

Log protection:

  • “Logs written to append-only storage (can’t be modified)”
  • “Logs encrypted at rest”
  • “Log tampering detection via cryptographic hashing”
  • “Logs retained for [7 years for HIPAA, varies by regulation]”

Forensic requirements:

  • “Able to reconstruct user’s actions for any 24-hour period”
  • “Search logs by user, resource, time range within 5 minutes”
  • “Export logs for legal/compliance requests in standard format”

Data Sovereignty and Residency Constraints

Where data can physically be stored and processed:

EU data (GDPR):

  • “EU citizen personal data stored only in EU data centers”
  • “No transfer to US without adequate safeguards (SCCs, DPF)”
  • “Data processing logs include geographic location”

China data (PIPL - Personal Information Protection Law):

  • “Critical information infrastructure: all data stored in China”
  • “Cross-border data transfer requires security assessment”

Healthcare data (various countries):

  • “Patient health records must remain in country of origin”
  • “Telemedicine consultations: data stored where patient is located”

Requirements:

Requirement: Geographic data isolation
Implementation:
- Database clusters per region (us-east, eu-west, ap-southeast)
- User data routing based on registration country
- Admin viewing European user: read-only access, no export
- Data residency tag on all records
- Quarterly audit of data location compliance

Technical implications:

  • Multi-region deployment complexity
  • Cross-region queries prohibited
  • Backup and DR within same region
  • Higher costs (can’t consolidate infrastructure)

Backward Compatibility Requirements

When replacing existing systems or evolving APIs:

API versioning:

  • “Support previous API version for 12 months after new version released”
  • “Deprecation warnings in HTTP headers 6 months before end-of-life”
  • “Documentation for migration path from v1 to v2”

Data migration:

  • “Import all existing records without data loss”
  • “Legacy data format supported for 6 months post-migration”
  • “Rollback plan if migration fails”

Browser support:

  • “Support last 2 versions of Chrome, Firefox, Safari, Edge”
  • “Graceful degradation for older browsers (core features work, nice-to-haves disabled)”
  • “Explicit notification if browser unsupported”

Mobile OS:

  • “iOS: support current version and previous 2 major versions”
  • “Android: support API level 26+ (Android 8.0, October 2017+)”

Document what won’t be backward compatible and why:

  • “Breaking change: Authentication API endpoint changing /auth/login → /v2/auth/login”
  • “Rationale: Security improvement requires incompatible token format”
  • “Migration: Old tokens valid until March 1, new tokens required after”

You've finished reading this deep-water level content