Mini Case: Khách đã chuyển khoản, vì sao vẫn mất chỗ workshop?

Một người chuyển khoản đúng hạn. Người còn lại nhận được thông báo có chỗ rồi mới thanh toán.

Cả hai đều muốn tham gia. Workshop chỉ còn một chỗ.

Nếu được giao xây công cụ quản lý đăng ký, bạn sẽ thiết kế cách xử lý ra sao?

Đây là tình huống giả định để luyện tư duy BA và Solution Builder. Bạn có thể trình bày bài làm bằng bảng, sơ đồ hoặc bản phác thảo ứng dụng.

1. Bối cảnh

Một đơn vị tổ chức workshop thực hành trực tiếp, giới hạn 40 người. Phí tham gia là 200.000 đồng/người.

Team đang sử dụng:

• Form đăng ký.
• Bảng tính theo dõi người tham gia.
• Chuyển khoản ngân hàng.
• Tin nhắn xác nhận và danh sách chờ.

Khách được giữ chỗ trong 20 phút sau khi đăng ký. Nếu chưa thấy thanh toán được xác nhận, vận hành có thể nhường chỗ cho người tiếp theo.

Kế toán kiểm tra giao dịch theo từng đợt rồi cập nhật vào bảng tính. Vì vậy, thời điểm khách chuyển khoản và thời điểm vận hành nhìn thấy xác nhận có thể cách nhau khá lâu.

Team muốn xây một ứng dụng chung để theo dõi đăng ký, thanh toán và số chỗ còn lại.

2. Vai trò của bạn

Bạn là Solution Builder phụ trách làm rõ yêu cầu và đề xuất cách vận hành cho ứng dụng.

Trong buổi họp đầu tiên, các bên đưa ra những ý kiến sau:

Marketing:
“Khách chuyển khoản đúng hạn thì phải có chỗ. Đừng để khách làm đúng hướng dẫn rồi vẫn bị hủy đăng ký.”

Vận hành:
“Team cần nhìn vào app là biết còn bao nhiêu chỗ. Giữ chỗ mãi cho người chưa trả tiền thì người muốn tham gia lại phải chờ.”

Kế toán:
“Bên chị kiểm tra giao dịch khoảng 30 phút một lần. Ảnh chuyển khoản khách gửi vẫn phải đối chiếu với giao dịch thực tế.”

Người phụ trách chương trình:
“Phòng chỉ đủ 40 người. Trường hợp đặc biệt cần có người duyệt và phải xem lại được ai đã quyết định.”

Một người trong danh sách chờ:
“Nếu đến lượt mình thì cho mình thời gian thanh toán rõ ràng nhé. Mình không thể ngồi canh tin nhắn cả ngày.”

Các ý kiến này chưa được thống nhất thành quy tắc vận hành.

3. Sự cố cần xử lý

Workshop đã xác nhận 39 người. Chỗ cuối cùng được xử lý như sau:

Thời điểm Diễn biến
19:45 An đăng ký và nhận thông báo giữ chỗ trong 20 phút.
20:03 An chuyển khoản thành công, đúng số tiền và nội dung.
20:06 Vận hành chưa thấy xác nhận thanh toán của An nên nhường chỗ cho Bình trong danh sách chờ.
20:08 Bình nhận thông báo có chỗ và chuyển khoản thành công.
20:12 Kế toán đối chiếu và cập nhật cả hai giao dịch.

An cho rằng mình đã thanh toán đúng hạn. Bình cho rằng mình đã làm đúng thông báo của ban tổ chức.

Team cần giải quyết sự cố này và thiết kế cách xử lý cho những lần sau.

4. Yêu cầu bài làm

Câu 1. Bạn cần hỏi ai?

Liệt kê các bên liên quan, kể cả người chưa có mặt trong buổi họp.

Với mỗi bên, nêu:

• Mối quan tâm chính của họ.
• Thông tin họ cần theo dõi.
• Trách nhiệm và quyền quyết định của họ.

Câu 2. Điều gì còn thiếu hoặc mâu thuẫn?

Tìm ít nhất 3 điểm cần làm rõ trước khi cấu hình ứng dụng.

