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ừ Designer 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ộ requirements dày 40 trang cho dự án. Bạn viết rất mượt, đúng template, không sai chính tả. Team dev đọc xong gật gù, code trong ba sprint. Đến buổi demo, khách hàng nhìn màn hình và nói một câu lạnh người: "Cái này đúng như tôi mô tả, nhưng đây không phải thứ tôi cần." Đó chính là khoảnh khắc mà mọi BA đều phải học để tránh — và nó nằm gọn trong hai chữ tiếng Anh dễ nhầm lẫn nhất của nghề: verificationvalidation.

Với người từ nền Design chuyển sang, đây là một trong những kỹ năng dễ bị đánh giá thấp nhất. Khi còn làm designer, bạn quen với việc kiểm tra chất lượng bằng mắt — pixel có lệch không, spacing có đều không, flow có mượt không. Đó là bản năng verification rất tốt. Nhưng designer thường ít khi phải chịu trách nhiệm chứng minh rằng thứ mình làm ra thực sự giải quyết đúng vấn đề kinh doanh — phần đó thường do PO hoặc PM gánh. Khi thành BA, cả hai trách nhiệm đó dồn về bạn. Requirement viết ra không chỉ phải đúng chuẩn mà còn phải đúng nhu cầu. Bài này dạy bạn cách phân biệt và thực hành cả hai lớp kiểm soát chất lượng đó một cách có hệ thống, để bạn không bao giờ phải nghe câu nói lạnh người ở trên.

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

Cách dễ nhớ nhất mà tôi thường nói với học viên là hai câu hỏi khác nhau:

  • Verification trả lời câu hỏi: "Chúng ta có đang xây requirement ĐÚNG CÁCH không?" (Are we building the requirement right?)
  • Validation trả lời câu hỏi: "Chúng ta có đang xây ĐÚNG requirement không?" (Are we building the right requirement?)
Nghe qua thì giống nhau, nhưng chúng nằm ở hai tầng hoàn toàn khác.

Verification — kiểm tra chất lượng nội tại của requirement

Verification là quá trình kiểm tra xem một requirement, khi đứng riêng nó và trong tương quan với các requirement khác, có đạt chuẩn về mặt kỹ thuật viết hay không. Đây là bài kiểm tra "chất lượng của tài liệu", không cần hỏi stakeholder cũng làm được — bạn chỉ cần ngồi đọc kỹ.

Một requirement được verify tốt cần đạt các tiêu chí (BABOK gọi là các đặc tính chất lượng của requirement):

  • Atomic — mỗi requirement chỉ nói một điều, không gộp ba yêu cầu vào một câu.
  • Unambiguous (không mơ hồ) — không có từ kiểu "nhanh", "thân thiện", "phù hợp" mà không định lượng.
  • Testable / Verifiable — có thể viết được acceptance criteria kiểm chứng. Nếu không nghĩ ra cách test thì requirement đó chưa đạt.
  • Complete — đủ thông tin để dev hiểu và làm, không thiếu case xử lý lỗi, không thiếu trạng thái biên.
  • Consistent — không mâu thuẫn với requirement khác trong cùng bộ tài liệu.
  • Feasible — khả thi trong ràng buộc kỹ thuật, thời gian, ngân sách.
  • Prioritized — có mức ưu tiên rõ ràng.
Verification thường được làm qua peer review, walkthrough, checklistinspection. Nó hướng vào bản thân tài liệu.

Validation — kiểm tra requirement có mang lại giá trị thật không

Validation đứng cao hơn một tầng. Một requirement có thể hoàn hảo về mặt viết (verify pass 100%) nhưng vẫn sai, vì nó không phục vụ mục tiêu kinh doanh, không giải quyết nỗi đau thật của người dùng, hoặc không align với business objectives. Validation là quá trình xác nhận requirement đó thực sự đúng thứ tổ chức cần và mang lại giá trị.

