Menu
ESC

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

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

Đang tải...

Bài 40 — Giao tiếp với dev + stakeholder

Từ Finance/Kế Toán sang BA: Lộ Trình Chuyển Đổi Bài 40/60

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

Bạn đã viết được SRS, vẽ được process flow, biết MoSCoW và elicitation. Nhưng có một sự thật mà ít ai nói thẳng với người mới chuyển từ Finance sang BA: 80% giá trị của một BA nằm ở khả năng giao tiếp, không phải ở tài liệu. Tài liệu chỉ là phương tiện. Thứ thật sự quyết định dự án thành hay bại là việc bạn có làm cho developer hiểu đúng điều stakeholder muốn, và làm cho stakeholder hiểu được giới hạn kỹ thuật mà developer đang đối mặt hay không.

Đây chính là chỗ mà người từ nền Finance/Kế toán vừa có lợi thế lớn, vừa dễ vấp ngã. Lợi thế: bạn đã quen giao tiếp với những đối tượng "khó", như kiểm toán viên, sếp tài chính, cơ quan thuế — những người đòi hỏi sự chính xác tuyệt đối. Bạn biết cách trình bày con số sao cho thuyết phục. Nhưng vấp ngã: trong môi trường Finance, ngôn ngữ chung là chuẩn mực kế toán và con số. Trong môi trường phát triển phần mềm, bạn phải làm việc giữa hai "bộ tộc" nói hai thứ tiếng hoàn toàn khác nhau — dev nói tiếng kỹ thuật, business nói tiếng nghiệp vụ — và BA là người phiên dịch.

Bài này không nói về kỹ thuật viết tài liệu. Bài này nói về cách bạn ngồi vào bàn họp với một developer đang bực mình vì requirement mơ hồ, hoặc với một stakeholder đang sốt ruột vì deadline, và làm cho cuộc trò chuyện đó tạo ra giá trị thay vì hiểu lầm. Đây là kỹ năng phân biệt một BA "viết tài liệu cho có" với một BA mà cả team muốn làm việc cùng.

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

BA là người phiên dịch giữa hai ngôn ngữ

Hãy hình dung bạn đứng giữa hai phòng. Phòng bên trái là business — nơi người ta nói "khách hàng cần được hoàn tiền nhanh hơn", "báo cáo công nợ phải khớp với sổ cái", "quy trình duyệt chi đang quá chậm". Phòng bên phải là dev — nơi người ta nói "endpoint này trả về 500 vì payload thiếu field", "phải làm migration trước khi deploy", "cache chưa invalidate nên data cũ".

Hai phòng này không nói chuyện trực tiếp với nhau được. Nếu để họ tự nói, business sẽ nghĩ dev "phức tạp hóa vấn đề", còn dev sẽ nghĩ business "đòi hỏi vô lý". BA đứng ở cửa giữa, dịch ý định nghiệp vụ thành yêu cầu kỹ thuật rõ ràng, và dịch giới hạn kỹ thuật thành ngôn ngữ business hiểu được.

Để phiên dịch được, bạn không cần code, nhưng bạn phải hiểu đủ thuật ngữ kỹ thuật để không bị mất mặt và không hiểu sai.

Thuật ngữ kỹ thuật mà BA bắt buộc phải hiểu