Trình bày theo bảng:

Điểm cần làm rõ Câu hỏi và người cần hỏi Giả định tạm thời nếu chưa có câu trả lời
… … …

Ghi rõ đâu là dữ kiện của đề, đâu là giả định bạn bổ sung.

Câu 3. Bạn sẽ thiết kế cách xử lý thế nào?

Đề xuất:

• Cách giải quyết trường hợp của An và Bình, kèm lý do.
• Luồng từ đăng ký, giữ chỗ đến xác nhận tham gia.
• Cách xử lý khi hết thời gian giữ chỗ, thanh toán được ghi nhận muộn hoặc khách hủy.
• Những dữ liệu cần lưu để kiểm tra lại diễn biến.
• Những thao tác cần người phụ trách phê duyệt.

Nếu giải pháp cần kết nối với ngân hàng hoặc thêm nguồn dữ liệu khác, hãy nêu rõ điều kiện và cách xử lý khi chưa có kết nối đó.

Câu 4. Làm sao biết giải pháp chạy đúng?

Viết 5 kịch bản kiểm thử quan trọng nhất.

Mỗi kịch bản gồm:

• Điều kiện ban đầu.
• Các bước thực hiện.
• Kết quả mong đợi.

Ưu tiên những tình huống có thể khiến team xác nhận sai người, vượt số chỗ hoặc xử lý tiền không rõ ràng.

5. Hướng dẫn tham gia

Nếu mới bắt đầu: dành khoảng 20 phút cho câu 1 và câu 2.

Nếu muốn luyện đầy đủ: dành khoảng 45 phút cho cả 4 câu. Bài làm gồm:

  1. Danh sách các bên liên quan.

  2. Bảng câu hỏi làm rõ và giả định.

  3. Sơ đồ luồng cùng các quy tắc đề xuất.

  4. Phác thảo dữ liệu cần quản lý.

  5. Năm kịch bản kiểm thử.

Bạn có thể dựng bản demo sau khi chốt cách xử lý. Một bản đề xuất rõ ràng bằng bảng hoặc sơ đồ cũng đủ để mọi người trao đổi.

Cùng thử sức nhé :speech_balloon:

Đăng bài làm hoặc phần bạn đã nghĩ được dưới bài viết. Khi góp ý cho nhau, hãy thử tìm một tình huống mà giải pháp có thể chưa xử lý được.

Bắt đầu bằng lựa chọn khó nhất: Bạn sẽ giải quyết quyền tham gia của An và Bình thế nào, và vì sao?

Bài giải tham khảo Mini Case #1: Đã chuyển tiền, vẫn mất chỗ?

Phương án đề xuất: giữ chỗ cho An, liên hệ Bình để xin lỗi và hoàn đủ tiền nếu Bình không chọn phương án thay thế phù hợp.

Kết luận này dựa trên giả định: giao dịch của An được ngân hàng ghi nhận lúc 20:03, đúng số tiền và nội dung. An đã đáp ứng thời hạn giữ chỗ đến 20:05.

Bình cũng làm đúng thông báo nhận được. Ban tổ chức cần chịu trách nhiệm xử lý việc đã gửi lời mời khi chỗ chưa được giải phóng hợp lệ.

Các quy tắc dưới đây là phương án đề xuất để trao đổi với các bên trước khi triển khai.

1. Xác định các bên liên quan

Bên liên quan Mối quan tâm chính Trách nhiệm, quyền quyết định đề xuất
Người đăng ký Biết mình còn chỗ không, cần thanh toán trước lúc nào Cung cấp thông tin đăng ký, thanh toán theo hướng dẫn, gửi yêu cầu hủy
Người trong danh sách chờ Biết khi nào đến lượt và có bao lâu để phản hồi Nhận hoặc từ chối lời mời trong thời hạn được thông báo
Marketing Trải nghiệm đăng ký rõ ràng, hạn chế khiếu nại Soạn thông báo, giải thích chính sách; đề xuất phương án chăm sóc khách
Vận hành Quản lý đúng 40 chỗ, tránh xác nhận trùng Theo dõi đăng ký, xử lý danh sách chờ và các ngoại lệ được phân quyền
Kế toán Ghi nhận đúng tiền nhận, tiền hoàn và người thanh toán Đối chiếu giao dịch, xác nhận thanh toán, cập nhật hoàn tiền
Người phụ trách chương trình Đảm bảo sức chứa và thống nhất chính sách Duyệt quy tắc giữ chỗ, cách xử lý tranh chấp, phương án ngoại lệ
Người xây và quản trị ứng dụng Quy tắc đủ rõ để cấu hình, kiểm tra và bảo trì Thiết kế dữ liệu, luồng xử lý, phân quyền và lịch sử thao tác

