Sẽ mở trong thẻ mới
PDL AIAI Worker — trợ lý AI trực 24/7: trả lời khách, xử lý yêu cầu, báo cáo tự động

Kỹ sư phần mềm thời AITờ 03-07 / 112

User flow và wireframe: phác thảo sản phẩm trước khi xây

Bản mẫu màn hình bằng bìa giấy, phác thảo bút chì và thùng rác bên cạnh, ví cho wireframe và prototype để vứt đi
Tờ
03-07 / 112
Hạng mục
M03 · Từ ý tưởng đến yêu cầu
Cấp độ
Cơ bản
Thời gian đọc
17 phút
Giai đoạn công trình
0 · Khám phá
Cập nhật
Bản đồ công trìnhTờ này lắp: Giao diện app, Màn hình bếp
Bản đồ công trình Mộc OMSBài này: Giao diện app, Màn hình bếp. Đã học: PRD & spec, Coding agent, Khách hàng, Kênh bán, Sheet & sổ tay. Chưa tới: Repo & CI, Kiểm thử, Hosting & tên miền, Giám sát lỗi, API, Database, Dashboard, báo cáo, Trợ lý AI nhận đơn, Đăng nhập, vai trò, Thanh toán VietQR, Thông báo khách, Nhiều tiệm (MộcOS), Kế toán, hoá đơn.Thi công & hạ tầngDòng đơn hàngNghiệp vụ & dịch vụMở rộng MộcOSPRD & specspecCoding agentagentRepo & CIrepo-ciKiểm thửtestsHosting & tên miềnhostingGiám sát lỗimonitoringKhách hàngcustomerKênh bánchannelsGiao diện appapp-uiAPIapiDatabasedatabaseDashboard, báo cáoreportsSheet & sổ taysheetTrợ lý AI nhận đơnai-assistantMàn hình bếpkitchenĐăng nhập, vai tròauthThanh toán VietQRpaymentsThông báo kháchnotificationsNhiều tiệm (MộcOS)tenantsKế toán, hoá đơnintegrations0 Khám phá1 MVP2 Ra mắt3 Thêm AI4 Mở rộng
Bản đồ công trình Mộc OMSBài này: Giao diện app, Màn hình bếp. Đã học: PRD & spec, Coding agent, Khách hàng, Kênh bán, Sheet & sổ tay. Chưa tới: Repo & CI, Kiểm thử, Hosting & tên miền, Giám sát lỗi, API, Database, Dashboard, báo cáo, Trợ lý AI nhận đơn, Đăng nhập, vai trò, Thanh toán VietQR, Thông báo khách, Nhiều tiệm (MộcOS), Kế toán, hoá đơn.Dòng đơn hàngKhách hàngKênh bánGiao diệnAPIDatabaseBáo cáoNghiệp vụ & dịch vụSheet, sổ tayTrợ lý AIMàn hình bếpĐăng nhậpThanh toánThông báoThi công & hạ tầngPRD & specCoding agentRepo & CIKiểm thửHostingGiám sátMở rộng MộcOSNhiều tiệmKế toán0 Khám phá1234

Bài nàyĐã họcChưa tớiĐã thay thế

Bạn sẽ học được gì

Tiêu chí nghiệm thu

Vì sao phải phác thảo khi AI đã code nhanh như vậy?

Một kiến trúc sư không xây thử ngôi nhà rồi hỏi chủ nhà có thích không. Họ vẽ bản phác, làm mô hình, để chủ nhà đi “trong tưởng tượng” qua từng phòng. Sửa một đường kẻ trên giấy mất vài giây; dời một bức tường đã xây mất vài tuần.

AI làm cho việc “xây” nhanh hơn, nên nhiều người nghĩ có thể bỏ qua bước phác thảo: cứ để agent làm luôn rồi sửa. Nhưng hãy nhớ phần chi phí thật của phần mềm ở bài 03-0403-04: một giao diện đã xây đi kèm database, logic, test, phân quyền. Khi Hà dùng thử và nói “thứ tự ô này ngược với cách em hỏi khách”, sửa ở bản phác là đổi chỗ hai dòng chữ; sửa ở phần mềm thật là đổi form, đổi validate, đổi test, và có thể đổi cả cấu trúc dữ liệu gửi lên máy chủ.

Phác thảo còn giải một vấn đề khác: người dùng không phản hồi tốt với chữ. Đưa Hà đọc spec 4 trang, Hà gật đầu. Đưa Hà một màn hình bấm được, Hà lập tức nói “ơ, thế em xem đơn này cọc chưa ở đâu?”.

User flow: đường đi của người dùng

User flow (luồng người dùng) mô tả các bước một người đi qua để hoàn thành một nhiệm vụ cụ thể: điểm bắt đầu, các màn hình/hành động, các điểm rẽ nhánh (quyết định), và điểm kết thúc — kể cả khi có lỗi. Nó khác với sơ đồ quy trình as-is/to-be ở bài 03-0203-02: quy trình nghiệp vụ nói về con người và công việc; user flow nói về con người tương tác với phần mềm.