Đây là bộ từ vựng tối thiểu. Bạn không cần làm được, chỉ cần hiểu để khi dev nhắc đến, bạn gật đầu đúng chỗ và hỏi đúng câu:

  • API: cách hai hệ thống "nói chuyện" với nhau. Ví dụ: hệ thống kế toán của bạn gọi API của ngân hàng để lấy sao kê. Hãy nghĩ API như một "hợp đồng dịch vụ" giữa hai bên — bên A yêu cầu, bên B trả kết quả theo đúng cam kết.
  • Endpoint: một địa chỉ cụ thể của API. Ví dụ /invoices/{id} là endpoint để lấy thông tin một hóa đơn. Một API có nhiều endpoint, như một văn phòng có nhiều quầy.
  • Payload: dữ liệu được gửi đi trong một request. Khi bạn gửi yêu cầu tạo hóa đơn, payload chứa số tiền, mã khách hàng, ngày... Thiếu một field trong payload là lỗi rất hay gặp.
  • Schema: cấu trúc của dữ liệu — field nào bắt buộc, kiểu dữ liệu là số hay chữ, độ dài bao nhiêu. Với người kế toán, schema giống như mẫu biểu chứng từ có quy định rõ ô nào điền gì.
  • Webhook: cơ chế hệ thống tự động "gọi điện báo" khi có sự kiện. Ví dụ: khi khách thanh toán thành công, cổng thanh toán bắn webhook về hệ thống của bạn để cập nhật trạng thái đơn — thay vì bạn phải liên tục hỏi "đã trả chưa?".
  • Cache: bộ nhớ đệm lưu tạm dữ liệu để truy xuất nhanh. Vấn đề kinh điển: cache không cập nhật kịp nên người dùng thấy số liệu cũ. Khi sếp nói "báo cáo trên dashboard sai", rất có thể là chuyện cache.
  • Queue: hàng đợi xử lý. Khi có 10.000 giao dịch cuối tháng, hệ thống không xử lý cùng lúc mà xếp hàng. Hiểu queue giúp bạn giải thích cho business vì sao báo cáo "không hiện ngay lập tức".
  • Migration: thay đổi cấu trúc cơ sở dữ liệu (thêm cột, đổi kiểu dữ liệu). Migration thường rủi ro vì động đến data thật.
  • Rollback: quay về phiên bản cũ khi bản mới gặp sự cố. Giống như khi bạn ghi sai bút toán thì làm bút toán điều chỉnh để hoàn nguyên.
  • Feature flag: công tắc bật/tắt một tính năng mà không cần deploy lại. Cho phép bật tính năng mới cho 5% người dùng trước, rồi mở rộng dần.
Khi bạn dùng đúng những từ này trong cuộc họp, dev sẽ ngầm hiểu rằng bạn "đáng tin", và họ sẽ giải thích cho bạn kỹ hơn, ít phòng thủ hơn.

Hai chế độ giao tiếp khác nhau cho hai đối tượng

Sai lầm lớn nhất là dùng cùng một cách nói cho cả dev lẫn stakeholder.

Với dev, bạn cần: chính xác, cụ thể, có ngữ cảnh kỹ thuật, không "đường vòng". Dev ghét sự mơ hồ. Câu "làm cho nó nhanh hơn" là vô nghĩa với họ. Câu "thời gian load báo cáo công nợ hiện 12 giây, mục tiêu dưới 3 giây cho tập 5.000 dòng" thì họ làm việc được ngay.

Với stakeholder, bạn cần: tập trung vào giá trị nghiệp vụ và tác động, tránh thuật ngữ kỹ thuật, nói bằng ngôn ngữ tiền bạc, rủi ro, thời gian. Stakeholder không quan tâm "phải refactor module thanh toán". Họ quan tâm "việc này mất thêm 2 tuần nhưng giảm 90% lỗi đối soát cuối tháng".

Nghệ thuật đặt câu hỏi cho dev

Đây là phần dàn ý gốc bị cắt giữa chừng ("Cách hỏi: Sa..."). Nguyên tắc vàng khi hỏi dev:

  • Hỏi mở khi muốn hiểu giới hạn: "Nếu mình muốn làm tính năng X, có những cách tiếp cận nào và đánh đổi của mỗi cách là gì?" — câu này mời dev chia sẻ chuyên môn thay vì áp đặt.
  • Hỏi đóng khi muốn xác nhận: "Vậy nếu khách hủy đơn sau khi đã thanh toán, hệ thống sẽ tự rollback giao dịch đúng không?" — để chốt một điểm cụ thể.
  • Đừng giả vờ hiểu: nếu dev nói một từ bạn không biết, hãy hỏi ngay: "Cho mình hỏi lại, 'idempotent' ở đây nghĩa là gì trong ngữ cảnh này?" Hỏi lại không làm bạn kém đi; giả vờ hiểu rồi viết sai requirement mới là thảm họa.
  • Hỏi "vì sao" thay vì tranh cãi "không/được": khi dev nói "cái này không làm được", đừng phản ứng "nhưng business cần lắm". Hãy hỏi "không làm được vì giới hạn kỹ thuật, hay vì không đủ thời gian, hay vì rủi ro dữ liệu?" Ba câu trả lời này dẫn đến ba hướng giải quyết hoàn toàn khác nhau.

Tình huống thực tế

Tình huống 1: Cuộc họp "tính năng nhỏ thôi mà" tại một công ty fintech ở TP.HCM