Validation buộc bạn phải kéo requirement về đối chiếu với:

  • Business objectives / mục tiêu chiến lược — requirement này đóng góp vào KPI nào? Nếu không trả lời được, có thể nó thừa.
  • Nhu cầu thật của stakeholder — không phải cái họ nói muốn, mà cái họ thực sự cần.
  • Ràng buộc và giả định — các assumption ngầm có còn đúng không.
Validation làm qua review với stakeholder, prototype, mô phỏng, acceptance criteria được ký duyệt, và đôi khi qua chính dữ liệu người dùng.

Điểm mấu chốt cần khắc cốt: verify trước, validate sau — nhưng phải làm cả hai. Bỏ verification, bạn giao tài liệu rác cho dev. Bỏ validation, bạn xây một sản phẩm hoàn hảo mà không ai cần.

Tình huống thực tế

Ví dụ 1 — Requirement verify pass nhưng validate fail (một ví BĐS PropTech)

Một startup PropTech tại TP.HCM (gọi là "NhàTốt") muốn tăng tỷ lệ khách để lại số điện thoại trên trang chi tiết bất động sản. BA — vốn là UX designer chuyển sang — viết requirement: "Hệ thống phải hiển thị pop-up thu thập số điện thoại sau khi người dùng ở trên trang chi tiết quá 15 giây. Pop-up phải đóng được bằng nút X. Số điện thoại phải đúng định dạng 10 số Việt Nam."

Requirement này verify rất đẹp: atomic, có ngưỡng 15 giây định lượng rõ, testable, đủ case. Dev làm trong một sprint. Nhưng sau hai tuần A/B test, tỷ lệ lead giảm 8%, bounce rate tăng 12%. Vì sao? Vì validation không được làm. Mục tiêu kinh doanh là tăng lead chất lượng, còn giải pháp pop-up cưỡng ép lại làm phiền đúng nhóm khách nghiêm túc đang đọc kỹ thông tin. Requirement "đúng cách" nhưng "sai bản chất".

Bài học: Verification không cứu bạn khỏi một ý tưởng sai. Nếu BA đã ngồi lại validate với data team và hỏi "requirement này có thực sự phục vụ mục tiêu tăng lead chất lượng không, hay chỉ tăng số lượng lead rác?", cả sprint đã được cứu. Sau này NhàTốt chuyển sang form nhúng inline kèm ưu đãi báo giá — lead tăng 20%.

Ví dụ 2 — Validate đúng nhưng verify fail (ngân hàng số)

Tại một ngân hàng số ở Hà Nội, business sponsor muốn "cải thiện trải nghiệm mở tài khoản để giảm tỷ lệ bỏ dở eKYC". Đây là một mục tiêu đã được validate rất tốt — data cho thấy 34% người dùng bỏ dở ở bước chụp CCCD. BA viết requirement: "Bước chụp CCCD cần thân thiện và nhanh hơn, giúp người dùng dễ hoàn thành."

Requirement này validate đúng hướng (nhắm đúng nỗi đau), nhưng verify fail thảm hại. "Thân thiện" là gì? "Nhanh hơn" là bao nhiêu giây? Dev không biết làm gì, mỗi người hiểu một kiểu. Kết quả: ba vòng làm đi làm lại, trễ hai sprint.

Sau khi verify lại, BA viết thành: "Khi người dùng chụp CCCD, hệ thống tự phát hiện cạnh giấy tờ và tự chụp trong vòng 2 giây khi 4 góc nằm trong khung; nếu ảnh mờ (blur score dưới ngưỡng X), hiển thị thông báo 'Ảnh chưa rõ, vui lòng chụp lại' và cho chụp lại tối đa 3 lần." Bây giờ dev biết chính xác phải làm gì, QA biết test gì.

Bài học: Validation trả lời "làm cái gì và tại sao", verification đảm bảo "cái đó viết ra đủ rõ để làm". Thiếu một trong hai, dự án đều đau.

Ví dụ 3 — Consistency check bắt lỗi âm thầm (e-commerce)

