Files
sys-analysis-design/.claude/skills/ba-3-specification/templates/nfr-checklist.md
Leonard-ThindPad-P50 c81f249920 init git
2026-09-08 10:26:21 +07:00

5.6 KiB
Raw Blame History

NFR — Yêu cầu phi chức năng — <US / Module>

Version 1.0
Date YYYY-MM-DD
Author (skill ba-3-specification)
Status 🟡 Draft
Approved by Tech Lead: —
Source
Scope

Quy tắc

Mỗi NFR bắt buộc ba thứ. Thiếu một là khẩu hiệu, không phải yêu cầu:

  1. Con số đo được
  2. Điều kiện đo (bao nhiêu dữ liệu, bao nhiêu người dùng, môi trường nào)
  3. Cách verify (ai đo, bằng công cụ gì, khi nào)

❌ "Hệ thống phải nhanh." ✅ "Danh sách chênh lệch trả về ≤ 2 giây ở p95, với 100.000 bản ghi và 20 người dùng đồng thời, trên staging. Verify: k6 kịch bản S1, chạy trước mỗi release."

Chỉ viết NFR áp dụng cho phạm vi này. Copy cả bộ tiêu chuẩn công ty vào làm loãng và không ai kiểm.


1. Hiệu năng — NFR-PERF-nn

ID Yêu cầu Ngưỡng Điều kiện đo Cách verify Ai chốt
NFR-PERF-01 Thời gian tải danh sách ≤ 2s (p95) 100.000 bản ghi, 20 user đồng thời, staging k6 kịch bản S1
NFR-PERF-02 Thời gian lưu bản ghi ≤ 1s (p95)
NFR-PERF-03 Xuất file ≤ 30s cho 50.000 dòng

Hỏi người dùng để lấy ngưỡng, đừng tự đặt: "Chậm bao lâu thì anh/chị thấy không chấp nhận được?" — con số họ nói mới là ngưỡng thật.

2. Dung lượng & tăng trưởng — NFR-CAP-nn

Đại lượng Hiện tại Sau 1 năm Sau 3 năm Nguồn số liệu
Số bản ghi
Số giao dịch/ngày
Số người dùng đồng thời (giờ cao điểm)
Dung lượng file đính kèm

🔴 Điền bảng này trước rồi mới chốt ngưỡng hiệu năng. Ngưỡng đặt trên khối lượng hôm nay sẽ vỡ sau một năm.

Giờ cao điểm Khi nào Vì sao
(vd: 9–10h sáng, cuối tháng)

3. Bảo mật & quyền riêng tư — NFR-SEC-nn

ID Yêu cầu Chi tiết Căn cứ Cách verify
NFR-SEC-01 Dữ liệu cá nhân được che khi hiển thị Che 6 số giữa của CCCD
NFR-SEC-02 Chặn quyền ở backend, không chỉ ở giao diện Mọi endpoint kiểm tra vai trò RBAC §6 Test gọi thẳng API
NFR-SEC-03 Xuất dữ liệu nhạy cảm phải nhập lý do

Rà bốn câu:

Câu hỏi Trả lời
Có thông tin cá nhân không? Loại nào?
Lưu bao lâu? Xoá thế nào khi hết hạn?
Ai được xuất ra ngoài hệ thống?
Có quy định pháp luật nào áp dụng không?

4. Lưu vết — NFR-AUD-nn

Hành động Ghi vết Nội dung ghi Giữ bao lâu Ai xem được
Tạo/Sửa/Xoá ✅ ai · lúc nào · trước→sau
Phê duyệt ✅ ai · lúc nào · ghi chú
Xuất dữ liệu ✅ ai · lúc nào · lý do · số bản ghi

Log có phải hiển thị được cho người dùng không, hay chỉ để tra khi có sự cố? — câu này quyết định có cần làm màn hình lịch sử hay không.

5. Khả dụng & xử lý sự cố — NFR-AVL-nn

ID Yêu cầu Ngưỡng Ghi chú
NFR-AVL-01 Thời gian hoạt động Trong giờ làm việc: …
NFR-AVL-02 Cửa sổ bảo trì cho phép
NFR-AVL-03 Hành vi khi hệ thống ngoài lỗi Xem bên dưới

Hệ thống ngoài lỗi thì nghiệp vụ này làm gì? (bắt buộc trả lời — đây là chỗ spec hay im lặng và dev tự quyết)

Hệ thống ngoài Nếu lỗi/chậm Người dùng thấy gì Dữ liệu xử lý sao
Chặn hoàn toàn / Cho làm tiếp và đồng bộ sau / Chuyển thủ công

6. Đa ngữ & định dạng — NFR-I18N-nn

🔴 Nhóm hay bị bỏ nhất và gây bug ở môi trường thật nhiều nhất.

Khía cạnh Yêu cầu Ghi chú
Ngôn ngữ hỗ trợ Thiếu bản dịch thì hiển thị gì?
Múi giờ lưu trữ UTC hay giờ địa phương
Múi giờ hiển thị Theo người dùng hay cố định
Định dạng ngày
Dấu phân cách số 1.234,56 hay 1,234.56
Đơn vị tiền Có đa tiền tệ không
Sắp xếp chuỗi có dấu "Ă" đứng trước hay sau "B"
Độ dài text sau khi dịch Text tiếng Đức/Hàn dài hơn — giao diện có vỡ không

7. Khả năng truy cập & thiết bị — NFR-ACC-nn

Khía cạnh Yêu cầu
Trình duyệt hỗ trợ
Kích thước màn hình nhỏ nhất
Dùng trên điện thoại không
Thao tác bằng bàn phím
Tương phản màu

8. Nhóm không áp dụng

Ghi rõ, đừng xoá — để người đọc biết là đã cân nhắc, không phải đã quên.

Nhóm N/A vì

9. Open Questions

ID Câu hỏi Hỏi ai Từ ngày Chặn gì

10. Xác nhận

Vai trò Người Nội dung xác nhận Ngày
Tech Lead ☐ Ngưỡng khả thi với kiến trúc hiện tại
QA ☐ Mọi NFR đều có cách verify chạy được
PO ☐ Ngưỡng phù hợp với kỳ vọng người dùng