Kiểm tra bài 5: Pre-mortem và rủi ro — bảy kiểu thất bại, biện pháp và tripwire
Bài kiểm tra của một khóa dạy kỹ năng này.
Làm bài này
Product Management
Đưa tính năng tới người dùng mà không đặt cược mọi thứ vào một đêm: phân tầng, checklist có bằng chứng, rollout theo nấc, phòng điều phối và readout.
Đăng nhập để đánh dấu kỹ năng và theo dõi tiến độ.
Làm bài Đánh giá Kỹ năng Delivery cho PM/PO — Một lần làm chấm điểm cho tất cả kỹ năng trong nhóm Delivery, không chỉ kỹ năng này.
Làm bài đánh giáHiểu deploy, release và launch là ba việc khác nhau, và biết launch được phân tầng theo tác động lên khách hàng. Biết một lần ra mắt cần chuẩn bị ở nhiều mảng ngoài kỹ thuật: support, sales, tài liệu, pháp lý và analytics.
Chốt tầng launch ở kickoff, chạy checklist bằng bằng chứng và buổi go/no-go có người quyết, viết release plan với feature flag, các nấc rollout và tiêu chí rollback bằng số, điều phối ngày launch với vai trò rõ ràng, và luôn đóng lại bằng readout 2 và 6 tuần so với mục tiêu đặt từ trước.
Ở nhiều đội, chữ "launch" được dùng cho cả ba việc, và đó là gốc của rất nhiều buổi ra mắt hỏng. Deploy là đưa code lên production. Release là bật tính năng cho người dùng thấy. Launch là làm cho đúng người biết, hiểu và bắt đầu dùng nó — một sự kiện kinh doanh, có support, sales, marketing và số liệu đi kèm.
Code có thể đã deploy hai tuần trước, nằm sau một feature flag. Release có thể đi từng nấc 5%, 25%, 100%. Launch có thể là một email gửi khách hàng vào sáng thứ Ba sau khi release đã chạy ổn một tuần. Tách ba việc ra cho bạn quyền chọn thời điểm cho từng việc, thay vì dồn mọi rủi ro vào một đêm.
| Khía cạnh | Deploy | Release | Launch |
|---|---|---|---|
| Ai làm chính | Engineering | PM + Engineering | PM + Marketing + Sales + Support |
| Câu hỏi trả lời | Code có chạy trên production không? | Tính năng có chạy đúng với người dùng thật không? | Người dùng có biết, hiểu và dùng nó không? |
| Đo bằng | Lỗi, thời gian phản hồi, tỉ lệ deploy hỏng | Lỗi theo nấc rollout, ticket support, chỉ số kỹ thuật | Tỉ lệ dùng thử, dùng lại, chỉ số kinh doanh |
| Hỏng thì | Rollback code | Tắt flag | Khó rút lại — khách đã đọc, báo chí đã đăng |
Dòng cuối là lý do launch cần kế hoạch riêng. Code rút lại được trong năm phút. Một thông báo đã gửi tới 200.000 người dùng thì không.
Không phải launch nào cũng cần cùng một mức chuẩn bị. Phân tầng giúp bạn không đối xử với một nút mới như với một sản phẩm mới, và ngược lại.
| Tầng | Khi nào | Cần chuẩn bị gì | Chuẩn bị trước |
|---|---|---|---|
| Tier 1 | Sản phẩm hoặc tính năng mới có ảnh hưởng doanh thu, đổi giá, đổi điều khoản, thay đổi mà khách hàng doanh nghiệp phải đào tạo lại nhân viên | Đủ checklist, go/no-go có lãnh đạo, rollout theo nấc, truyền thông nội bộ và khách hàng, phòng điều phối ngày launch, readout sau 2 và 6 tuần | 4–8 tuần |
| Tier 2 | Tính năng đáng kể cho một nhóm người dùng, không đổi giá hay điều khoản | Checklist rút gọn, rollout theo nấc, hướng dẫn cho support, release note, thông báo trong ứng dụng, readout sau 2 tuần | 1–3 tuần |
| Tier 3 | Cải tiến nhỏ, sửa lỗi, thay đổi giao diện không đổi luồng | Release note, báo support qua kênh chung, theo dõi lỗi 48 giờ | Vài ngày |
Quy tắc chọn tầng: tầng được quyết bởi tác động lên khách hàng và rủi ro, không bởi công sức kỹ thuật. Đổi giá gói SaaS có thể chỉ là sửa một dòng cấu hình, nhưng nó là tier 1. Một tính năng mất ba tháng để xây nhưng chỉ dành cho đội nội bộ có thể là tier 3. Chốt tầng ngay ở buổi kickoff, vì nó quyết định ai cần được mời và cần bao nhiêu tuần chuẩn bị.
Checklist thường hỏi "Support đã sẵn sàng chưa?" và nhận về câu "rồi anh". Câu đó không có giá trị gì. Một dòng checklist chỉ tính khi có bằng chứng: một đường link, một con số, một buổi đã diễn ra. Nếu không chỉ ra được bằng chứng, dòng đó chưa xanh.
| Mảng | Câu hỏi phải trả lời được | Bằng chứng chấp nhận | Chủ |
|---|---|---|---|
| Engineering | Tính năng nằm sau flag chưa? Tắt flag có đưa hệ thống về trạng thái cũ sạch sẽ không? Có cảnh báo cho lỗi và độ trễ chưa? | Đã thử tắt flag trên staging; link dashboard cảnh báo | Tech lead |
| QA | Luồng chính và luồng lỗi đã kiểm trên thiết bị và trình duyệt thật chưa? Còn lỗi mức nào? | Báo cáo test; danh sách lỗi còn mở, không có lỗi mức nghiêm trọng | QA lead |
| Support | Nhân viên trả lời được 10 câu hỏi khách hay hỏi nhất không? Có macro trả lời, có đường chuyển lỗi lên kỹ thuật không? | Buổi đào tạo đã diễn ra; FAQ nội bộ; quy trình chuyển ticket | Support lead |
| Sales / CS | Sales biết bán cho ai, không bán cho ai, và trả lời câu hỏi về giá thế nào chưa? CS biết khách nào bị ảnh hưởng chưa? | Tài liệu một trang; danh sách khách cần báo trước | Sales lead / CS lead |
| Tài liệu | Hướng dẫn sử dụng, release note, trang trợ giúp đã viết và đã có người ngoài đội đọc thử chưa? | Link tài liệu đã duyệt | PM / Tech writer |
| Pháp lý / tuân thủ | Có thu thêm dữ liệu cá nhân không? Có đổi điều khoản không? Có cần báo cơ quan quản lý hoặc đối tác (ngân hàng, cổng thanh toán) không? | Email xác nhận của pháp chế; điều khoản mới đã duyệt | PM + Pháp chế |
| Analytics | Event cho chỉ số thành công đã bắn đúng trên staging chưa? Dashboard readout đã dựng chưa? | Tracking plan đã QA; link dashboard có số liệu thử | PM + Data |
Go/no-go: một buổi 30 phút, hai đến ba ngày trước ngày release. Mỗi chủ mảng đọc màu của dòng mình: xanh, vàng (có rủi ro, có kế hoạch xử lý), đỏ. Một dòng đỏ ở Engineering, QA hoặc Pháp lý là dừng. Một dòng đỏ ở Tài liệu có thể chấp nhận nếu rollout bắt đầu ở 5% và tài liệu xong trước nấc 25%. Người quyết là người được nêu tên từ trước — thường là PM cho tier 2, Head of Product cho tier 1.
CHECKLIST LAUNCH — [Tên tính năng] — Tier [1/2/3] Ngày go/no-go: ____ Ngày release 5%: ____ Ngày launch (truyền thông): ____ Người quyết go/no-go: ____ Mảng | Câu hỏi | Bằng chứng (link) | Chủ | Màu Engineering | Flag tắt được, cảnh báo đã bật | | | QA | Luồng chính + luồng lỗi, không lỗi nghiêm trọng | | | Support | Đào tạo xong, FAQ, đường chuyển ticket | | | Sales / CS | Tài liệu một trang, danh sách khách báo trước | | | Tài liệu | Hướng dẫn, release note, đã có người đọc thử | | | Pháp lý | Dữ liệu cá nhân, điều khoản, đối tác | | | Analytics | Event đã QA, dashboard readout | | | Tiêu chí rollback (viết trước, bằng số): ____ Người được quyền tắt flag: ____
Feature flag là công cụ quan trọng nhất của người làm launch, vì nó tách quyết định kỹ thuật (code đã lên chưa) khỏi quyết định sản phẩm (ai được thấy). Với flag, bạn có thể bật cho nhân viên trước, rồi một nhóm khách beta, rồi từng phần trăm người dùng — và tắt trong vài giây nếu có chuyện, không cần chờ một lần deploy mới.
| Nấc | Mục đích | Ở lại bao lâu | Điều kiện lên nấc tiếp |
|---|---|---|---|
| Nội bộ (dogfood) | Bắt lỗi rõ ràng bằng chính nhân viên | 2–5 ngày | Không còn lỗi chặn luồng chính |
| Beta / early access | Học từ khách thật đã đồng ý dùng bản sớm; lấy phản hồi định tính | 1–3 tuần | Phần lớn khách beta hoàn thành luồng chính; phản hồi không có vấn đề lớn chưa xử lý |
| 1–5% | Kiểm tra hệ thống chịu tải thật, tìm lỗi chỉ xuất hiện ở quy mô | 2–3 ngày | Tỉ lệ lỗi và độ trễ trong ngưỡng; ticket support không tăng bất thường |
| 25% | Đủ lớn để thấy chỉ số sản phẩm bắt đầu có hình | 3–7 ngày | Chỉ số bảo vệ (guardrail) không xấu đi |
| 50% → 100% | Mở rộng; nếu có thí nghiệm A/B thì đây là lúc đọc kết quả | Theo kế hoạch | Đã đọc kết quả, đã chốt giữ hay bỏ |
Tiêu chí rollback phải viết trước, bằng số, và có tên người được quyền bấm. Lúc 11 giờ đêm, khi lỗi đang tăng và mọi người đang mệt, không ai muốn là người quyết định dừng một thứ cả đội đã làm ba tháng. Nếu quy tắc đã viết sẵn, việc tắt flag không còn là quyết định — nó là thực thi.
Ví dụ đã điền — tính năng "Trả sau" của một ví điện tử cỡ vừa (công ty và số liệu là giả định, để minh hoạ):
RELEASE PLAN — "Trả sau" (mua trước, trả cuối tháng) — Tier 1 Mục tiêu: 8% người dùng đủ điều kiện kích hoạt trong 6 tuần; tỉ lệ nợ quá hạn dưới 3%. Flag: pay_later_enabled (theo user_id, có danh sách loại trừ) Nấc 0 — Nội bộ, 300 nhân viên, 5 ngày Lên nấc khi: không lỗi chặn; đối soát với ngân hàng đối tác khớp 100%. Nấc 1 — Beta, 2.000 khách có lịch sử giao dịch tốt, đã đồng ý, 2 tuần Lên nấc khi: 60% khách beta hoàn thành một giao dịch; không khiếu nại về phí. Nấc 2 — 5% người dùng đủ điều kiện, 3 ngày Nấc 3 — 25%, 1 tuần Nấc 4 — 100%, sau khi đọc chỉ số nợ quá hạn của nhóm 25%. Rollback (tắt flag ngay, không cần họp): - Lỗi đối soát với ngân hàng đối tác: bất kỳ ca nào - Tỉ lệ giao dịch Trả sau thất bại > 3% trong 1 giờ - Tỉ lệ thanh toán thường thành công giảm > 1 điểm so với nhóm chưa bật Người được quyền tắt: PM trực, Tech lead trực (một trong hai). Phần không đảo ngược được: khoản đã cho vay vẫn phải thu theo điều khoản; tắt flag chỉ chặn khoản vay mới.
Quy tắc số một: không ai trong công ty được biết về tính năng mới từ khách hàng. Một nhân viên tổng đài nghe khách hỏi về thứ mình chưa từng thấy sẽ đoán, và câu trả lời đoán đó là trải nghiệm đầu tiên của khách với tính năng của bạn.
| Đối tượng | Cần biết gì | Khi nào | Kênh |
|---|---|---|---|
| Ban lãnh đạo | Mục tiêu, rủi ro chính, ngày các nấc, chỉ số sẽ báo cáo | Khi chốt kế hoạch và mỗi lần đổi ngày | Email ngắn + go/no-go |
| Support / CS | Tính năng làm gì, không làm gì, 10 câu hỏi hay gặp, lỗi đã biết, gọi ai khi kẹt | Ít nhất 1 tuần trước nấc có khách thật | Buổi đào tạo + FAQ nội bộ |
| Sales / Account manager | Bán cho ai, giá, câu trả lời cho phản đối thường gặp, khách nào không nên chào | Trước khi truyền thông ra ngoài | Tài liệu một trang + buổi 30 phút |
| Đội khác bị ảnh hưởng | Thay đổi gì ở API, dữ liệu, luồng mà họ phụ thuộc | Ngay khi thiết kế ổn định | Kênh chat của đội + tài liệu kỹ thuật |
| Khách hàng hiện tại | Điều gì thay đổi với họ, họ cần làm gì, nếu không thích thì sao | Theo tầng; khách doanh nghiệp báo trước 2–4 tuần | Thông báo trong ứng dụng, email, AM gọi trực tiếp |
| Thị trường / khách mới | Lợi ích, cho ai, bắt đầu thế nào | Sau khi release đã ổn định | Blog, mạng xã hội, quảng cáo |
Hai loại truyền thông có hai mục đích khác nhau. Truyền thông nội bộ nói về cái gì có thể hỏng và gọi ai. Truyền thông khách hàng nói về điều gì thay đổi với họ và họ được gì. Một bản tin dùng chung cho cả hai thường quá kỹ thuật với khách và quá hời hợt với support.
Với khách doanh nghiệp, đặc biệt trong dự án outsourcing hay SaaS B2B, một thay đổi giao diện nhỏ có thể buộc khách đào tạo lại hàng trăm nhân viên. Báo trước bằng ảnh chụp màn hình, cho họ môi trường thử, và cho họ một ngày bật cụ thể — đừng để họ phát hiện vào sáng thứ Hai.
"Phòng điều phối" (mission control) không cần là một căn phòng. Nó là ba thứ: một kênh chat duy nhất cho mọi tín hiệu, một tài liệu ghi các mốc và quyết định, và một danh sách tên — ai nhìn cái gì, ai được quyết cái gì.
| Vai trò | Theo dõi gì | Được quyết gì |
|---|---|---|
| Chỉ huy launch (thường là PM) | Toàn cảnh; mốc thời gian; nhật ký quyết định | Lên nấc, dừng nấc, tắt flag theo tiêu chí đã viết |
| Kỹ thuật trực | Lỗi, độ trễ, hàng đợi, log của dịch vụ mới | Rollback code, tắt flag khi chạm tiêu chí kỹ thuật |
| QA trực | Kiểm lại luồng chính trên production sau mỗi nấc | Báo lỗi mức nghiêm trọng lên chỉ huy |
| Support lead | Số ticket, chủ đề ticket, phản hồi trên mạng xã hội | Kích hoạt macro, yêu cầu thêm người trực |
| Data | Event có bắn không, chỉ số bảo vệ, phễu của luồng mới | Báo khi số liệu bất thường hoặc thiếu |
| Truyền thông | Thời điểm gửi thông báo, phản ứng công khai | Hoãn thông báo nếu release chưa ổn |
| Mức | Ví dụ | Ai xử lý | Phản hồi trong |
|---|---|---|---|
| Mức 1 | Lỗi hiển thị, câu chữ sai, một vài ticket hỏi cách dùng | Đội tự xử lý, ghi vào nhật ký | Trong ngày |
| Mức 2 | Một nhóm người dùng không hoàn thành được luồng; chỉ số bảo vệ xấu đi nhưng chưa chạm ngưỡng | Chỉ huy + kỹ thuật trực; cân nhắc dừng nấc | 30 phút |
| Mức 3 | Sai tiền, mất dữ liệu, lộ dữ liệu, sập luồng thanh toán | Tắt flag ngay, báo lãnh đạo, kích hoạt quy trình sự cố | 5 phút |
Trình tự một ngày launch tier 1 điển hình:
Launch chưa xong khi tính năng đã bật 100%. Nó xong khi bạn trả lời được câu hỏi đã đặt ra từ đầu: chúng ta có đạt mục tiêu không, và học được gì. Không có readout, đội sẽ chuyển sang việc tiếp theo và không ai biết lần ra mắt vừa rồi thành công hay chỉ là "đã xong".
Hai mốc readout: sau 2 tuần (người dùng có thử không, có hỏng gì không) và sau 6 tuần (người dùng có quay lại không, chỉ số kinh doanh có dịch chuyển không). Con số tuần đầu gần như luôn đẹp vì tò mò; con số tuần thứ sáu mới nói thật.
READOUT 6 TUẦN — "Trả sau"
Mục tiêu đặt ra: 8% người dùng đủ điều kiện kích hoạt; nợ quá hạn < 3%.
Kết quả: 6,1% kích hoạt; nợ quá hạn 2,2%.
Đánh giá: chưa đạt mục tiêu kích hoạt, đạt mục tiêu rủi ro.
Điều chúng ta học:
1. 70% người kích hoạt đến từ màn hình thanh toán, chỉ 4% từ banner trang chủ.
2. Người dùng dưới 25 tuổi kích hoạt gấp đôi nhóm còn lại nhưng hạn mức đầu
quá thấp để mua món họ muốn (trung vị giỏ hàng gấp 1,6 lần hạn mức).
3. 30% ticket là hỏi "tại sao tôi không đủ điều kiện" — màn hình từ chối thiếu lý do.
Quyết định:
- Giữ tính năng, bỏ banner trang chủ, đầu tư điểm chạm ở màn hình thanh toán.
- Thử nghiệm hạn mức đầu cao hơn cho nhóm có lịch sử tốt (cần rủi ro duyệt).
- Viết lại màn hình từ chối, có lý do và cách cải thiện.
Ngày readout tiếp: sau 4 tuần thử nghiệm hạn mức.Retro sau launch khác retro sprint: nó nhìn vào cả quy trình ra mắt, không chỉ việc của đội kỹ thuật. Bốn câu hỏi đủ dùng:
| Lỗi | Vì sao xảy ra | Làm thay bằng |
|---|---|---|
| Deploy và launch cùng một đêm | Không có feature flag, hoặc có nhưng không dùng | Deploy sớm sau flag; release theo nấc; truyền thông khi đã ổn |
| Support biết tính năng từ khách | Truyền thông nội bộ bị coi là việc phụ | Đào tạo support là dòng bắt buộc trong checklist, có bằng chứng |
| Checklist toàn "rồi" | Hỏi cảm giác thay vì hỏi bằng chứng | Mỗi dòng cần một link hoặc một con số |
| Không ai dám tắt flag lúc có sự cố | Tiêu chí rollback không viết trước | Tiêu chí bằng số, có tên người được quyền tắt |
| Mọi thứ đều là tier 1 | Ai cũng muốn tính năng của mình quan trọng | Tầng theo tác động lên khách và rủi ro, chốt ở kickoff |
| Ra mắt xong không ai dùng | Coi launch là sự kiện một ngày, không có readout | Readout 2 và 6 tuần với mục tiêu đặt từ trước; điều chỉnh điểm chạm |
| Launch chiều thứ Sáu | Muốn kịp mốc cuối sprint | Bật buổi sáng đầu tuần, khi đủ người trực |
| Không có số để readout | Event chưa bắn hoặc bắn sai từ ngày đầu | Tracking plan đã QA là dòng bắt buộc trước go/no-go |
Bài kiểm tra của một khóa dạy kỹ năng này.
Làm bài nàyBài kiểm tra của một khóa dạy kỹ năng này.
Làm bài nàyBài kiểm tra của một khóa dạy kỹ năng này.
Làm bài nàyBài kiểm tra của một khóa dạy kỹ năng này.
Làm bài nàyHọc kỹ năng này ở đâu?
Có 1 khóa dạy đúng phần này, miễn phí và bằng tiếng Việt.
Thảo luận & tài liệu thêm 0
Chia sẻ kinh nghiệm, đặt câu hỏi, hoặc đính kèm tài liệu/YouTube giúp người khác học kỹ năng này.