Menu
ESC

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

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

Đang tải...

Bài 35 — Requirement validation & verification

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

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

Hãy tưởng tượng bạn vừa hoàn thành một bộ tài liệu requirement dày 40 trang. Câu chữ mạch lạc, template chuẩn chỉnh, từng user story đều có acceptance criteria rõ ràng. Bạn tự hào nộp lên, team dev gật gù, sprint chạy ngon lành. Ba tháng sau, sản phẩm go-live. Và rồi giám đốc kinh doanh gọi bạn lên: "Tính năng này làm đúng như tài liệu, nhưng nó không giải quyết được vấn đề thật của khách hàng. Chúng ta vừa đốt 2 tháng dev cho thứ không ai dùng."

Đây chính là khoảnh khắc một BA non kinh nghiệm vỡ lẽ ra rằng: viết requirement đúng cách và viết đúng requirement là hai chuyện hoàn toàn khác nhau. Tài liệu của bạn đã được verify (đúng chuẩn, đủ template, không lỗi logic) nhưng chưa được validate (đúng nhu cầu business thật sự).

Với bạn — người chuyển từ Sales/BD sang BA — bài này có một ý nghĩa đặc biệt. Trong nghề Sales, bạn đã có một bản năng rất quý: bạn luôn hỏi "khách hàng thật sự cần gì?" trước khi chốt deal. Bạn biết rằng một bản proposal đẹp long lanh chẳng có giá trị nếu nó không trúng nỗi đau (pain point) của khách. Bản năng đó chính là gốc rễ của validation. Việc bạn cần học thêm là verification — kỷ luật kiểm tra tính chặt chẽ, đầy đủ, nhất quán của tài liệu, thứ mà nghề Sales ít rèn. Bài 35 này sẽ giúp bạn ghép hai mảnh đó lại thành một quy trình kiểm soát chất lượng requirement hoàn chỉnh.

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

Verification: "Chúng ta đang xây requirement đúng cách không?"

Verification (xác minh) trả lời câu hỏi: requirement này có được viết đúng chuẩn, đầy đủ, nhất quán và không mâu thuẫn nội tại hay không? Đây là kiểm tra kỹ thuật, hướng nội bộ — bạn soi vào chính tài liệu mà không cần ra ngoài hỏi business.

Một requirement được verify tốt phải đạt các tiêu chí (thường gọi là đặc tính của một requirement chất lượng theo BABOK/IEEE):

  • Atomic (đơn nhất): mỗi requirement chỉ mô tả một điều, không gộp 3-4 ý vào một câu.
  • Complete (đầy đủ): đủ thông tin để dev hiểu và làm, không để khoảng trống "tự hiểu".
  • Consistent (nhất quán): không mâu thuẫn với requirement khác trong cùng tài liệu.
  • Unambiguous (không mơ hồ): chỉ có một cách hiểu duy nhất. Tránh các từ như "nhanh", "thân thiện", "linh hoạt" mà không định lượng.
  • Testable / Verifiable (kiểm thử được): có thể viết test case để chứng minh nó được đáp ứng.
  • Traceable (truy vết được): liên kết được tới mục tiêu business gốc và tới thiết kế/test phía sau.
  • Feasible (khả thi): làm được trong giới hạn công nghệ, thời gian, ngân sách.
Verification giống như biên tập viên đọc lại bản thảo: kiểm tra chính tả, ngữ pháp, cấu trúc, tính logic. Nó không hỏi "câu chuyện này có hay không" — nó hỏi "câu chuyện này có được viết chỉnh chu không".

Validation: "Chúng ta đang xây đúng requirement không?"

Validation (thẩm định) trả lời câu hỏi: requirement này có thực sự giải quyết đúng nhu cầu của business và mang lại giá trị mong đợi hay không? Đây là kiểm tra giá trị, hướng ra ngoài — bạn phải đối chiếu requirement với mục tiêu kinh doanh, với stakeholder, với người dùng thật.

Một requirement được verify hoàn hảo vẫn có thể sai về validation. Ví dụ kinh điển: "Hệ thống phải cho phép xuất báo cáo doanh thu ra file Excel trong vòng 3 giây." Câu này đơn nhất, không mơ hồ, kiểm thử được — verify đạt 10/10. Nhưng nếu thực tế người dùng cần báo cáo dạng dashboard tương tác chứ không phải file Excel tĩnh, thì requirement này dù hoàn hảo về mặt kỹ thuật vẫn sai về giá trị. Validation sẽ bắt được lỗi này.

