9 điểm bởi GN⁺ 2024-11-12 | 2 bình luận | Chia sẻ qua WhatsApp

Vì sao việc phát hành (shipping) lại khó

  • Nhiều người lầm tưởng rằng “phát hành” là việc dễ, nhưng trạng thái mặc định thường là phát hành bị trì hoãn, bị hủy, hoặc phát sinh vấn đề do mức độ hoàn thiện thấp.
  • Không phải cứ viết xong toàn bộ mã hoặc xử lý xong tất cả ticket Jira là sẽ tự động được phát hành. Để phát hành, cần có ai đó đảm nhận vai trò dẫn dắt.
  • Việc phát hành phải là ưu tiên số một. Nếu tập trung quá mức vào trải nghiệm người dùng (UX), việc phát hành ngược lại có thể bị chậm.
  • Để phát hành dự án thành công, cần có một lãnh đạo kỹ thuật hoặc DRI (Directly Responsible Individual). Những đội có kỹ sư đảm nhận vai trò này thường có xác suất thành công cao hơn.

“Phát hành” là gì?

  • Nhiều kỹ sư nghĩ rằng “phát hành” đơn thuần là triển khai mã hoặc bật tính năng, nhưng ở các công ty công nghệ lớn, khái niệm này được định nghĩa khác.
  • Một sản phẩm chỉ được xem là đã phát hành khi những người quan trọng trong công ty tin rằng nó “đã được phát hành”. Nếu VP hoặc CEO chưa hài lòng thì dù mã đã được triển khai, nó vẫn chưa thực sự được “phát hành”.
  • Nếu dự án đạt thành công lớn với người dùng hoặc tạo ra doanh thu thì đó là đã phát hành; nhưng ngay cả khi phản hồi từ người dùng không tốt, chỉ cần ban lãnh đạo hài lòng thì vẫn được xem là đã phát hành.

Tầm quan trọng của giao tiếp

  • Cần nắm thật rõ mục tiêu của dự án là gì. Tùy theo mục tiêu mà cách làm việc và chiến lược giao tiếp sẽ thay đổi.
  • Ban lãnh đạo của công ty hầu như không biết các chi tiết kỹ thuật của dự án. Vì vậy, để duy trì niềm tin, cần có ước lượng chính xác, xử lý vấn đề tốt và cập nhật phù hợp.
  • Cách duy trì niềm tin:
  • Sẽ có lợi nếu trước đây đã từng có kinh nghiệm phát hành thành công.
  • Cần thể hiện thái độ tự tin.
  • Cần giao tiếp chuyên nghiệp và ngắn gọn như mission control của NASA.
  • Cần chủ động cung cấp thông tin qua các thread cập nhật hằng ngày hoặc hằng tuần.

Xử lý sự cố triển khai production

  • Phần lớn vấn đề phát sinh từ những chi tiết không lường trước. Ví dụ như vấn đề kích thước block của Memcached, sai lệch trong dự báo lưu lượng truy cập, hoặc các vấn đề liên quan đến dữ liệu người dùng nhạy cảm.
  • Để giải quyết vấn đề nhanh chóng, cần có hiểu biết kỹ thuật sâu về hệ thống.
  • Cần phản ứng nhanh với các vấn đề đã được dự đoán trước, đồng thời có thể giải thích rõ liệu vấn đề đó có nghiêm trọng hay không.

Có thể phát hành ngay bây giờ không?

  • Điều quan trọng là phải tự hỏi liệu có thể phát hành ngay lúc này hay không. Nếu chưa thể, cần nghĩ xem phải thay đổi điều gì thì mới làm được.
  • Cần tận dụng feature flag và môi trường staging để có thể nhận phản hồi sớm nhất có thể.
  • Ngay trước thời điểm phát hành, nên giảm bớt công việc kỹ thuật và chuẩn bị để có thể phản ứng nhanh khi có sự cố xảy ra.

