Product Management
Đăng nhập
ESC

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

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

Hồi quy trong thế giới xác suất: vì sao lỗi đã sửa quay lại

Đã đọ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.

Điều phá vỡ trực giác của QA

Trong hệ thống tất định, sửa một lỗi và viết ca kiểm cho nó nghĩa là lỗi đó không quay lại. Cả nghề kiểm thử được xây trên tính chất này.

Trong hệ thống xác suất, tính chất đó không còn. Ca đã pass tuần trước có thể fail tuần này mà không ai sửa gì trong code của bạn. Bốn nguyên nhân:

Nguyên nhânChuyện gì xảy raBạn có kiểm soát không
Nhà cung cấp cập nhật mô hìnhHành vi đổi, đôi khi tốt hơn ở chỗ này và tệ hơn ở chỗ khácKhông, trừ khi khoá phiên bản
Dữ liệu đầu vào thật đổiNhà cung cấp đổi mẫu hoá đơn; người dùng đổi cách hỏiKhông
Sửa chỗ này làm hỏng chỗ khácTinh chỉnh cho nhóm C làm giảm nhóm ACó
Bản thân kết quả không cố địnhCùng đầu vào, đầu ra khác nhau giữa các lần chạyMột phần
Nguyên nhân thứ ba là nguyên nhân gây ngạc nhiên nhất cho đội dự án: cải thiện là một trò đánh đổi, không phải một phép cộng. Mỗi lần "sửa" một nhóm ca, phải chạy lại toàn bộ bộ ca để xem đã đổi gì ở nơi khác.

Ba điều khoản chống hồi quy

Ghi vào đặc tả, cả ba:

1. Khoá phiên bản mô hình.

> Hệ thống chỉ định danh phiên bản mô hình cụ thể, không dùng bút danh trỏ tới "bản mới nhất". Nâng phiên bản là một thay đổi có kiểm soát, phải chạy lại bộ ca EVAL-01 và được chủ nghiệp vụ chấp thuận.

Không có điều khoản này, nhà cung cấp có thể đổi hành vi sản phẩm của bạn vào một buổi sáng thứ Ba mà không ai biết.

2. Chạy lại bộ ca theo lịch, không chỉ khi thay đổi.

> Bộ ca chạy tự động mỗi tuần và mỗi khi đổi mô hình, prompt, hoặc cấu hình. Kết quả lưu lại theo thời gian để so sánh được.

Chữ "theo lịch" là chữ quan trọng: nguyên nhân thứ hai (dữ liệu thật đổi) không kèm bất kỳ thay đổi nào ở phía bạn, nên nếu chỉ chạy khi thay đổi, bạn sẽ không bao giờ phát hiện nó.

3. Có hậu quả khi trượt ngưỡng.

> Nếu bất kỳ điều kiện nào trong AC-07 không còn đạt, tính năng tự động chuyển về chế độ toàn bộ qua người duyệt, và thông báo cho chủ nghiệp vụ trong 24 giờ.

Đây là điều khoản phân biệt một hệ thống được vận hành với một hệ thống được hy vọng. Không có nó, báo cáo trượt ngưỡng sẽ nằm trong hộp thư và không gây ra hành động gì.

So sánh hai phiên bản: đọc bảng, không đọc con số tổng

Khi so bản mới với bản cũ, con số tổng che gần hết thông tin. Bảng cần bốn ô:

Bản mới đúngBản mới sai
Bản cũ đúngGiữ đượcHồi quy — đọc từng ca
Bản cũ saiCải thiệnVẫn sai
Ô góc trên bên phải là ô duy nhất phải đọc từng ca. Một bản nâng cấp "tăng từ 94% lên 96%" có thể đã làm hỏng 15 ca đang đúng trong khi sửa 35 ca đang sai — và nếu 15 ca đó là ca quan trọng của một khách hàng lớn, con số tổng đã nói dối bạn.

Viết vào tiêu chí nâng cấp: "Không nâng phiên bản nếu có ca thuộc nhóm A chuyển từ đúng sang sai, bất kể con số tổng."

Kết quả không cố định: điều cần đặc tả

Nếu cùng một đầu vào có thể cho hai đầu ra khác nhau, ba hệ quả cụ thể:

  • Chạy bộ ca một lần là không đủ cho ca ở gần ngưỡng. Chạy 3 lần, ghi cả độ dao động.
  • Người dùng sẽ báo "hôm qua nó làm được". Đội hỗ trợ cần được nói trước rằng điều này có thể xảy ra và không phải là họ nhớ sai.
  • Nếu nghiệp vụ cần kết quả nhất quán (cùng hồ sơ phải cho cùng quyết định, vì lý do công bằng hoặc quy định), đó là một yêu cầu riêng: lưu quyết định lần đầu và dùng lại, thay vì tính lại mỗi lần.
Ý thứ ba là yêu cầu hay bị phát hiện muộn, và nó thường quan trọng: trong tuyển dụng, tín dụng, hay xử lý khiếu nại, hai lần hỏi cùng một câu mà nhận hai câu trả lời khác nhau là một vấn đề nghiêm trọng về công bằng, không phải một chi tiết kỹ thuật.

Điều cần nói với khách hàng từ đầu

Hồi quy xác suất sẽ xảy ra, nên nó phải nằm trong kỳ vọng ngay từ đầu, không phải là một tin xấu ở tháng thứ tư:

> Chất lượng của hệ thống này không cố định như một tính năng thông thường — nó thay đổi khi mô hình hoặc dữ liệu đầu vào thay đổi. Vì vậy chúng tôi đo hằng tuần và báo cáo, thay vì kiểm một lần khi bàn giao.

Nói câu này ở buổi đầu khiến bạn trông cẩn thận. Nói nó ở tháng thứ tư khiến bạn trông như đang bào chữa.

Làm ngay

Kiểm một điều với đội kỹ thuật: hệ thống đang trỏ tới phiên bản mô hình cụ thể, hay tới bút danh "bản mới nhất"? Nếu là bút danh, hành vi sản phẩm của bạn có thể đổi bất cứ lúc nào mà không ai kiểm soát — và việc khoá nó lại là việc đáng làm tuần 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