Menu
ESC

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

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

Đang tải...

Bài 41 — Giao tiếp với dev: ngôn ngữ kỹ thuật

Từ Sales/BD sang BA: Lộ Trình Chuyển Đổi Bài 41/60

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

Khi còn làm Sales/BD, bạn đã quen với việc "nói cùng ngôn ngữ" với khách hàng: hiểu nỗi đau của họ, dùng đúng từ ngữ ngành của họ, biết khi nào nên dùng thuật ngữ chuyên môn để tạo uy tín và khi nào nên nói đơn giản để chốt deal. Đó chính là một siêu năng lực. Nhưng khi chuyển sang BA, bạn sẽ đối mặt với một "khách hàng" mới mà bạn chưa từng phục vụ: đội developer.

Đây là nhóm người mà nếu bạn nói sai ngôn ngữ, hậu quả không phải là mất một hợp đồng — mà là một tính năng bị build sai, một sprint bị lãng phí, và một mối quan hệ làm việc rạn nứt. Tôi đã chứng kiến nhiều ex-Sales chuyển BA rất giỏi trong việc lấy yêu cầu từ business, nhưng lại "đứng hình" khi dev hỏi: "Vậy field này nullable không?" hoặc "API trả về sync hay async?". Họ gật gù cho qua, rồi sau đó tài liệu của họ bị dev đánh giá là "mơ hồ, không thể implement được".

Bài này không biến bạn thành lập trình viên. Mục tiêu của bài là giúp bạn đủ thông thạo ngôn ngữ kỹ thuật để giao tiếp hai chiều với dev một cách đáng tin cậy — hiểu họ nói gì, diễn đạt yêu cầu theo cách họ tiếp nhận được, và trở thành cầu nối thực sự giữa business và technical thay vì một "người chuyển thư" thụ động. Đây là kỹ năng phân biệt một BA "ổn" với một BA mà dev muốn làm việc cùng.

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

Bộ thuật ngữ tối thiểu BA phải hiểu

Bạn không cần code, nhưng bạn cần hiểu nghĩa và biết khi nào những từ này xuất hiện trong cuộc họp. Đây là bộ từ vựng nền tảng:

Thuật ngữNghĩa dễ hiểu cho ex-Sales
API"Hợp đồng" cho phép hai hệ thống nói chuyện với nhau. Giống như menu nhà hàng: bạn gọi món theo đúng cách ghi trong menu, bếp trả món ra.
EndpointMột địa chỉ URL cụ thể của một chức năng trong API, ví dụ /users/123/orders để lấy đơn hàng của user 123.
Request / ResponseLời "gọi" gửi đi và "câu trả lời" nhận về. Request thường kèm tham số; response kèm dữ liệu hoặc mã lỗi.
PayloadPhần dữ liệu thực sự gửi/nhận, thường ở định dạng JSON.
JSONĐịnh dạng dữ liệu phổ biến nhất, dạng {"ten": "Khang", "tuoi": 30}. Dễ đọc, cả người và máy đều hiểu.
Field / AttributeMột "ô" dữ liệu, ví dụ email, phone. BA hay phải định nghĩa field này bắt buộc hay không, kiểu gì, dài bao nhiêu.
NullableField này có được phép để trống (null) hay không. Câu hỏi dev hỏi BA nhiều nhất.
Database / Table / RecordNơi lưu dữ liệu. Table như một bảng Excel, mỗi dòng là một record.
Frontend / BackendFrontend là phần người dùng nhìn thấy (giao diện); backend là phần xử lý logic và dữ liệu ẩn phía sau.
Sync / AsyncĐồng bộ (chờ kết quả ngay) hay bất đồng bộ (gửi đi rồi xử lý sau, không chờ).
ValidationQuy tắc kiểm tra dữ liệu hợp lệ, ví dụ "email phải có @".
Edge caseTrường hợp biên, hiếm gặp nhưng phải xử lý, ví dụ "khách nhập số tiền âm".
Bug / DefectLỗi phần mềm so với yêu cầu.
Environment (dev/staging/prod)Các môi trường: dev để lập trình, staging để test giống thật, prod là môi trường thật khách dùng.
Deploy / ReleaseĐưa code lên môi trường để chạy.
Technical debt"Nợ kỹ thuật" — phần làm tạm bợ cho nhanh, sau phải trả giá bằng việc sửa lại.
Bạn không cần thuộc lòng định nghĩa hàn lâm. Bạn cần nhận diện được khi nào dev đang nói về cái gì và đặt được câu hỏi đúng.

Sự khác biệt trong cách nghĩ: business nói "cái gì", dev hỏi "như thế nào"

