Trong nhiều dự án, BA viết rất nhiều tài liệu, user story được hoàn thành đúng hạn, test case tick xanh toàn bộ. Hệ thống go-live nghe có vẻ hoàn hảo. Nhưng rồi… phản hồi bắt đầu đổ về:
  • “Sao chạy chậm vậy?”
  • “Giao diện khó dùng quá.”
  • “Ops không xem log được, không biết lỗi ở đâu.”
  • “Bảo mật hơi lo ngại nha.”
Lúc này, thứ thiếu không phải tính năng. Thứ thiếu chính là Non-Functional Requirements (NFRs) – các yêu cầu về tốc độ, bảo mật, khả dụng, tính dễ dùng, khả năng vận hành…
 
Nói cách khác: không phải hệ thống làm gì, mà là làm tốt tới mức nào. Vậy BA cần viết NFR thế nào để developer thật sự dùng, QA thật sự test và Ops thật sự giám sát? Bài blog này hướng dẫn bạn từng bước, kèm ví dụ cụ thể. Hãy cùng BAC khám phá trong bài viết dưới đây.
 

1. Hiểu đúng Non-Functional Requirements “Làm tốt tới mức nào”
  • Functional Requirements = Hệ thống làm gì.
  • Non-Functional Requirements = Hệ thống làm tốt thế nào, trong bối cảnh nào, và dưới điều kiện gì.
Ví dụ:
  • Functional: “Hiển thị số dư tài khoản.”
  • Non-functional: “95% yêu cầu từ 18h–22h phản hồi trong ≤2 giây.”
  • Chỉ thêm 1 câu NFR nhỏ, toàn bộ kiến trúc, test và monitoring đều thay đổi.
NFR thất bại trong thực tế vì:
  • Viết quá mơ hồ (“nhanh”, “bảo mật”, “thân thiện”)
  • Không đo lường được
  • Không ai test được
  • Dev/QA/Ops chưa bao giờ xác nhận tính khả thi
  • Tài liệu bị chôn ở nơi không ai đọc
Nhiệm vụ của BA không phải viết văn hay, mà là viết đủ rõ và đủ đo lường.
 
2. Xác định những thuộc tính chất lượng thật sự quan trọng
Không dự án nào giống dự án nào. Có dự án ưu tiên performance, có dự án ưu tiên bảo mật, có dự án cần usability vượt trội.
 
Câu hỏi “vàng” dành cho stakeholder: “Nếu mọi tính năng hoạt động đúng, điều gì vẫn có thể khiến hệ thống thất bại?”
 
Từ câu hỏi này, bạn sẽ nhanh chóng biết nên tập trung vào:
  • Performance?
  • Security?
  • Usability?
  • Availability?
  • Operability?
Hãy tập hợp product owner, tech lead, QA và ops. Mỗi người chọn 3 thuộc tính quan trọng nhất. Nơi nào nhiều phiếu nhất là nơi bạn đầu tư NFR.
 
3. Ghi nhận scenario, không ghi nhận tính từ
Hầu hết stakeholder nói: “Làm sao cho nó nhanh, bảo mật và dễ dùng nha.”
Không có BA nào viết NFR tốt bằng cách ghi chép đúng những gì họ nói.
 
Hãy chuyển tính từ thành kịch bản:
Template gợi ý: “Trong bối cảnh [context], khi [trigger], hệ thống sẽ [phản hồi], đo bằng [chỉ số].”
Ví dụ:
  • “Giờ cao điểm, khi người dùng kiểm tra số dư, trang phải hiển thị trong vài giây.”
  • “Chỉ nhân viên X mới xem được dữ liệu Y.”
  • “Người dùng lần đầu có thể tự đăng ký mà không hỏi ai.”
  • “Khi batch lỗi, đội trực phải biết ngay lỗi gì, job nào, lúc nào.”
Thu thập càng nhiều scenario, bạn càng có nhiều nguyên liệu để viết NFR hay.
 