Validation luôn liên kết ngược về business needbusiness objective gốc. Mỗi requirement phải trả lời được: "Nếu ta làm đúng điều này, mục tiêu kinh doanh nào được phục vụ? Stakeholder nào hưởng lợi? Bằng chứng nào cho thấy đó là nhu cầu thật chứ không phải giả định?"

Phân biệt nhanh để khỏi nhầm

Tiêu chíVerificationValidation
Câu hỏi cốt lõi"Viết đúng cách không?""Viết đúng cái không?"
Hướng kiểm traVào trong (tài liệu)Ra ngoài (business need)
So với gìChuẩn, template, tính nhất quánMục tiêu business, stakeholder thật
Lỗi điển hình bắt đượcMơ hồ, mâu thuẫn, thiếu testableLàm đúng tài liệu nhưng vô dụng
Ai tham giaBA tự rà, peer reviewStakeholder, sponsor, end-user
Một cách ghi nhớ kiểu Sales: Verification là kiểm tra bản proposal của bạn có đủ điều khoản, đúng định dạng, không sai số liệu. Validation là kiểm tra proposal đó có trúng nhu cầu thật của khách để họ ký hay không. Bạn cần cả hai — một proposal đẹp mà lệch nhu cầu thì mất deal; một proposal trúng nhu cầu mà thiếu điều khoản pháp lý thì rủi ro về sau.

Tình huống thực tế

Tình huống 1: Fintech ví điện tử — lỗi validation đắt giá

Một công ty fintech ví điện tử tại TP.HCM (gọi là PayViet, doanh nghiệp giả định nhưng tình huống rất phổ biến) muốn tăng tỉ lệ người dùng nạp tiền. BA viết requirement: "Hệ thống phải hiển thị nút 'Nạp tiền nhanh' với 4 mệnh giá gợi ý (100k, 200k, 500k, 1tr) trên màn hình chính."

Về verification: requirement này hoàn hảo. Đơn nhất, định lượng rõ, có thể test bằng việc kiểm tra nút hiện đúng 4 mệnh giá. Team dev làm xong trong một sprint.

Nhưng BA này quên validation. Khi đối chiếu lại với dữ liệu hành vi, hóa ra 70% giao dịch nạp tiền của người dùng PayViet là để thanh toán hóa đơn điện nước với số tiền lẻ (ví dụ 347.000đ, 612.000đ). Các mệnh giá tròn 100k/200k chẳng giúp được gì cho nhóm này — họ vẫn phải gõ tay. Tỉ lệ nạp tiền sau khi ra tính năng chỉ tăng 1,2%, thấp hơn nhiều so với kỳ vọng 8%.

Bài học: Nếu BA làm validation đúng cách — ngồi với data team và phỏng vấn 10 người dùng trước khi viết requirement — họ đã phát hiện nhu cầu thật là "nạp đúng số tiền hóa đơn", không phải "nạp mệnh giá tròn". Requirement đúng đáng lẽ phải là tích hợp tính năng đọc số tiền từ hóa đơn. Verification cứu bạn khỏi lỗi sai sót; validation cứu bạn khỏi lỗi làm sai thứ.

Tình huống 2: SaaS quản lý nhân sự — lỗi verification gây vỡ sprint

Base.vn-style: một startup SaaS HR (gọi là HRFlow) nhận yêu cầu từ khách hàng doanh nghiệp: "Cho phép quản lý duyệt đơn nghỉ phép linh hoạt." BA viết thẳng vào BRD: "Hệ thống cho phép cấu hình quy trình duyệt nghỉ phép linh hoạt theo từng phòng ban."

Validation thì ổn — đúng là khách hàng thật sự cần điều này, nhu cầu có thật. Nhưng requirement fail verification nặng vì chữ "linh hoạt" quá mơ hồ. Khi vào sprint, dev hỏi: "Linh hoạt là sao? Mấy cấp duyệt? Có duyệt song song không? Có ủy quyền khi sếp vắng không? Có giới hạn theo loại phép không?" Không ai trả lời được vì requirement không định nghĩa. Sprint kéo dài gấp đôi, dev build một version, khách bảo "không phải ý tôi", build lại version hai.

Bài học: Một buổi verification review nghiêm túc — đối chiếu requirement với checklist "có mơ hồ không, có testable không" — đã bắt được chữ "linh hoạt" ngay từ đầu. BA nên phân rã thành các requirement đơn nhất: "Cho phép cấu hình tối đa 3 cấp duyệt", "Cho phép duyệt tuần tự hoặc song song", "Cho phép ủy quyền duyệt khi người duyệt vắng mặt"... Mỗi câu testable, không mơ hồ.

Tình huống 3: Bancassurance — kết hợp cả hai để cứu dự án