Đây là điểm mấu chốt. Stakeholder business nói với bạn bằng ngôn ngữ mục tiêu: "Tôi muốn khách hàng VIP được giảm giá tự động." Nhưng dev không thể code từ câu đó. Dev cần biết:

  • "VIP" được định nghĩa bằng điều kiện nào? (chi tiêu trên X, hay được gắn tag thủ công?)
  • Giảm giá bao nhiêu phần trăm? Có trần không?
  • Áp dụng trước hay sau thuế?
  • Nếu khách vừa VIP vừa có mã khuyến mãi khác thì cộng dồn hay chỉ lấy cái lớn nhất?
Nhiệm vụ của BA là dịch từ ngôn ngữ "cái gì" sang ngôn ngữ "như thế nào, trong mọi tình huống". Tin tốt: kỹ năng đặt câu hỏi đào sâu (discovery questions) mà bạn dùng để hiểu nhu cầu khách hàng khi làm Sales chính là kỹ năng này. Bạn chỉ đổi đối tượng: thay vì đào sâu nỗi đau của khách, bạn đào sâu sự mơ hồ trong yêu cầu cho đến khi không còn chỗ nào để dev phải "đoán".

Viết để dev đọc được: cụ thể, có cấu trúc, không cảm tính

Một bản pitch Sales hay thường giàu cảm xúc, dùng từ mạnh, để lại khoảng mở cho trí tưởng tượng. Tài liệu cho dev thì ngược lại: phải rõ ràng đến mức nhàm chán. Mọi từ ngữ định tính như "nhanh", "thân thiện", "nhiều" đều phải quy đổi thành con số hoặc quy tắc: "nhanh" thành "phản hồi dưới 2 giây", "nhiều" thành "tối đa 50 dòng/trang". Đây là sự chuyển dịch tư duy lớn nhất với người từ nền Sales.

Tình huống thực tế

Ví dụ 1: Cuộc họp grooming tại một SaaS quản lý bán hàng (TP.HCM)

Linh, một BD chuyển BA được 4 tháng tại một startup SaaS quản lý bán hàng (khoảng 40 người), mang đến buổi refinement một yêu cầu: "Cho phép quản lý xuất báo cáo doanh thu theo nhân viên." Cô viết đúng một dòng đó trong Jira.

Trong buổi họp, dev lead bắt đầu hỏi dồn: "Báo cáo theo khoảng thời gian nào — tự chọn hay cố định tháng? Doanh thu tính theo ngày tạo đơn hay ngày đơn hoàn tất? Nhân viên đã nghỉ việc có hiện không? Xuất ra Excel hay PDF? Dữ liệu vài năm thì có cần phân trang không, hay xuất một file 200 nghìn dòng?" Linh chỉ trả lời được 2 trong 6 câu. Buổi grooming bị hoãn, ticket bị đẩy sang sprint sau, dev mất niềm tin.

Diễn giải: Linh đã viết yêu cầu bằng ngôn ngữ business ("xuất báo cáo doanh thu") mà thiếu lớp "như thế nào". Cô không sai về nghiệp vụ — cô thiếu thói quen lường trước các câu hỏi kỹ thuật.

Bài học: Trước mỗi buổi grooming, hãy tự đóng vai dev và tra tấn chính yêu cầu của mình bằng các câu hỏi về: phạm vi dữ liệu, định dạng đầu ra, edge case, hiệu năng, và phân quyền. Nếu bạn tự trả lời được hết trước khi vào họp, buổi họp sẽ trôi chảy và uy tín của bạn tăng vọt.

Ví dụ 2: Hiểu sai "tích hợp API" tại một ví điện tử

Tại một công ty fintech làm ví điện tử ở Hà Nội, một BA mới (xuất thân Sales B2B) tiếp nhận yêu cầu: "Tích hợp cổng thanh toán của đối tác để nạp tiền vào ví." Anh viết user story và đưa cho dev, nhưng dùng từ chung chung: "Khi user bấm nạp tiền, hệ thống gọi sang đối tác và cộng tiền vào ví."

Dev hỏi lại: "Đối tác trả kết quả về sync hay qua webhook (callback bất đồng bộ)? Nếu tiền đã trừ bên đối tác mà callback về ví bị lỗi mạng thì xử lý đối soát thế nào? Có cần idempotency key để tránh cộng tiền hai lần khi user bấm nạp hai lần không?" BA này không hiểu các thuật ngữ đó nên không thể quyết, phải hẹn dev tự liên hệ đối tác — và vô tình mất vai trò làm chủ requirement.

