Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Vì sao "đúng hay sai" không còn nghiệm thu được

Đã đọc 0/6 mục · còn khoảng 4 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Ngày nghề của bạn ngừng hoạt động

Bạn viết acceptance criteria mười năm nay theo một khuôn duy nhất, và nó luôn hoạt động:

> Given đơn hàng trên 5 triệu, When nhân viên bấm duyệt, Then hệ thống chuyển trạng thái sang "Chờ trưởng phòng".

Khuôn này hoạt động vì nó dựa trên một giả định mà bạn chưa bao giờ phải nói ra: có một đáp án đúng, và hệ thống hoặc cho ra nó hoặc không. QA chạy ca này, nó pass hoặc fail, và "fail" nghĩa là có lỗi cần sửa.

Giờ bạn nhận một yêu cầu: "Hệ thống tự đọc hoá đơn và điền số liệu vào phần mềm kế toán."

Bạn viết:

> Given một ảnh hoá đơn, When hệ thống xử lý, Then các trường được điền đúng.

Và câu đó vô nghĩa. Không phải viết chưa hay — vô nghĩa. Vì:

  • "Đúng" với hoá đơn nào? Ảnh rõ thì 98%, ảnh chụp nghiêng trong kho tối thì 60%.
  • Nếu nó điền đúng 96 trên 100 hoá đơn, ca này pass hay fail?
  • Nếu tháng sau nhà cung cấp mô hình cập nhật và tỉ lệ thành 94%, có phải là lỗi hồi quy không? Ai chịu trách nhiệm?
  • Nếu QA chạy lại đúng ca đã pass hôm qua và hôm nay nó fail, đó là bug hay là bình thường?
Không câu nào trong bốn câu trên trả lời được bằng công cụ bạn đang có.

Sự khác biệt không nằm ở kỹ thuật

Dễ tưởng đây là vấn đề của dev. Không phải. Đây là vấn đề của bạn, vì bạn là người định nghĩa "xong".

Hệ thống tất địnhHệ thống xác suất
Một ca kiểm nói gìĐúng hoặc sai, kết luận đượcGần như không nói gì — cần cả bộ ca
"Xong" nghĩa làHết lỗi đã biếtĐạt ngưỡng đã thoả thuận, trên bộ ca đã thoả thuận
Sai là gìLỗi, phải sửa hếtMột phần của hoạt động bình thường, phải định giá
Chạy lại cùng đầu vàoCùng kết quảCó thể khác
Lỗi đã sửaKhông quay lạiQuay lại khi mô hình hay dữ liệu đổi
Tài liệu đặc tả nóiPhải làm gìPhải làm đúng bao nhiêu, và sai thì xảy ra chuyện gì
Dòng cuối là dòng đổi nghề bạn. Đặc tả cũ mô tả hành vi. Đặc tả mới phải mô tả hành vi, tỉ lệ, phạm vi, và đường xử lý khi sai — bốn thứ, không phải một.

Ba phản ứng sai phổ biến

Phản ứng 1: "Vậy thì yêu cầu 100% chính xác." Nghe có trách nhiệm, thực ra là từ chối làm việc. Không hệ thống xác suất nào đạt 100%, nên yêu cầu này bảo đảm dự án không bao giờ nghiệm thu được. Kết quả thực tế: mọi người ngầm bỏ qua tiêu chí đó và nghiệm thu bằng cảm giác — tệ hơn là không có tiêu chí.

Phản ứng 2: "Cứ demo cho khách xem, khách thấy ổn là được." Đây là phản ứng phổ biến nhất và nguy hiểm nhất. Demo dùng 5–10 ca, và người demo luôn (vô thức hoặc không) chọn ca dễ. Sản phẩm nghiệm thu bằng demo sẽ vỡ ở tuần thứ ba của vận hành thật, với 400 ca thật mỗi ngày — và lúc đó không ai nhớ đã hứa gì.

Phản ứng 3: "Chuyện tỉ lệ là việc của team AI." Nếu bạn nhường quyết định "bao nhiêu phần trăm là đủ" cho người viết code, bạn đã nhường quyết định kinh doanh. Ngưỡng chất lượng là câu hỏi chi phí của sai, và chi phí đó là nghiệp vụ, không phải kỹ thuật.

Điều thay thế

Phần còn lại của khoá học xây bốn thứ, theo thứ tự:

  • Bộ ca kiểm (eval set) — thay cho "ca test". Đây là tài sản trung tâm, và nó là việc của BA.
  • Ngưỡng theo nhóm ca — thay cho "pass/fail". Kèm phân loại mức nặng của từng kiểu sai.
  • Đường xử lý khi sai — thiết kế cho lần sai, không chỉ cho lần đúng.
  • Cách viết cam kết — với khách hàng, trong hợp đồng, khi bạn không thể hứa 100%.
Bốn thứ này thay thế trọn bộ công cụ cũ. Và điểm quan trọng: cả bốn đều là việc của BA/PO/QA, không phải của kỹ sư.

Phép thử: đặc tả của bạn đã sẵn sàng chưa

Lấy tài liệu yêu cầu gần nhất bạn viết cho một tính năng có AI. Trả lời năm câu:

  • Nó có ghi tỉ lệ đúng tối thiểu không?
  • Tỉ lệ đó tính trên bộ ca nào, và bộ ca đó ở đâu?
  • Nó có phân biệt các kiểu sai theo mức nặng không?
  • Nó có nói khi hệ thống không chắc thì chuyện gì xảy ra không?
  • Nó có nói ai kiểm lại và bao lâu một lần không?
Không trả lời được câu nào nghĩa là chỗ đó sẽ được quyết định bởi người viết code, vào lúc họ đang gấp — hoặc không được quyết định gì cả.

Làm ngay

Chạy năm câu hỏi trên với một tài liệu thật của bạn. Ghi lại câu nào không trả lời được. Đó là danh sách việc bạn sẽ làm trong chín bài còn lại của khoá này.

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi