Menu
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Đang tải...

Working with Engineers

Kiến Thức Cơ Bản Product Management Bài 29/60

Mở đầu — vì sao bài này quan trọng

Có một sự thật mà nhiều Product Manager mới vào nghề phải học một cách đau đớn: bạn không trực tiếp tạo ra sản phẩm. Bạn không viết một dòng code nào. Mọi tính năng, mọi nút bấm, mọi luồng dữ liệu mà người dùng cuối chạm vào đều được những kỹ sư (engineer) xây dựng nên. Nói cách khác, năng lực thực thi của bạn với tư cách một PM gần như bằng đúng chất lượng mối quan hệ giữa bạn và đội kỹ thuật.

Đây chính là lý do nhiều PM giỏi về chiến lược nhưng vẫn thất bại: họ có tầm nhìn tốt, hiểu thị trường, vẽ roadmap đẹp, nhưng khi làm việc với engineer thì lại bị xem là "người chỉ biết đẩy việc xuống", "người không hiểu chuyện gì đang xảy ra", hoặc tệ hơn là "người gây cản trở". Khi đội kỹ thuật không tôn trọng bạn, họ sẽ làm đúng những gì được yêu cầu — không hơn một milimet. Họ sẽ không cảnh báo bạn về rủi ro kỹ thuật cho đến khi quá muộn, không đề xuất giải pháp thông minh hơn, và không "đi thêm dặm đường" khi sản phẩm cần.

Ngược lại, khi engineer tôn trọng và tin tưởng bạn, điều kỳ diệu xảy ra: họ chủ động chỉ ra cách làm rẻ hơn 80% nhưng đạt 90% giá trị, họ báo trước những góc khuất kỹ thuật, và họ thực sự quan tâm đến việc sản phẩm có thành công hay không. Bài học này tập trung hoàn toàn vào nghệ thuật và kỹ năng làm việc với engineer — một kỹ năng "mềm" nhưng có sức nặng quyết định sự nghiệp của bất kỳ PM nào.

Khái niệm cốt lõi

Engineer tôn trọng năng lực và sự rõ ràng

Hãy ghi nhớ câu này như một kim chỉ nam: engineer không tôn trọng chức danh, họ tôn trọng năng lực (competence) và sự rõ ràng (clarity). Bạn có thể là Senior PM với mười năm kinh nghiệm, nhưng nếu bạn bước vào cuộc họp với một yêu cầu mơ hồ, mâu thuẫn, hoặc thể hiện rằng bạn không hiểu mình đang nói gì, engineer sẽ ngay lập tức "đọc vị" được điều đó.

Năng lực ở đây không có nghĩa là bạn phải code giỏi hơn họ — điều đó là bất khả thi và cũng không cần thiết. Năng lực của một PM trong mắt engineer thể hiện ở chỗ: bạn hiểu rõ vấn đề người dùng đang gặp, bạn đã suy nghĩ kỹ về "tại sao", bạn biết ưu tiên cái gì trước cái gì sau, và bạn có thể giải thích bối cảnh kinh doanh một cách mạch lạc. Khi engineer hỏi "tại sao chúng ta làm tính năng này?" và bạn trả lời được một cách thuyết phục với dữ liệu hoặc insight thật, đó là lúc bạn ghi điểm.

Sự rõ ràng nghĩa là yêu cầu của bạn không để lại khoảng trống cho sự diễn giải tùy tiện. Một yêu cầu rõ ràng nêu được: vấn đề cần giải quyết, ai là người dùng, thành công trông như thế nào, và đâu là ranh giới (cái gì nằm ngoài phạm vi). Engineer ghét nhất là làm xong một việc rồi bị nói "à không, ý anh không phải vậy" — đó là dấu hiệu của một PM thiếu rõ ràng.

Niềm tin được xây dựng theo thời gian, không phải qua một cuộc họp

Niềm tin (trust) giữa PM và engineer giống như một tài khoản ngân hàng. Mỗi lần bạn giữ lời, bảo vệ đội trước áp lực vô lý từ trên xuống, thừa nhận khi mình sai, hoặc đưa ra quyết định ưu tiên hợp lý — bạn gửi tiền vào tài khoản đó. Mỗi lần bạn đổi ý phút chót, đổ lỗi cho engineer trước sếp, hoặc ép deadline phi thực tế — bạn rút tiền ra.

Điều quan trọng là niềm tin không thể "mua nhanh". Một PM mới về team không thể kỳ vọng được tin tưởng ngay trong tuần đầu. Bạn phải chứng minh qua hàng chục tương tác nhỏ rằng bạn đáng tin. Đây là lý do những PM nhảy việc liên tục thường gặp khó: họ phải xây lại tài khoản niềm tin từ đầu mỗi nơi.

"Tại sao" quan trọng hơn "cái gì"

Đây có lẽ là nguyên tắc bị PM Việt Nam bỏ qua nhiều nhất. Nhiều PM viết yêu cầu theo kiểu mệnh lệnh: "Làm nút này màu xanh", "Thêm trường nhập số điện thoại", "Để bộ lọc ở góc trên bên phải". Đây là cách giao việc cho một người thợ, không phải cho một người đồng kiến tạo.

Khi bạn chỉ nói "cái gì" (what) mà không nói "tại sao" (why), bạn đang lãng phí bộ não tốt nhất trong phòng. Engineer là những người giải quyết vấn đề (problem solver) bậc thầy. Nếu bạn nói cho họ biết vấn đề thật cần giải quyết, họ thường tìm ra giải pháp tốt hơn cả giải pháp ban đầu bạn nghĩ ra. Ngược lại, khi bạn chỉ đưa "cái gì", bạn vô tình đóng khung họ vào một giải pháp có thể không tối ưu, và bạn cũng đánh mất cơ hội để họ phát hiện ra rằng giải pháp đó vô tình tạo ra một quả bom nợ kỹ thuật (technical debt).

Hãy chuyển từ "Làm nút này màu xanh" sang "Người dùng đang không tìm thấy nút thanh toán, tỷ lệ bỏ giỏ hàng ở bước này là 40%, chúng ta cần làm nút này nổi bật hơn — em nghĩ cách nào hiệu quả nhất?". Sự khác biệt là một trời một vực.

PM nên hiểu gì về kỹ thuật

Bạn không cần biết code, nhưng bạn cần hiểu đủ để giao tiếp thông minh. Cụ thể, một PM nên nắm được những khái niệm sau ở mức "đủ để hỏi đúng câu hỏi":

  • Frontend và backend: phần người dùng nhìn thấy và phần xử lý phía sau. Hiểu việc này giúp bạn biết một thay đổi nằm ở đâu và vì sao nó "không đơn giản như tưởng".
  • API: cách các hệ thống nói chuyện với nhau. Rất nhiều tính năng phụ thuộc vào việc API có sẵn dữ liệu hay không.
  • Database và data model: dữ liệu được lưu trữ ra sao. Nhiều yêu cầu tưởng nhỏ nhưng đòi hỏi thay đổi cấu trúc dữ liệu rất tốn kém.
  • Technical debt (nợ kỹ thuật): những "khoản nợ" tích lũy khi đội làm nhanh mà bỏ qua chất lượng. Hiểu khái niệm này giúp bạn không ép đội mãi mãi chạy mà không cho họ thời gian "trả nợ".
  • Edge cases (trường hợp biên): những tình huống hiếm nhưng có thể làm hỏng tính năng. Engineer luôn nghĩ về chúng; nếu bạn cũng nghĩ tới, bạn sẽ được nể trọng.
Mục tiêu không phải để bạn tranh luận kỹ thuật với engineer, mà để khi họ nói "cái này phức tạp vì lý do A, B, C", bạn hiểu được và cùng họ tìm cách đánh đổi (trade-off) hợp lý.

Tình huống thực tế

Ví dụ 1: PM mới ở một startup fintech tại TP.HCM và bài học về "tại sao"

Linh là một APM vừa được tuyển vào một startup ví điện tử ở quận 1, TP.HCM, có khoảng 25 engineer. Trong sprint đầu tiên, cô viết một ticket: "Thêm tính năng quét mã QR để chuyển tiền, nút quét đặt ở giữa màn hình chính, icon máy ảnh." Cô gửi cho đội backend và frontend rồi tự tin chờ kết quả.

Đến demo, sản phẩm chạy đúng yêu cầu, nhưng một engineer kỳ cựu tên Đức hỏi: "Em ơi, mình quét QR để chuyển tiền theo chuẩn VietQR của Napas, hay chuẩn QR riêng của mình? Hai cái này khác nhau hoàn toàn về backend đó." Linh đứng hình. Cô không hề biết có sự khác biệt này. Hóa ra điều người dùng thực sự cần là quét được mọi mã QR ngân hàng phổ biến tại Việt Nam (chuẩn VietQR), nhưng vì ticket chỉ nói "cái gì" mà không nói "tại sao và cho ai", đội đã làm một bản quét QR nội bộ vô dụng với người dùng thật.

Hai tuần công sức gần như bỏ đi. Bài học rút ra: nếu Linh viết ticket bắt đầu bằng bối cảnh — "Người dùng muốn chuyển tiền cho bạn bè ở ngân hàng khác mà không cần nhập số tài khoản dài; 70% giao dịch tại VN dùng VietQR" — thì ngay từ đầu Đức đã có thể hỏi đúng câu hỏi và cả đội đã đi đúng hướng. "Tại sao" không phải là phần trang trí, nó là thông tin định hướng kỹ thuật.

Ví dụ 2: Grab Việt Nam và sức mạnh của niềm tin tích lũy

Tại một đội sản phẩm của một công ty gọi xe lớn ở Đông Nam Á (lấy cảm hứng từ mô hình Grab), có một PM tên Quân quản lý mảng tính năng tài xế. Ban đầu, mối quan hệ giữa Quân và đội engineer khá căng thẳng. Sếp kinh doanh liên tục ép Quân đẩy deadline, và Quân, vì áp lực, cứ thế ép xuống đội kỹ thuật. Mỗi sprint là một cuộc chạy đua hụt hơi, chất lượng giảm, bug tăng.

Một ngày, Quân quyết định thay đổi. Khi sếp yêu cầu ra một tính năng lớn trong hai tuần, thay vì gật đầu rồi ép đội, Quân ngồi xuống với tech lead, nghe phân tích, rồi mang con số thực tế lên gặp sếp: "Làm đúng và an toàn cần năm tuần. Nếu ép hai tuần, chúng ta sẽ tạo ra nợ kỹ thuật khiến ba tháng sau mọi tính năng khác chậm lại. Em đề xuất chia làm hai giai đoạn." Quân đã bảo vệ đội của mình bằng dữ liệu.

Tin này lan nhanh trong đội. Từ đó, mỗi khi Quân cần đội "tăng tốc" cho một việc thực sự khẩn cấp, họ sẵn sàng — vì họ biết Quân không lạm dụng họ. Bài học rút ra: niềm tin là tài sản có thể đầu tư. Khi PM dám đứng giữa, dùng hiểu biết kỹ thuật để bảo vệ đội trước áp lực vô lý, anh ta xây được "tài khoản niềm tin" mà sau này có thể rút ra vào đúng lúc cần.

Ví dụ 3: Tiki và câu chuyện edge case bị bỏ quên

Một PM tại một sàn thương mại điện tử lớn của Việt Nam (bối cảnh tương tự Tiki) tên Mai phụ trách tính năng mã giảm giá. Cô viết yêu cầu: "Người dùng nhập mã giảm giá, hệ thống áp dụng giảm 10%." Đơn giản, rõ ràng. Đội làm xong nhanh chóng.

Nhưng trong buổi refinement, một engineer trẻ tên Hùng đặt hàng loạt câu hỏi: "Nếu người dùng nhập hai mã cùng lúc thì sao? Mã hết hạn lúc đang thanh toán thì xử lý thế nào? Mã chỉ áp dụng cho đơn trên 200 nghìn — ai kiểm tra điều đó? Nếu giảm 10% mà ra giá âm vì đơn quá nhỏ thì sao?" Mai nhận ra yêu cầu "đơn giản" của cô thực ra có hàng chục trường hợp biên mà cô chưa nghĩ tới.