Diễn giải: Với tích hợp thanh toán, các tình huống bất đồng bộ và "cộng tiền hai lần" không phải chi tiết kỹ thuật vụn vặt — chúng là rủi ro nghiệp vụ nghiêm trọng (mất tiền, sai sổ sách). BA bắt buộc phải hiểu đủ để cùng dev thiết kế luồng xử lý lỗi và đối soát.

Bài học: Khi yêu cầu liên quan đến tiền hoặc tích hợp hệ thống ngoài, ba thuật ngữ bạn nhất định phải nắm là: webhook/callback (đối tác chủ động gọi ngược về báo kết quả), idempotency (đảm bảo một thao tác lặp lại không gây hậu quả nhân đôi), và reconciliation/đối soát (so khớp dữ liệu hai hệ thống). Hiểu ba từ này giúp bạn đặt đúng câu hỏi và giữ vai trò chủ động.

Ví dụ 3: BA "phiên dịch viên" hai chiều cứu một sprint

Ngược lại, hãy xem một ví dụ tích cực. Tại một công ty làm phần mềm logistics ở Bình Dương, BA tên Quân (cũng từ Sales chuyển sang) ngồi trong buổi standup khi PO business sốt ruột hỏi: "Sao tính năng gợi ý tuyến đường chậm thế, hai sprint rồi chưa xong?" Dev đáp: "Vì cái này phải call third-party map API, mỗi lần round-trip mất 800ms, mà mình lại loop qua 200 điểm giao nên timeout."

PO không hiểu gì cả. Quân chen vào dịch: "Anh ơi, hiểu nôm na là mình phải hỏi Google Maps đường đi cho từng điểm một, mỗi lần hỏi mất gần một giây, 200 điểm thì quá lâu nên hệ thống bị treo. Team đang tìm cách gom lại hỏi một lần. Nếu mình chấp nhận giai đoạn đầu chỉ gợi ý cho 50 điểm gần nhất thì có thể ra mắt sớm hơn không?" Dev gật đầu, PO đồng ý cắt phạm vi. Sprint được cứu.

Diễn giải: Quân không tự giải được bài toán kỹ thuật, nhưng anh hiểu đủ để dịch ngôn ngữ kỹ thuật của dev sang ngôn ngữ tác động kinh doanh của PO, rồi đề xuất một sự đánh đổi (trade-off) mà cả hai bên chấp nhận được.

Bài học: Giá trị cao nhất của BA không phải là biết nhiều thuật ngữ nhất, mà là biến cuộc trao đổi technical thành quyết định business và ngược lại. Đây chính là kỹ năng "đọc phòng" và đề xuất giải pháp đôi bên cùng có lợi mà bạn đã rèn khi đàm phán bán hàng.

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

Đây là quy trình thực dụng để bạn nâng cấp giao tiếp với dev:

Bước 1 — Xây "từ điển" cá nhân. Mỗi khi nghe một thuật ngữ lạ trong họp, đừng gật cho qua. Ghi lại, cuối ngày tra nghĩa (hỏi dev thân thiện nhất, hoặc tra nhanh). Sau 2-3 tuần bạn sẽ có một glossary riêng. Mẹo: ghi nghĩa bằng một câu ví von của riêng bạn, dễ nhớ hơn định nghĩa hàn lâm.

Bước 2 — Chuẩn bị checklist câu hỏi trước mỗi requirement. Trước khi đưa yêu cầu cho dev, tự rà qua 6 nhóm: (1) Dữ liệu vào — field nào, bắt buộc không, kiểu gì, validation gì; (2) Dữ liệu ra — định dạng, sắp xếp, phân trang; (3) Quy tắc nghiệp vụ — công thức, điều kiện; (4) Edge case — trống, âm, trùng, vượt giới hạn; (5) Phân quyền — ai được làm; (6) Hiệu năng/khối lượng — bao nhiêu bản ghi, tần suất.

Bước 3 — Viết yêu cầu cụ thể, quy đổi mọi từ định tính. Đọc lại tài liệu, gạch chân mọi từ "nhanh, dễ, nhiều, đẹp" và thay bằng con số hoặc quy tắc đo được.

Bước 4 — Dùng ví dụ dữ liệu thật. Thay vì mô tả trừu tượng, đính kèm một mẫu JSON hoặc một bảng dữ liệu ví dụ: "Input thế này → Output mong đợi thế kia." Dev yêu BA biết làm điều này, vì nó loại bỏ hiểu lầm.

Bước 5 — Xác nhận lại bằng ngôn ngữ của dev. Cuối buổi họp, tóm tắt: "Vậy em hiểu là field discount nullable, default 0, áp dụng sau thuế, đúng không?" Việc nhắc lại đúng thuật ngữ vừa kiểm tra hiểu biết chung, vừa cho dev thấy bạn nghiêm túc.

