4.5 — Assumptions
Deliverable 4.5 — Assumptions
Requirement: At least 8 explicit assumptions
Source: Constraints Analysis.md, Strategic Context Analysis.md, Submission.md, Analysis v2.md
Listed: 12 assumptions (exceeds minimum 8)
Assumptions List
| # | Assumption | Category | Impact If Wrong | Mitigation |
|---|---|---|---|---|
| A1 | Team has .NET experience (senior-level). No major ramp-up needed on C#/.NET 8 | Team | Phase 0 extends 2–4 weeks for training. AI multiplier drops as learning overhead increases | Verify during hiring/onboarding. Cursor + Claude Code can assist learning |
| A2 | Legacy codebase has some documentation or discoverable APIs. Not fully undocumented, has controller/service layer structure | Codebase | AI analysis Phase 0 takes significantly longer. Risk of missed business rules during migration | Phase 0 dedicates Week 2 to AI codebase ingestion. If undocumented → extend AI analysis to Week 3-4 |
| A3 | Azure is the approved cloud provider. No multi-cloud requirement. Azure account and subscriptions available | Infrastructure | Complete architecture rework if AWS/GCP mandated. All IaC (Bicep), messaging (Service Bus), hosting (Container Apps) must change | Confirm with stakeholder Day 1. If not Azure → swap to equivalent (ECS, SQS, Terraform) — patterns stay same |
| A4 | "Payment frozen Phase 1" means code stays in monolith. New services can call existing Payment APIs via ACL. Not "API frozen" (can't call at all) | Constraint | If API-frozen too → new services have no payment path → booking flow blocked entirely | Clarify with product owner. If API-frozen → queue bookings as "pending payment", manual reconciliation |
| A5 | AI tools (Cursor Pro, Claude Code) can be purchased. No procurement blocker, no security/compliance objection to cloud AI tools | AI Strategy | AI multiplier drops from 2x → 1.2x (basic Copilot only). Effective capacity: ~32 instead of ~44 man-months. Scope must reduce: cut Reporting or Workforce | Submit procurement request Week 1. Fallback: Ollama local models + open-source tools (Aider, Continue.dev) |
| A6 | Legacy monolith continues running during full 9-month migration. No forced decommission date from business/ops | Timeline | If forced early shutdown → scope must shrink dramatically. Strangler Fig requires legacy alive during transition | Confirm with stakeholder. Legacy should run at least until Month 10 (1 month buffer after Phase 3) |
| A7 | 40K users distributed across time zones. No safe "maintenance window" exists where all users are offline | Availability | If most users are in 1 timezone (e.g., APAC only) → could have 2am maintenance window. Changes zero-downtime urgency slightly | Doesn't change architecture (still Strangler Fig) but could simplify cutover scheduling if window exists |
| A8 | Team is co-located or same timezone (Vietnam) for effective real-time collaboration | Team | If distributed across timezones → add async communication overhead (~10% capacity loss). Need more documentation | Shape Up + async Kanban board handles distributed well. Increase written documentation if needed |
| A9 | Azure Service Bus is acceptable for messaging. No mandate for Kafka or RabbitMQ | Architecture | Minor: swap messaging library (MassTransit supports multiple brokers). Patterns stay identical. If Kafka mandated → add ops overhead | Service Bus is Azure-native, cheapest managed option. Confirm no existing infra preference |
| A10 | No regulatory/compliance requirements beyond standard enterprise security for Phases 0–3. GDPR, PCI-DSS handled by existing legacy compliance | Compliance | If PCI-DSS audit required for new services → add 2-4 weeks compliance work per service touching payment data. May need external auditor | Payment stays in legacy (already compliant). New services don't handle card data directly → ACL isolates |
| A11 | Legacy database is SQL Server (not Oracle, MySQL, etc.). CDC tools like Debezium or built-in SQL Server CDC available | Data | If Oracle → different CDC tooling. If proprietary format → custom ETL needed, +2-3 weeks per service | Phase 0 Week 2: verify DB engine + CDC capability. Adjust tooling accordingly |
| A12 | No mobile app in scope. Web-only modernization. React 18 SPA serves all user interfaces | Scope | If mobile needed → add React Native or Flutter track. Requires additional frontend engineer or scope reduction | Confirm with product owner. API-first architecture means mobile frontend could be added later without backend changes |
Assumption Categories Summary
Team (A1, A8): Skill level + collaboration model
Codebase (A2, A11): Legacy state + discoverability
Infrastructure (A3): Cloud provider confirmed
Constraints (A4, A6): Interpretation of "frozen" + timeline
AI Strategy (A5): Tool procurement + license approval
Compliance (A10): Regulatory environment
Scope (A9, A12): What's in/out of project scope
Availability (A7): User distribution pattern
Assumption Validation Plan
Week 1 (Phase 0): Validate HIGH-IMPACT assumptions
├── A3: Azure confirmed? → stakeholder meeting
├── A4: "Payment frozen" means what exactly? → product owner
├── A5: AI tool procurement started? → budget approval
├── A6: Legacy decommission date? → ops team
└── A11: DB engine confirmed? → DBA/ops
Week 2 (Phase 0): Validate MEDIUM-IMPACT assumptions
├── A1: Team skills assessment → pair programming sessions
├── A2: Legacy code quality scan → AI ingestion results
├── A7: User timezone distribution → analytics data
└── A12: Mobile scope confirmation → product owner
Ongoing: Monitor ASSUMPTION DRIFT
├── A5: AI effectiveness measured weekly
├── A8: Team collaboration quality → retro feedback
└── A10: Compliance requirements → legal/security review
Impact Matrix
IF WRONG → LOW IMPACT IF WRONG → HIGH IMPACT
───────────────────── ──────────────────────
LIKELY WRONG │ A8: Team co-located │ A2: Legacy documented
│ A7: Global timezone │ A5: AI tools approved
│ │
UNLIKELY │ A9: Service Bus OK │ A3: Azure confirmed
WRONG │ A12: No mobile │ A4: Payment meaning
│ A11: SQL Server │ A6: No forced shutdown
│ │ A10: No compliance
Validate first: A2, A5, A3, A4, A6 (high impact, validate Week 1)