Quyết định dựa trên hai thuộc tính độc lập của mỗi bug, chứ không dựa trên số lượng bug.
- Severity — mức tác động kỹ thuật lên hệ thống. Do người kiểm tra đánh giá, tương đối khách quan: mất dữ liệu và sập dịch vụ là cao nhất; lệch giao diện là thấp nhất.
- Priority — mức khẩn cần sửa, do phía nghiệp vụ quyết định.
Hai thuộc tính này lệch nhau thường xuyên, và đó chính là điểm mấu chốt khi trả lời:
- Severity thấp, priority cao: sai chính tả tên công ty ở trang chủ. Không hỏng gì về kỹ thuật, nhưng phải sửa trước khi ra mắt.
- Severity cao, priority thấp: crash ở một màn hình chỉ admin dùng, mỗi tháng một lần, đã có cách làm thay thế. Ghi nhận và xếp lịch sau.
Khung quyết định release:
1. Còn bug chạm luồng tiền hoặc dữ liệu (mất đơn, tính sai tiền, lộ dữ liệu người dùng) → không release, không thoả hiệp.
2. Bug chặn một luồng chính nhưng có đường vòng → cân nhắc ship kèm hướng dẫn tạm cho đội hỗ trợ, có cam kết ngày sửa.
3. Bug ở nhánh phụ, tần suất thấp → ghi vào known issue và ship.
4. Nếu bug tập trung dày ở một module → dấu hiệu module đó chưa ổn định; cân nhắc tắt bằng feature flag và release phần còn lại, thay vì lùi cả release.
Hai điều cần nói thêm: quyết định này không phải của riêng QA hay riêng dev — cần product/nghiệp vụ chốt vì đó là đánh đổi kinh doanh; và điều kiện để dám ship là có feature flag và có đường rollback nhanh, nếu không thì lựa chọn duy nhất an toàn là lùi.