Quy tắc vẽ user flow hữu ích:

  • Một flow, một nhiệm vụ, một vai trò. “Hà tạo đơn bánh kem từ tin nhắn Zalo” — không phải “quản lý đơn hàng”.
  • Bắt đầu từ ngữ cảnh thật, không bắt đầu từ màn hình. Hà không “mở trang tạo đơn” một cách vô cớ; Hà vừa nhận tin nhắn của khách.
  • Vẽ cả nhánh lỗi và nhánh ngoại lệ: khách chưa có, đặt quá gấp, cọc chưa đủ.
  • Đánh dấu điểm hệ thống phải “nói” gì — thông báo lỗi, xác nhận, tóm tắt.

User flow: Hà tạo đơn bánh kem từ tin nhắn Zalo

Hình chữ ký Cây quyết định
  1. Khách nhắn Zalo đặt bánh kem
  2. Tìm thấy khách?
  3. Đủ 24 giờ và trong 07:00–21:00?
  4. Khách cọc ngay?
  5. Lưu thành công?
  6. Báo lỗi, GIỮ dữ liệu form
Xem sơ đồ gốc (Hình 1)

Vuốt ngang để xem hết sơ đồ

Có

Không

SĐT sai định dạng

Không

Có

Có

Chưa

Mất kết nối

Thành công

Khách nhắn Zalo đặt bánh kem

Hà mở ‘Tạo đơn’

Nhập số điện thoại

Tìm thấy khách?

Hiện tên + 3 đơn gần nhất

Form khách mới, SĐT điền sẵn

Chọn sản phẩm: Bánh kem tùy chỉnh 20cm

Chọn vị, nhập chữ trên bánh, ghi chú bếp

Chọn nhận tại tiệm/giao hàng, giờ nhận

Đủ 24 giờ và trong 07:00–21:00?

Báo lỗi: cần quản lý tạo đơn gấp

Hà nhắn quản lý / đổi giờ với khách

Khách cọc ngay?

Ghi số tiền, phương thức, mã giao dịch

Bỏ qua, trạng thái thanh toán: unpaid

Xem tóm tắt: tổng, đã cọc, còn lại

Bấm ‘Tạo đơn’

Lưu thành công?

Báo lỗi, GIỮ dữ liệu form

Hiện mã BM-YYMMDD-XXX + ‘Sao chép tóm tắt’

Hà dán tóm tắt gửi khách xác nhận

Hình 1 Sơ đồ luồng
Đọc sơ đồ dạng chữ
  1. Khách nhắn Zalo đặt bánh kem → Hà mở ‘Tạo đơn’
  2. Hà mở ‘Tạo đơn’ → Nhập số điện thoại
  3. Nhập số điện thoại → Tìm thấy khách?
  4. Tìm thấy khách? → Hiện tên + 3 đơn gần nhất (Có)
  5. Tìm thấy khách? → Form khách mới, SĐT điền sẵn (Không)
  6. Tìm thấy khách? → Nhập số điện thoại (SĐT sai định dạng)
  7. Hiện tên + 3 đơn gần nhất → Chọn sản phẩm: Bánh kem tùy chỉnh 20cm
  8. Form khách mới, SĐT điền sẵn → Chọn sản phẩm: Bánh kem tùy chỉnh 20cm
  9. Chọn sản phẩm: Bánh kem tùy chỉnh 20cm → Chọn vị, nhập chữ trên bánh, ghi chú bếp
  10. Chọn vị, nhập chữ trên bánh, ghi chú bếp → Chọn nhận tại tiệm/giao hàng, giờ nhận
  11. Chọn nhận tại tiệm/giao hàng, giờ nhận → Đủ 24 giờ và trong 07:00–21:00?
  12. Đủ 24 giờ và trong 07:00–21:00? → Báo lỗi: cần quản lý tạo đơn gấp (Không)
  13. Báo lỗi: cần quản lý tạo đơn gấp → Hà nhắn quản lý / đổi giờ với khách
  14. Hà nhắn quản lý / đổi giờ với khách → Chọn nhận tại tiệm/giao hàng, giờ nhận
  15. Đủ 24 giờ và trong 07:00–21:00? → Khách cọc ngay? (Có)
  16. Khách cọc ngay? → Ghi số tiền, phương thức, mã giao dịch (Có)
  17. Khách cọc ngay? → Bỏ qua, trạng thái thanh toán: unpaid (Chưa)
  18. Ghi số tiền, phương thức, mã giao dịch → Xem tóm tắt: tổng, đã cọc, còn lại
  19. Bỏ qua, trạng thái thanh toán: unpaid → Xem tóm tắt: tổng, đã cọc, còn lại
  20. Xem tóm tắt: tổng, đã cọc, còn lại → Bấm ‘Tạo đơn’
  21. Bấm ‘Tạo đơn’ → Lưu thành công?
  22. Lưu thành công? → Báo lỗi, GIỮ dữ liệu form (Mất kết nối)
  23. Báo lỗi, GIỮ dữ liệu form → Bấm ‘Tạo đơn’
  24. Lưu thành công? → Hiện mã BM-YYMMDD-XXX + ‘Sao chép tóm tắt’ (Thành công)
  25. Hiện mã BM-YYMMDD-XXX + ‘Sao chép tóm tắt’ → Hà dán tóm tắt gửi khách xác nhận

