{ "generatedAt": "2026-09-06", "unit": "MD", "mdPerMM": 21, "hoursPerDay": 8, "roles": [ "PM", "BA", "SA", "UIUX", "BE", "FE", "QA", "DEVOPS" ], "items": [ { "id": "WBS-01", "name": "Thiết lập dự án & môi trường (Dev/Staging/Production trên AWS)", "group": "Xuyên suốt", "sources": [ "§3.2", "§3.3" ], "complexity": "L", "risk": "medium", "effortMD": { "PM": 2, "SA": 2, "BE": 5, "DEVOPS": 20 }, "itemMD": 29, "contingencyPct": 20, "contingencyMD": 5.8 }, { "id": "WBS-02", "name": "Pipeline CI/CD (build→test→SAST/SCA→deploy nhiều môi trường)", "group": "Xuyên suốt", "sources": [ "§9.3" ], "complexity": "L", "risk": "medium", "effortMD": { "DEVOPS": 18, "QA": 4 }, "itemMD": 22, "contingencyPct": 20, "contingencyMD": 4.4 }, { "id": "WBS-03", "name": "Kiến trúc nền tảng dịch vụ & event backbone (Kafka/MSK, database-per-service)", "group": "Xuyên suốt", "sources": [ "§3.1", "§3.2" ], "complexity": "XL", "risk": "high", "effortMD": { "PM": 2, "SA": 15, "BE": 25, "DEVOPS": 10 }, "itemMD": 52, "contingencyPct": 35, "contingencyMD": 18.2 }, { "id": "WBS-04", "name": "Design system & khung i18n/l10n (5 ngôn ngữ)", "group": "Xuyên suốt", "sources": [ "§7.0", "FR-15", "NFR-06" ], "complexity": "L", "risk": "medium", "effortMD": { "UIUX": 15, "FE": 12 }, "itemMD": 27, "contingencyPct": 20, "contingencyMD": 5.4 }, { "id": "WBS-05", "name": "Bảo mật xuyên suốt (OWASP, chống IDOR, mã hoá KMS, MFA, audit log)", "group": "Xuyên suốt", "sources": [ "§8", "§4.1.1", "§4.1.13", "§9.1.5" ], "complexity": "XL", "risk": "high", "effortMD": { "SA": 10, "BE": 20, "QA": 8, "DEVOPS": 5 }, "itemMD": 43, "contingencyPct": 35, "contingencyMD": 15.05 }, { "id": "WBS-06", "name": "Hiệu năng & khả năng mở rộng (cache Redis, CDN, load/chaos test)", "group": "Xuyên suốt", "sources": [ "NFR-01", "NFR-02", "NFR-03", "§9.1.4" ], "complexity": "L", "risk": "high", "effortMD": { "BE": 10, "DEVOPS": 10, "QA": 8 }, "itemMD": 28, "contingencyPct": 35, "contingencyMD": 9.8 }, { "id": "WBS-07", "name": "Giám sát, logging tập trung & DR/backup", "group": "Xuyên suốt", "sources": [ "§9.4", "§9.5", "§5.3.2" ], "complexity": "M", "risk": "medium", "effortMD": { "DEVOPS": 12, "BE": 3 }, "itemMD": 15, "contingencyPct": 20, "contingencyMD": 3 }, { "id": "WBS-08", "name": "Quản lý dự án & PMO (ceremonies, báo cáo, rủi ro/thay đổi)", "group": "Xuyên suốt", "sources": [ "bid-config methodology", "§9" ], "complexity": "L", "risk": "medium", "effortMD": { "PM": 40 }, "itemMD": 40, "contingencyPct": 20, "contingencyMD": 8 }, { "id": "WBS-09", "name": "Đào tạo & bàn giao (tài liệu vận hành, workshop Admin/Seller/CSR/Ops)", "group": "Xuyên suốt", "sources": [ "B9 dossier-structure", "bid-config warrantyMonths" ], "complexity": "M", "risk": "low", "effortMD": { "BA": 5, "PM": 5, "QA": 3 }, "itemMD": 13, "contingencyPct": 10, "contingencyMD": 1.3 }, { "id": "WBS-10", "name": "Hỗ trợ go-live & bảo hành giai đoạn đầu (hypercare)", "group": "Xuyên suốt", "sources": [ "bid-config warrantyMonths=12", "NFR-08" ], "complexity": "M", "risk": "medium", "effortMD": { "PM": 3, "BE": 6, "QA": 4, "DEVOPS": 8 }, "itemMD": 21, "contingencyPct": 20, "contingencyMD": 4.2 }, { "id": "WBS-11", "name": "Tích hợp VNPay (redirect + IPN, chống replay, đối soát)", "group": "Xuyên suốt", "sources": [ "§3.4", "§4.1.6", "TC-09", "TC-10" ], "complexity": "M", "risk": "medium", "effortMD": { "BE": 6, "QA": 3 }, "itemMD": 9, "contingencyPct": 20, "contingencyMD": 1.8 }, { "id": "WBS-12", "name": "Tích hợp Momo (redirect + IPN, chống replay, đối soát)", "group": "Xuyên suốt", "sources": [ "§3.4", "§4.1.6" ], "complexity": "M", "risk": "medium", "effortMD": { "BE": 5, "QA": 2 }, "itemMD": 7, "contingencyPct": 20, "contingencyMD": 1.4 }, { "id": "WBS-13", "name": "Tích hợp GHN (tạo vận đơn, webhook, retry)", "group": "Xuyên suốt", "sources": [ "§3.4", "§4.1.12", "TC-29" ], "complexity": "M", "risk": "medium", "effortMD": { "BE": 5, "QA": 2 }, "itemMD": 7, "contingencyPct": 20, "contingencyMD": 1.4 }, { "id": "WBS-14", "name": "Tích hợp GHTK (tạo vận đơn, webhook, fallback từ GHN)", "group": "Xuyên suốt", "sources": [ "§3.4", "§4.1.12", "BR-15", "TC-29b" ], "complexity": "M", "risk": "medium", "effortMD": { "BE": 4, "QA": 2 }, "itemMD": 6, "contingencyPct": 20, "contingencyMD": 1.2 }, { "id": "WBS-15", "name": "Tích hợp Email/SMS Provider", "group": "Xuyên suốt", "sources": [ "§3.4", "Notification Service §3" ], "complexity": "S", "risk": "low", "effortMD": { "BE": 4, "QA": 2 }, "itemMD": 6, "contingencyPct": 10, "contingencyMD": 0.6 }, { "id": "WBS-16", "name": "Tích hợp Google/Facebook OAuth", "group": "Xuyên suốt", "sources": [ "§3.4", "§4.1.3", "TC-03" ], "complexity": "S", "risk": "medium", "effortMD": { "BE": 4, "QA": 2 }, "itemMD": 6, "contingencyPct": 20, "contingencyMD": 1.2 }, { "id": "WBS-17", "name": "Tích hợp ngân hàng cho payout (batch file/API, không tự động retry)", "group": "Xuyên suốt", "sources": [ "§3.4", "§4.1.8", "TC-25b" ], "complexity": "M", "risk": "high", "effortMD": { "BE": 6, "QA": 3 }, "itemMD": 9, "contingencyPct": 35, "contingencyMD": 3.15 }, { "id": "WBS-18", "name": "Định danh & tài khoản khách hàng", "group": "Khách hàng", "sources": [ "FR-01", "FR-02", "FR-03", "§4.1.3", "SCR-08", "SCR-09" ], "complexity": "L", "risk": "medium", "effortMD": { "BA": 3, "SA": 2, "BE": 12, "FE": 10, "UIUX": 4, "QA": 5 }, "itemMD": 36, "contingencyPct": 20, "contingencyMD": 7.2 }, { "id": "WBS-19", "name": "Danh mục & tìm kiếm sản phẩm đa seller", "group": "Khách hàng", "sources": [ "FR-04", "§3.1 Catalog & Search", "§4.1.4", "SCR-01", "SCR-02", "SCR-03" ], "complexity": "XL", "risk": "high", "effortMD": { "BA": 4, "SA": 3, "BE": 20, "FE": 15, "UIUX": 6, "QA": 8 }, "itemMD": 56, "contingencyPct": 35, "contingencyMD": 19.6 }, { "id": "WBS-20", "name": "Giỏ hàng đa seller", "group": "Khách hàng", "sources": [ "FR-05", "§4.1.5", "SCR-04" ], "complexity": "M", "risk": "medium", "effortMD": { "BA": 2, "BE": 8, "FE": 6, "UIUX": 2, "QA": 4 }, "itemMD": 22, "contingencyPct": 20, "contingencyMD": 4.4 }, { "id": "WBS-21", "name": "Checkout & tách đơn theo seller (saga đặt hàng)", "group": "Khách hàng", "sources": [ "FR-06", "§6 Luồng 1", "BR-01", "BR-02", "SCR-05", "SCR-06", "SCR-07" ], "complexity": "XL", "risk": "high", "effortMD": { "PM": 2, "BA": 4, "SA": 3, "BE": 18, "FE": 12, "UIUX": 4, "QA": 10 }, "itemMD": 53, "contingencyPct": 35, "contingencyMD": 18.55 }, { "id": "WBS-22", "name": "Thanh toán — business logic Payment Service", "group": "Khách hàng", "sources": [ "FR-07", "§3 Payment Service", "§4.1.6", "NFR-05", "SCR-06" ], "complexity": "L", "risk": "high", "effortMD": { "PM": 1, "BA": 2, "SA": 2, "BE": 12, "FE": 4, "QA": 6 }, "itemMD": 27, "contingencyPct": 35, "contingencyMD": 9.45 }, { "id": "WBS-23", "name": "Quản lý đơn hàng khách hàng", "group": "Khách hàng", "sources": [ "FR-08", "§4.1.5", "SCR-10" ], "complexity": "M", "risk": "low", "effortMD": { "BA": 2, "BE": 6, "FE": 6, "QA": 3 }, "itemMD": 17, "contingencyPct": 10, "contingencyMD": 1.7 }, { "id": "WBS-24", "name": "Đổi trả & khiếu nại (khách hàng)", "group": "Khách hàng", "sources": [ "FR-09", "§4.1.5", "SCR-11" ], "complexity": "M", "risk": "medium", "effortMD": { "BA": 2, "BE": 6, "FE": 5, "UIUX": 2, "QA": 3 }, "itemMD": 18, "contingencyPct": 20, "contingencyMD": 3.6 }, { "id": "WBS-25", "name": "Danh sách yêu thích (Wishlist)", "group": "Khách hàng", "sources": [ "FR-10", "SCR-12" ], "complexity": "S", "risk": "low", "effortMD": { "BE": 2, "FE": 2, "QA": 1 }, "itemMD": 5, "contingencyPct": 10, "contingencyMD": 0.5 }, { "id": "WBS-26", "name": "Đánh giá & nhận xét sản phẩm", "group": "Khách hàng", "sources": [ "FR-11", "SCR-13", "BR-11" ], "complexity": "S", "risk": "low", "effortMD": { "BE": 3, "FE": 3, "QA": 2 }, "itemMD": 8, "contingencyPct": 10, "contingencyMD": 0.8 }, { "id": "WBS-27", "name": "Thông báo đơn hàng", "group": "Khách hàng", "sources": [ "FR-12", "§3 Notification Service", "SCR-15" ], "complexity": "M", "risk": "medium", "effortMD": { "BA": 1, "BE": 6, "FE": 3, "QA": 3 }, "itemMD": 13, "contingencyPct": 20, "contingencyMD": 2.6 }, { "id": "WBS-28", "name": "Khuyến mãi & mã giảm giá", "group": "Khách hàng", "sources": [ "FR-13", "§3 Promotion & Loyalty", "SCR-26" ], "complexity": "M", "risk": "low", "effortMD": { "BA": 2, "BE": 6, "FE": 5, "UIUX": 2, "QA": 3 }, "itemMD": 18, "contingencyPct": 10, "contingencyMD": 1.8 }, { "id": "WBS-29", "name": "Chương trình loyalty & hạng thành viên", "group": "Khách hàng", "sources": [ "FR-14", "§3 Promotion & Loyalty", "SCR-14", "BR-06", "BR-07", "BR-08" ], "complexity": "M", "risk": "medium", "effortMD": { "BA": 2, "BE": 7, "FE": 5, "QA": 3 }, "itemMD": 17, "contingencyPct": 20, "contingencyMD": 3.4 }, { "id": "WBS-30", "name": "Đa ngôn ngữ nội dung", "group": "Khách hàng", "sources": [ "FR-15", "§4.1.1", "§5 product_i18n" ], "complexity": "M", "risk": "medium", "effortMD": { "BA": 2, "BE": 5, "FE": 4, "QA": 3 }, "itemMD": 14, "contingencyPct": 20, "contingencyMD": 2.8 }, { "id": "WBS-31", "name": "Hiển thị đa tiền tệ tham khảo", "group": "Khách hàng", "sources": [ "FR-16", "§4.1.1", "§4.1.2" ], "complexity": "S", "risk": "low", "effortMD": { "BE": 2, "FE": 2, "QA": 1 }, "itemMD": 5, "contingencyPct": 10, "contingencyMD": 0.5 }, { "id": "WBS-32", "name": "Đăng ký & KYC người bán", "group": "Merchant", "sources": [ "FR-17", "§3 Seller Management", "§4.1.7", "SCR-16", "SCR-23" ], "complexity": "L", "risk": "high", "effortMD": { "PM": 2, "BA": 3, "SA": 2, "BE": 12, "FE": 8, "UIUX": 3, "QA": 5 }, "itemMD": 35, "contingencyPct": 35, "contingencyMD": 12.25 }, { "id": "WBS-33", "name": "Quản lý sản phẩm & tồn kho (Seller)", "group": "Merchant", "sources": [ "FR-18", "§4.1.4", "SCR-18" ], "complexity": "M", "risk": "medium", "effortMD": { "BA": 2, "BE": 8, "FE": 7, "UIUX": 2, "QA": 4 }, "itemMD": 23, "contingencyPct": 20, "contingencyMD": 4.6 }, { "id": "WBS-34", "name": "Quản lý đơn hàng (Seller)", "group": "Merchant", "sources": [ "FR-19", "§4.1.5", "SCR-19" ], "complexity": "M", "risk": "medium", "effortMD": { "BA": 2, "BE": 6, "FE": 6, "QA": 3 }, "itemMD": 17, "contingencyPct": 20, "contingencyMD": 3.4 }, { "id": "WBS-35", "name": "Dashboard doanh thu & payout (Seller)", "group": "Merchant", "sources": [ "FR-20", "§4.1.7", "SCR-17", "SCR-20" ], "complexity": "M", "risk": "low", "effortMD": { "BA": 2, "BE": 5, "FE": 6, "UIUX": 2, "QA": 3 }, "itemMD": 18, "contingencyPct": 10, "contingencyMD": 1.8 }, { "id": "WBS-36", "name": "Cấu hình hoa hồng theo ngành hàng", "group": "Admin", "sources": [ "FR-21", "§4.1.8", "SCR-25", "BR-04" ], "complexity": "S", "risk": "medium", "effortMD": { "BA": 1, "BE": 4, "FE": 3, "QA": 2 }, "itemMD": 10, "contingencyPct": 20, "contingencyMD": 2 }, { "id": "WBS-37", "name": "Payout định kỳ & Commission engine", "group": "Admin", "sources": [ "FR-22", "§3 Commission & Payout", "§4.1.8", "§6.1.4", "SCR-27", "TC-25" ], "complexity": "XL", "risk": "high", "effortMD": { "PM": 2, "BA": 3, "SA": 2, "BE": 15, "FE": 6, "QA": 7 }, "itemMD": 35, "contingencyPct": 35, "contingencyMD": 12.25 }, { "id": "WBS-38", "name": "Quản trị người bán (duyệt/khoá)", "group": "Admin", "sources": [ "FR-23", "§4.1.7", "SCR-23" ], "complexity": "M", "risk": "medium", "effortMD": { "BA": 1, "BE": 5, "FE": 5, "QA": 3 }, "itemMD": 14, "contingencyPct": 20, "contingencyMD": 2.8 }, { "id": "WBS-39", "name": "Quản trị catalog toàn sàn", "group": "Admin", "sources": [ "FR-24", "§4.1.4", "SCR-24" ], "complexity": "M", "risk": "low", "effortMD": { "BA": 1, "BE": 5, "FE": 5, "QA": 3 }, "itemMD": 14, "contingencyPct": 10, "contingencyMD": 1.4 }, { "id": "WBS-40", "name": "Xử lý tranh chấp & khiếu nại (CSR + Admin)", "group": "Admin", "sources": [ "FR-25", "§3 Dispute/CSR handling", "§4.1.5", "SCR-28", "SCR-32", "BR-14" ], "complexity": "L", "risk": "high", "effortMD": { "PM": 1, "BA": 3, "SA": 1, "BE": 10, "FE": 8, "QA": 5 }, "itemMD": 28, "contingencyPct": 35, "contingencyMD": 9.8 }, { "id": "WBS-41", "name": "Vận hành kho & vận chuyển (business logic)", "group": "Admin", "sources": [ "FR-26", "§3 Shipping & Fulfillment", "§4.1.12", "SCR-30", "SCR-31", "BR-15" ], "complexity": "L", "risk": "medium", "effortMD": { "BA": 2, "SA": 1, "BE": 10, "FE": 6, "QA": 5 }, "itemMD": 24, "contingencyPct": 20, "contingencyMD": 4.8 }, { "id": "WBS-42", "name": "Xác thực đa yếu tố (MFA) cho Admin/Seller", "group": "Admin", "sources": [ "FR-27", "§4.1.3", "§8.1.1a", "SCR-21", "SCR-29" ], "complexity": "M", "risk": "medium", "effortMD": { "BE": 5, "FE": 3, "QA": 3 }, "itemMD": 11, "contingencyPct": 20, "contingencyMD": 2.2 }, { "id": "WBS-43", "name": "Admin Dashboard tổng quan vận hành", "group": "Admin", "sources": [ "SCR-22" ], "complexity": "M", "risk": "low", "effortMD": { "BA": 1, "BE": 4, "FE": 5, "UIUX": 2, "QA": 2 }, "itemMD": 14, "contingencyPct": 10, "contingencyMD": 1.4 } ], "totals": { "baseMDByRole": { "PM": 60, "SA": 43, "BE": 305, "DEVOPS": 83, "QA": 143, "UIUX": 44, "FE": 162, "BA": 52 }, "contingencyMDByRole": { "PM": 13, "SA": 14.3, "BE": 79.5, "DEVOPS": 20.35, "QA": 35.3, "UIUX": 10.15, "FE": 36.95, "BA": 11.95 }, "overheadMD": 0, "overheadRole": null, "totalMDByRole": { "PM": 73, "BA": 63.95, "SA": 57.3, "UIUX": 54.15, "BE": 384.5, "FE": 198.95, "QA": 178.3, "DEVOPS": 103.35 }, "baseMD": 892, "contingencyMD": 221.5, "grandMD": 1113.5, "baseMM": 42.48, "mmByRole": { "PM": 3.48, "BA": 3.05, "SA": 2.73, "UIUX": 2.58, "BE": 18.31, "FE": 9.47, "QA": 8.49, "DEVOPS": 4.92 }, "grandMM": 53.02 }, "cost": { "currency": "VND", "rateCard": { "PM": 90000000, "BA": 60000000, "SA": 100000000, "UIUX": 55000000, "BE": 65000000, "FE": 60000000, "QA": 45000000, "DEVOPS": 75000000 }, "laborByRole": { "PM": 313200000, "BA": 183000000, "SA": 273000000, "UIUX": 141900000, "BE": 1190150000, "FE": 568200000, "QA": 382050000, "DEVOPS": 369000000 }, "laborTotal": 3420500000, "nonLaborItems": [ { "id": "NL-01", "name": "Hạ tầng cloud AWS năm đầu (Dev + Staging + Production)", "basis": "Sizing 3 môi trường theo §3.3 (ECS Fargate/EKS, RDS Multi-AZ + read replica, ElastiCache Redis, OpenSearch cluster đa node, CloudFront, WAF)", "recurring": "yearly", "amount": null, "currency": "VND" }, { "id": "NL-02", "name": "OpenSearch cluster (Search subsystem)", "basis": "§3.2 Search subsystem đa node cho Production", "recurring": "yearly", "amount": null, "currency": "VND" }, { "id": "NL-03", "name": "Phí giao dịch cổng thanh toán VNPay/Momo", "basis": "§3.4 — phí theo % giao dịch hoặc phí cố định", "recurring": "monthly", "amount": null, "currency": "VND" }, { "id": "NL-04", "name": "Phí gửi Email/SMS thông báo", "basis": "§3.4 Notification Service", "recurring": "monthly", "amount": null, "currency": "VND" }, { "id": "NL-05", "name": "Phí tích hợp API GHN/GHTK", "basis": "§3.4 — phí kết nối/API theo hợp đồng đơn vị vận chuyển", "recurring": "monthly", "amount": null, "currency": "VND" }, { "id": "NL-06", "name": "Domain, SSL certificate, WAF rule bổ sung", "basis": "§3.2 (WAF), §3.3", "recurring": "yearly", "amount": null, "currency": "VND" }, { "id": "NL-07", "name": "Pentest ứng dụng hàng năm + ASV scan hàng quý", "basis": "§9.1.5 DAST/Penetration test cho phạm vi PCI-DSS SAQ A", "recurring": "yearly", "amount": null, "currency": "VND" }, { "id": "NL-08", "name": "Chi phí đào tạo & tài liệu bàn giao", "basis": "B9 dossier-structure", "recurring": "one-off", "amount": null, "currency": "VND" } ], "nonLaborTotal": 0, "subtotal": 3420500000, "vatPct": 10, "vat": 342050000, "total": 3762550000, "priceComplete": false, "missingRates": [], "missingAmounts": [ "Hạ tầng cloud AWS năm đầu (Dev + Staging + Production)", "OpenSearch cluster (Search subsystem)", "Phí giao dịch cổng thanh toán VNPay/Momo", "Phí gửi Email/SMS thông báo", "Phí tích hợp API GHN/GHTK", "Domain, SSL certificate, WAF rule bổ sung", "Pentest ứng dụng hàng năm + ASV scan hàng quý", "Chi phí đào tạo & tài liệu bàn giao" ] }, "ucp": { "UAW": 25, "UUCW": 210, "TCF": 1.13, "EF": 0.87, "UCP": 231.03, "hoursPerUCP": 20, "hours": 4620.6, "md": 577.58, "mm": 27.5, "tcfSum": 52.5, "efSum": 17.5 }, "crosscheck": { "wbsBaseMM": 42.48, "ucpMM": 27.5, "variancePct": 54.47, "thresholdPct": 25, "flag": true }, "timeline": { "teamSize": 9, "teamDerived": true, "parallelEfficiency": 0.85, "durationMonths": 7, "scheduleMonths": 7, "startDate": null, "endDate": null, "phases": [ { "name": "Khởi động & chuẩn bị", "pct": 5, "startMonth": 0, "endMonth": 0.5, "startDate": null, "endDate": null, "effortMM": 2.65 }, { "name": "Phân tích & thiết kế chi tiết", "pct": 15, "startMonth": 0.5, "endMonth": 1.5, "startDate": null, "endDate": null, "effortMM": 7.95 }, { "name": "Phát triển", "pct": 45, "startMonth": 1.5, "endMonth": 4.5, "startDate": null, "endDate": null, "effortMM": 23.86 }, { "name": "Kiểm thử hệ thống, hiệu năng, bảo mật", "pct": 15, "startMonth": 4.5, "endMonth": 5.5, "startDate": null, "endDate": null, "effortMM": 7.95 }, { "name": "UAT & đào tạo", "pct": 12, "startMonth": 5.5, "endMonth": 6.5, "startDate": null, "endDate": null, "effortMM": 6.36 }, { "name": "Go-live & hỗ trợ ổn định", "pct": 8, "startMonth": 6.5, "endMonth": 7, "startDate": null, "endDate": null, "effortMM": 4.24 } ], "deadlineFit": { "deadline": null, "fits": null, "availableMonths": null, "suggestedTeamSize": null } }, "staffing": { "unit": "FTE (MM/tháng)", "byMonth": [ { "month": 1, "label": "M1", "fte": { "PM": 0.61, "BA": 1.15, "SA": 1.16, "UIUX": 1.03, "BE": 0.92, "FE": 0.47, "QA": 0.42, "DEVOPS": 1.73 }, "total": 7.49 }, { "month": 2, "label": "M2", "fte": { "PM": 0.49, "BA": 0.79, "SA": 0.72, "UIUX": 0.9, "BE": 3.21, "FE": 1.65, "QA": 0.92, "DEVOPS": 0.45 }, "total": 9.13 }, { "month": 3, "label": "M3", "fte": { "PM": 0.46, "BA": 0.2, "SA": 0.23, "UIUX": 0.26, "BE": 4.58, "FE": 2.37, "QA": 0.99, "DEVOPS": 0.41 }, "total": 9.5 }, { "month": 4, "label": "M4", "fte": { "PM": 0.46, "BA": 0.2, "SA": 0.23, "UIUX": 0.26, "BE": 4.58, "FE": 2.37, "QA": 0.99, "DEVOPS": 0.41 }, "total": 9.5 }, { "month": 5, "label": "M5", "fte": { "PM": 0.49, "BA": 0.18, "SA": 0.25, "UIUX": 0.13, "BE": 3.21, "FE": 1.65, "QA": 2.2, "DEVOPS": 0.58 }, "total": 8.69 }, { "month": 6, "label": "M6", "fte": { "PM": 0.47, "BA": 0.31, "SA": 0.14, "BE": 1.19, "FE": 0.61, "QA": 2.34, "DEVOPS": 0.49 }, "total": 5.55 }, { "month": 7, "label": "M7", "fte": { "PM": 0.49, "BA": 0.23, "BE": 0.64, "FE": 0.33, "QA": 0.64, "DEVOPS": 0.86 }, "total": 3.19 } ], "peak": 9.5, "peakHeadcount": 10 }, "warnings": [ "Giá tạm tính: thiếu đơn giá [], thiếu số tiền [Hạ tầng cloud AWS năm đầu (Dev + Staging + Production), OpenSearch cluster (Search subsystem), Phí giao dịch cổng thanh toán VNPay/Momo, Phí gửi Email/SMS thông báo, Phí tích hợp API GHN/GHTK, Domain, SSL certificate, WAF rule bổ sung, Pentest ứng dụng hàng năm + ASV scan hàng quý, Chi phí đào tạo & tài liệu bàn giao]", "WBS (42.48 MM) lệch 54.47% so với UCP (27.5 MM) — vượt ngưỡng 25%, cần giải thích ở C1", "projectStartDate chưa có — Gantt sẽ dùng tháng tương đối (M1, M2…)" ] }