Tóm tắt

  • Công việc phát hành rất khó và phải được xem là ưu tiên hàng đầu.
  • Ý nghĩa của việc phát hành không chỉ là triển khai, mà là làm cho đội ngũ lãnh đạo hài lòng.
  • Giành được niềm tin của đội ngũ lãnh đạo là chìa khóa cho một lần phát hành thành công.
  • Một kế hoạch dự phòng để dự đoán và ứng phó với vấn đề là rất quan trọng.
  • Ngay trước khi phát hành, cần giảm bớt công việc phát triển để có thể tập trung vào xử lý sự cố.
  • Luôn phải đặt câu hỏi: “Có thể phát hành ngay bây giờ không?”
  • Hãy bỏ nỗi sợ và giữ vững dũng khí.

2 bình luận

 
GN⁺ 2024-11-12
Ý kiến Hacker News
  • Nhận xét rằng "shipping" là một cấu trúc mang tính xã hội trong công ty khá ấn tượng. Một dự án được xem là hoàn thành khi những người quan trọng tin rằng nó đã hoàn thành
  • Bài viết này không nói về triển khai phần mềm mà nói về việc làm hài lòng ban điều hành. Dù người dùng ghét và thị trường chế giễu, nếu ban điều hành thích thì vẫn được xem là đã ship
  • Giống như trong thể thao, chiến thắng giải quyết mọi vấn đề, thì trong phần mềm, shipping cũng giải quyết mọi vấn đề. Không có sản phẩm nào hoàn hảo, nhưng nếu ship sớm thì người dùng vẫn có thể hài lòng
  • Đôi khi kỹ sư giải quyết sự cố lại được ghi nhận nhiều hơn kỹ sư ngăn ngừa sự cố. Có người luôn cố phòng ngừa vấn đề, nhưng lãnh đạo không phải lúc nào cũng nhận ra điều đó
  • Ở các công ty lớn, "ship" không chỉ đơn giản là biến một tính năng thành hiện thực mà cần được hiểu trong bối cảnh rộng hơn. Có người có thể gọi đó là phi đạo đức, nhưng ở công ty lớn thì đó là một kiểu "trò chơi"
  • Dù đã ship nhiều dự án, bài viết lại thiếu ví dụ cụ thể nên khó tạo được sự tin cậy. Nếu có các trường hợp dự án thực tế thì sẽ dễ hiểu hơn
  • Đây là một bài blog spam mang tính tự quảng bá
  • Nội dung này phù hợp với trải nghiệm thực tế, nhưng thiếu lời khuyên có thể áp dụng được. Cần các ví dụ cụ thể về cách giành được sự công nhận từ lãnh đạo
  • Khác với trải nghiệm ở công ty lớn của tôi. Ngay cả khi không có sự hậu thuẫn từ ban điều hành, nếu phản hồi người dùng hoặc các chỉ số tích cực thì vẫn được xem là thành công. Những dự án nhỏ cũng có thể có giá trị
  • Muốn đáng tin thì các luận điểm phải được định lượng và định tính. "Ship ở công ty lớn" là một phát biểu quá rộng, cần có giải thích cụ thể hơn
 
signaling 2024-11-13

Tôi đã trích một ý kiến ấn tượng.

“Một số người chỉ muốn xây dựng lãnh địa kỹ thuật cho riêng mình, hoặc muốn được những người ở bất kỳ tầng lớp nào phía trên mình khen ngợi. Đó là cách mà "cuộc chơi" vận hành. Việc chơi trò chơi này cuối cùng sẽ dẫn đến cái chết của tổ chức, và đó cũng chính là lý do ngay từ đầu chúng ta có vòng đời doanh nghiệp. Rốt cuộc, những người như vậy làm hỏng tổ chức từ bên trong, đồng thời đẩy những người có chính kiến thực sự hoặc những người được tối ưu để thực sự hoàn thành công việc ra ngoài.”

“Cách để thắng trò chơi là đừng tham gia chơi nó”