Vẽ xong, bạn sẽ thấy ngay vài câu hỏi thiết kế mà spec chữ dễ bỏ sót. Ví dụ: ở bước J, Hà “nhắn quản lý” bằng cách nào — ngoài hệ thống? Có nên cho Hà lưu đơn dạng nháp để quản lý duyệt không? Chị Lan quyết định không (đưa vào non-goals của MVP), nhưng giờ đó là quyết định có ý thức chứ không phải điều bị quên.

Sơ đồ màn hình: sản phẩm có những màn hình nào

Nếu user flow là “một chuyến đi”, thì sơ đồ màn hình (screen map, đôi khi gọi là site map) là “bản đồ thành phố”: tất cả các màn hình và đường nối giữa chúng, thường kèm ai được vào đâu. Nó giúp bạn kiểm tra hai điều: không thiếu màn hình nào cho các user story, và không có màn hình “mồ côi” mà không ai tới được.

Vuốt ngang để xem hết sơ đồ

staff, manager

owner

manager bếp

Đăng nhập

Theo vai trò

Danh sách đơn
(lọc ngày, trạng thái)

Dashboard đơn hôm nay

Màn hình bếp
(theo chuyến xe)

Tạo đơn

Chi tiết đơn

Tạo thành công
+ tóm tắt

Sửa đơn

Ghi nhận thanh toán

Hủy đơn (có lý do)

Khách hàng
(tìm theo SĐT)

Chi tiết khách
+ lịch sử mua

Vuốt ngang để xem hết sơ đồ

staff, manager

owner

manager bếp

Đăng nhập

Theo vai trò

Danh sách đơn
(lọc ngày, trạng thái)

Dashboard đơn hôm nay

Màn hình bếp
(theo chuyến xe)

Tạo đơn

Chi tiết đơn

Tạo thành công
+ tóm tắt

Sửa đơn

Ghi nhận thanh toán

Hủy đơn (có lý do)

Khách hàng
(tìm theo SĐT)

Chi tiết khách
+ lịch sử mua

Hình 2 Sơ đồ luồng
Đọc sơ đồ dạng chữ
  1. Đăng nhập → Theo vai trò
  2. Theo vai trò → Danh sách đơn (lọc ngày, trạng thái) (staff, manager)
  3. Theo vai trò → Dashboard đơn hôm nay (owner)
  4. Theo vai trò → Màn hình bếp (theo chuyến xe) (manager bếp)
  5. Dashboard đơn hôm nay → Danh sách đơn (lọc ngày, trạng thái)
  6. Danh sách đơn (lọc ngày, trạng thái) → Tạo đơn
  7. Danh sách đơn (lọc ngày, trạng thái) → Chi tiết đơn
  8. Tạo đơn → Tạo thành công + tóm tắt
  9. Tạo thành công + tóm tắt → Chi tiết đơn
  10. Chi tiết đơn → Sửa đơn
  11. Chi tiết đơn → Ghi nhận thanh toán
  12. Chi tiết đơn → Hủy đơn (có lý do)
  13. Danh sách đơn (lọc ngày, trạng thái) → Khách hàng (tìm theo SĐT)
  14. Khách hàng (tìm theo SĐT) → Chi tiết khách + lịch sử mua
  15. Chi tiết khách + lịch sử mua → Tạo đơn
  16. Màn hình bếp (theo chuyến xe) → Chi tiết đơn

Đối chiếu với 6 user story ở bài 03-0503-05: US-01 → Tạo đơn; US-02 → Tạo đơn và Khách hàng; US-03 → Ghi nhận thanh toán; US-04 → Màn hình bếp; US-05 → Hủy đơn; US-06 → Dashboard. Không thiếu story nào; và có một đường nối đáng giá vừa xuất hiện: từ “Chi tiết khách” sang “Tạo đơn” — chính là “đặt lại như lần trước” mà khách quen hay yêu cầu.

Wireframe: lo-fi và hi-fi

Wireframe (khung màn hình) là bản phác bố cục một màn hình: có những khối nào, nằm ở đâu, thứ tự ra sao — chưa quan tâm màu sắc, font chữ, hình ảnh. Giống bản vẽ mặt bằng căn nhà: phòng khách ở đâu, cửa sổ hướng nào, chứ chưa chọn màu sơn.