4. Biến scenario thành NFR đo lường được
Giờ là lúc thêm con số, điều kiện, bối cảnh.
Các yếu tố BA cần học cách dùng:
  • Thời gian: ≤2 giây, trong 15 phút, trong 5 phút
  • Phần trăm: 90%, 95%, 99.5%
  • Số lượng: 5.000 user, 10.000 transaction
  • Quyền hạn: role nào được xem/được làm gì
Một vài ví dụ rõ ràng:
Ví dụ cho việc biến scenario thành NFR đo lường được
  • Performance: “95% yêu cầu xem số dư phản hồi ≤2 giây với 5.000 user đồng thời trong giờ cao điểm.”
  • Security: “Khóa tài khoản sau 5 lần sai mật khẩu trong 15 phút; log phải có timestamp + IP.”
  • Usability: “85% người dùng lần đầu hoàn tất đăng ký trong ≤5 phút, không cần trợ giúp.”
  • Operability: “Mỗi microservice phải có /health để monitoring lấy CPU, memory, error rate.”
Viết như vậy, dev hiểu họ phải đạt mục tiêu gì. QA hiểu họ phải test thế nào.
 
5. Xác nhận tính khả thi với Dev – QA – Ops
Đừng gửi tài liệu rồi coi như xong.
Hãy hỏi:
  • “Test case để test yêu cầu này là gì?”
  • “Kiến trúc hiện tại có đáp ứng không?”
  • “Nếu tăng ngưỡng lên 2 → 3 giây, hiệu suất có thay đổi gì?”
  • “Monitoring có hỗ trợ không?”
Đây là bước giúp NFR trở thành “tài liệu sống” được cả team đồng thuận.
 
6. Đặt NFR ở nơi mọi người thật sự đọc
Đừng để NFR nằm ở file 40 trang mà không ai mở.
Hãy tạo:
  • Một NFR Catalog
  • Story, test case, dashboard đều tham chiếu NFR bằng ID
Cấu trúc đơn giản:
  • NFR-001 – Performance – Thời gian phản hồi trang số dư ≤2 giây
  • NFR-002 – Security – TLS 1.2+ cho toàn bộ endpoint
Lúc đó story sẽ có: “Acceptance Criteria: tuân theo NFR-001, NFR-002”
Và QA/test sẽ bám ID đó.
 
7. Checklist nhanh để kiểm tra NFR
  • Có đo được không?
  • Có ghi rõ bối cảnh không?
  • Có test được không?
  • Dev/QA/Ops đã đồng thuận chưa?
  • Có ID và được lưu ở nơi dễ thấy chưa?
Nếu câu trả lời là “Có”, thì NFR bạn viết đã thực sự hữu ích.
 
8. Kết luận
NFR không phải phần phụ của tài liệu nó là phần quyết định một sản phẩm có dùng được hay không.
Khi bạn viết NFR đủ rõ ràng, đủ đo lường, đủ khả thi:
  • Dev dễ thiết kế
  • QA dễ test
  • Ops dễ giám sát
  • Người dùng hài lòng hơn
Quan trọng nhất là khi hệ thống go-live, bạn không phải nghe câu “Ủa sao chậm vậy?”, mà sẽ nghe:
“Hệ thống chạy đúng như kỳ vọng.” Và đó chính là giá trị thật sự của một BA giỏi. Hãy theo dõi BAC's Blog để cập nhật thêm nhiều thông tin hữu ích nhé!
 

Nguồn tham khảo:
https://modernanalyst.com/Resources/Articles/tabid/115/ID/7107/Writing-Non-Functional-Requirements-That-Developers-Actually-Use.aspx

Nhu cầu đào tạo doanh nghiệp

BAC là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của IIBA quốc tế. Ngoài các khóa học public, BAC còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.
 

CÁC KHOÁ HỌC BUSINESS ANALYST BACs.VN DÀNH CHO BẠN

Khoá học Online:

Khoá học Offline:

Tại Tp.HCM:

Tại Hà Nội:

Tham khảo lịch khai giảng TẤT CẢ các khóa học mới nhất

Ban biên tập nội dung - BAC