Lan, một cựu kế toán tổng hợp vừa chuyển sang làm BA tại một công ty fintech cho vay tiêu dùng, nhận yêu cầu từ trưởng phòng vận hành: "Em làm cho anh nút xuất báo cáo dư nợ theo từng nhân viên thu hồi nợ. Đơn giản thôi."

Trong buổi refinement, Lan trình bày với team dev rằng đây là "một nút xuất Excel đơn giản". Một developer ngồi im rồi hỏi: "Báo cáo này lấy data ở thời điểm nào? Real-time hay cuối ngày? Vì dư nợ thay đổi theo từng giao dịch, nếu real-time thì phải query trực tiếp bảng giao dịch đang có 8 triệu dòng, mỗi lần xuất sẽ kéo cả hệ thống chậm lại."

Lan lúc đó mới nhận ra "đơn giản thôi" của business không hề đơn giản về mặt kỹ thuật. Thay vì hứa đại với dev, cô nói: "Để mình hỏi lại trưởng phòng xem họ cần số liệu tại thời điểm nào và tần suất xuất ra sao." Quay lại với business, cô phát hiện họ chỉ cần số liệu cuối ngày hôm trước, và xuất một lần mỗi sáng. Thông tin này thay đổi hoàn toàn giải pháp: dev chỉ cần tạo một bảng tổng hợp chạy ban đêm (batch job qua queue), xuất ra trong tích tắc.

Bài học: BA giỏi không phải người trả lời nhanh, mà là người biết khi nào cần quay lại hỏi cho rõ. Một câu hỏi đúng từ dev — "data ở thời điểm nào?" — đã tiết kiệm cho team hàng tuần làm sai hướng. Lợi thế Finance của Lan ở đây là: cô hiểu ngay khái niệm "số liệu chốt cuối ngày" vì nó giống hệt việc khóa sổ.

Tình huống 2: Khi dev nói "không làm được" tại một dự án ERP

Tại một doanh nghiệp sản xuất đang triển khai ERP, Minh — BA xuất thân kế toán chi phí — đề xuất tính năng cho phép kế toán sửa lại giá vốn của một lô hàng đã xuất kho. Lead developer phản ứng gay gắt: "Không được. Sửa giá vốn đã ghi nhận là sai nguyên tắc, hệ thống không cho phép."

Một BA non kinh nghiệm sẽ hoặc bỏ cuộc, hoặc cãi nhau. Minh làm khác. Anh hỏi: "Mình hiểu lo ngại của bạn về tính toàn vẹn dữ liệu. Nhưng cho mình hỏi: 'không được' này là vì hệ thống không thể về mặt kỹ thuật, hay vì nó vi phạm nguyên tắc kế toán mà bạn lo?" Hóa ra dev lo về nguyên tắc kế toán.

Minh giải thích bằng đúng ngôn ngữ chung: "Trong kế toán, ta không xóa bút toán sai, mà ghi bút toán điều chỉnh để giữ dấu vết. Mình không cần 'sửa đè' giá vốn cũ. Mình cần một cơ chế tạo bút toán điều chỉnh, vẫn lưu lại giá trị gốc — giống như audit trail." Nghe đến đây, dev gật đầu: "À, nếu vậy thì làm được, chỉ là thêm một bản ghi điều chỉnh chứ không update bản gốc. An toàn về mặt dữ liệu."

Bài học: "Không làm được" hiếm khi tuyệt đối. Nó thường là "không làm được theo cách bạn vừa mô tả". Khi Minh dịch yêu cầu nghiệp vụ thành một khái niệm mà dev thấy an toàn về mặt kỹ thuật (thêm bản ghi thay vì sửa đè), bế tắc được tháo gỡ. Đây chính là sức mạnh của BA ex-Finance: bạn có sẵn tư duy audit trail mà dev rất tôn trọng.

Tình huống 3: Báo tin xấu cho stakeholder tại MoMo

Một BA tại một ví điện tử lớn (bối cảnh tương tự MoMo) phải báo với giám đốc sản phẩm rằng tính năng chia hóa đơn nhóm sẽ trễ 3 tuần so với cam kết, vì phát hiện ra việc tích hợp với hệ thống đối soát phức tạp hơn dự kiến — mỗi giao dịch chia nhỏ tạo ra nhiều bản ghi cần khớp với ngân hàng.

