Vì sao "ra mắt" hay hỏng ở chỗ không ai ngờ
Hỏi một đội phần mềm "khi nào ra mắt?", bạn sẽ nhận ba câu trả lời khác nhau từ ba người. Kỹ sư nghĩ đến lúc code lên production. Tech lead nghĩ đến lúc tính năng được bật cho người dùng. Marketing nghĩ đến lúc thông báo được gửi đi. Cả ba đều dùng chữ "ra mắt", và cả ba đều đúng theo cách của mình — đó chính là vấn đề.
Phần lớn sự cố của một lần ra mắt không nằm ở code. Chúng nằm ở khe hở giữa ba việc này: code đã lên nhưng support chưa biết, tính năng đã bật nhưng không ai đo, thông báo đã gửi nhưng tính năng mới chỉ bật cho 5% người dùng. Khoá học này bắt đầu bằng việc tách ba việc đó ra, vì không tách được thì không giao trách nhiệm được.
Ba việc, ba câu hỏi
| Việc | Định nghĩa | Câu hỏi nó trả lời | Ai sở hữu thường gặp |
|---|---|---|---|
| Deploy | Đưa code lên môi trường production | Code có chạy ổn trên hạ tầng thật không? | Tech lead, DevOps |
| Release | Bật tính năng cho một nhóm người dùng | Người dùng thật có dùng được và hệ thống có chịu được không? | PM cùng tech lead |
| Launch | Làm cho thị trường biết và có lý do để dùng | Khách hàng có biết, có hiểu, có thử không? | PM, cùng marketing, sales, support |
Khi ba việc dính vào nhau thành "đêm ra mắt", bạn đặt cược mọi thứ vào một thời điểm: nếu có lỗi, lỗi đó đến với toàn bộ khách hàng, đúng lúc họ vừa đọc thông báo và đang tò mò nhất.
Ví dụ xuyên suốt khoá học: Sạp Số (giả định)
Để các bài sau cụ thể, ta theo một công ty giả định từ đầu đến cuối.
Sạp Số là ứng dụng cho chủ tiệm tạp hoá đặt hàng từ nhà phân phối. Khoảng 28.000 tiệm đang dùng mỗi tháng, chủ yếu ở TP.HCM, Bình Dương và Cần Thơ. Doanh thu đến từ phí trên mỗi đơn mà nhà phân phối trả.
Tính năng sắp ra mắt: "Nhập hàng nhanh". Ứng dụng nhìn lịch sử đơn của tiệm, gợi ý danh sách hàng sắp hết, và cho chủ tiệm đặt cả giỏ bằng một lần bấm. Giả thuyết: tiệm đặt đều đặn hơn, giá trị mỗi đơn tăng, và ít bỏ giữa chừng.
Những người bạn sẽ gặp lại trong các bài sau:
- Linh — PM, sở hữu "Nhập hàng nhanh"
- Quân — tech lead
- Hà — QA lead
- Thảo — trưởng nhóm chăm sóc khách hàng
- Tuấn — phụ trách quan hệ nhà phân phối
- Phong — data analyst
- anh Sơn — CEO, người ra quyết định go/no-go cho lần ra mắt hạng 1
Ba việc này áp vào Sạp Số thế nào
| Việc | Ở Sạp Số | Thời điểm |
|---|---|---|
| Deploy | Code gợi ý và nút "đặt cả giỏ" lên production, sau flag quick_reorder đang tắt | Liên tục trong 6 tuần phát triển |
| Release | Bật flag cho 40 tiệm thân quen, rồi 5%, 25%, 100% tiệm ở TP.HCM, rồi các tỉnh | Tuần 7 đến tuần 10 |
| Launch | Thông báo trong app, tin nhắn Zalo OA, nhân viên thị trường giới thiệu tận tiệm | Tuần 11, khi số liệu rollout đã ổn |
Ai chịu trách nhiệm việc nào — và vì sao PM phải giữ phần giữa
Một lỗi phổ biến là coi release là việc kỹ thuật thuần tuý. Thực ra release là chỗ hai thế giới gặp nhau: quyết định "bật cho bao nhiêu người, khi nào dừng" cần cả hiểu biết hệ thống (Quân) và hiểu biết người dùng và kinh doanh (Linh). Nếu để tech lead quyết một mình, tiêu chí dừng sẽ chỉ là lỗi kỹ thuật; nếu để PM quyết một mình, tiêu chí dừng sẽ bỏ qua tải hệ thống.
Một cách chia rõ ràng dùng mô hình RACI đơn giản:
| Quyết định | Chịu trách nhiệm (làm) | Quyết định cuối | Được hỏi ý kiến | Được báo |
|---|---|---|---|---|
| Deploy khi nào | Kỹ sư | Tech lead | QA | PM |
| Bật nấc rollout tiếp theo | Tech lead | PM | Data, support | Lãnh đạo |
| Rollback | Người trực | Tech lead hoặc PM (ai thấy tín hiệu trước) | — | Mọi người |
| Ngày launch, thông điệp | Marketing | PM | Sales, support | Toàn công ty |
| Go/no-go cho hạng 1 | PM chuẩn bị | Lãnh đạo có tên | Các trưởng nhóm | Toàn công ty |
Những gì một lần ra mắt cần ngoài code
Các đội kỹ thuật giỏi thường chuẩn bị rất kỹ phần code và quên năm mảng còn lại:
- Support — kịch bản trả lời, cách nhận diện lỗi, đường báo lên kỹ thuật
- Sales hoặc đội thị trường — câu giới thiệu một câu, câu trả lời cho ba phản đối thường gặp
- Tài liệu — hướng dẫn trong app, trang câu hỏi thường gặp
- Pháp lý và đối tác — điều khoản, thông báo cho đối tác bị ảnh hưởng (ở Sạp Số là nhà phân phối)
- Analytics — sự kiện đã được đo chưa, dashboard đã có chưa, mục tiêu đã chốt chưa
Làm ngay
Chọn một tính năng bạn sắp ra mắt (hoặc vừa ra mắt). Viết ra ba dòng:
- Deploy: code lên production khi nào, sau flag nào, ai quyết?
- Release: bật cho ai trước, theo những nấc nào, ai quyết bật nấc tiếp?
- Launch: thông báo qua kênh nào, vào ngày nào, sau điều kiện gì?