Ngân hàng hoặc bên cung cấp kết nối thanh toán cũng cần được làm rõ nếu giải pháp sử dụng dữ liệu giao dịch tự động.

2. Những điểm cần hỏi rõ

Điểm còn thiếu hoặc mâu thuẫn Câu hỏi cần làm rõ Phương án tạm đề xuất
“Thanh toán đúng hạn” được tính theo thời điểm nào? Hỏi kế toán và người phụ trách: dựa vào lúc khách thao tác, lúc tiền vào tài khoản hay lúc nhân sự xác nhận? Dùng thời điểm giao dịch nhận tiền được ngân hàng ghi nhận
Giữ chỗ 20 phút nhưng đối soát mỗi 30 phút Hỏi vận hành và kế toán: có thể đối soát trước khi nhường chỗ không? Hết 20 phút chuyển sang “Chờ đối soát”, tiếp tục giữ chỗ đến khi kiểm tra xong
Điều kiện nhường chỗ chưa rõ Hỏi người phụ trách: ai được phép giải phóng chỗ, dựa trên bằng chứng nào? Chỉ giải phóng khi đã kiểm tra dữ liệu giao dịch đến hết hạn giữ chỗ và xác định chưa nhận tiền hợp lệ
Thời hạn cho người trong danh sách chờ Hỏi vận hành: họ có bao lâu để thanh toán sau khi được mời? Được giữ chỗ 20 phút từ khi lời mời hợp lệ được gửi
Tiền về sau thời hạn Hỏi kế toán và người phụ trách: xác nhận, chuyển buổi hay hoàn tiền? Chuyển sang xử lý ngoại lệ, kiểm tra chỗ trước khi quyết định
Quy định hủy và hoàn tiền Hỏi người phụ trách: ai duyệt, hoàn bao nhiêu, trong bao lâu? Chốt thành chính sách riêng và công bố trước khi khách thanh toán
Nhận diện giao dịch Hỏi kế toán: dùng thông tin nào để ghép tiền với đăng ký? Mỗi đăng ký có mã riêng, yêu cầu dùng mã trong nội dung chuyển khoản

Điểm cần chốt trước khi build: thời hạn thanh toán, bằng chứng thanh toán và điều kiện nhường chỗ phải thống nhất với nhau.

3. Xử lý sự cố của An và Bình

Với An

Kiểm tra giao dịch thực tế, đối chiếu mã đăng ký, số tiền và thời điểm nhận tiền.

Nếu đúng như giả định, xác nhận chỗ cho An. Việc kế toán cập nhật lúc 20:12 không làm thay đổi thời điểm thanh toán 20:03.

Với Bình

Liên hệ trực tiếp, giải thích rằng ban tổ chức đã gửi thông báo có chỗ khi chưa kiểm tra xong đăng ký trước đó.

Đề xuất hai hướng:

  • Hoàn đủ 200.000 đồng.

  • Một phương án thay thế nếu thực sự có và Bình đồng ý, chẳng hạn chuyển sang buổi khác.

Không tự chuyển Bình sang buổi khác hoặc yêu cầu Bình tiếp tục chờ sau khi đã thu tiền.

Với nội bộ

Ghi nhận người gửi lời mời, thời điểm nhường chỗ, dữ liệu đã kiểm tra và cách xử lý cuối cùng.

Phòng vẫn giới hạn 40 người. Việc phát sinh hai giao dịch không tạo thêm một chỗ ngồi.

