Skip to content
Kỹ thuật

Xây Dựng Đội Ngũ Offshore Chuyên Trách Để Không Còn Cảm Giác "Offshore"

Cách thiết kế tổ chức, nhịp độ họp, và ranh giới trách nhiệm quyết định một đội ngũ phân tán có cảm giác như phần mở rộng của chính bạn, hay chỉ là một vendor ở xa.

6 phút đọc14 tháng 1, 2025
Chia sẻ
Xây Dựng Đội Ngũ Offshore Chuyên Trách Để Không Còn Cảm Giác "Offshore"

Phần lớn những lời phàn nàn về đội ngũ offshore thực ra không liên quan đến năng lực chuyên môn. Vấn đề nằm ở sự lệch pha trong cách tổ chức: khách hàng đối xử với một đội ngũ chuyên trách (dedicated team) như một hàng đợi ticket, đội ngũ lại đối xử với khách hàng như một bản tài liệu yêu cầu, và sáu tháng sau không ai còn giải thích được vì sao một quyết định được đưa ra vào tháng thứ hai. Đội ngũ về danh nghĩa là "chuyên trách", nhưng vận hành như một nhà thầu phụ. Sửa chuyện này không phải là một mẹo giao tiếp — đó là bài toán thiết kế tổ chức, và nó giải được bằng vài cơ chế cụ thể.

Giờ trùng múi giờ là một ngân sách, không phải một thứ "có thì tốt"

Những đội ngũ thất bại trong làm việc phân tán thường không hề lên kế hoạch cho giờ trùng lặp (overlap), họ chỉ hy vọng nó tự xảy ra. Chúng tôi khuyên khách hàng nên coi giờ overlap giống như ngân sách compute: cố định, hữu hạn, và đáng để chi tiêu một cách có chủ đích.

Với một khách hàng ở bờ Đông nước Mỹ làm việc cùng đội ngũ tại TP.HCM, khung giờ overlap thực tế rơi vào khoảng 7–9 giờ sáng ET (7–9 giờ tối giờ Việt Nam). Đó là 2 tiếng mỗi ngày, 10 tiếng mỗi tuần. Nếu đốt hết vào các buổi cập nhật tình trạng thì chẳng còn gì cho những cuộc trao đổi thực sự cần đối thoại đồng bộ: bất đồng về kiến trúc, yêu cầu mơ hồ, xử lý sự cố. Nguyên tắc của chúng tôi:

  • Mặc định làm việc bất đồng bộ (async) cho báo cáo tình trạng, comment review code, và tài liệu.
  • Chỉ đồng bộ (sync) cho những quyết định có nhiều hơn một phương án hợp lý.
  • Một "giờ ra quyết định" định kỳ mỗi tuần, không phải standup hàng ngày, dành cho hai ba việc thực sự cần trao đổi trực tiếp.

Standup hàng ngày qua một khoảng cách 12 tiếng thường chỉ là hình thức — ai đó phải dậy lúc 7 giờ sáng hoặc thức tới 10 giờ tối chỉ để báo "không có blocker gì". Cắt bỏ chúng và dồn năng lượng đó vào các bản cập nhật viết bất đồng bộ với deadline rõ ràng (cuối ngày của họ, trước khi ngày làm việc của phía kia bắt đầu), cộng với một buổi sync duy nhất mỗi tuần thực sự được dùng cho các quyết định cần phán đoán.

Ranh giới trách nhiệm ngăn chặn tâm lý "chỉ nhận ticket"

Yếu tố dự báo lớn nhất cho việc một đội ngũ có "cảm giác offshore" hay không chính là họ có sở hữu kết quả đầu ra hay chỉ đơn thuần thực thi ticket. Một đội chỉ nhận những ticket đã được đặc tả đầy đủ, một cách hợp lý, sẽ ngừng vận dụng phán đoán của mình — tại sao phải làm vậy, nếu phán đoán không được ghi nhận và mọi sai sót nằm ngoài phạm vi ticket lại bị đổ lỗi cho họ?