Bước 6 — Học cách đọc, không cần học cách viết. Bạn nên làm quen để đọc hiểu được JSON, một bảng database đơn giản, và một sequence diagram. Đọc được khác xa với viết được — và phần lớn giá trị nằm ở việc đọc.

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

Lỗi 1 — Gật đầu cho qua khi không hiểu. Đây là lỗi chí mạng của ex-Sales, vì bản năng bán hàng là giữ thể diện và sự trôi chảy. Nhưng trong môi trường dev, hỏi lại "Anh giải thích giúp em webhook ở đây nghĩa là gì với?" được tôn trọng hơn nhiều so với gật rồi viết sai tài liệu.

Lỗi 2 — Dùng thuật ngữ kỹ thuật sai để tỏ ra "biết". Nguy hiểm hơn cả việc không biết. Nếu bạn dùng sai "API" với "database", dev sẽ mất niềm tin ngay. Thà nói bằng ngôn ngữ thường mà đúng, còn hơn dùng từ chuyên môn mà sai.

Lỗi 3 — Viết yêu cầu chỉ có "happy path". Mô tả luồng thuận lợi thì dễ; ex-Sales hay quên các tình huống lỗi. Mỗi yêu cầu hãy luôn có phần "khi nào thì hỏng và xử lý ra sao".

Lỗi 4 — Biến mọi thứ thành cuộc đàm phán thắng-thua với dev. Dev không phải đối thủ ở bàn deal. Khi dev nói "cái này khó/lâu", đừng phản xạ "ép cho bằng được" như khi chốt hợp đồng. Hãy hỏi "khó ở đâu, có cách nào đơn giản hơn không" — biến nó thành bài toán chung.

Mẹo vàng: Hãy "kết bạn" với một dev thân thiện và biến họ thành người cố vấn kỹ thuật không chính thức của bạn. 15 phút cà phê hỏi "anh giải thích giúp em vụ async với sync" sẽ dạy bạn nhiều hơn nhiều giờ đọc tài liệu. Kỹ năng xây quan hệ vốn là sở trường của bạn — hãy dùng nó.

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

  • Lập glossary: Trong tuần này, ghi lại tối thiểu 10 thuật ngữ kỹ thuật bạn nghe trong công việc (hoặc lấy từ bảng ở trên), viết lại định nghĩa bằng một câu ví von của riêng bạn.
  • Tra tấn yêu cầu: Lấy một yêu cầu một dòng kiểu "Cho phép user reset mật khẩu". Viết ra ít nhất 12 câu hỏi mà dev có thể hỏi, phủ đủ 6 nhóm trong Bước 2 (dữ liệu vào/ra, quy tắc, edge case, phân quyền, hiệu năng).
  • Quy đổi định tính: Lấy đoạn mô tả "Trang chủ phải tải nhanh và hiển thị nhiều sản phẩm hấp dẫn." Viết lại thành yêu cầu cụ thể, đo được, không còn từ định tính nào.
  • Đóng vai phiên dịch: Tự nghĩ một câu giải thích kỹ thuật khó hiểu của dev (ví dụ về timeout, về cache, về race condition), rồi viết một phiên bản giải thích cho một sếp business hoàn toàn không rành tech, kèm một đề xuất trade-off.

Tóm tắt

Giao tiếp với dev không đòi hỏi bạn biết code, mà đòi hỏi bạn đủ thông thạo ngôn ngữ kỹ thuật để dịch hai chiều giữa business và technical. Ba trụ cột cần nhớ: (1) Nắm bộ thuật ngữ tối thiểu để hiểu dev đang nói gì và đặt đúng câu hỏi; (2) Viết yêu cầu cụ thể, quy đổi mọi từ định tính, luôn bao gồm edge case và đính kèm ví dụ dữ liệu thật; (3) Đóng vai phiên dịch viên — biến trao đổi technical thành quyết định business và ngược lại.

Tin vui cho người từ nền Sales/BD: những kỹ năng cốt lõi để làm tốt việc này — đặt câu hỏi đào sâu, đọc đối tượng, xây quan hệ, đề xuất giải pháp đôi bên cùng có lợi — đều là sở trường bạn đã rèn nhiều năm. Bạn chỉ cần đổi "khách hàng" thành "đội developer" và nạp thêm một lớp từ vựng kỹ thuật. Đừng bao giờ gật đầu cho qua khi chưa hiểu, đừng dùng sai thuật ngữ để ra vẻ, và hãy biến một dev thân thiện thành người thầy không chính thức của mình. Khi dev bắt đầu muốn làm việc với bạn vì tài liệu của bạn rõ ràng và bạn hiểu họ — đó là lúc bạn đã thực sự trở thành một BA giỏi.