Thay vì phòng thủ, Mai cảm ơn Hùng, ngồi lại bổ sung một bảng các tình huống biên và quy tắc xử lý cho từng cái. Đội đánh giá cao điều đó. Bài học rút ra: edge case là nơi ranh giới giữa một sản phẩm "demo được" và một sản phẩm "chạy được trong đời thực". PM hiểu và chủ động liệt kê edge case sẽ giảm cực kỳ nhiều vòng làm-đi-làm-lại, đồng thời thể hiện năng lực khiến engineer nể.

Hướng dẫn từng bước

Đây là quy trình thực hành để xây dựng và duy trì mối quan hệ tốt với đội kỹ thuật:

  • Bắt đầu mọi yêu cầu bằng "tại sao". Trước khi mô tả giải pháp, hãy nêu vấn đề người dùng, dữ liệu hỗ trợ, và định nghĩa thành công. Hãy để engineer hiểu bối cảnh đầy đủ trước khi nghe đến giải pháp.
  • Mời engineer vào sớm, đừng "ném qua tường". Đừng tự thiết kế giải pháp xong rồi mới đưa cho đội. Hãy mời tech lead hoặc một vài engineer vào giai đoạn khám phá (discovery), khi vấn đề còn đang được định hình. Họ thường tìm ra giải pháp kỹ thuật rẻ và nhanh hơn nhiều.
  • Học đủ kỹ thuật để hỏi đúng câu hỏi. Dành thời gian hiểu kiến trúc hệ thống của sản phẩm bạn quản lý: dữ liệu nằm ở đâu, các hệ thống nói chuyện với nhau ra sao, đâu là phần "mong manh". Đừng giả vờ biết — hãy thật lòng hỏi và học.
  • Chủ động nghĩ về edge case. Trước khi đưa yêu cầu, tự hỏi: điều gì xảy ra khi dữ liệu trống, khi người dùng làm sai thứ tự, khi mạng chậm, khi hai hành động xảy ra cùng lúc? Liệt kê chúng ra.
  • Bảo vệ đội trước áp lực vô lý. Khi cấp trên ép deadline, đừng làm "ống dẫn áp lực". Hãy lắng nghe ước lượng của đội, hiểu trade-off, rồi đàm phán lên trên bằng dữ liệu và phương án chia nhỏ.
  • Thừa nhận khi bạn sai và giữ lời khi bạn đúng. Nếu bạn thay đổi yêu cầu, hãy giải thích tại sao và xin lỗi vì công sức bị lãng phí. Nếu bạn hứa sẽ làm rõ một điểm, hãy làm đúng hạn. Mỗi hành động nhỏ này gửi tiền vào tài khoản niềm tin.
  • Ăn mừng thành công cùng nhau và ghi nhận công khai. Khi tính năng thành công, hãy nói rõ với cả tổ chức rằng đó là công của đội kỹ thuật. Khi thất bại, hãy nhận phần trách nhiệm của PM.

Lỗi thường gặp & mẹo

Lỗi 1: Viết yêu cầu kiểu mệnh lệnh, chỉ có "cái gì". Đây là lỗi phổ biến nhất. Mẹo: với mỗi ticket, hãy đảm bảo có một đoạn "Bối cảnh / Tại sao" trước khi mô tả giải pháp.

Lỗi 2: Giả vờ hiểu kỹ thuật. Khi engineer giải thích điều bạn không hiểu rồi bạn gật gù cho qua, họ sẽ nhận ra ngay và mất niềm tin. Mẹo: hãy thoải mái nói "Anh giải thích lại giúp em phần này được không, em chưa rõ tại sao nó phức tạp." Sự khiêm tốn chân thành được tôn trọng hơn nhiều so với sự ra vẻ.

