Một tài liệu yêu cầu phần mềm tốt cho người không biết kỹ thuật chỉ cần một trang và bảy mục: mục tiêu đo được, ai dùng, năm luồng việc chính viết bằng lời thường, dữ liệu đầu vào đầu ra, phần mềm cần nối với gì, những thứ không làm, và hạn chót kèm lý do. Trang đó không thay được đặc tả chi tiết, nhưng đủ để ba công ty hiểu cùng một việc và đưa ra ba báo giá so được với nhau. Thiếu nó, ba báo giá chênh nhau vài lần là chuyện bình thường, vì mỗi bên đang báo cho một phần mềm khác.
Vì sao một trang tốt hơn ba mươi trang
Người mua hay rơi vào hai cực. Hoặc gửi một câu qua tin nhắn ("làm cho anh phần mềm quản lý bán hàng"), hoặc tải một mẫu đặc tả ba mươi trang trên mạng rồi điền cho đủ ô. Câu một dòng khiến bên báo giá phải đoán; mẫu ba mươi trang thì người mua điền những ô mình không hiểu, và bên đọc không biết ô nào là thật.
Một trang buộc người viết chọn cái quan trọng. Phần chi tiết (màn hình, trường dữ liệu, quy tắc tính) sẽ được làm cùng nhà cung cấp trong giai đoạn khảo sát, và đó là việc của họ. Ở ALODEV, giai đoạn khảo sát kéo dài 2 đến 3 ngày, không tính phí, rồi 7 ngày sau có bản đề xuất ghi phạm vi từng chặng (theo trang Quy trình).

Bảy mục của trang yêu cầu
- Mục tiêu: một hoặc hai câu có con số. Ví dụ: rút thời gian chốt đơn cuối ngày từ hai giờ xuống mười lăm phút.
- Người dùng: liệt kê vai trò và số người mỗi vai trò. Ví dụ: 12 nhân viên bán hàng, 2 kế toán, 1 giám đốc chỉ xem báo cáo.
- Năm luồng việc chính: mỗi luồng một câu theo mẫu "ai làm gì, khi nào, kết quả là gì".
- Dữ liệu: đang có gì (bảng tính, phần mềm cũ) và cần xuất ra gì (báo cáo, hoá đơn, tệp gửi ngân hàng).
- Kết nối: phần mềm khác cần nói chuyện với hệ thống mới, như kế toán, hoá đơn điện tử, Zalo, cổng thanh toán.
- Không làm: những thứ cố ý để ngoài phạm vi đợt này.
- Hạn chót và lý do: ngày cần dùng và vì sao, ví dụ mùa cao điểm hay ngày chuyển văn phòng.
Mục 6 là mục người mua hay bỏ và là mục tiết kiệm tiền nhất. Khi không ghi, mỗi bên báo giá tự đoán ranh giới: bên này tính cả ứng dụng điện thoại, bên kia không; bên này tính cả báo cáo quản trị, bên kia chỉ tính nhập liệu. Ghi rõ "đợt này chưa làm ứng dụng điện thoại, chưa làm phân quyền theo chi nhánh" là cách nhanh nhất để ba báo giá về cùng một mặt bằng.
Viết luồng việc bằng lời thường
Luồng việc là phần quan trọng nhất và cũng dễ viết nhất nếu bỏ thuật ngữ. Đừng viết "module quản lý đơn hàng có CRUD". Hãy viết như kể cho nhân viên mới:
- Nhân viên bán hàng tạo đơn trên điện thoại khi đang ở cửa hàng khách, chọn sản phẩm từ danh sách, hệ thống tự áp giá theo nhóm khách.
- Đơn trên 50 triệu đồng cần trưởng phòng duyệt; dưới mức đó tự chuyển sang kho.
- Kho xác nhận xuất hàng, hệ thống trừ tồn và báo cho nhân viên bán hàng.
- Cuối ngày kế toán xem danh sách đơn đã giao, xuất tệp để nhập vào phần mềm kế toán.
- Giám đốc xem doanh số theo nhân viên và theo tuần, không sửa được dữ liệu.
Năm câu như trên nói cho bên làm phần mềm biết có mấy vai trò, có quy tắc duyệt, có tích hợp kế toán, có báo cáo và có phân quyền chỉ xem. Một người làm phần mềm có kinh nghiệm đọc năm câu đó là ước lượng được khối lượng ở mức sai số chấp nhận được cho vòng báo giá đầu.
Mẫu một trang điền sẵn
Mẫu dưới đây điền bằng dữ liệu giả của một công ty phân phối tưởng tượng, để thấy mức chi tiết vừa đủ. Chép khung, thay nội dung của mình, giữ độ dài một trang.

