Files
sys-analysis-design/.claude/skills/ba-4-delivery-support/GUIDE.md
Leonard-ThindPad-P50 c81f249920 init git
2026-09-08 10:26:21 +07:00

186 lines
8.1 KiB
Markdown

# Hướng dẫn sử dụng — `ba-4-delivery-support` (Giai đoạn 4)
## Giai đoạn này giải quyết gì
Code đang chạy. Việc của BA lúc này là **giữ cho spec và sản phẩm không lệch nhau**: trả lời
câu hỏi, xử lý thay đổi, đối chiếu test case, điều hành UAT.
Đây là giai đoạn chiếm nhiều thời gian thực tế nhất nhưng ít được ghi nhận nhất — vì phần
lớn công việc là trả lời câu hỏi, và câu trả lời không ghi lại thì mất luôn.
## Bốn phần độc lập
Skill chia làm bốn phần, gọi phần nào chạy phần đó:
| Phần | Việc | Template |
|---|---|---|
| **A** | Trả lời câu hỏi làm rõ của dev/QA | `clarification-log.md` |
| **B** | Quản lý change request | `change-request.md` |
| **C** | Review test case của QA | `testcase-review.md` |
| **D** | Chuẩn bị & tổng hợp UAT | `uat-plan.md` |
## Cú pháp
```
/ba-4-delivery-support <US-id|PROJECT> [--part a|b|c|d] [--out <path>] [go]
```
Thường thì không cần `--part` — mô tả việc là skill tự nhận ra:
```
/ba-4-delivery-support US011 — dev hỏi field mã cửa hàng có phân biệt hoa thường không
/ba-4-delivery-support US011 — khách muốn thêm cột ngày cập nhật vào bảng
/ba-4-delivery-support US011 --part c — QA gửi bộ test case ở link…
/ba-4-delivery-support Settlement --part d — UAT tuần sau
```
## Phần A — Trả lời câu hỏi dev/QA
### Cách dùng
Dán câu hỏi của dev vào. Skill sẽ:
1. Phân loại câu hỏi thành 1 trong 4 loại
2. Tìm câu trả lời trong tài liệu, trích dẫn đích danh mục nào
3. Nếu tài liệu không có ⇒ tạo `OQ` với người phải trả lời và hạn
4. Chỉ ra tài liệu nào cần sửa và báo cho ai
### Điều quan trọng nhất
**Ba trong bốn loại câu hỏi đều phải sửa tài liệu:**
| Loại | Sửa tài liệu? |
|---|---|
| 1. Spec đã nói rõ, dev chưa đọc thấy | ❌ Không |
| 2. Spec mơ hồ, hiểu hai cách | ✅ Bắt buộc |
| 3. Spec không nói gì | ✅ Bắt buộc |
| 4. Spec nói sai | ✅ Bắt buộc, qua `CR` |
Trả lời cho một dev mà không sửa spec nghĩa là người tiếp theo sẽ hỏi lại đúng câu đó.
Skill còn theo dõi **câu hỏi lặp lại**: cùng một câu từ ≥2 người ⇒ tài liệu có vấn đề ở chỗ
đó, không phải người hỏi có vấn đề.
## Phần B — Change Request
### Việc đầu tiên: phân loại
Đây là phân loại tốn kém nhất khi làm sai, và nó bị làm sai thường xuyên vì cả hai bên đều
có động cơ: dev muốn gọi là CR, khách muốn gọi là defect.
Skill áp dụng phép thử máy móc:
```
Sản phẩm có làm đúng SRS đã ký không?
├── KHÔNG → DEFECT (dev sửa, không tính phí)
└── CÓ → Tài liệu có nói về tình huống này không?
├── CÓ → CHANGE REQUEST
└── KHÔNG → SPEC GAP ← vùng xám, trách nhiệm của BA
```
**Spec gap** được xử lý thẳng thắn: ghi nhận là thiếu sót của đặc tả, đánh giá tác động như
CR, nhưng nêu rõ nguyên nhân gốc để lần sau đặc tả kỹ chỗ đó. Không đẩy sang khách như CR
bình thường, cũng không nhận là bug của dev.
### Sáu bước, không bỏ bước
Ghi nhận → **làm rõ vấn đề gốc** → đánh giá tác động → trình ≥2 phương án → PO quyết → thực thi.
Bước "làm rõ vấn đề gốc" cứu được nhiều tiền nhất. Khách nói *"thêm cột X"* — hỏi *"để làm
gì?"* — hoá ra để tìm nhanh hơn — hoá ra chỉ cần thêm bộ lọc.
## Phần C — Review test case
BA **không viết** test case. BA đối chiếu bốn phép:
1. Mỗi `AC` → có ≥1 test case *(phát hiện AC bị bỏ sót khi test)*
2. Mỗi test case → truy về được `AC`/`BR` *(phát hiện test thừa hoặc AC thiếu)*
3. Mỗi `BR` → có test **ca vi phạm** *(rule chỉ test luồng đúng là chưa test)*
4. Mỗi dòng bảng dữ liệu biên → có test case
Cộng bốn nhóm hay thiếu: phân quyền (gọi thẳng API), lỗi hệ thống (giữ dữ liệu đã nhập),
đồng thời (hai người sửa một bản ghi), dữ liệu cũ.
**Độ phủ AC phải đạt 100% trước khi bắt đầu test.**
## Phần D — UAT
### Chuẩn bị (trước ít nhất 1 tuần)
Năm việc, và mỗi việc có một chỗ hay hỏng:
| Việc | Hay hỏng ở đâu |
|---|---|
| Kịch bản | Viết theo màn hình ⇒ người dùng không nhận ra công việc của mình |
| Dữ liệu | Quá sạch ⇒ UAT pass, chạy thật thì lỗi |
| Môi trường | Ngày UAT mới phát hiện chưa cấp tài khoản |
| Người tham gia | Người đại diện pass, người dùng thật từ chối |
| **Tiêu chí pass** | Không chốt trước ⇒ tranh cãi lúc kết luận |
### Trong lúc UAT
BA là **người quan sát**, không phải người hướng dẫn thao tác. Chỗ người dùng loay hoay là
thông tin quý nhất — ghi lại trước, hướng dẫn sau.
Mỗi phát hiện phân loại ngay thành ba loại: **defect** · **CR** · **hiểu nhầm cách dùng**.
Loại thứ ba hay bị ghi nhầm thành defect; nó là tín hiệu về đào tạo hoặc thiết kế chưa rõ.
## Bạn sẽ nhận được gì
```
ba-output/<PROJECT>/04-delivery/
├── QLOG_<PROJECT>.md ← cập nhật liên tục, không tạo file mới mỗi lần
├── CR_<US>-<nnn>_v1.0.md ← mỗi CR một file
├── TCREVIEW_<US>_v1.0.md
└── UAT_<đợt phát hành>_v1.0.md
```
Cộng bảng tương ứng phần đã chạy, và **luôn có**: danh sách tài liệu đã sửa kèm version mới,
và ai cần được báo.
## Lỗi thường gặp
**"Dev hỏi qua chat, tôi trả lời qua chat, thế là xong."**
Không xong. Ba tháng sau không ai biết vì sao hệ thống hành xử như vậy — kể cả bạn. Mọi câu
trả lời phải vào `QLOG`, và nếu spec mơ hồ/thiếu thì phải sửa spec.
**"CR này nhỏ thôi, làm luôn cho nhanh."**
Không có CR nhỏ, chỉ có CR chưa được đánh giá tác động. Thay đổi không ghi nhận sẽ: không
vào test case ⇒ QA không test ⇒ lỗi lọt ra thật; không vào tài liệu ⇒ người sau đọc thấy
khác sản phẩm; không vào ước lượng ⇒ trễ tiến độ mà không giải thích được.
**"Rõ ràng là nên làm, tôi quyết luôn."**
Vi phạm nguyên tắc "không quyết định thay PO". Kể cả khi bạn đúng, PO vẫn phải biết vì họ
chịu trách nhiệm về scope và chi phí.
**"Tôi sửa SRS rồi, dev tự đọc lại."**
Dev đang code theo bản cũ. Sửa spec âm thầm còn tệ hơn không sửa. Danh sách "ai cần được
báo" là phần bắt buộc của mọi lần sửa.
**"Người dùng loay hoay, tôi chỉ luôn cho nhanh."**
Bạn vừa xoá mất phát hiện quan trọng nhất của buổi UAT. Ghi lại chỗ họ loay hoay, rồi mới
hướng dẫn.
**"Defect Medium này để sau cũng được."**
Được, nhưng phải có **ticket theo dõi và hạn**. Không có ticket thì nó biến mất và quay lại
sau sáu tháng dưới dạng khiếu nại.
## Ra khỏi giai đoạn này khi nào
Đủ cả sáu:
1. Kịch bản UAT mức Must pass 100%
2. Defect Critical/High đã đóng
3. Defect Medium/Low chấp nhận tạm đều **có ticket**
4. Mọi `CR` đã được quyết và tài liệu đã cập nhật
5. `QLOG` không còn câu hỏi mở chặn dev
6. PO ký nghiệm thu theo tiêu chí đã chốt **trước** buổi UAT
Rồi chạy `/ba-5-post-release <PROJECT>`.
## Liên quan
- Tiêu chí gate G4: `../ba-lifecycle/references/workflow.md` §2
- Đường quay lui GĐ4 → GĐ3 / GĐ2: `../ba-lifecycle/references/workflow.md` §5
- Template: `templates/clarification-log.md` · `templates/change-request.md` ·
`templates/testcase-review.md` · `templates/uat-plan.md`