4. Nguyên nhân của sự cố

Về quy trình: vận hành coi việc chưa thấy xác nhận thanh toán là căn cứ để nhường chỗ, trong khi kế toán kiểm tra theo từng đợt. Team chưa thống nhất ai cần kiểm tra gì trước khi giải phóng chỗ.

Về hệ thống: thông tin đăng ký, giữ chỗ và thanh toán nằm rời nhau. Bảng theo dõi chưa thể hiện rõ người đang chờ thanh toán, người đã hết hạn nhưng chưa được đối soát và người thực sự đủ điều kiện nhường chỗ.

Nếu tự động nhường chỗ sau đúng 20 phút theo cách cũ, sự cố có thể xảy ra nhanh hơn.

5. Thiết kế luồng xử lý đề xuất

Bước 1. Tiếp nhận đăng ký

Ứng dụng kiểm tra số chỗ khả dụng.

Số chỗ khả dụng = 40 − số chỗ đã xác nhận − số chỗ đang được giữ.

Các đăng ký đang chờ đối soát vẫn chiếm chỗ.

Nếu còn chỗ, tạo đăng ký, cấp mã thanh toán và ghi nhận hạn giữ chỗ. Nếu hết chỗ, đưa người đăng ký vào danh sách chờ.

Bước 2. Theo dõi thanh toán

Khách nhận hướng dẫn gồm số tiền, mã đăng ký và thời hạn cụ thể, ví dụ: “Vui lòng thanh toán trước hoặc đúng 20:05”.

Ảnh chuyển khoản có thể hỗ trợ tra cứu. Kế toán vẫn cần đối chiếu với giao dịch thực tế trước khi xác nhận.

Bước 3. Hết thời gian giữ chỗ

Nếu đã xác minh được giao dịch hợp lệ trong hạn, chuyển đăng ký sang “Đã xác nhận”.

Nếu chưa đối soát xong, chuyển sang “Chờ đối soát” và tiếp tục giữ chỗ. Thông báo cho khách rằng team đang kiểm tra thanh toán.

Bước 4. Hoàn tất đối soát

Kế toán cần kiểm tra dữ liệu giao dịch đã bao phủ đến hết thời hạn giữ chỗ:

  • Có giao dịch hợp lệ trong hạn: xác nhận tham gia.

  • Không có giao dịch hợp lệ trong hạn: hết hạn đăng ký, giải phóng chỗ.

  • Chưa đủ dữ liệu hoặc thông tin không khớp: tiếp tục xác minh, chưa nhường chỗ.

  • Nhận tiền sau hạn: đưa vào xử lý ngoại lệ.

Bước 5. Mời người trong danh sách chờ

Chỉ gửi lời mời sau khi chỗ đã được giải phóng và giữ lại cho người tiếp theo.

Người được mời nhận thời hạn thanh toán mới. Nếu họ từ chối hoặc hết hạn sau khi đối soát, hệ thống mới chuyển sang người tiếp theo.

Đánh đổi cần chấp nhận: khi đối soát thủ công, chỗ có thể bị giữ lâu hơn 20 phút. Nếu muốn nhường chỗ nhanh hơn, team cần tăng tần suất kiểm tra hoặc có nguồn dữ liệu giao dịch cập nhật nhanh hơn.

6. Những quy tắc cần đặt ra

  1. Tổng số chỗ đã xác nhận và đang giữ không vượt quá 40.

  2. Mỗi chỗ chỉ được cấp cho một đăng ký tại một thời điểm.

  3. Việc kiểm tra và cấp chỗ phải được xử lý liền mạch, tránh hai người cùng nhận chỗ cuối.

  4. Thời điểm thanh toán và thời điểm nhân sự xác nhận được lưu riêng.

  5. Mỗi giao dịch ngân hàng chỉ được ghi nhận một lần.

  6. Tiền nhận sau hạn không tự động chuyển thành xác nhận tham gia.

  7. Khi hủy, dữ liệu thanh toán vẫn được giữ để theo dõi hoàn tiền.

  8. Mọi thao tác đổi trạng thái, nhường chỗ hoặc duyệt ngoại lệ đều có lịch sử.

  9. Quy tắc ưu tiên danh sách chờ và thời hạn phản hồi phải được công bố rõ.

