This commit is contained in:
Leonard-ThindPad-P50
2026-09-08 10:26:21 +07:00
commit c81f249920
169 changed files with 38726 additions and 0 deletions

124
bid/20-estimation.md Normal file
View File

@@ -0,0 +1,124 @@
---
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).**