Cô không vào phòng họp nói "dev làm chậm" hay liệt kê một tràng thuật ngữ về queue và reconciliation. Cô chuẩn bị ba điểm: (1) Tác động: nếu ép deadline cũ, rủi ro lệch đối soát cuối tháng có thể lên tới hàng trăm giao dịch, ảnh hưởng uy tín với ngân hàng đối tác. (2) Nguyên nhân gọn: "Mỗi lần chia hóa đơn tạo ra nhiều dòng tiền nhỏ cần khớp lệnh với ngân hàng — phần khớp lệnh này phải làm chắc trước." (3) Phương án: ra mắt phiên bản chia tối đa 5 người trước (đúng deadline), mở rộng sau.

Giám đốc sản phẩm chấp nhận ngay, vì cô đã nói bằng ngôn ngữ rủi ro và tiền bạc — thứ stakeholder hiểu — chứ không phải ngôn ngữ kỹ thuật.

Bài học: Với stakeholder, đừng giấu tin xấu và đừng bọc nó trong thuật ngữ. Hãy nói rõ tác động bằng con số, nguyên nhân ngắn gọn, và luôn kèm ít nhất một phương án. Một BA mang đến vấn đề kèm giải pháp luôn được tin tưởng hơn người chỉ báo cáo sự cố.

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

Đây là quy trình thực dụng để chuẩn bị và dẫn dắt một cuộc giao tiếp hiệu quả giữa dev và stakeholder:

Bước 1 — Xác định bạn đang nói với "bộ tộc" nào. Trước mỗi cuộc trao đổi, hỏi: người nghe quan tâm điều gì? Dev quan tâm tính khả thi, rủi ro kỹ thuật, sự rõ ràng. Stakeholder quan tâm giá trị, thời gian, chi phí. Chọn ngôn ngữ tương ứng.

Bước 2 — Với dev, mang theo ngữ cảnh, không mang theo giải pháp áp đặt. Thay vì nói "làm theo cách này", hãy nói "đây là vấn đề nghiệp vụ, đây là ràng buộc, bạn đề xuất cách nào tốt nhất?". Tôn trọng chuyên môn của dev khiến họ chủ động đóng góp.

Bước 3 — Diễn đạt lại để xác nhận hiểu đúng (paraphrasing). Sau khi dev hoặc stakeholder nói xong, hãy tóm lại bằng lời của bạn: "Vậy nếu mình hiểu đúng, khi khách hủy đơn thì hệ thống giữ lại bản ghi gốc và tạo một bản ghi hoàn tiền, đúng không?" Kỹ thuật này bắt lỗi hiểu sai ngay tại chỗ.

Bước 4 — Ghi lại quyết định, không chỉ ghi cuộc nói chuyện. Sau họp, gửi một bản tóm tắt ngắn: quyết định gì, ai chịu trách nhiệm, điều gì còn treo. "Lời nói gió bay" — điều được viết ra mới ràng buộc được mọi người.

Bước 5 — Khi có xung đột giữa hai bên, đừng đứng về phe nào, hãy đưa cả hai về cùng một sự thật. Nếu business muốn nhanh còn dev muốn an toàn, BA đưa ra dữ liệu: rủi ro cụ thể là gì, chi phí trễ là gì, để cả hai cùng quyết định dựa trên fact thay vì cảm tính.

Bước 6 — Đóng vòng lặp. Sau khi tính năng xong, báo lại cho stakeholder đã yêu cầu: "Tính năng anh đề xuất đã live, kết quả thế nào." Việc đóng vòng này xây dựng uy tín dài hạn của bạn.

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

Lỗi 1 — Truyền đạt nguyên văn lời business cho dev mà không chắt lọc. Business nói lan man, mâu thuẫn, đổi ý. Nếu bạn bê nguyên xi cho dev, bạn đang đẩy việc phiên dịch cho người không có nhiệm vụ đó. Mẹo: luôn chắt lọc thành requirement rõ ràng, có tiêu chí chấp nhận, trước khi đưa cho dev.

Lỗi 2 — Giả vờ hiểu thuật ngữ kỹ thuật. Người ex-Finance hay ngại "lộ dốt". Nhưng gật đầu rồi viết sai requirement còn tệ hơn nhiều. Mẹo: chuẩn bị sẵn câu "Cho mình hỏi lại để chắc chắn mình hiểu đúng..." — nó biến việc hỏi thành sự cẩn thận, không phải sự thiếu hiểu biết.