Một sàn e-commerce (giả định "ShopViet") có bộ requirements cho tính năng hoàn tiền. Ở module Đơn hàng viết: "Khách được hoàn tiền trong vòng 7 ngày kể từ khi nhận hàng." Ở module Ví điện tử lại viết: "Yêu cầu hoàn tiền được xử lý nếu gửi trong vòng 3 ngày làm việc kể từ ngày giao thành công." Hai requirement này mâu thuẫn về mốc thời gian và cách tính (ngày lịch vs ngày làm việc).

Không ai để ý vì hai module do hai BA khác nhau viết. Đến khi khách khiếu nại ở ngày thứ 5, tổng đài không biết áp chính sách nào. Đây chính là lỗi consistency — thứ mà một buổi verification cross-module đơn giản bằng cách rà từ khóa "hoàn tiền" trên toàn bộ tài liệu sẽ bắt được ngay.

Bài học: Verification không chỉ soi từng requirement riêng lẻ mà còn phải soi tính nhất quán giữa các requirement. Đây là nơi requirement traceability và một buổi review chéo giữa các BA trở nên vô giá.

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

Đây là quy trình tôi khuyên bạn áp dụng mỗi khi hoàn thành một cụm requirement, trước khi bàn giao cho dev:

Bước 1 — Verify từng requirement bằng checklist. Đi qua từng requirement với checklist chất lượng: Atomic? Unambiguous? Testable? Complete? Consistent? Feasible? Prioritized? Bất kỳ ô nào không tick được là một cờ đỏ. Đặc biệt truy các từ mơ hồ: "nhanh", "dễ dùng", "tối ưu", "linh hoạt", "real-time", "nhiều". Mỗi từ này phải được thay bằng con số hoặc điều kiện cụ thể.

Bước 2 — Kiểm tra tính testable bằng cách viết thử acceptance criteria. Với mỗi requirement, thử viết một AC theo dạng Given–When–Then. Nếu bạn không viết nổi AC, requirement đó chưa verify được — nghĩa là dev cũng sẽ không làm được và QA không test được. Đây là mẹo lọc requirement mơ hồ hiệu quả nhất.

Bước 3 — Verify tính nhất quán chéo (consistency). Rà cross-reference: các requirement có mâu thuẫn về số liệu, thời gian, quyền hạn, trạng thái không? Dùng RTM (requirement traceability matrix) hoặc đơn giản là tìm từ khóa lặp lại giữa các module như ví dụ ShopViet ở trên.

Bước 4 — Validate ngược lên business objectives. Với mỗi requirement (hoặc mỗi nhóm), hỏi: nó phục vụ mục tiêu kinh doanh nào? KPI nào? Vẽ một bảng đơn giản: cột trái là requirement, cột phải là business objective mà nó đóng góp. Requirement nào không map được vào objective nào là ứng viên bị cắt hoặc phải chất vấn lại.

Bước 5 — Validate với stakeholder bằng công cụ trực quan. Đây là lúc lợi thế designer của bạn tỏa sáng. Đừng bắt stakeholder đọc 40 trang text để xác nhận. Dùng prototype, wireframe, mock, hoặc walkthrough kịch bản để họ "thấy" và phản hồi. Validation qua prototype rẻ và nhanh hơn validation qua sản phẩm thật gấp nhiều lần.

Bước 6 — Chốt bằng sign-off có điều kiện rõ ràng. Ghi lại ai duyệt, duyệt cái gì, dựa trên giả định nào. Sign-off không phải thủ tục hành chính — nó là bằng chứng validation đã diễn ra và là mốc để quản lý change sau này.

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

Lỗi 1 — Đánh đồng verification với validation. Nhiều BA mới (và cả người có kinh nghiệm) nghĩ "review requirement" là một việc duy nhất. Không. Review chất lượng viết (verify) và review giá trị kinh doanh (validate) là hai buổi, hai tư duy, có khi hai nhóm người khác nhau. Đừng gộp làm một cho nhanh.

Lỗi 2 — Validate quá muộn. Chờ đến khi sản phẩm chạy mới hỏi "cái này có đúng không" là cực kỳ đắt. Validate sớm bằng prototype ngay từ khi requirement còn trên giấy.