Lỗi 3: Đổi ý liên tục, đặc biệt là phút chót. Mỗi lần đổi yêu cầu khi đội đang làm dở là một lần rút tiền lớn khỏi tài khoản niềm tin. Mẹo: dành đủ thời gian làm rõ yêu cầu trước sprint; nếu buộc phải đổi, hãy minh bạch về cái giá phải trả.

Lỗi 4: Trở thành "ống dẫn áp lực" từ sếp xuống. Mẹo: vai trò của bạn là bộ lọc và người đàm phán, không phải cái loa. Luôn mang ước lượng thực tế lên trên.

Lỗi 5: Bỏ qua nợ kỹ thuật. Nếu bạn luôn ưu tiên tính năng mới và không bao giờ cho đội thời gian dọn dẹp, tốc độ sẽ chậm dần đến mức tê liệt. Mẹo: dành đều đặn một phần dung lượng mỗi sprint (ví dụ 15-20%) cho việc trả nợ kỹ thuật, và tin tưởng đội về việc cần trả nợ nào trước.

Mẹo vàng: Hãy hỏi đội của bạn câu này định kỳ: "Có điều gì em đang làm khiến công việc của các anh khó khăn hơn không?" Câu hỏi này vừa thể hiện sự cầu thị, vừa giúp bạn phát hiện sớm những ma sát trước khi chúng trở thành xung đột.

Bài tập thực hành

  • Viết lại một ticket. Lấy một yêu cầu sản phẩm bất kỳ (ví dụ "thêm bộ lọc theo giá cho trang danh sách sản phẩm") và viết lại theo cấu trúc: Bối cảnh / Tại sao → Vấn đề người dùng → Định nghĩa thành công → Phạm vi (cái gì NẰM NGOÀI) → Câu hỏi mở để engineer góp ý. So sánh với cách viết mệnh lệnh thông thường và cảm nhận sự khác biệt.
  • Liệt kê edge case. Với tính năng "nhập mã giảm giá" trong ví dụ 3, hãy tự liệt kê ít nhất tám trường hợp biên và quy tắc xử lý cho mỗi cái. Mục tiêu là rèn phản xạ nghĩ như một engineer.
  • Lập bản đồ kiến trúc. Nếu bạn đang làm việc với một sản phẩm thật, hãy hẹn một engineer cà phê 30 phút và nhờ họ vẽ cho bạn sơ đồ đơn giản: dữ liệu chính nằm ở đâu, các hệ thống nói chuyện ra sao, đâu là phần "mong manh" nhất. Ghi lại và dùng làm tài liệu tham khảo.
  • Tự kiểm tra tài khoản niềm tin. Nhìn lại ba tháng làm việc gần nhất với một đội kỹ thuật. Liệt kê những hành động "gửi tiền" và "rút tiền" của bạn. Số dư đang dương hay âm? Bạn sẽ làm gì khác đi trong tháng tới?

Tóm tắt

Làm việc với engineer không phải là kỹ năng phụ — nó là một trong những đòn bẩy lớn nhất quyết định bạn có phải một PM hiệu quả hay không. Hãy nhớ ba trụ cột: engineer tôn trọng năng lực và sự rõ ràng chứ không phải chức danh; niềm tin được tích lũy qua thời gian như một tài khoản ngân hàng mà mỗi hành động đều là gửi vào hoặc rút ra; và "tại sao" luôn quan trọng hơn "cái gì" vì nó giải phóng bộ não giải quyết vấn đề tốt nhất trong phòng.

Để biến những nguyên tắc này thành hành động: bắt đầu yêu cầu bằng bối cảnh, mời engineer vào sớm, học đủ kỹ thuật để hỏi đúng câu hỏi, chủ động nghĩ về edge case, bảo vệ đội trước áp lực vô lý, và đừng bao giờ giả vờ hiểu thứ bạn không hiểu. Khi bạn làm tốt những điều này, đội kỹ thuật sẽ không còn xem bạn là "người đẩy việc", mà là một đồng đội thật sự — và đó là lúc những sản phẩm tuyệt vời ra đời.