Một ngân hàng VN triển khai bán bảo hiểm qua app (bancassurance). BA đề xuất requirement: "Khách hàng có thể mua gói bảo hiểm sức khỏe ngay trong app banking với 3 bước." Yêu cầu này được viết rất chuẩn (verify đạt) và phỏng vấn sơ bộ cho thấy khách hàng muốn mua nhanh (validation sơ bộ ổn).

Nhưng BA giàu kinh nghiệm làm thêm một vòng validation sâu với phòng pháp chế và phòng vận hành bảo hiểm. Hóa ra theo quy định, sản phẩm bảo hiểm sức khỏe bắt buộc phải có bước kê khai tình trạng sức khỏe và thời gian cân nhắc (cooling-off) 21 ngày. "Mua trong 3 bước" là bất khả thi về mặt pháp lý — fail validation ở khía cạnh tuân thủ. Nhờ phát hiện sớm, dự án điều chỉnh thành "khởi tạo hồ sơ trong 3 bước, hoàn tất sau khâu thẩm định", tránh được rủi ro bị cơ quan quản lý tuýt còi.

Bài học: Validation không chỉ là "khách hàng có thích không" mà còn là "có hợp với mục tiêu, ràng buộc, quy định của business không". Với domain tài chính - bảo hiểm VN, ràng buộc tuân thủ là một phần cốt lõi của validation.

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

Đây là quy trình bạn có thể áp dụng cho mỗi bộ requirement trước khi bàn giao cho dev.

Bước 1 — Verify từng requirement bằng checklist. Đi qua từng dòng và tự hỏi 7 tiêu chí: đơn nhất, đầy đủ, nhất quán, không mơ hồ, kiểm thử được, truy vết được, khả thi. Một mẹo nhanh: nếu trong câu có tính từ định tính ("nhanh", "dễ", "linh hoạt", "tối ưu") mà không kèm con số hay định nghĩa, gần như chắc chắn nó fail "unambiguous". Gạch chân và sửa ngay.

Bước 2 — Kiểm tra tính nhất quán chéo. Đặt các requirement cạnh nhau và tìm mâu thuẫn. Ví dụ requirement A nói "tự động lưu mỗi 30 giây", requirement B nói "chỉ lưu khi người dùng bấm nút" — đây là xung đột phải giải quyết trước khi dev gặp phải.

Bước 3 — Xây ma trận truy vết (Requirements Traceability Matrix - RTM). Lập bảng ánh xạ: mỗi requirement ↔ business objective gốc ↔ stakeholder ↔ test case. Nếu một requirement không nối được về objective nào, đó là dấu hiệu nó "thừa" hoặc là gold-plating (làm dư). Nếu một objective không có requirement nào phục vụ, đó là lỗ hổng (gap).

Bước 4 — Validate với stakeholder thật. Đây là phần ex-Sales của bạn tỏa sáng. Đừng gửi tài liệu rồi hỏi "anh duyệt nhé?". Thay vào đó, dùng kỹ thuật như walkthrough (dẫn stakeholder đi qua từng kịch bản), prototype/wireframe review, hoặc scenario testing ("Giả sử khách hàng A muốn làm X, hệ thống này có giúp được không?"). Người Sales giỏi hỏi câu hỏi mở để khơi nhu cầu ẩn — hãy dùng đúng kỹ năng đó.

Bước 5 — Validate ngược về dữ liệu và mục tiêu định lượng. Mỗi requirement nên nối với một chỉ số thành công. "Tính năng này nếu thành công sẽ làm chỉ số nào tăng/giảm bao nhiêu?" Nếu không trả lời được, validation chưa xong.

Bước 6 — Ghi nhận và đóng vòng. Lập một bảng theo dõi: requirement nào đã verify, đã validate, ai ký xác nhận (sign-off), ngày nào. Validation phải có "bằng chứng" — chữ ký của business owner, biên bản workshop — chứ không phải cảm giác "chắc là ổn".

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

Lỗi 1 — Nhầm verification là đủ. Nhiều BA mới (đặc biệt người thiên về quy trình) rà template rất kỹ rồi tưởng đã xong. Tài liệu sạch sẽ nhưng vẫn có thể giải quyết sai vấn đề. Mẹo: sau khi verify xong, luôn tự hỏi "nếu ta làm đúng 100% cái này, business có thật sự tốt lên không?"

Lỗi 2 — Validate quá muộn. Đợi đến lúc UAT (User Acceptance Test) cuối dự án mới validate thì quá trễ — chi phí sửa lúc đó gấp 10-100 lần so với sửa ở giai đoạn requirement. Mẹo: validate sớm và liên tục, bằng wireframe và prototype rẻ tiền, ngay từ khi requirement còn trên giấy.

