Trong kỷ nguyên chuyển đổi số, các doanh nghiệp đua nhau xây dựng phần mềm, ứng dụng và hệ thống quản trị (ERP, CRM). Tuy nhiên, theo báo cáo CHAOS Report của The Standish Group, chỉ có khoảng 30% dự án CNTT thành công trọn vẹn (đúng hạn, đúng ngân sách, đúng chức năng). Một trong những nguyên nhân hàng đầu dẫn đến thất bại (chiếm tới 40-50%) là “Incomplete Requirements” (Yêu cầu không đầy đủ) hoặc “Changing Requirements” (Yêu cầu thay đổi liên tục).
Vậy bản chất Requirement là gì? Tại sao nó lại có quyền năng sinh sát đối với một dự án trị giá hàng tỷ đồng? Làm thế nào để định nghĩa, phân loại và quản lý nó hiệu quả? Bài viết này sẽ phân tích tường tận dưới góc độ của một chuyên gia tư vấn doanh nghiệp.
Chương 1: Định nghĩa chuyên sâu – Requirement là gì?
Khái niệm cơ bản
Ở mức độ sơ cấp, Requirement (Yêu cầu) là mong muốn của người dùng về sản phẩm. Ví dụ: “Tôi muốn một ứng dụng bán hàng”.

Tuy nhiên, trong môi trường doanh nghiệp chuyên nghiệp, định nghĩa này là chưa đủ. Theo BABOK (Business Analysis Body of Knowledge) – cuốn “kinh thánh” của nghề Phân tích nghiệp vụ, Requirement là:
Điều kiện hoặc năng lực cần thiết của một bên liên quan (Stakeholder) để giải quyết một vấn đề hoặc đạt được một mục tiêu.
Điều kiện hoặc năng lực phải được đáp ứng hoặc sở hữu bởi một giải pháp (Solution) hoặc thành phần của giải pháp để thỏa mãn một hợp đồng, tiêu chuẩn, đặc tả.
Tài liệu hóa của các điều kiện và năng lực nêu trên.
Góc nhìn chuyên gia: Hãy hình dung Requirement giống như bản vẽ kiến trúc của một tòa nhà chọc trời. Bạn không thể nói với đội xây dựng rằng “Hãy xây cho tôi một tòa nhà đẹp”. Bạn cần chỉ rõ: Tòa nhà cao bao nhiêu mét? Chịu được động đất cấp mấy? Dùng kính cường lực loại gì? Hệ thống thoát nước ra sao?
Trong phần mềm cũng vậy, Requirement là cầu nối phiên dịch ngôn ngữ “kinh doanh” (Business) sang ngôn ngữ “kỹ thuật” (Technical).
Tại sao Requirement lại là “trái tim” của dự án?
Nếu Requirement bị sai, toàn bộ quy trình phía sau (Design -> Code -> Test -> Deploy) đều trở nên vô nghĩa.
Đối với Chủ doanh nghiệp: Requirement xác định ROI (Tỷ suất hoàn vốn). Nếu yêu cầu sai, sản phẩm làm ra không ai dùng -> Lỗ vốn.
Đối với Quản lý dự án (PM): Requirement là cơ sở để ước lượng (Estimation) thời gian và chi phí.
Đối với Lập trình viên (Dev): Requirement là đề bài. Không có đề bài rõ ràng, họ không thể viết mã nguồn chính xác.
Đối với Tester (QC): Requirement là cơ sở để bắt lỗi (Bug). Nếu không có yêu cầu chuẩn, Tester không biết dựa vào đâu để nói phần mềm đang chạy sai.
Chương 2: Mô hình phân cấp Requirement (Requirement Pyramid)
Để quản trị tốt, bạn không thể ném tất cả yêu cầu vào một rổ. Chúng ta cần phân tầng theo mô hình kim tự tháp, đi từ chiến lược vĩ mô đến chi tiết vi mô.

