Từ mơ hồ đến rõ ràng - Cách biến requirement thành đầu vào sẵn sàng cho development

Trong hầu hết các dự án, thứ team nhận được ban đầu không phải là requirement rõ ràng, mà là các mô tả rời rạc. Trong ví dụ sau tại một doanh nghiệp xây dựng triển khai hệ thống quản lý đề xuất vật tư và phê duyệt nội bộ, với mục tiêu thay thế việc trao đổi qua Excel, Zalo và giấy tờ rời rạc giữa công trường và văn phòng.

  • Kỹ sư công trường (end user): “Hệ thống nhập liệu lâu, tụi em ngoài công trường không dùng được.”

  • Trưởng phòng dự án (PM phía business): “Cần kiểm soát chặt vật tư, tránh thiếu – sai – vượt ngân sách.”

  • Developer: “Quy trình đang mô tả không rõ, mỗi người nói một kiểu, không biết build theo logic nào.”

Đây là một tình trạng khá phổ biến khi khởi động 1 dự án chuyển đổi số. Và vấn đề tựu chung đó là: requirement chưa rõ ràng.

1.Hiểu đúng về Ambiguity và Clarity

Ambiguity là gì?

Ambiguity là trạng thái một bài toán chưa đủ rõ để design, build và test một cách chắc chắn. Dấu hiệu thường gặp gồm:

  • Còn nhiều điều chưa biết

  • Các bên nói chưa thống nhất

  • Chưa rõ phạm vi đến đâu

  • Chưa rõ ai làm gì, khi nào, và kết quả mong đợi là gì

Ví dụ, người dùng/khách hàng yêu cầu: “Bên em cần một hệ thống quản lý mua hàng nội bộ.” Thoạt đầu, requirement tạo cảm giác khá rõ, nhưng thực ra nếu đào sâu, bạn sẽ còn rất nhiều câu hỏi khác:

  • Ai tạo yêu cầu mua?

  • Có mấy cấp phê duyệt?

  • Nếu bị từ chối thì sao?

  • Có liên quan ngân sách không?

  • Phase này chỉ xử lý yêu cầu nội bộ hay cả PO và thanh toán?

Nếu chưa trả lời được những câu hỏi này mà đã đi vào thiết kế màn hình hay workflow, thì trong quá trình triển khai chắc chắn sẽ phát sinh việc phải thiết kế lại.

Clarity không phải là viết thật nhiều tài liệu

Nhiều người nghĩ làm rõ requirement là phải viết dài nhưng điều này không chính xác. Clarity không nằm ở số trang tài liệu. Clarity là khi team trả lời được rõ ràng:

  • Chúng ta đang giải quyết bài toán gì?

  • Scope của phase này là gì?

  • Actor chính là ai?

  • Họ sẽ dùng hệ thống trong những scenario nào?

  • Scenario nào cần làm trước?

  • Khi nào thì đủ rõ để development?

Nói ngắn gọn, clarity là khi requirement đã đủ rõ để đội ngũ có thể hành động.

2.Quy trình Discover → Define → Backlog

Để chuyển từ mơ hồ sang rõ ràng, bạn có thể sử dụng quy trình sau để toàn bộ team dự có thể đạt được một sự clarity và một sự thống nhất chung:

Discover - Hiểu đúng bài toán

  • Quy trình hiện tại (as-is) như thế nào

  • Điểm đau ở đâu

  • Ai tham gia

  • Các điểm chưa rõ / mâu thuẫn

Define - Làm rõ requirement

  • Viết BRD

  • Chốt scope

  • Xác định actor

  • Tách các scenario chính

  • Mô tả main flow và exceptions

Backlog - Chuẩn bị cho development

  • Sắp xếp scenario theo ưu tiên

  • Xác định mức độ sẵn sàng

  • Chọn scenario nào đi vào phase hiện tại

Đây là cách biến một cuộc trao đổi còn mờ thành một tập scenario có thể build và test được.

3.Ba công cụ quan trọng giúp các requirement đạt được tính clarity

Để đi từ ambiguity đến clarity, có ba công cụ rất quan trọng. Ba công cụ này đi theo nhau, không thay thế nhau.

BRD: Dùng để chốt bài toán ở góc nhìn business.

User Scenarios: Dùng để mô tả các tình huống sử dụng thực tế.

Scenario Backlog: Dùng để tổ chức, ưu tiên và chuẩn bị cho development.

3.1. BRD

BRD - Chốt bài toán trước khi nghĩ đến giải pháp

BRD không phải là nơi tổng hợp mọi chi tiết. Mục tiêu của BRD là làm rõ những thứ nền tảng nhất:

  • Bối cảnh nghiệp vụ

  • Vấn đề hiện tại

  • Mục tiêu cần đạt

  • Stakeholders liên quan

  • In scope / Out-of-scope

  • Business rules quan trọng

  • Các ràng buộc, giả định chính

Một BRD tốt giúp team trả lời được câu hỏi: “Chúng ta đang xây cái gì, để giải quyết vấn đề gì, trong phạm vi nào?” Sai lầm phổ biến là viết BRD quá chung chung, không chốt out of scope, hoặc nhảy vào solution trước khi hiểu rõ problem.

Scope - Nếu không chốt thì requirement sẽ phát sinh trong quá trình triển khai

Rất nhiều dự án trượt không phải vì team yếu, mà vì scope không được chốt lại một cách rõ ràng. Ví dụ với bài toán mua hàng nội bộ:

In scope

  • Tạo yêu cầu mua hàng

  • Phê duyệt nhiều cấp

  • Trả lại để bổ sung

  • Theo dõi trạng thái

Out of scope

  • Tạo PO nhà cung cấp

  • Nhận hàng vào kho

  • Đối soát thanh toán

  • Tích hợp ERP ở phase 1

Scope rõ giúp team biết phase này làm đến đâu, chưa làm gì, và tránh kéo requirement đi quá xa.

3.2. User Scenario

Use scenario là nơi gắn requirement với các thực tế vận hành

Sau khi đã hiểu bài toán và chốt phạm vi, bước tiếp theo là chuyển sang user scenarios.

Scenario là mô tả một tình huống cụ thể trong đó một actor/user thực hiện một mục tiêu cụ thể.

Người dùng không nghĩ theo kiểu “tôi muốn tính năng approval”. Họ nghĩ theo kiểu “tôi cần gửi một yêu cầu để quản lý duyệt”. Đó là scenario.

Một scenario tốt nên làm rõ:

  • Actor là ai

  • Trigger là gì

  • Điều kiện đầu vào là gì

  • Luồng chính diễn ra thế nào

  • Ngoại lệ xử lý ra sao

  • Kết quả mong đợi là gì

Ví dụ

  • Scenario: Tạo yêu cầu mua hàng
  • Actor: Nhân viên
  • Trigger: Có nhu cầu mua vật tư
  • Main flow: Tạo yêu cầu → nhập thông tin → gửi duyệt
  • Exceptions: Thiếu dữ liệu, vượt ngân sách, không đủ quyền
  • Outcome: Yêu cầu được tạo và chuyển sang chờ phê duyệt

Khi đi đến mức này, requirement mới thực sự hữu ích cho design, workflow, validation, permission và testing.

Sai lầm phổ biến: chỉ viết happy path

Một lỗi rất phổ biến là chỉ mô tả luồng công việc chính (lý tưởng), ví dụ:

  • Tạo yêu cầu

  • Quản lý duyệt

  • Hoàn tất

Nhưng hệ thống thực tế không sống bằng happy path. Nó sống bằng cả các tình huống như:

  • Thiếu dữ liệu

  • Trả lại để sửa

  • Từ chối

  • Quá hạn

  • Sai approver

  • Hủy giữa chừng

Cho nên khi làm scenario, bạn không nên chỉ hỏi “luồng chính là gì”. Phải hỏi thêm “nếu không diễn ra đúng như mong đợi thì sao”. Chính phần exception mới là nơi requirement trở nên đầy đủ, và hạn chế phát sinh.

3.3. Scenario Backlog

Biến trao đổi nghiệp vụ thành đầu vào delivery

Khi đã có các scenario chính, bước tiếp theo là tổng hợp chúng thành một scenario backlog. Scenario backlog = danh sách scenario đã xác định, ưu tiên, sẵn sàng triển khai. Backlog tốt giúp team chuyển từ “nói về requirement” sang “quản lý delivery”.

Ví dụ:

Priority Scenario Purpose
P1 Tạo yêu cầu mua hàng Khởi tạo yêu cầu
P1 Quản lý phê duyệt Chấp thuận hoặc từ chối
P1 Trả lại để bổ sung Xử lý thiếu thông tin
P2 Theo dõi trạng thái Minh bạch tiến độ
P3 Báo cáo Theo dõi tổng quan

Kết luận

Requirement mơ hồ luôn là điểm xuất phát của bất kỳ dự án nào. Tuy nhiên, phương pháp biến sự mơ hồ và phức tạp trở nên rõ ràng là tạo ra khoảng cách giữa các dự án thành công và thất bại.

Một cách làm rất hiệu quả là: Discover → Define → Backlog với 3 công cụ BRD, User Scenario và User Scenario Backlog. Làm tốt ba bước này sẽ giúp team giảm hiểu sai, giảm rework và tăng khả năng build đúng ngay từ đầu. Đó là lúc requirement thực sự sẵn sàng cho development.

3 Likes

@vinh.tran Có framework nào anh thường dùng để đào sâu problem trong bước Discover không? Ví dụ như 5W, value stream mapping hay process walkthrough?

Theo trải nghiệm thực tế của anh thì scope creep thường xảy ra vì business liên tục phát sinh yêu cầu hay team delivery chưa define scope đủ rõ từ đầu ạ?

5W1H là một phương pháp hữu hiệu cho tất cả các công việc cần phân tích. Tuy nhiên, để đưa vào ứng dụng thực tế, cần có các điểm neo (hay mục tiêu nhắm đến) và tool/framework để cấu trúc các câu hỏi một cách có hệ thống, từ đó quá trình discovery đạt được kết quả cao nhất.

Trong một dự án phát triển các giải pháp vận hành số (digital operations solutions), ở giai đoạn discovery, các điểm neo cần bám:

  • Hiểu hiện trạng vận hành của doanh nghiệp
  • Điểm đau (pain points) của khách hàng
  • Lợi ích mang lại khi các điểm đau được giải quyết
  • Các đối tượng tham gia dự án và ra quyết định (subject matter experts, decision makers)

Các bạn có thể tìm hiểu thêm framework SPICED (Situation - Pain - Impact - Critical Events - Decision) để áp dụng vào việc discovery.

1 Like