Mức độ Hình thức Thời gian Dùng khi Rủi ro
Lo-fi (độ trung thực thấp) Giấy bút, bảng trắng, văn bản/ASCII Vài phút Khám phá bố cục, thứ tự thông tin; thảo luận với người dùng Khó hình dung trên thiết bị thật
Mid-fi Công cụ wireframe (Excalidraw, Figma, Balsamiq… tại thời điểm viết), khối xám Vài giờ Chốt bố cục nhiều màn hình, chia sẻ với team Bắt đầu tốn công sửa
Hi-fi (độ trung thực cao) Mockup có màu, font, component thật Vài giờ đến vài ngày Kiểm tra cảm nhận thị giác, chuẩn bị cho code Người xem góp ý màu sắc thay vì luồng
Prototype bấm được HTML tĩnh hoặc công cụ thiết kế có liên kết Vài giờ với AI Thử nghiệm với người dùng thật Bị nhầm là “gần xong”

Một nguyên tắc dễ nhớ: độ trung thực càng thấp, góp ý càng về cấu trúc; độ trung thực càng cao, góp ý càng về bề mặt. Khi bạn còn đang hỏi “Hà có cần thấy lịch sử mua ngay trên form tạo đơn không?”, đừng mất thời gian chọn màu nút.

Wireframe ASCII: màn hình “Tạo đơn” (laptop ở quầy)

Thứ tự các khối theo đúng mẫu tin nhắn Hà vẫn dùng (phát hiện ở bài 03-02): Khách → Sản phẩm → Nhận hàng → Thanh toán; khối Tóm tắt luôn nằm bên phải.

Phiên agent

+--------------------------------------------------------------------------------------+
| MỘC OMS   Đơn hàng | Khách hàng | Bếp                       Hà (staff) · Phú Nhuận ▾ |
+--------------------------------------------------------------------------------------+
| < Danh sách đơn         TẠO ĐƠN MỚI                                                  |
+----------------------------------------------------------+---------------------------+
| 1. KHÁCH HÀNG                                            | TÓM TẮT                   |
| SĐT [ 0901 234 567        ] [Tìm]                        | Khách: Trần Thị B         |
| ✓ Trần Thị B · 3 đơn gần nhất: 12/09 BK 20cm socola ...  | Kênh: Zalo                |
|                                                          | ------------------------- |
| 2. SẢN PHẨM                                              | BK tùy chỉnh 20cm  450.000|
| [Bánh kem tùy chỉnh 20cm ▾]  SL [1]   450.000đ           | Bánh quy hộp x2    240.000|
|    Vị        [Chanh dây ▾]                               | ------------------------- |
|    Chữ       [Mừng sinh nhật Mẹ Ánh          ] 21/40     | Tạm tính          690.000 |
|              ( ) Không chữ                               | Phí giao               0  |
|    Ghi chú bếp [ít ngọt                       ]          | TỔNG              690.000 |
| [+ Thêm sản phẩm]                                        | Đã cọc            345.000 |
|                                                          | CÒN LẠI           345.000 |
| 3. NHẬN HÀNG                                             |                           |
| (•) Nhận tại tiệm [Phú Nhuận ▾]   ( ) Giao hàng          | [      TẠO ĐƠN      ]     |
| Giờ nhận [13/10/2026] [17:00]                            |                           |
| Kênh [Zalo ▾]   Ghi chú đơn [                    ]       |                           |
|                                                          |                           |
| 4. THANH TOÁN (tùy chọn)                                 |                           |
| Cọc [ 345.000 ]  Phương thức [Chuyển khoản ▾]            |                           |
| Mã giao dịch [ FT2610121234 ]                            |                           |
+----------------------------------------------------------+---------------------------+

Wireframe ASCII: màn hình bếp (máy tính bảng, xoay ngang)

Từ shadowing bếp, chị Lan biết anh Tuấn đứng cách màn hình khoảng một mét, tay thường dính bột: chữ phải to, nút phải lớn, nhóm theo chuyến xe.

Phiên agent

+----------------------------------------------------------------------+
| BẾP TRUNG TÂM · Thứ Ba 13/10/2026            Cập nhật 05:42  [Tải lại]|
+----------------------------------------------------------------------+
| CHUYẾN 07:30  (giờ nhận trước 15:00)              3 bánh · 1 đang làm |
|----------------------------------------------------------------------|
| 10:00  Gò Vấp     BK 20cm · Chanh dây                    [ĐANG LÀM]  |
|        "Mừng sinh nhật Mẹ Ánh"                BM-261012-003          |
|----------------------------------------------------------------------|
| 11:30  Thảo Điền  BK 16cm · Socola  · ít ngọt            [BẮT ĐẦU]   |
|        "Happy Birthday Bin"                   BM-261012-015          |
|----------------------------------------------------------------------|
| 14:30  Phú Nhuận  BK 24cm · Dâu tây                      [BẮT ĐẦU]   |
|        (Không chữ)                            BM-261012-021          |
|----------------------------------------------------------------------|
| ~~12:00  Gò Vấp   BK 20cm · Matcha~~                     ĐÃ HỦY      |
+----------------------------------------------------------------------+
| CHUYẾN 13:00  (giờ nhận từ 15:00)                 3 bánh · 0 đang làm |
|----------------------------------------------------------------------|
| 17:00  Phú Nhuận  BK 20cm · Chanh dây                    [BẮT ĐẦU]   |
|        "Chúc mừng 10 năm ngày cưới"           BM-261012-030          |
| ...                                                                  |
+----------------------------------------------------------------------+