| Mục | Nội dung mẫu |
|---|---|
| 1. Mục tiêu | Chốt đơn cuối ngày dưới 15 phút (hiện 2 giờ); sai lệch tồn kho cuối tháng dưới 1% số mã hàng |
| 2. Người dùng | 12 bán hàng (điện thoại), 3 kho, 2 kế toán, 1 giám đốc (chỉ xem) |
| 3. Luồng việc | Tạo đơn tại cửa hàng khách; duyệt đơn trên 50 triệu; kho xác nhận xuất; kế toán xuất tệp cuối ngày; giám đốc xem doanh số theo tuần |
| 4. Dữ liệu | Có: bảng tính 1.800 khách, 640 mã hàng. Cần ra: báo cáo doanh số, tệp nhập phần mềm kế toán |
| 5. Kết nối | Phần mềm kế toán đang dùng (qua tệp nhập); hoá đơn điện tử (đợt sau) |
| 6. Không làm đợt này | Ứng dụng cho khách đặt hàng; phân quyền theo chi nhánh; tích điểm |
| 7. Hạn chót | Dùng được trước 01/03 vì mùa cao điểm tháng 3 đến tháng 5 |
Gửi thế nào để ba bên báo giá như nhau
- Gửi cùng một tệp cho cả ba, cùng ngày, kèm hạn trả lời.
- Đề nghị báo giá theo từng hạng mục ứng với năm luồng việc, không nhận một con số tổng.
- Hỏi mỗi bên họ hiểu mục 6 thế nào, và những gì họ cho là còn thiếu trong trang.
- Câu hỏi của một bên thì trả lời bằng văn bản và gửi cho cả ba, để không bên nào báo trên thông tin riêng.
Câu hỏi ngược lại từ nhà cung cấp là tín hiệu tốt. Bên đọc một trang yêu cầu mà không hỏi gì, rồi gửi báo giá ngay trong ngày, thường đang báo cho một phần mềm có sẵn trong kho của họ chứ chưa đọc kỹ luồng việc của bạn.
Từ một trang tới đặc tả đầy đủ
Sau khi chọn được nhà cung cấp, trang một trang trở thành đầu vào cho giai đoạn khảo sát. Đầu ra của khảo sát là tài liệu chi tiết hơn: danh sách màn hình, quy tắc nghiệp vụ, tiêu chí nghiệm thu từng luồng. Tài liệu đó chính là phạm vi ghi vào hợp đồng. Tập tiếp theo giải thích SRS, loại tài liệu đặc tả đầy đủ, và khi nào dự án cần tới nó.
Lấy thông tin cho trang yêu cầu từ đâu
Người viết trang yêu cầu thường là giám đốc hoặc trưởng phòng, nhưng người biết rõ luồng việc là nhân viên làm hằng ngày. Cách lấy thông tin nhanh là ngồi cạnh từng vai trò trong một giờ và hỏi họ kể lại một ngày làm việc: mở gì, nhập gì, chờ ai, gửi cho ai. Ghi lại các bước đúng như họ nói, kể cả bước "chụp màn hình gửi nhóm chat", vì đó thường là chỗ phần mềm mới cần thay.
Nên hỏi về lần gần nhất có sự cố thay vì hỏi quy trình chuẩn: đơn bị giao nhầm, lương bị tính sai, khách bị gọi hai lần. Sự cố cho biết quy tắc nào đang được giữ bằng trí nhớ con người. Bài phỏng vấn người dùng để hỏi đúng trên blog Trần Công Thắng có cách đặt câu hỏi theo việc đã xảy ra, dùng được cho buổi này.

Câu hỏi thường gặp
Tài liệu yêu cầu phần mềm gồm những gì?
Tối thiểu gồm mục tiêu, người dùng, luồng việc chính, dữ liệu, kết nối, phạm vi không làm và hạn chót. Bản chi tiết thêm màn hình, quy tắc nghiệp vụ và tiêu chí nghiệm thu, thường làm cùng nhà cung cấp.
Không biết kỹ thuật có tự viết yêu cầu được không?
Được, và nên tự viết. Người hiểu quy trình nhất là người trong doanh nghiệp; phần chuyển sang ngôn ngữ kỹ thuật là việc của bên làm phần mềm.
Có nên dùng mẫu đặc tả dài tải trên mạng?
Chỉ khi hiểu từng mục. Điền cho đủ ô những mục không hiểu làm tài liệu dài hơn nhưng không rõ hơn, và bên báo giá không biết mục nào là yêu cầu thật.
Yêu cầu thay đổi sau khi đã gửi thì sao?
Gửi bản mới có đánh số phiên bản cho tất cả các bên đang báo giá. Sau khi ký hợp đồng, thay đổi đi theo quy trình yêu cầu thay đổi, có ước lượng và duyệt riêng.
Có cần ký thoả thuận bảo mật trước khi gửi yêu cầu?
Nên ký nếu trang yêu cầu chứa số liệu kinh doanh thật. Nếu chỉ có luồng việc chung, có thể gửi trước và ký khi bắt đầu trao đổi dữ liệu.


