1. Software requirements là gì?
- Người dùng nghiệp vụ đọc là hiểu.
- Đội kỹ thuật dựa vào đó để xây đúng thứ doanh nghiệp cần.
Làm tốt phần yêu cầu không chỉ là viết câu chữ cho hay. Yêu cầu phải khả thi để triển khai, và phải tạo ra giá trị thực cho doanh nghiệp. Sự cộng tác, việc kiểm chứng (validation), sự đồng thuận của các bên, cùng thứ ngôn ngữ ai cũng hiểu, quan trọng ngang với cú pháp và định dạng.
Theo truyền thống, trong mô hình waterfall, yêu cầu phần mềm được ghi thành các danh sách dài, phân nhóm, trong tài liệu FRS (Functional Requirements Specification) hoặc SRS (Software Requirements Specification). Chúng cũng thường là một phần đáng kể của BRD (Business Requirements Document).
2. Các "khuôn chứa" yêu cầu bạn có thể dùng
Ngày nay, yêu cầu phần mềm thường được ghi dưới dạng user story và quản lý trong product backlog. Đôi khi chúng được phân tích bằng use case. Nhiều đội còn nhúng backlog vào BRD, hoàn thiện từ đầu rồi quản lý backlog theo kiểu agile trong suốt quá trình triển khai.
FRS, SRS, BRD, backlog, user story hay use case thực chất chỉ là những cái khuôn khác nhau để chứa cùng một thứ: yêu cầu phần mềm. Chọn khuôn nào thường tùy vào thông lệ của tổ chức hoặc đội nhóm.
3. Ví dụ minh họa
Cùng một yêu cầu, mỗi cách thể hiện sẽ khác nhau.
Câu lệnh "system shall" (thường dùng trong FRS, SRS, BRD):
- Hệ thống phải phát trực tiếp (stream) một buổi học âm thanh.
User story (trong product backlog) bổ sung thêm ngữ cảnh:
- Là một học viên, tôi muốn nghe trực tiếp một buổi học âm thanh để có thể nghe bài giảng khi đang di chuyển.
Use case trình bày yêu cầu thành chuỗi hành động của người dùng và các bước phản hồi của hệ thống:
- Học viên chọn nghe bài thuyết trình âm thanh.
- Hệ thống phân phối khóa học hiển thị tệp âm thanh trong phiên web của học viên.
- Mô hình giao diện người dùng (UI model), ví dụ wireframe, là bản mô tả trực quan về việc phần mềm sẽ trông thế nào khi người dùng cuối nhìn thấy.
4. Ưu và nhược điểm của từng cách
Câu lệnh "system shall": danh sách yêu cầu chức năng rõ ràng, dễ đọc, dễ sắp xếp, rất hữu ích cho việc đánh giá và truy vết (traceability). Nhược điểm là thường thiếu ngữ cảnh và độ cụ thể.
- User story: gắn mục tiêu kinh doanh vào yêu cầu, giúp đội hiểu không chỉ hệ thống cần làm gì mà còn vì sao tính năng đó quan trọng. Đây cũng là công cụ lập kế hoạch tốt, cho phép ưu tiên công việc ở mức chi tiết nhỏ và ứng phó thay đổi hiệu quả hơn. Tuy nhiên, khi backlog lớn, rất dễ mất bức tranh tổng thể, và bản thân user story không hỗ trợ tư duy phân tích của bạn.
- Use case: công cụ phân tích mạnh, khuyến khích tư duy hệ thống và hỗ trợ cộng tác giữa business và kỹ thuật. Nhưng use case dễ phình to, thêm phức tạp và lấn scope, và quãng đường từ use case đến triển khai khó quản lý.
- Mô hình giao diện: dễ hiểu, gợi ra nhiều phản hồi giá trị và giúp cả đội nhanh chóng thống nhất về yêu cầu. Rất hợp để bổ trợ cho các cách trên. Nếu đứng riêng, nó có thể thiếu độ cụ thể và dẫn đến những giả định sai.
Học cách tư duy theo use case giúp bạn giải thích phần mềm cần làm gì bằng ngôn ngữ người dùng nghiệp vụ hiểu được, và thường ít bỏ sót yêu cầu hơn. Đồng thời, các bên liên quan nhìn thấy đầy đủ tiềm năng của giải pháp và đưa ra phản hồi làm rõ hiệu quả hơn.
5. Một lưu ý quan trọng
6. Kết luận: Muốn đi sâu hơn?
Nhu cầu đào tạo doanh nghiệp
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