Chú ý những quyết định nhỏ đã nằm sẵn trong wireframe: chữ trên bánh đặt trong ngoặc kép trên dòng riêng (để thợ chép đúng từng ký tự), “(Không chữ)” hiển thị tường minh thay vì để trống (để không ai nghĩ là quên), đơn hủy gạch ngang thay vì biến mất (đúng tiêu chí ở US-04). Mỗi quyết định như vậy sẽ được ghi vào spec màn hình bếp.

Prototype nhanh bằng AI

Prototype (bản mẫu) là phiên bản có thể tương tác được — bấm nút, chuyển màn hình, nhập thử — nhưng không có hệ thống thật phía sau. Trước đây, làm prototype bấm được cần designer và công cụ chuyên dụng. Bây giờ, bạn có thể đưa user flow và wireframe ASCII cho AI và nhận về một file HTML tĩnh chạy được trên trình duyệt trong vài phút.

Cách làm gọn:

  1. Đầu vào: user flow (Mermaid), wireframe ASCII, vài quy tắc chính (chữ tối đa 40 ký tự, đủ 24 giờ), dữ liệu giả.
  2. Ràng buộc rõ: một file HTML duy nhất, không backend, không đăng nhập, dữ liệu giả cứng trong file, không gọi API ngoài.
  3. Mục tiêu rõ: đủ để người dùng làm được 3 nhiệm vụ thử nghiệm; không cần đẹp.
  4. Lưu riêng: đặt trong thư mục prototypes/ hoặc repo riêng, không trong src/.

Khi nào dùng công cụ tạo app tự động (app builder) thay vì HTML tĩnh? Khi bạn cần prototype trông rất giống thật, có nhiều màn hình. Bản đồ các loại công cụ ở bài 02-0302-03. Nguyên tắc vứt đi vẫn giữ nguyên.

Thử nghiệm với 3–5 người dùng

Bạn không cần 50 người để tìm ra vấn đề của một màn hình. Các nhà nghiên cứu khả dụng (như Nielsen Norman Group) từ lâu đã khuyến nghị thử với khoảng 5 người mỗi vòng: vài người đầu tiên đã lộ ra phần lớn vấn đề lớn, người thứ 6, thứ 7 chủ yếu lặp lại điều bạn đã thấy. Tốt hơn là thử nhiều vòng nhỏ — sửa — thử lại, thay vì một vòng lớn.

Với phần mềm nội bộ, “5 người” thường là gần như toàn bộ người dùng của một vai trò. Hãy chọn người thật sẽ dùng: Hà, hai nhân viên quầy, anh Tuấn, một thợ bánh.

Kịch bản buổi thử (20–30 phút mỗi người)

Vuốt ngang để xem hết sơ đồ

Chuẩn bị:
3 nhiệm vụ, dữ liệu giả,
phiếu ghi chép

Giới thiệu:
‘Mình thử phần mềm,
không thử bạn’

Giao từng nhiệm vụ,
người dùng nghĩ to thành lời

Quan sát, ghi chép,
KHÔNG giúp đỡ

Hỏi sau mỗi nhiệm vụ:
chỗ nào khó, bất ngờ?

Tổng hợp:
vấn đề + mức nghiêm trọng

Cập nhật wireframe/spec,
thử vòng tiếp

Vuốt ngang để xem hết sơ đồ

Chuẩn bị:
3 nhiệm vụ, dữ liệu giả,
phiếu ghi chép

Giới thiệu:
‘Mình thử phần mềm,
không thử bạn’

Giao từng nhiệm vụ,
người dùng nghĩ to thành lời

Quan sát, ghi chép,
KHÔNG giúp đỡ

Hỏi sau mỗi nhiệm vụ:
chỗ nào khó, bất ngờ?

Tổng hợp:
vấn đề + mức nghiêm trọng

Cập nhật wireframe/spec,
thử vòng tiếp

Hình 3 Sơ đồ luồng
Đọc sơ đồ dạng chữ
  1. Chuẩn bị: 3 nhiệm vụ, dữ liệu giả, phiếu ghi chép → Giới thiệu: ‘Mình thử phần mềm, không thử bạn’
  2. Giới thiệu: ‘Mình thử phần mềm, không thử bạn’ → Giao từng nhiệm vụ, người dùng nghĩ to thành lời
  3. Giao từng nhiệm vụ, người dùng nghĩ to thành lời → Quan sát, ghi chép, KHÔNG giúp đỡ
  4. Quan sát, ghi chép, KHÔNG giúp đỡ → Hỏi sau mỗi nhiệm vụ: chỗ nào khó, bất ngờ?
  5. Hỏi sau mỗi nhiệm vụ: chỗ nào khó, bất ngờ? → Tổng hợp: vấn đề + mức nghiêm trọng
  6. Tổng hợp: vấn đề + mức nghiêm trọng → Cập nhật wireframe/spec, thử vòng tiếp

