Phòng họp đã vắng người mà câu nói trong buổi review vẫn còn mắc lại. Một pull request đi qua thêm ba vòng góp ý; phần trao đổi dưới comment càng lúc càng gắt; đến cuối chiều, hai người gần như tránh nói với nhau. Ai cũng thấy cần ngồi lại. Cái khó là nói sao để lần review kế tiếp đỡ nặng nề, chứ không nặng hơn.
Góp ý chuyện khó luôn phải giữ cùng lúc hai điều: công việc cần sự thật, còn người nghe cần được tôn trọng. Chỉ giữ hòa khí thì cách làm cũ dễ lặp lại. Chỉ chăm chăm chứng minh mình đúng thì lòng tin hao đi. Một khung nói bình tĩnh không làm vấn đề nhẹ bớt; nó giúp cuộc trò chuyện có đường đi trước khi cảm xúc kéo cả hai sang chuyện khác.
Phần quan trọng nhất thường diễn ra trước lúc gặp nhau. Hãy tách riêng ba mảnh: việc đã quan sát được, ảnh hưởng của nó và thay đổi mong muốn ở lần sau. “Ghi chú migration chưa có đường rollback” là điều có thể kiểm tra. “Reviewer không đủ thông tin để đánh giá release risk” là ảnh hưởng. “Lần sau thêm một đoạn rollback trước khi xin review” là bước tiếp theo. Cách viết này giữ cuộc nói chuyện ở nơi cả hai còn có thể làm gì đó.
Ngược lại, những nhãn như “cẩu thả” hay “thiếu trách nhiệm” đẩy người nghe vào thế phải bảo vệ cả con người mình. Lúc ấy, chuyện cần sửa trong công việc bị chìm dưới cuộc tranh luận xem ai là người tốt, ai là người sai. Nói cụ thể không phải để làm sự thật mềm đi. Nói cụ thể là để sự thật có chỗ bám và có lối sửa.
Tôi thấy việc này đã xảy ra. Nó tạo ra ảnh hưởng này. Tôi muốn nghe thêm lúc đó phía bạn có chuyện gì. Lần sau, mình cần thống nhất thay đổi cụ thể này.
Có thể mở đầu rất đời thường: “Mình muốn nói lại về buổi review hôm qua để lần tới hai bên làm việc dễ hơn.” Câu ấy gọi đúng chuyện, nói rõ ý định, nhưng chưa vội tuyên án. Người nghe vẫn có thể khó chịu; đó không phải dấu hiệu cuộc góp ý đã hỏng. Sự tử tế không nằm ở việc xóa hết khó chịu, mà ở chỗ phần khó chịu ấy phục vụ một mục đích công bằng.
Sau khi nói hành vi và ảnh hưởng, cần thật sự nghe hoàn cảnh. Deadline có thể đã ép quá sát. Yêu cầu có thể đổi trong một cuộc trò chuyện mà những người liên quan không được biết. Người làm có thể chưa từng được nói rõ tiêu chuẩn. Hoàn cảnh không xóa hậu quả, nhưng nó quyết định cách xử lý: thiếu kỹ năng, xung đột ưu tiên và rạn lòng tin không thể dùng chung một toa thuốc.
Một cuộc góp ý cũng không phải trận đấu cần thắng. Khi người kia phòng thủ, nhắc lại bằng chứng to hơn thường chỉ làm cánh cửa khép thêm. Có thể đưa cuộc nói chuyện về đúng phạm vi: “Mình không phán đoán ý định của bạn. Mình đang nói về tác động việc này gây ra cho đội.” Tách con người khỏi hành vi là cách để vẫn giữ tiêu chuẩn mà không biến căn phòng thành nơi xét xử.
Trước khi đứng dậy, hai bên nên chốt một thay đổi có thể nhìn thấy. Pull request lớn sẽ có đoạn ghi rủi ro. Comment thread bắt đầu căng thì chuyển sang gọi nhanh. Estimate sẽ ghi rõ giả định. Bản bàn giao sẽ có người phụ trách, trạng thái và câu hỏi còn mở. Nếu không có hành vi kế tiếp, cuộc nói chuyện rất dễ chỉ dọn bớt cảm xúc rồi để nguyên cách làm.
Phần theo sau còn quan trọng hơn câu chữ lúc mở đầu. Khi người kia đã điều chỉnh, hãy ghi nhận. Nếu chuyện cũ lặp lại, trở về đúng dữ kiện thay vì gom thêm bực bội. Lòng tin lớn dần khi cách góp ý nhất quán, vừa mức và gắn với công việc; người ta nghe được chuyện khó hơn khi biết tiêu chuẩn không đổi và không ai đang tìm cách làm họ mất mặt.
Một lời góp ý tốt không cần bóng bẩy. Nó cần đủ thẳng để bảo vệ codebase, khách hàng và cả đội; đồng thời đủ công bằng để người nhận vẫn còn muốn sửa. Sự bình tĩnh ở đây không phải né tránh. Đó là kỷ luật giữ sự thật và phẩm giá ở cùng một căn phòng.