Lỗi 3 — Validate với sai người. Hỏi ý kiến người quản lý dự án thay vì người dùng cuối thật sự, hoặc chỉ hỏi một stakeholder "to mồm" nhất. Mẹo: lập danh sách stakeholder theo vai trò (người dùng, người trả tiền, người tuân thủ, người vận hành) và validate với từng nhóm.

Lỗi 4 — Chấp nhận từ ngữ mơ hồ vì nể stakeholder. Stakeholder nói "làm cho nó thân thiện hơn" và bạn ghi y nguyên vì ngại hỏi lại. Mẹo: luôn quy đổi định tính sang định lượng — "thân thiện hơn" nghĩa là "giảm số bước từ 5 xuống 3" hay "tăng điểm SUS từ 60 lên 80"?

Mẹo vàng cho ex-Sales: Trong Sales bạn có kỹ thuật "confirm lại nhu cầu trước khi báo giá" — lặp lại lời khách bằng ngôn ngữ của mình để họ xác nhận. Đây chính xác là validation. Hãy mang nguyên kỹ thuật này vào BA: sau mỗi buổi elicitation, tóm tắt lại "Em hiểu nhu cầu của anh là... đúng không ạ?" trước khi viết một dòng requirement nào.

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

Bài tập 1 — Verify. Lấy requirement sau và chỉ ra ít nhất 3 lỗi verification, rồi viết lại cho chuẩn: "Hệ thống cần load nhanh và cho phép người dùng dễ dàng tìm kiếm sản phẩm cũng như xem được lịch sử đơn hàng một cách thuận tiện."

Bài tập 2 — Validate. Cho bối cảnh: một sàn TMĐT muốn "tăng tỉ lệ hoàn tất thanh toán". BA đề xuất requirement "thêm nút thanh toán bằng QR code". Hãy viết 5 câu hỏi validation bạn sẽ đặt ra (với ai, để kiểm chứng điều gì) trước khi đồng ý requirement này là đúng.

Bài tập 3 — RTM mini. Chọn một tính năng quen thuộc (ví dụ "đăng nhập bằng số điện thoại + OTP"). Lập một bảng 4 cột: Requirement | Business objective | Stakeholder | Test case, với tối thiểu 3 dòng. Kiểm tra xem có requirement nào không nối được về objective không.

Bài tập 4 — Phân biệt thực chiến. Với mỗi tình huống sau, ghi rõ đó là lỗi verification hay validation: (a) tài liệu nói "lưu mỗi 30 giây" và "không tự lưu" cùng lúc; (b) tính năng làm đúng tài liệu nhưng người dùng không ai bật lên; (c) requirement viết "xử lý đơn hàng nhanh" không có con số; (d) hệ thống đáp ứng đủ spec nhưng vi phạm quy định bảo mật dữ liệu khách hàng.

Tóm tắt

Validation và verification là hai lớp kiểm soát chất lượng requirement không thể thiếu, và chúng trả lời hai câu hỏi khác nhau. Verification hỏi "ta đang viết requirement đúng cách không?" — đó là kiểm tra tính đơn nhất, đầy đủ, nhất quán, không mơ hồ, kiểm thử được, truy vết được, khả thi; hướng vào trong tài liệu. Validation hỏi "ta đang viết đúng requirement không?" — đó là đối chiếu với nhu cầu business thật, mục tiêu định lượng, stakeholder và cả ràng buộc tuân thủ; hướng ra ngoài.

Một tài liệu verify hoàn hảo vẫn có thể giải quyết sai vấn đề (như case PayViet); một requirement đúng nhu cầu vẫn có thể vỡ sprint vì mơ hồ (như case HRFlow); và đôi khi chỉ một vòng validation sâu mới cứu được cả dự án khỏi rủi ro pháp lý (như case bancassurance). Bạn cần cả hai, và bạn cần làm chúng sớm và liên tục, không đợi đến UAT.

Tin tốt cho người chuyển từ Sales/BD: bản năng "hiểu đúng nhu cầu khách trước khi chốt" của bạn chính là nền tảng validation mạnh mẽ mà nhiều BA kỹ thuật phải mất nhiều năm mới có. Điều bạn cần bổ sung là kỷ luật verification — sự tỉ mỉ trong câu chữ và logic. Ghép hai mảnh đó lại, bạn sẽ trở thành một BA vừa đảm bảo tài liệu chặt chẽ, vừa đảm bảo sản phẩm thật sự tạo ra giá trị.