Lỗi 3 — Coi stakeholder nói gì là validation xong. Stakeholder gật đầu không có nghĩa requirement đúng. Họ có thể gật vì lịch sự, vì không đọc kỹ, hoặc vì không phải người dùng cuối thật. Validation tốt nhất đối chiếu với hành vi và dữ liệu người dùng, không chỉ ý kiến.

Lỗi 4 — Bỏ qua giả định (assumptions). Rất nhiều requirement dựa trên giả định ngầm chưa được kiểm chứng ("người dùng luôn có internet", "khách luôn có email"). Validation phải lôi các giả định này ra ánh sáng và xác nhận.

Mẹo tận dụng nền Design: Bản năng "test bằng cách cho người ta thấy" của designer chính là công cụ validation mạnh nhất. Trong khi các BA khác validate bằng cuộc họp dài, bạn có thể validate bằng một clickable prototype trong 30 phút. Hãy biến điểm mạnh cũ thành vũ khí mới.

Mẹo về từ ngữ: Lập một "danh sách từ cấm" cho riêng bạn — những từ mơ hồ hay xuất hiện trong requirement của bạn. Mỗi lần viết trúng một từ trong danh sách, dừng lại và định lượng nó ngay.

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

  • Phân loại V&V. Lấy 5 requirement bất kỳ từ một dự án cũ (hoặc tự bịa). Với mỗi requirement, viết ra một hành động verification và một hành động validation cụ thể mà bạn sẽ làm. Mục tiêu: cảm nhận rõ hai tầng khác nhau.
  • Bắt lỗi verification. Cho requirement sau: "Hệ thống phải xử lý thanh toán nhanh và hỗ trợ nhiều phương thức phổ biến, đảm bảo trải nghiệm mượt mà cho người dùng." Hãy chỉ ra ít nhất 4 vi phạm tiêu chí chất lượng (unambiguous, testable, atomic, complete...) và viết lại thành một requirement đạt chuẩn kèm một acceptance criteria Given–When–Then.
  • Validation ngược mục tiêu. Chọn một tính năng bạn từng thiết kế khi còn làm designer. Viết ra business objective mà nó đáng lẽ phục vụ, rồi tự chất vấn: nếu validate nghiêm túc, tính năng đó có được giữ lại không? Nếu không, đề xuất một giải pháp thay thế phục vụ objective tốt hơn.
  • Consistency hunt. Lấy hai module bất kỳ có chung một khái niệm (ví dụ "hoàn tiền", "phí giao hàng", "hạn mức"). Rà xem có mâu thuẫn về số liệu/quy tắc không, và viết ra cách bạn sẽ đưa vào RTM để tránh tái diễn.

Tóm tắt

Verification hỏi "requirement có đúng và đủ không?" — nó soi chất lượng nội tại của tài liệu: atomic, không mơ hồ, testable, complete, consistent, feasible. Validation hỏi "đây có phải requirement đúng không?" — nó soi giá trị kinh doanh: requirement có phục vụ đúng mục tiêu, đúng nhu cầu thật của stakeholder và người dùng không.

Hai lớp kiểm soát này độc lập nhưng bắt buộc phải làm cả hai. Một requirement verify pass mà validate fail sẽ cho ra sản phẩm hoàn hảo mà vô dụng (như pop-up của NhàTốt). Một requirement validate đúng mà verify fail sẽ khiến dự án trễ vì dev không hiểu phải làm gì (như bước eKYC của ngân hàng). Quy trình an toàn là: verify từng requirement bằng checklist, dùng acceptance criteria để lọc thứ mơ hồ, rà consistency chéo, rồi validate ngược lên business objectives và validate sớm với stakeholder bằng prototype.

Với người từ Design chuyển sang, tin tốt là bạn đã có sẵn hai nửa của kỹ năng này: con mắt soi chi tiết (nền tảng của verification) và thói quen kiểm chứng bằng prototype (vũ khí của validation). Việc còn lại là làm cả hai một cách kỷ luật và có hệ thống — và bạn sẽ không bao giờ phải nghe câu "đúng như tôi mô tả, nhưng không phải thứ tôi cần" nữa.