7. Dữ liệu tối thiểu cần quản lý

Nhóm dữ liệu Thông tin chính
Workshop Mã workshop, thời gian, sức chứa, phí tham gia
Đăng ký Mã đăng ký, người tham gia, thông tin liên hệ, thời điểm đăng ký, hạn giữ chỗ, trạng thái
Thanh toán Mã giao dịch ngân hàng, đăng ký liên quan, số tiền, thời điểm nhận tiền, thời điểm đối soát, kết quả
Danh sách chờ Thứ tự chờ, thời điểm tham gia, thời điểm được mời, kết quả phản hồi
Hoàn tiền Giao dịch gốc, số tiền cần hoàn, người duyệt, trạng thái, thời điểm hoàn
Lịch sử xử lý Người thao tác, thời điểm, nội dung thay đổi, lý do

Trạng thái đăng ký và trạng thái thanh toán cần được theo dõi riêng. Ví dụ: một đăng ký có thể đã hủy nhưng vẫn đang chờ hoàn tiền.

8. Năm kịch bản kiểm thử quan trọng

Kịch bản 1: Thanh toán đúng hạn, xác nhận muộn

Điều kiện: còn một chỗ, An được giữ đến 20:05.

Thực hiện: An thanh toán lúc 20:03; kế toán xác nhận lúc 20:12.

Kết quả mong đợi: sau 20:05, đăng ký chuyển sang chờ đối soát và vẫn giữ chỗ. Khi giao dịch được xác minh, An được xác nhận. Không có lời mời mới cho chỗ này.

Kịch bản 2: Hết hạn và không thanh toán

Điều kiện: An được giữ chỗ đến 20:05, Bình đứng đầu danh sách chờ.

Thực hiện: hết hạn, kế toán kiểm tra dữ liệu đến 20:05 và xác định không có giao dịch hợp lệ.

Kết quả mong đợi: đăng ký của An hết hạn. Chỗ được giữ cho Bình trước khi gửi lời mời. Bình nhận thời hạn thanh toán mới.

Kịch bản 3: Tiền về sau hạn, chỗ đã cấp cho người khác

Điều kiện: đăng ký của An đã hết hạn sau đối soát; Bình đã được cấp chỗ hợp lệ.

Thực hiện: phát hiện An thanh toán sau thời hạn.

Kết quả mong đợi: giao dịch của An được ghi nhận để xử lý ngoại lệ. An không tự động được xác nhận; chỗ của Bình được giữ nguyên. Người có thẩm quyền quyết định phương án tiếp theo.

Kịch bản 4: Hai người cùng đăng ký chỗ cuối

Điều kiện: chỉ còn một chỗ.

Thực hiện: hai người gửi đăng ký gần như đồng thời.

Kết quả mong đợi: chỉ một người được giữ chỗ; người còn lại vào danh sách chờ. Tổng số chỗ đã xác nhận và đang giữ không vượt 40.

Kịch bản 5: Hủy, hoàn tiền và cập nhật trùng

Điều kiện: một người đã thanh toán và được duyệt hủy kèm hoàn tiền.

Thực hiện: xử lý hủy, hoàn tiền; sau đó thử nhập lại cùng mã giao dịch nhận tiền hoặc xác nhận hoàn tiền lần nữa.

Kết quả mong đợi: đăng ký không được xác nhận lại, không cộng trùng tiền nhận và không hoàn tiền hai lần. Giao dịch gốc cùng lịch sử xử lý vẫn tra cứu được.

Điều cần nhớ khi giải case này

Trước khi cấu hình ứng dụng, hãy trả lời được ba câu:

Một chỗ đang thuộc về ai? Bằng chứng nào xác nhận quyền đó? Khi nào quyền giữ chỗ được chuyển sang người tiếp theo?

Khi ba câu này đã rõ, team mới có căn cứ để thiết kế dữ liệu, phân quyền và tự động hóa từng bước.