Files
sys-analysis-design/e-commerce/bid/20-estimation.md
2026-09-08 12:35:40 +07:00

125 lines
9.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
document: bid-estimation
version: 1
status: draft
date: 2026-09-06
---
<!--
GHI CHÚ KIỂM TRA (nội bộ — không thuộc nội dung nộp thầu):
- Nguồn số liệu duy nhất cho MM/chi phí/tổng thời gian là `bid/estimate.computed.json` (tính bằng code từ `bid/estimate.json`).
- Tài liệu này chỉ trình bày phương pháp và số liệu thô (effort theo từng hạng mục, không cộng dọc theo vai trò/toàn dự án).
- Cột "MD hạng mục" trong bảng dưới là tổng effort của MỘT hạng mục cụ thể (cộng ngang các vai trò tham gia hạng mục đó) — không phải tổng luỹ kế toàn dự án.
-->
# C1 — Cơ sở & phương pháp ước lượng
## Phương pháp A — WBS bottom-up (chính)
Ước lượng được lập theo nguyên tắc mỗi hạng mục ánh xạ tới 1 chức năng/nhóm chức năng (FR) trong `docs/SAD.md` (§2 Phân tích yêu cầu), cộng thêm các hạng mục xuyên suốt bắt buộc cho một hệ thống marketplace quy mô lớn: thiết lập dự án & CI/CD, kiến trúc nền tảng dịch vụ (event-driven, database-per-service), bảo mật xuyên suốt, hiệu năng/khả năng mở rộng, 7 tích hợp bên thứ ba (mỗi tích hợp 1 dòng riêng theo `§3.4`), quản lý dự án, đào tạo/bàn giao, hỗ trợ go-live.
Mỗi hạng mục trong `bid/estimate.json` gồm: `complexity` (S/M/L/XL, lý do dựa trên số màn hình/endpoint/bảng/rule/tích hợp liên quan), `risk` (low/medium/high — workflow áp % dự phòng theo `bid-config.contingencyPct`), `effortMD` theo từng vai trò trong `bid-config.roles` (PM, BA, SA, UIUX, BE, FE, QA, DEVOPS — chỉ điền vai trò thực sự tham gia), `rationale` và `sources` truy vết về SAD.
`bid-config.overheadMode = itemized`: effort PM/BA được phân bổ trực tiếp vào từng hạng mục theo mức độ điều phối/phân tích cần thiết, có thêm 1 dòng riêng (WBS-08) cho quản lý dự án tổng thể xuyên suốt các sprint (ceremonies, báo cáo, quản lý rủi ro/thay đổi) — không dùng `overheadPct` cộng thêm theo %.
## Phương pháp B — Use Case Points (đối chiếu)
Đếm actor và use case từ sơ đồ use case tổng quan `docs/sections/02-phan-tich-yeu-cau.md` §2.3 (UC1–UC21): 6 actor người dùng tương tác qua giao diện web (Guest, Customer, Seller, PlatformAdmin, OpsStaff, CSR) được tính là **complex**; 7 hệ thống bên ngoài (VNPay, Momo, GHN, GHTK, Google/Facebook OAuth, Email/SMS Provider, Ngân hàng) tương tác qua API được tính là **simple** theo `§3.4`. 21 use case được phân loại theo số bước giao dịch ước lượng từ đặc tả API (`§4`) và luồng nghiệp vụ (`§6`): 4 simple, 13 average, 4 complex.
13 yếu tố kỹ thuật (TCF) và 8 yếu tố môi trường (EF) được chấm điểm 0–5 kèm lý do trong `bid/estimate.json` → `ucp.tcf` / `ucp.ef`. Workflow sẽ tính UUCW/UAW/TCF/EF/UCP/giờ (theo `bid-config.hoursPerUCP = 20`)/MM và so sánh độ lệch với tổng WBS theo ngưỡng `bid-config.ucpVarianceThresholdPct = 25`; nếu vượt ngưỡng, kết quả và lý giải sẽ được trình bày ở `bid/estimate.computed.json` và cần bổ sung giải thích tại bản cập nhật tài liệu này.
# Bảng tóm tắt hạng mục
> Cột "MD hạng mục" = tổng effort của riêng dòng đó (cộng ngang các vai trò tham gia hạng mục này). Không được cộng dọc cột này giữa các dòng — tổng hợp MM/chi phí toàn dự án xem `bid/estimate.computed.json`.
## Xuyên suốt
| ID | Hạng mục | Complexity | Risk | MD hạng mục | Vai trò tham gia |
|---|---|---|---|---|---|
| WBS-01 | Thiết lập dự án & môi trường (Dev/Staging/Production AWS) | L | medium | 29 | PM, SA, BE, DEVOPS |
| WBS-02 | Pipeline CI/CD (build→test→scan→deploy) | L | medium | 22 | DEVOPS, QA |
| WBS-03 | Kiến trúc nền tảng dịch vụ & event backbone | XL | high | 52 | PM, SA, BE, DEVOPS |
| WBS-04 | Design system & khung i18n/l10n (5 ngôn ngữ) | L | medium | 27 | UIUX, FE |
| WBS-05 | Bảo mật xuyên suốt (OWASP, IDOR, KMS, MFA, audit log) | XL | high | 43 | SA, BE, QA, DEVOPS |
| WBS-06 | Hiệu năng & khả năng mở rộng (cache, CDN, load/chaos test) | L | high | 28 | BE, DEVOPS, QA |
| WBS-07 | Giám sát, logging tập trung & DR/backup | M | medium | 15 | DEVOPS, BE |
| WBS-08 | Quản lý dự án & PMO | L | medium | 40 | PM |
| WBS-09 | Đào tạo & bàn giao | M | low | 13 | BA, PM, QA |
| WBS-10 | Hỗ trợ go-live & bảo hành giai đoạn đầu | M | medium | 21 | PM, BE, QA, DEVOPS |
| WBS-11 | Tích hợp VNPay | M | medium | 9 | BE, QA |
| WBS-12 | Tích hợp Momo | M | medium | 7 | BE, QA |
| WBS-13 | Tích hợp GHN | M | medium | 7 | BE, QA |
| WBS-14 | Tích hợp GHTK | M | medium | 6 | BE, QA |
| WBS-15 | Tích hợp Email/SMS Provider | S | low | 6 | BE, QA |
| WBS-16 | Tích hợp Google/Facebook OAuth | S | medium | 6 | BE, QA |
| WBS-17 | Tích hợp ngân hàng cho payout | M | high | 9 | BE, QA |
## Khách hàng
| ID | Hạng mục | Complexity | Risk | MD hạng mục | Vai trò tham gia |
|---|---|---|---|---|---|
| WBS-18 | Định danh & tài khoản khách hàng | L | medium | 36 | BA, SA, BE, FE, UIUX, QA |
| WBS-19 | Danh mục & tìm kiếm sản phẩm đa seller | XL | high | 56 | BA, SA, BE, FE, UIUX, QA |
| WBS-20 | Giỏ hàng đa seller | M | medium | 22 | BA, BE, FE, UIUX, QA |
| WBS-21 | Checkout & tách đơn theo seller | XL | high | 53 | PM, BA, SA, BE, FE, UIUX, QA |
| WBS-22 | Thanh toán — business logic Payment Service | L | high | 27 | PM, BA, SA, BE, FE, QA |
| WBS-23 | Quản lý đơn hàng khách hàng | M | low | 17 | BA, BE, FE, QA |
| WBS-24 | Đổi trả & khiếu nại (khách hàng) | M | medium | 18 | BA, BE, FE, UIUX, QA |
| WBS-25 | Danh sách yêu thích (Wishlist) | S | low | 5 | BE, FE, QA |
| WBS-26 | Đánh giá & nhận xét sản phẩm | S | low | 8 | BE, FE, QA |
| WBS-27 | Thông báo đơn hàng | M | medium | 13 | BA, BE, FE, QA |
| WBS-28 | Khuyến mãi & mã giảm giá | M | low | 18 | BA, BE, FE, UIUX, QA |
| WBS-29 | Chương trình loyalty & hạng thành viên | M | medium | 17 | BA, BE, FE, QA |
| WBS-30 | Đa ngôn ngữ nội dung | M | medium | 14 | BA, BE, FE, QA |
| WBS-31 | Hiển thị đa tiền tệ tham khảo | S | low | 5 | BE, FE, QA |
## Merchant
| ID | Hạng mục | Complexity | Risk | MD hạng mục | Vai trò tham gia |
|---|---|---|---|---|---|
| WBS-32 | Đăng ký & KYC người bán | L | high | 35 | PM, BA, SA, BE, FE, UIUX, QA |
| WBS-33 | Quản lý sản phẩm & tồn kho (Seller) | M | medium | 23 | BA, BE, FE, UIUX, QA |
| WBS-34 | Quản lý đơn hàng (Seller) | M | medium | 17 | BA, BE, FE, QA |
| WBS-35 | Dashboard doanh thu & payout (Seller) | M | low | 18 | BA, BE, FE, UIUX, QA |
## Admin
| ID | Hạng mục | Complexity | Risk | MD hạng mục | Vai trò tham gia |
|---|---|---|---|---|---|
| WBS-36 | Cấu hình hoa hồng theo ngành hàng | S | medium | 10 | BA, BE, FE, QA |
| WBS-37 | Payout định kỳ & Commission engine | XL | high | 35 | PM, BA, SA, BE, FE, QA |
| WBS-38 | Quản trị người bán (duyệt/khoá) | M | medium | 14 | BA, BE, FE, QA |
| WBS-39 | Quản trị catalog toàn sàn | M | low | 14 | BA, BE, FE, QA |
| WBS-40 | Xử lý tranh chấp & khiếu nại (CSR + Admin) | L | high | 28 | PM, BA, SA, BE, FE, QA |
| WBS-41 | Vận hành kho & vận chuyển (business logic) | L | medium | 24 | BA, SA, BE, FE, QA |
| WBS-42 | Xác thực đa yếu tố (MFA) Admin/Seller | M | medium | 11 | BE, FE, QA |
| WBS-43 | Admin Dashboard tổng quan vận hành | M | low | 14 | BA, BE, FE, UIUX, QA |
# Giả định năng suất
- QA effort ước lượng khoảng 25–40% effort BE/FE theo từng hạng mục.
- PM/BA effort phân bổ theo từng hạng mục (`overheadMode = itemized`), có 1 dòng PM riêng (WBS-08) cho quản lý dự án tổng thể.
- Đội ngũ giả định có kinh nghiệm trung bình-cao với kiến trúc microservices/event-driven trên AWS; chưa tính rủi ro luân chuyển nhân sự.
- Không có yêu cầu di trú dữ liệu (dự án greenfield theo SAD §1.5).
- Không tính chi phí dịch thuật nội dung 5 ngôn ngữ, chỉ tính effort kỹ thuật khung i18n.
# Loại trừ
- Phí license/giao dịch bên thứ ba (cổng thanh toán, SMS/Email, ngân hàng) — xem `nonLabor` trong `bid/estimate.json`.
- Ứng dụng mobile app native (giai đoạn 2 theo SAD §1.1/§7.0).
- Affiliate marketing, subscription/bán hàng định kỳ, hoá đơn điện tử tự động cho seller, SSO doanh nghiệp (giai đoạn 2 theo SAD §2.2/B2.2).
- Chi phí dịch thuật nội dung đa ngôn ngữ.
# Câu hỏi mở
- Ngân sách và thời hạn dự án chưa được chủ dự án xác định chính thức (SAD giả định #7).
- SLA hiệu năng/uptime (NFR-01, NFR-03) là giả định mặc định, chưa có xác nhận hợp đồng thực tế.
- Ngân hàng đối tác và chuẩn kết nối payout (batch file/API) chưa chốt.
- Nhà cung cấp Email/SMS cụ thể chưa chốt.
- Công thức tính điểm loyalty và ngưỡng chi tiêu từng hạng thành viên chưa chốt (FR-14).
- Công thức/mức hoàn tiền dispute chưa chốt (FR-25/BR-14).
- Màn hình Admin Dashboard tổng quan (SCR-22/WBS-43) không truy vết trực tiếp 1 FR — cần BA/Product Owner xác nhận phạm vi.
- `bid-config.md` còn nhiều trường `[[CẦN ĐIỀN]]` (bidder, client, package, ngày, nonLabor) cần điền trước khi hoàn chỉnh Phần C.
**Tổng hợp MM/chi phí: xem `bid/estimate.computed.json` (tính tự động từ dữ liệu ở trên bằng code, không tính thủ công trong tài liệu này).**