Lỗi 3 — Dùng quá nhiều thuật ngữ kỹ thuật với stakeholder để "ra vẻ". Stakeholder sẽ thấy bị xa cách và mất niềm tin. Mẹo: với business, mỗi câu nên trả lời được "điều này ảnh hưởng gì đến tiền, thời gian, hoặc rủi ro của tôi?".

Lỗi 4 — Để cuộc họp dev và business chung mà không chuẩn bị. Hai bên dễ nói ngang nhau và nảy sinh căng thẳng. Mẹo: trước cuộc họp chung, hãy gặp riêng từng bên để hiểu kỳ vọng, rồi vào họp chung với vai trò người điều phối.

Lỗi 5 — Im lặng khi dev và stakeholder bất đồng. Né tránh xung đột là phản xạ tự nhiên, nhưng đó là lúc BA cần lên tiếng nhất. Mẹo: trung lập về phe, nhưng chủ động về fact — đưa dữ liệu để hai bên tự quyết.

Mẹo vàng tận dụng nền Finance: Bạn vốn quen làm việc với kiểm toán — những người soi từng chi tiết. Hãy mang sự tỉ mỉ đó vào việc viết tóm tắt sau họp và xác nhận lại yêu cầu. Đồng thời, tư duy "audit trail", "khóa sổ", "đối chiếu" của bạn là cầu nối tuyệt vời để giải thích các khái niệm kỹ thuật như rollback, reconciliation, data integrity cho cả dev lẫn business.

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

  • Dịch ngược thuật ngữ. Lấy 5 thuật ngữ trong bài (API, webhook, cache, rollback, feature flag) và viết một câu giải thích mỗi từ cho một stakeholder không biết kỹ thuật, dùng phép so sánh từ lĩnh vực Finance/Kế toán. Ví dụ: "rollback giống như bút toán điều chỉnh để hoàn nguyên một giao dịch ghi sai".
  • Đặt lại câu hỏi. Một stakeholder nói: "Làm cho cái báo cáo nó nhanh lên." Hãy viết ra 5 câu hỏi bạn sẽ đặt để biến yêu cầu mơ hồ này thành requirement cụ thể (gợi ý: nhanh là bao nhiêu giây, báo cáo nào, bao nhiêu dòng dữ liệu, thời điểm nào, tần suất ra sao).
  • Báo tin xấu. Giả định tính năng bạn phụ trách bị trễ 2 tuần do phát sinh kỹ thuật. Viết một đoạn 4-5 câu thông báo cho giám đốc sản phẩm theo cấu trúc: tác động — nguyên nhân ngắn gọn — phương án thay thế. Tránh mọi thuật ngữ kỹ thuật.
  • Diễn đạt lại. Tìm một đồng nghiệp hoặc bạn học, nhờ họ mô tả một quy trình bất kỳ trong 1 phút. Sau đó bạn diễn đạt lại bằng lời của mình bắt đầu bằng "Vậy nếu mình hiểu đúng...". Kiểm tra bạn có nắm đúng không.
  • Viết tóm tắt sau họp. Sau cuộc họp gần nhất bạn tham gia, viết một bản tóm tắt 5 dòng gồm: quyết định đã chốt, người chịu trách nhiệm, hạng mục còn treo, bước tiếp theo.

Tóm tắt

Giao tiếp là kỹ năng load-bearing của nghề BA — nó gánh phần lớn giá trị bạn tạo ra, hơn cả tài liệu. Vai trò cốt lõi của bạn là người phiên dịch giữa hai bộ tộc: dev nói ngôn ngữ kỹ thuật chính xác, stakeholder nói ngôn ngữ giá trị và rủi ro. Để phiên dịch tốt với dev, bạn cần hiểu bộ thuật ngữ tối thiểu (API, endpoint, payload, schema, webhook, cache, queue, migration, rollback, feature flag), biết đặt câu hỏi để bóc tách "không làm được" thành nguyên nhân thật, và không bao giờ giả vờ hiểu. Với stakeholder, bạn quy mọi thứ về tiền, thời gian, rủi ro, và luôn mang giải pháp kèm vấn đề.

Người chuyển từ Finance có lợi thế độc nhất: bạn đã quen giao tiếp với đối tượng khó tính, có tư duy tỉ mỉ kiểu kiểm toán, và sở hữu kho khái niệm như audit trail, khóa sổ, đối chiếu — những cầu nối tự nhiên để giải thích các khái niệm kỹ thuật. Hãy biến lợi thế đó thành sức mạnh: trở thành BA mà cả dev lẫn business đều muốn ngồi cùng bàn.