Business Requirements (Yêu cầu kinh doanh) – Tầng “Why”
Đây là tầng cao nhất, xuất phát từ Ban lãnh đạo hoặc Nhà đầu tư. Nó không nói về tính năng phần mềm, mà nói về mục tiêu chiến lược.
Câu hỏi cốt lõi: Tại sao chúng ta bỏ tiền làm dự án này? Vấn đề hiện tại là gì?
Ví dụ:
“Công ty cần giảm tỷ lệ khách hàng rời bỏ (Churn rate) từ 10% xuống 5% trong năm 2024.”
“Hệ thống mới phải giúp giảm chi phí vận hành kho bãi đi 15%.”
Tài liệu: Thường nằm trong Project Charter (Hiến chương dự án) hoặc Business Case.
Stakeholder Requirements (Yêu cầu các bên liên quan) – Tầng “Who & What”
Tầng này mô tả nhu cầu của những người trực tiếp sử dụng hoặc chịu ảnh hưởng bởi hệ thống (Users, Managers, Admins, Customers…).
Câu hỏi cốt lõi: Người dùng cần làm gì để đạt được mục tiêu kinh doanh ở trên?
Ví dụ:
“Nhân viên chăm sóc khách hàng cần xem được lịch sử mua hàng của khách trong vòng 3 giây để tư vấn nhanh.”
“Kế toán trưởng cần xuất báo cáo doanh thu hàng tháng tự động.”
Solution Requirements (Yêu cầu giải pháp) – Tầng “How”
Đây là tầng quan trọng nhất để đội ngũ kỹ thuật (Dev Team) làm việc. Nó mô tả các đặc tính cụ thể của sản phẩm. Tầng này được chia làm 2 nhánh lớn:
a. Functional Requirements (Yêu cầu chức năng)
Mô tả hành vi của hệ thống. Hệ thống sẽ làm gì khi người dùng tương tác?
Dạng thức: Đầu vào (Input) -> Xử lý (Process) -> Đầu ra (Output).
Ví dụ:
“Hệ thống phải cho phép người dùng đăng nhập bằng tài khoản Google.”
“Khi người dùng nhấn nút ‘Thanh toán’, hệ thống phải kiểm tra số dư trong ví điện tử.”
“Hệ thống gửi email xác nhận đơn hàng sau khi thanh toán thành công.”
b. Non-functional Requirements (Yêu cầu phi chức năng) – Quality of Service
Mô tả chất lượng và điều kiện môi trường của hệ thống. Đây là phần thường bị bỏ quên nhưng lại quyết định trải nghiệm người dùng (UX). Thường được nhớ bằng mô hình FURPS+:
Performance (Hiệu năng): Trang web phải tải xong trong dưới 1.5 giây. Hệ thống chịu được 10.000 người truy cập cùng lúc (CCU).
Security (Bảo mật): Mật khẩu phải được mã hóa chuẩn SHA-256. Dữ liệu khách hàng không được lộ ra ngoài.
Availability (Tính sẵn sàng): Hệ thống hoạt động 24/7, thời gian chết (downtime) không quá 2 tiếng/năm.
Usability (Tính dễ dùng): Người dùng mới có thể thực hiện mua hàng mà không cần đọc hướng dẫn sử dụng.
Transition Requirements (Yêu cầu chuyển đổi)
Đây là loại yêu cầu tạm thời, chỉ tồn tại trong giai đoạn chuyển giao từ hệ thống cũ sang hệ thống mới.
Ví dụ:
“Cần di chuyển (Migrate) 5 năm dữ liệu lịch sử từ phần mềm Excel cũ sang hệ thống ERP mới.”
“Cần đào tạo cho 50 nhân viên sử dụng thành thạo hệ thống trước ngày Go-live.”
Chương 3: Quy trình Kỹ nghệ Yêu cầu (Requirement Engineering Process)
Để có được bộ Requirement chuẩn chỉnh, doanh nghiệp cần tuân thủ quy trình 4 bước E-A-D-V. Bỏ qua bất kỳ bước nào cũng là mầm mống của thất bại.

Bước 1: Elicitation (Khơi gợi yêu cầu)
Nhiều người lầm tưởng bước này là “Thu thập” (Gathering). “Thu thập” nghe như việc đi nhặt sỏi, sỏi có sẵn chỉ việc nhặt. Nhưng thực tế, khách hàng thường… không biết mình muốn gì, hoặc diễn đạt sai ý. Vì vậy, ta phải dùng từ “Khơi gợi”.
Kỹ thuật sử dụng:
Phỏng vấn 1-1: Đào sâu vấn đề với các key person.
Workshop/Brainstorming: Tập hợp các phòng ban để thống nhất ý kiến (tránh việc Sale nói A, Marketing nói B).
Observation (Quan sát): Đến tận nơi xem nhân viên làm việc để thấy những “nỗi đau” (pain points) mà họ quên không kể.
Prototyping (Làm mẫu): Vẽ phác thảo giao diện để khách hàng dễ hình dung.
Bước 2: Analysis (Phân tích yêu cầu)
Sau khi có một đống thông tin hỗn độn từ bước 1, BA cần ngồi lại để phân tích.
Phân loại: Đâu là chức năng, đâu là phi chức năng?
Mô hình hóa (Modeling): Vẽ sơ đồ quy trình (Flowchart), sơ đồ Use Case, sơ đồ dữ liệu (ERD). Một hình ảnh đáng giá ngàn lời nói.
Xác định độ ưu tiên (Prioritization): Dùng phương pháp MoSCoW để quyết định:
Must have: Bắt buộc phải có (nếu không có thì dự án vứt đi).
Should have: Nên có (quan trọng nhưng chưa gấp).
Could have: Có thì tốt (làm đẹp thêm).
Won’t have: Sẽ không làm trong giai đoạn này.
Bước 3: Documentation (Tài liệu hóa)
Viết tất cả những gì đã phân tích vào tài liệu chính thức. Có 2 loại tài liệu phổ biến:
BRD (Business Requirement Document): Tập trung vào mục tiêu kinh doanh (Dành cho Sếp đọc).
SRS (Software Requirements Specification): Tài liệu đặc tả phần mềm chi tiết (Dành cho Dev/Tester đọc). Đây là “kinh thánh” của dự án.
Bước 4: Validation & Verification (Kiểm định và Xác nhận)
Verification: Đảm bảo tài liệu viết đúng chuẩn, không lỗi chính tả, logic chặt chẽ.
Validation: Đem tài liệu này quay lại hỏi khách hàng/Stakeholder: “Đây có đúng là ý của anh/chị không?”. Bước này cần có chữ ký xác nhận (Sign-off) để chốt phạm vi (Scope), tránh tranh cãi sau này.
Chương 4: Tiêu chuẩn của một Requirement chất lượng (SMART)
Làm sao để biết một câu Requirement viết ra là tốt hay dở? Hãy soi chiếu vào tiêu chuẩn SMART hoặc INVEST (trong Agile).