Nhiệm vụ phải giống tình huống thật, không chỉ dẫn từng bước. Đừng nói “bấm nút Thêm sản phẩm rồi chọn vị”. Hãy nói:

  • Nhiệm vụ 1: “Khách số 0901 234 567 vừa nhắn: ‘Em đặt bánh 20cm vị chanh dây, ghi Mừng sinh nhật Mẹ Ánh, 5 giờ chiều mai lấy ở Phú Nhuận, chị chuyển cọc 300 nghìn rồi nhé.’ Em ghi đơn này.”
  • Nhiệm vụ 2: “Một khách mới gọi điện, đặt bánh cho 8 giờ sáng mai.” (Kiểm tra người dùng hiểu thông báo 24 giờ không.)
  • Nhiệm vụ 3 (bếp): “Anh xem sáng nay chuyến 7:30 có bao nhiêu bánh chưa làm.”

Ghi chép theo bảng đơn giản:

Người Nhiệm vụ Hoàn thành? Thời gian Chỗ vấp / câu nói nguyên văn Mức nghiêm trọng
Hà 1 Có 1 phút 40 giây “Ô cọc ở cuối, em cứ tìm ở trên” Vừa
Quầy PN 2 Có, sau 2 lần thử 2 phút 10 giây Không hiểu “đơn gấp” là gì Cao
Anh Tuấn 3 Có 15 giây “Chữ nhỏ quá, anh phải cúi xuống” Cao

Mức nghiêm trọng gợi ý: Cao — chặn nhiệm vụ hoặc dẫn tới sai bánh/sai tiền; Vừa — làm chậm, gây bối rối nhưng vẫn xong; Thấp — khó chịu nhỏ, thẩm mỹ.

Áp dụng vào dự án Bánh Mộc

Nhật ký công trình · Bánh Mộc

BM-261013-029

13.10.2026

  • Chị LanChủ chuỗi
  • HàBán hàng online

Chị Lan dành một tuần cho bước này, ngay sau khi spec “Tạo đơn hàng” được duyệt.

Ngày 1 — flow và sơ đồ màn hình. Chị vẽ user flow tạo đơn và sơ đồ màn hình bằng Mermaid, nhờ AI rà xem có user story nào chưa có màn hình. AI phát hiện thiếu một lối từ màn hình bếp sang chi tiết đơn (khi thợ cần xem ghi chú dài) — chị thêm vào.

Ngày 2 — wireframe ASCII. Chị phác wireframe “Tạo đơn” và “Màn hình bếp” bằng văn bản ngay trong file spec. Lần đầu tiên, chị cảm thấy mình “thiết kế” được mà không cần biết dùng công cụ đồ họa.

Ngày 3 — prototype. Chị dùng Prompt 2 bên dưới để agent dựng một file prototypes/tao-don.html và prototypes/bep.html với dữ liệu giả. Mất khoảng một giờ, kể cả hai lần sửa.

Ngày 4–5 — thử với 5 người. Kết quả có ba phát hiện mức “Cao”:

  1. Nhân viên quầy Phú Nhuận không hiểu chữ “đơn gấp” trong thông báo lỗi. Chị đổi thành câu nói rõ hậu quả và cách xử lý: “Bánh kem tùy chỉnh cần đặt trước ít nhất 24 giờ. Liên hệ quản lý để tạo đơn gấp.” — đúng như bản spec 1.1.
  2. Anh Tuấn phải cúi xuống mới đọc được chữ trên bánh trên máy tính bảng. Spec màn hình bếp thêm yêu cầu: chữ trên bánh hiển thị cỡ lớn, đậm, trong ngoặc kép, đọc được từ khoảng một mét.
  3. Thợ bánh hỏi: “Bánh xong rồi thì bấm ở đâu?” Prototype chỉ có nút “Bắt đầu”. Chị bổ sung nút “Xong” và trạng thái tương ứng vào câu hỏi mở của spec màn hình bếp, vì nó liên quan tới quy trình chuyển trạng thái dang_lam → dang_giao.

Phát hiện mức “Vừa”: Hà muốn khối Thanh toán nằm cao hơn vì khách thường nói chuyện cọc ngay từ đầu. Chị quyết định giữ thứ tự nhưng cho khối Tóm tắt bên phải luôn hiển thị “Đã cọc / Còn lại” — một thỏa hiệp được Hà đồng ý ở vòng thử thứ hai.

Sau một tuần, hai file prototype được lưu lại như tài liệu tham khảo, wireframe ASCII nằm trong spec, và không dòng code prototype nào đi vào src/.

Prompt mẫu

Prompt 1 — Từ user story sang user flow và sơ đồ màn hình

Giao việc cho agent

Đây là các user story và quy tắc nghiệp vụ của Mộc OMS:
"""[dán US-01…US-06 và bảng QT]"""
1. Vẽ user flow (Mermaid flowchart TD, nhãn tiếng Việt trong ngoặc kép) cho nhiệm vụ:
   "Hà tạo đơn bánh kem từ tin nhắn Zalo". Bắt đầu từ ngữ cảnh thật (khách nhắn tin),
   có nhánh: khách chưa có, SĐT sai, đặt quá gấp, cọc/không cọc, mất kết nối khi lưu.
