Non-Function Requirement Là Gì? Vì Sao Business Analyst Cần Biết Về Loại Yêu Cầu Này?
- September 23, 2023
- by
- Tony Nguyen
Ở bài viết về 4 loại yêu cầu phổ biến cho Business Analyst Phúc đã mô tả cách phân loại về yêu cầu dành cho BA. Trong đó Phúc có nhắc đến loại Solution Requirements hay trước đây còn gọi là Software Requirement. Trong đó mình có nhắc đến Solution Requirements có 2 loại yêu cầu chính đó là:
- Function Requirement – Hay còn gọi là yêu cầu chức năng, mô tả những chức năng mà hệ thống có.
- Non-Function Requirement – Hay còn gọi là những yêu cầu phi chức năng của hệ thống.
Bài viết này Phúc sẽ chia sẻ cho các bạn sâu hơn về Non-Function Requirement. Lý do mình muốn chia sẻ sâu hơn về nội dung này là vì gần đây Phúc có làm nhiều yêu cầu phi chức năng khá khó như bảo mật, tải của hệ thống. Và với góc nhìn của Phúc thì yêu cầu người dùng về các yêu cầu phi chức năng hiện tại đang ngày càng cao, gắn liền với trải nghiệm người dùng. Phần mềm bây giờ không chỉ là chạy được mà còn phải chạy tốt, mang lại cảm giác an toàn và thoải mái. Những yêu cầu phi chức năng như tính bảo mật, tốc độ xử lý được yêu cầu rất cao.
Nonfunctional Requirements là gì
Khi BA bắt đầu tìm hiểu yêu cầu, tiếp cận dự án thì đa phần chúng ta thường tập trung khá nhiều vào chức năng của hệ thống, của phần mềm mà người dùng sử dụng.
Đặc biệt với mô hình start up công nghệ tinh gọn, chạy theo Agile thì sản phẩm lúc mới tung ra thị trường sẽ hỗ trợ, đáp ứng, giải quyết một yêu cầu kinh doanh thực tế nào đó.
Chúng ta sẽ ưu tiên những tính năng mà người dùng cần trước. Nói dễ hiểu là có sản phẩm để người dùng trải nghiệm, đáp ứng đúng nhu cầu của người dùng trước khi phát triển các tính năng tiếp theo bởi nguồn lực tiền bạc và nhân lực có hạn.
Bên cạnh những tính năng chính cần được mô tả tập trung, chính xác thì có một loại yêu cầu BA không thể bỏ qua đó là NFR – Nonfunctional Requirements.
Non- Function Requirement (NFR) hay còn gọi là yêu cầu phi chức năng. Non- Function Requirement là tập hợp các thuộc tính giúp nâng cao chất lượng của một hệ thống phần mềm.
Một bộ tài liệu có đủ danh sách Function Requirement và Non-Function Requirement sẽ giúp cho dự án giảm thiểu rủi ro, đáp ứng đúng mong đợi từ phía khách hàng hơn.
Người sử dụng phần mềm sẽ đánh giá chất lượng của phần mềm thông qua các yếu tố như tính đáp ứng, tính dễ dùng, khả năng bảo mật hệ thống, tính di động, tính toàn vẹn dữ liệu, …và nhiều thuộc tính khác.
Yêu cầu phi chức năng ngày càng được chú trọng và quan tâm trong quá trình phát triển phần mềm. Bởi vì trong thời điểm hiện tại và tương lai, phần mềm không chỉ dừng lại ở mức dùng được mà còn phải dùng tốt, đáp ứng được những kì vọng từ người sử dụng. Người dùng phải cảm thấy những điều cơ bản nhất phải có như thời gian tải trang phải nhanh, các tính năng phải dễ sử dụng và đặc biệt là tính bảo mật thông tin cao. Việc Business Analyst hiểu được và quan tâm đúng mức về yêu cầu phi chức năng sẽ giúp cho sản phẩm đáp ứng đúng kì vọng, vượt mong đợi, tăng giá trị cho khách hàng sử dụng. Đặc biệt là các sản phẩm mang tính cạnh tranh cao về cùng một lĩnh vực.
Những loại Non-Function Requirements phổ biến Business Analyst cần biết
Access Security
Access Security hay còn gọi là bảo mật truy cập. Bảo mật truy cập là mức độ mà hệ thống được bảo vệ chống lại các lỗi cố ý và xâm nhập từ các nguồn bên trong và bên ngoài.
Khi BA khơi gợi yêu cầu từ các bên liên quan thì nên chú ý đến các yếu tố như đăng ký người dùng, phân quyền người dùng, xác thực người dùng. Và đây là một yêu cầu rất quan trọng, mình nhắc lại là rất quan trọng khi bạn xây dựng sản phẩm. Đặc biệt là sản phẩm tài chính như fintech, banking, thanh toán online, thương mại điện tử. Khi thực hiện các luồng login của hệ thống, các business rule thì loại yêu cầu này bạn cần được chú trọng hàng đầu.
Ví dụ:
- Người dùng chỉ được sử dụng App của bạn bằng các thiết bị an toàn, chặn đăng nhập với các thiết bị thiết bị root và jailbreak. Tức là khi người dùng sử dụng các loại thiết bị này các bạn chặn ngay từ luồng đăng nhập.
- User của bạn sẽ bị tự động khoá sau khi nhập sai pass N lần/ngày.
Để làm tốt được loại yêu cầu này các bạn cần bắt đầu từ các yếu cầu nghiệp vụ và tư vấn của đội bảo mật, công nghệ cùng làm sản phẩm.
Accessibility
Accessibility hay còn gọi là khả năng tiếp cận. Khả năng truy cập là mức độ mà hệ thống phần mềm có thể được sử dụng bởi những người có phạm vi khả năng rộng nhất để đạt được mục tiêu trong một bối cảnh nhất định.
BA khi khơi gợi yêu cầu các bên liên quan thì cần chú ý đến các nội dung như khía cạnh quy định của pháp luật, khả năng thính giác, thị giác, nhận thức, tính di động của người dùng.
Ví dụ: Các bài học trên ứng dụng A cần có âm thanh, phụ đề có tiếng để phục vụ cho nhiều đối tượng học viên khác nhau. Học viên có thể nghe, có thể nhìn chi tiết bài giảng.
Bạn muốn hiểu rõ loại yêu cầu này hơn thì có thể vào mục Accessibility trên hệ điều hành ios or android trên điện thoại của bạn tìm hiểu thêm.
Availability
Tính sẵn có hay tính khả dụng là thuộc tính của phần mềm có sẵn và sẵn sàng thực hiện nhiệm vụ của bạn khi bạn cần sử dụng.
Ví dụ: Học viên có thể vào website https://phienglish.com/ học online 24/7 ngoại trừ các thời gian bản trì hệ thống sẽ thông báo trước đến học viên qua email và thông báo tại website.
Confidentiality
Confidentiality hay bảo mật, bảo mật là mức độ mà hệ thống phần mềm bảo vệ dữ liệu nhạy cảm và chỉ cho phép truy cập dữ liệu được ủy quyền.
Khi khơi gợi các yêu cầu về tính bảo mật của hệ thống. Business Analyst cần quan tâm đến các khía cạnh khác nhau về phân quyền truy cập trong tổ chức, liên quan đến business rule, quyền riêng tư của các kênh liên lạc, mức độ an toàn dữ liệu lưu trữ. Đây là một trong những yêu cầu rất quan trọng đối với phần mềm, liên quan đến kinh doanh và người dùng.
Khi làm các yêu cầu này các bạn cần quan tâm đến quy định pháp luật của nước sở tại, các quy định của các tổ chức thế giới như PCI-DSS
Ví dụ: Khi thanh toán khóa học bằng thẻ tín dụng tại trang web https://phienglish.com/ sẽ không lưu lại các thông tin thẻ của khách hàng được nhập trong quá trình thanh toán.
Efficiency
Efficiency là tính hiệu quả. Hiệu quả là mức độ mà hệ thống phần mềm xử lý dung lượng và thời gian đáp ứng.
Khi khơi gợi yêu cầu BA cần quan tâm đến yêu cầu về mặt thời gian đáp ứng, dung lượng lưu trữ, dung lượng xử lý, tốc độ xử lý.
Ví dụ: Học viên vào website https://phienglish.com/ cần tốc độ tải trang dưới 4s với người dùng đồng thời tối đa là 1000 user trong cùng 1 thời điểm.
Integrity
Integrity hay tính toàn vẹn là mức độ mà dữ liệu được duy trì bởi hệ thống phần mềm là chính xác, xác thực của dữ liệu.
Yêu cầu về tính toàn vẹn giải quyết mối quan tâm của người dùng về tính chính xác và tính xác thực của dữ liệu. Khi khơi gợi các yêu cầu về tính toàn vẹn, hãy xem xét các nhu cầu về sao lưu dữ liệu thường xuyên để tránh mất dữ liệu, sao lưu dữ liệu vào nhiều vị trí, quy trình khôi phục dữ liệu và tính xác thực của dữ liệu đối với nguồn dữ liệu gốc.
Ví dụ: Lộ trình học của học viên sẽ được lưu lại khi học viên rời khỏi hệ thống để lần đăng nhập tiếp theo học viên có thể học tiếp video đã học trước đó.
Reliability
Reliability, độ tin cậy. Độ tin cậy là mức độ mà hệ thống phần mềm thực hiện nhất quán các chức năng được chỉ định mà không gặp sự cố khi người dùng sử dụng.
Khi khơi gợi các yêu cầu về độ tin cậy, hãy xem xét các nhu cầu liên quan đến các nguyên nhân có thể gây ra lỗi hệ thống, các hành động hoặc thủ tục phòng ngừa cần thiết để tránh thất bại, các lớp lỗi và các số liệu về độ tin cậy.
Ví dụ: Ví dụ khi ứng dụng bạn thông báo lỗi. Các câu thông báo lỗi cần có sự tường mình, đừng chỉ show lên client chỉ là các mã từ API trả về, hay chỉ dùng đúng 1 câu “là hệ thống đang bảo trì”. Làm người dùng hiểu sao cái hệ thống này lúc nào cũng bảo trì 🙂
Safety
Safety là mức độ mà một hệ thống phần mềm ngăn chặn tác hại đối với con người hoặc thiệt hại cho môi trường trong bối cảnh sử dụng dự định.
Khi khơi gợi các yêu cầu an toàn, hãy xem xét các khía cạnh liên quan đến phòng tránh nguy hiểm, phát hiện và loại bỏ nguy cơ và giảm thiểu thiệt hại nếu xảy ra tai nạn. BA cần lưu ý các mục này khi làm các dự án liên quan đến sức khỏe, môi trường, an toàn các phương tiện lao động…. Thường các yêu cầu an toàn này cần được lấy tối đa tài liệu từ các bên liên quan, tham khảo và xác nhận kĩ giữa các bên liên quan.
Ví dụ khi làm các chức năng liên quan đến upload dữ liệu lên hệ thống, các bạn cần có sự tư vấn về tải, về quét file mã độc trước khi đi vào hệ thống của bạn.
Scalability
Khả năng mở rộng là khả năng của một hệ thống hoặc quy trình để xử lý một mức độ hoạt động nâng cao mà không bị ràng buộc hoặc tắc nghẽn cấu trúc. Mỗi mô hình kinh doanh đều mang lại tầm quan trọng tối đa cho việc tạo ra doanh nghiệp, dẫn đến khối lượng giao dịch cao hơn và hệ quả của nó tăng lên trong hoạt động. Mở rộng quy mô hoạt động để xử lý hoạt động kinh doanh gia tăng vốn có và được tích hợp vào thiết kế hệ thống. Khả năng mở rộng có thể được phân thành hai loại: Vật lý và phi vật lý.
Khi BA làm việc cần có cái nhìn tổng quan về thị trường, có đủ số liệu để đưa ra dự báo. Thông thường BA sẽ cần có các câu hỏi và câu trả lời liên quan đến tình hình hiện tại, dự báo số liệu tưởng lai, mục tiêu kinh doanh, định hướng kinh doanh để đưa ra các dự báo phù hợp về sự mở rộng hệ thống.
Ví dụ: Hiện tại lượng học viên đang theo học Online là 3000 học viên, mức tăng trưởng trong năm 2024 là 10%. Hệ thống cũng cần đáp ứng mức tải này khi lượng KH tăng lên. Hiện tại với các giải pháp về microservice, điện toán đám mây sẽ giải quyết được bài toán scale nhanh hệ thống. Các yêu cầu này khi bạn xây dựng sẽ cần tham khảo đội technical của team.
Usability
Tính khả dụng là sự dễ dàng mà người dùng có thể tìm hiểu, vận hành, chuẩn bị đầu vào và giải thích đầu ra thông qua tương tác với một hệ thống phần mềm.
Yêu cầu về khả năng sử dụng giải quyết mối quan tâm của người dùng để dễ học và sử dụng hệ thống. Khi khơi gợi các yêu cầu về khả năng sử dụng, hãy xem xét các nhu cầu liên quan đến dễ dễ học, dễ xử lý, dễ sử dụng.
Đây là một trong nhưng tiêu chí rất quan trọng hiện nay, người dùng ngày càng yêu cầu cao về sản phẩm, đảm bảo đẹp và dễ dùng.
Ví dụ: Học viên khi học online dễ dàng gửi câu hỏi đến các chuyên gia qua ứng dụng chat trực tuyến có sẵn tại website, học viên có thể dễ dàng chụp ảnh màn hình, ghi chú các nội dung bài học để gửi câu hỏi thắc mắc đến chuyên gia. Hoặc sau khi thanh toán học phí thành công thì cần có thông báo OTT, có thể chụp và lưu màn hình kết quả thanh toán.
Còn nhiều loại yêu cầu phi chức năng khác nhưng bài này mình có nên một số loại chính và hay gặp.
Vì sao BA cần quan tâm đến Non- Funtional requirement
Theo Phúc Business Analyst và đội ngũ phát triển sản phẩm cần quan tâm đến non-functional requirement vì các lý do sau:
- Yêu cầu phi chức năng đảm bảo hệ thống phần mềm hoạt động theo các quy tắc đã được quy định sẵn.
- Yêu cầu phi chức năng đảm bảo độ tin cậy, tính khả dụng và hiểu suất của phần mềm
- Yêu cầu phi chức năng giúp trải nghiệm của người dùng đối với sản phẩm tốt hơn
- Tăng độ trung thành của sản phẩm
- Tăng khả năng bảo mật, an toàn, tin tưởng từ người dùng tạo lợi thế cạnh tranh và thu hút khách hàng.
Yêu cầu của người dùng ngày càng khó, việc bạn xây dựng phần mềm đáp ứng được yêu cầu nghiệp vụ là chưa đủ. Phần mềm cần an toàn, dễ dùng và thân thiện và có khả năng gắn kết sự trung thành với người dùng hơn.
Phúc hi vọng bài viết này sẽ giúp các bạn đang học, đang làm BA có thêm một vài từ khoá để giúp cho công việc BA trở nên tốt hơn.
Blaoman – Bản quyền và cộng tác