Một Requirement tốt phải đảm bảo các yếu tố:
Specific (Cụ thể): Không mơ hồ.
Sai: “Hệ thống phải chạy nhanh.” (Nhanh là bao nhiêu?)
Đúng: “Trang chủ phải tải xong trong dưới 2 giây với đường truyền 4G.”
Measurable (Đo lường được): Phải có cách để kiểm tra (Test).
Sai: “Giao diện thân thiện.” (Cảm tính).
Đúng: “Người dùng có thể tìm thấy nút ‘Mua hàng’ trong vòng 5 giây.”
Attainable (Khả thi): Phù hợp với ngân sách và công nghệ hiện tại.
Sai: “Hệ thống phải dự đoán chính xác 100% hành vi mua hàng của khách.” (Không AI nào làm được 100%).
Relevant (Liên quan): Phục vụ mục tiêu kinh doanh. Đừng thêm tính năng thừa thãi chỉ vì “thấy hay”.
Traceable (Có thể truy vết): Phải biết yêu cầu này xuất phát từ ai? Phục vụ mục tiêu nào? Code ở đâu?
Chương 5: Những sai lầm “chết người” khi làm Requirement
Dưới kinh nghiệm tư vấn doanh nghiệp, tôi thấy có 3 cái bẫy lớn nhất:

Scope Creep (Phình phạm vi)
Đây là cơn ác mộng của mọi PM. Dự án ban đầu định làm cái A, nhưng trong quá trình làm, khách hàng cứ thêm cái B, cái C nhỏ nhỏ… Cuối cùng dự án trễ hạn 6 tháng.
Giải pháp: Kiểm soát chặt chẽ Change Request (Yêu cầu thay đổi). Bất cứ thay đổi nào cũng phải đánh giá tác động đến chi phí và thời gian.
Ambiguity (Sự mơ hồ)
Dùng những từ ngữ đa nghĩa như: “tối ưu hóa”, “thông thường”, “tùy ý”, “linh hoạt”.
Ví dụ: “Hệ thống hỗ trợ xuất báo cáo linh hoạt”. Dev sẽ hiểu là xuất ra Excel, Khách hàng lại muốn xuất ra PDF và tự chỉnh cột. -> Conflict.
“Solutioning” quá sớm
Thay vì nói về nhu cầu (Problem), khách hàng lại chỉ đạo luôn giải pháp (Solution).
Khách hàng nói: “Tôi muốn cái nút này màu đỏ to đùng.”
BA giỏi sẽ hỏi: “Tại sao anh muốn màu đỏ?”
Khách hàng trả lời: “Vì nhân viên hay bấm nhầm nút bên cạnh.” -> Vấn đề là bố cục dễ nhầm lẫn, giải pháp có thể là tách xa nút ra chứ không nhất thiết là làm màu đỏ.
Chương 6: Vai trò của Business Analyst (BA) trong quản lý Requirement
Người nắm giữ linh hồn của Requirement chính là Business Analyst.
Cầu nối giao tiếp: BA phải biết nói “tiếng người” với khách hàng và nói “tiếng máy” với đội Dev.
Tư duy phản biện: BA không phải là thư ký ghi chép (Order Taker). BA là người tư vấn. Nếu khách hàng đưa ra yêu cầu vô lý hoặc không mang lại giá trị, BA phải biết phản biện và định hướng lại.
Kỹ năng công cụ: Sử dụng thành thạo Jira, Confluence, Draw.io, Visio, Figma để trực quan hóa yêu cầu.
Kết luận
Requirement là gì? Nó không chỉ là một danh sách các tính năng gạch đầu dòng. Nó là sự cam kết, là sự thấu hiểu nỗi đau của doanh nghiệp và là bản thiết kế cho sự thành công của sản phẩm công nghệ.
Trong một dự án, chi phí để sửa lỗi ở giai đoạn Requirement chỉ tốn 1 đồng, nhưng nếu để lỗi đó trôi đến giai đoạn Vận hành (Production), chi phí sửa chữa có thể tốn tới 100 đồng, chưa kể uy tín thương hiệu bị sụp đổ.
Vì vậy, lời khuyên của tôi dành cho các doanh nghiệp: Hãy “chậm” ở giai đoạn làm Requirement để có thể “nhanh” ở giai đoạn về đích. Đầu tư vào đội ngũ BA chất lượng và quy trình lấy yêu cầu bài bản là khoản đầu tư sinh lời nhất cho mọi dự án phần mềm.

HAY