2. Vẽ sơ đồ màn hình (Mermaid flowchart LR) cho toàn bộ MVP, ghi vai trò nào vào được màn hình nào.
3. Lập bảng đối chiếu: mỗi user story -> các màn hình liên quan. Chỉ ra story chưa có màn hình
   và màn hình không phục vụ story nào.

Prompt 2 — Prototype HTML tĩnh để thử với người dùng

Giao việc cho agent

Tạo prototype để THỬ NGHIỆM VỚI NGƯỜI DÙNG, không phải sản phẩm thật.
Ràng buộc:
- Một file duy nhất prototypes/tao-don.html; HTML + CSS + JavaScript thuần, không thư viện ngoài, không backend,
  không gọi API, không lưu dữ liệu thật. Dữ liệu giả (3 khách, 6 sản phẩm) viết cứng trong file.
- Giao diện tiếng Việt, theo đúng bố cục wireframe ASCII dưới đây.
- Mô phỏng các quy tắc: chữ trên bánh tối đa 40 ký tự có bộ đếm; báo lỗi khi giờ nhận cách hiện tại dưới 24 giờ;
  tóm tắt tự tính tổng, đã cọc, còn lại; bấm "Tạo đơn" hiện mã giả dạng BM-YYMMDD-XXX.
- Không cần đẹp; chữ đủ lớn, dùng được trên laptop và máy tính bảng.
Wireframe: """[dán wireframe ASCII]"""
User flow: """[dán Mermaid]"""
Sau khi tạo, liệt kê những gì prototype KHÔNG mô phỏng để tôi biết giới hạn khi thử nghiệm.

Prompt 3 — Chuẩn bị và tổng hợp buổi thử nghiệm

Giao việc cho agent

Tôi sẽ thử prototype với 5 người: 1 nhân viên bán hàng online, 2 nhân viên quầy, 1 quản lý bếp, 1 thợ bánh.
1. Viết 3 nhiệm vụ cho mỗi vai trò, dạng tình huống thật (không chỉ dẫn từng bước bấm nút).
2. Viết lời giới thiệu 4–5 câu cho đầu buổi, nhấn mạnh "đang thử phần mềm, không thử bạn" và xin phép ghi chép.
3. Sau buổi thử, tôi sẽ dán ghi chép (đã ẩn danh). Khi đó hãy gom thành danh sách vấn đề, mỗi vấn đề có:
   mô tả, số người gặp (x/5), trích dẫn nguyên văn, mức nghiêm trọng (Cao/Vừa/Thấp), đề xuất sửa,
   và mục nào trong spec cần cập nhật.

Sai lầm thường gặp

  1. Sự cố 01

    Bỏ qua phác thảo vì “AI code nhanh”.

    Triệu chứng

    *

    Cách tránh

    * nhớ rằng sửa giao diện đã xây kéo theo sửa logic, test, dữ liệu; luôn có ít nhất wireframe lo-fi được người dùng xem trước.

  2. Sự cố 02

    User flow chỉ có luồng suôn sẻ.

    Triệu chứng

    *

    Cách tránh

    * với mỗi điểm quyết định, hỏi “nếu không thì sao?”; vẽ cả nhánh lỗi mạng, thiếu quyền, dữ liệu sai.

  3. Sự cố 03

    Hi-fi quá sớm.

    Triệu chứng

    Người dùng góp ý màu sắc thay vì luồng. *

    Cách tránh

    * đi từ lo-fi; chỉ lên hi-fi khi bố cục và luồng đã ổn.

  4. Sự cố 04

    Biến prototype thành sản phẩm.

    Triệu chứng

    *

    Cách tránh

    * prototype ở thư mục riêng, ghi rõ “để vứt đi”; sản phẩm thật xây lại từ spec theo quy trình chuẩn.

  5. Sự cố 05

    Giúp người dùng trong buổi thử.

    Triệu chứng

    *

    Cách tránh

    * giao nhiệm vụ dạng tình huống, ngồi im, chỉ hỏi “bạn đang tìm gì?”; giải thích để sau buổi.

  6. Sự cố 06

    Thử với người không phải người dùng thật.

    Triệu chứng

    Hỏi bạn bè, người nhà thay vì nhân viên. *

    Cách tránh

    * với phần mềm nội bộ, luôn thử với người sẽ dùng hằng ngày, trên thiết bị họ sẽ dùng.

Checklist

Phiếu nghiệm thu