Chúng tôi xây dựng các đội ngũ chuyên trách xoay quanh quyền sở hữu theo chiều dọc (vertical ownership) thay vì hàng đợi công việc:

  1. Một service hoặc module có ranh giới rõ ràng mà đội ngũ sở hữu từ đầu đến cuối — không phải "phần frontend" chung chung, mà cụ thể là luồng checkout, hay service xử lý claim, kèm danh sách rõ ràng cái gì thuộc phạm vi và cái gì không.
  2. Quyền truy cập trực tiếp vào telemetry production cho phần họ sở hữu — dashboard, log, cảnh báo. Một đội không thấy được hậu quả từ chính code của mình thì không thể kỳ vọng họ sở hữu nó.
  3. Quyền được phản biện yêu cầu trước khi công việc bắt đầu, được ghi lại bằng văn bản để không bị quên. Nếu đội ngũ không thể nói "cái này sẽ hỏng dưới tải X" và được lắng nghe nghiêm túc, họ không phải là đội chuyên trách, mà chỉ là cánh tay thực thi.

Bài kiểm tra nội bộ chúng tôi hay dùng: một thành viên trong đội có thể giải thích tại sao một quyết định được đưa ra ba sprint trước mà không cần hỏi khách hàng không? Nếu có, quyền sở hữu là thật. Nếu mọi câu "tại sao" đều quy về "khách hàng bảo vậy", ranh giới đó chưa hoạt động.

Nhịp độ giao tiếp sống sót qua khác biệt múi giờ

Nhịp độ quan trọng hơn công cụ. Chúng tôi từng thấy những khách hàng có công cụ rất tốt (Slack, Linear, Notion, đủ cả) mà vẫn phát sinh "cảm giác offshore" vì nhịp độ bên dưới sai. Một vài mẫu hình thực sự bền vững:

  • Nhật ký quyết định bằng văn bản thay vì các thread chat. Một thread Slack với 40 phản hồi không phải là một bản ghi quyết định. Một ADR (bản ghi quyết định kiến trúc) dài một đoạn, nói rõ điều gì đã được quyết định, tại sao, và phương án nào bị loại bỏ, chỉ mất năm phút để viết nhưng tiết kiệm hàng giờ tranh luận lại về sau.
  • Video bất đồng bộ được ghi lại cho những vấn đề có sắc thái phức tạp. Một đoạn Loom 4 phút trình bày mô hình dữ liệu đề xuất hiệu quả hơn một bức tường chữ và không cần thời gian đồng bộ.
  • Ghi chú bàn giao rõ ràng vào cuối ngày, không phải kiểu "mai làm tiếp". Cái gì đang bị chặn, cái gì đang được giả định, cái gì cần quyết định — do người sắp offline viết, cho người sẽ online 10 tiếng sau.

Khi nào cuộc gọi video vẫn quan trọng

Không phải mọi thứ nên chuyển sang async. Buổi khởi động dự án, họp post-mortem sau một sự cố lớn, và lập kế hoạch theo quý được lợi từ trao đổi trực tiếp vì giọng điệu và phản ứng có ý nghĩa — một bản retro viết ra không ghi lại được khoảnh khắc ai đó nhận ra một giả định đã sai. Chúng tôi giữ thời gian đồng bộ dành riêng cho đúng những khoảnh khắc giàu ngữ cảnh này và mặc định mọi thứ khác sang async.

Điều gì thực sự phá vỡ mô hình này

Hai kiểu thất bại lặp lại nhiều nhất. Thứ nhất, thay đổi nhân sự phía khách hàng — một quản lý kỹ thuật mới tiếp quản đội chuyên trách mà họ không xây dựng quan hệ từ đầu, và quay lại quản lý theo kiểu ticket vì cảm thấy an toàn hơn. Thứ hai, phạm vi công việc phình to mà không cập nhật ranh giới trách nhiệm — trách nhiệm thực tế của đội ngũ tăng lên nhưng ranh giới bằng văn bản thì không, khiến trách nhiệm giải trình trở nên mập mờ đúng vào lúc quan trọng nhất.

Cả hai đều khắc phục được, nhưng chỉ khi có người theo dõi sát. Với những dự án mà khách hàng muốn một đội ngũ thực sự vận hành như phần mở rộng của tổ chức kỹ thuật của chính họ chứ không phải một dịch vụ thuê ngoài, chúng tôi xây dựng ranh giới trách nhiệm và nhịp độ giao tiếp vào kế hoạch dự án ngay từ tuần đầu tiên, chứ không phải như một biện pháp bổ sung sau khi mọi thứ đã trục trặc.

Mai Nguyễn

Phó Chủ tịch Triển khai