Bài tập thực hành

  1. Bài 1

    Cơ bản

    User flow có nhánh lỗi

    Chọn một nhiệm vụ trong sản phẩm của bạn, vẽ user flow bằng Mermaid với ít nhất 3 điểm quyết định và 2 nhánh lỗi.

    Kết quả mong đợi

    sơ đồ hiển thị được, bắt đầu từ ngữ cảnh thật, kết thúc ở cả trạng thái thành công lẫn thất bại có hướng xử lý.

  2. Bài 2

    Cơ bản

    Wireframe ASCII

    Phác wireframe ASCII cho màn hình quan trọng nhất, rồi phác lại cho thiết bị thứ hai (ví dụ điện thoại).

    Kết quả mong đợi

    hai bản phác cho thấy rõ những gì được giữ, ẩn hoặc sắp xếp lại trên màn hình nhỏ; các trạng thái quan trọng (rỗng, lỗi) được ghi chú.

  3. Bài 3

    Nâng cao

    Prototype và thử nghiệm

    Dùng Prompt 2 dựng prototype, thử với ít nhất 3 người dùng thật bằng nhiệm vụ dạng tình huống.

    Kết quả mong đợi

    bảng ghi chép theo mẫu, ít nhất 3 vấn đề có mức nghiêm trọng, và spec được cập nhật (tăng phiên bản, ghi lịch sử thay đổi) theo những phát hiện đó.

Thuật ngữ trong bài

User flow
Đường đi của người dùng qua các bước và quyết định để hoàn thành một nhiệm vụ.
Sơ đồ màn hình (screen map)
Bản đồ tất cả màn hình của sản phẩm và cách đi giữa chúng.
Wireframe
Bản phác bố cục một màn hình, chưa có màu sắc, hình ảnh.
Lo-fi / hi-fi
Độ trung thực thấp (phác thô) / cao (gần giống sản phẩm thật).
Mockup
Bản thiết kế tĩnh có màu, font, gần với giao diện cuối.
Prototype
Bản mẫu bấm được, mô phỏng tương tác, không có hệ thống thật phía sau.
Thử nghiệm khả dụng (usability test)
Quan sát người dùng thật làm nhiệm vụ trên sản phẩm/bản mẫu để tìm vấn đề.
Nghĩ to thành lời (think-aloud)
Người thử nói ra điều họ đang nghĩ khi thao tác.
Mức nghiêm trọng
Phân loại vấn đề theo hậu quả: cao, vừa, thấp.

Đọc thêm

Nghiệm thu tờ 03-07

Đọc xong và tự kiểm theo phiếu nghiệm thu, rồi đánh dấu tờ này.

Tác giả
Phú Digital
Đội ngũ PDL Digital — triển khai website, giải pháp AI và digital marketing cho doanh nghiệp.
Tư vấn 1:1

Muốn dựng phần mềm riêng cho doanh nghiệp của bạn?

Kỹ sư PDL cùng bạn chọn bước đầu tiên phù hợp — phản hồi trong giờ làm việc (T2–T7, 8h–18h).

<script src="https://cdn.jsdelivr.net/npm/page-flip/dist/js/page-flip.browser.js"></script>

<div id="container-flipbook" style="display:flex; justify-content:center;">
    <div id="my-flipbook">
       <div class="page"> <img src="https://pdl.vn/wp-content/uploads/2025/05/AI-Google-Search.jpg" /> </div>
       <div class="page"> <img src="https://pdl.vn/wp-content/uploads/2025/05/wearable-tech-advertising.jpg" /> </div>
       <div class="page"> <img src="https://pdl.vn/wp-content/uploads/2025/05/multimodal-embeddings-digital-marketing.jpg" /> </div>
    </div>
</div>
#my-flipbook {
    box-shadow: 0 0 20px rgba(0,0,0,0.2);
    margin: 20px auto;
    background-color: #f0f0f0;
}

.page {
    background-color: white;
    overflow: hidden;
}

.page img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Giúp ảnh vừa vặn trang sách */
}
// Đảm bảo thư viện đã sẵn sàng
function initFlipbook() {
    const el = document.getElementById("my-flipbook");
    if (!el || !window.St) return; // Nếu chưa thấy thư viện St thì thoát

    const pageFlip = new St.PageFlip(el, {
        width: 550,
        height: 733,
        size: "stretch",
        minWidth: 315,
        maxWidth: 1000,
        minHeight: 420,
        maxHeight: 1350,
        showCover: true,
        maxShadowOpacity: 0.5,
    });

    pageFlip.loadFromHTML(document.querySelectorAll(".page"));
}

// Chạy khởi tạo
if (document.readyState === 'complete') {
    initFlipbook();
} else {
    window.addEventListener('load', initFlipbook);
}
PDL · Tư vấn 1:1

Nhận tư vấn
miễn phí

Để lại thông tin, chuyên viên PDL sẽ liên hệ để hiểu nhu cầu và đề xuất giải pháp phù hợp ngân sách của bạn.

  • Phân tích nhanh hiện trạng website, quảng cáo, kênh bán hàng
  • Đề xuất lộ trình & báo giá minh bạch, rõ từng hạng mục
  • Không ràng buộc: nghe tư vấn xong mới quyết định
Giờ làm việc T2–T7 · 08:00–18:00

Chỉ mất khoảng 30 giây

Bạn cần tư vấn về

🔒 Thông tin được bảo mật, chỉ dùng để PDL liên hệ tư vấn.