Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Quy tắc: Quy tắc nghiệp vụ và ngoại lệ

Đã đọc 0/12 mục · còn khoảng 9 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Vì sao chủ đề quan trọng

Bài 1 cho bạn bảng thuật ngữ. Bài này dùng nó để viết thứ mà sinh viên hay bỏ qua nhất: quy tắc nghiệp vụ (business rule) và ngoại lệ của chúng. Đầu ra của bài là danh sách quy tắc R1 tới R6 của Căng tin số, mỗi quy tắc viết được thành phép thử, có người chịu trách nhiệm, có ngoại lệ đã biết và câu hỏi còn mở.

Phần lớn tính năng "bị quên" trong đồ án không phải là tính năng chính. Nhóm nào cũng nhớ làm màn hình đặt món. Rất ít nhóm nhớ rằng đặt trước phải có hạn chót, phần không tới lấy phải đi đâu đó, và tiền đã trả phải có đường quay về. Những thứ đó không xuất hiện như một yêu cầu. Chúng xuất hiện như một câu nói thoáng qua của người làm nghề, kiểu "Hoàn tiền thì chỉ tôi được duyệt, nhân viên quầy không được." Không bắt câu đó lại, nó sẽ quay về dưới dạng lỗi khi chạy thử ở học kỳ 2.

Quy tắc nghiệp vụ là điều phải đúng trong nghiệp vụ dù có phần mềm hay không. Cô Hạnh bỏ món nấu quá bốn tiếng từ trước khi có app.

Bức tranh lớn

Một quy tắc đi qua năm bước, từ câu nói tới phép thử.

flowchart TD
    A[Câu nói nguyên văn trong phỏng vấn] --> B[Viết lại dạng khi, thì, trừ khi]
    B --> C[Kiểm tra mọi từ đã có trong bảng thuật ngữ]
    C --> D[Hỏi ngày đặc biệt để tìm ngoại lệ]
    D --> E[Gán người chịu trách nhiệm quy tắc]
    E --> F{Phần mềm phải làm gì?}
    F -->|Có hành động riêng| G[Thành tính năng]
    F -->|Chỉ chặn hoặc kiểm tra| H[Thành ràng buộc]
    F -->|Nằm ngoài app| I[Ghi lại, không xây]

Dạng viết chuẩn của bài này là khi… thì…, trừ khi…. "Khi" nêu tình huống kích hoạt. "Thì" nêu điều bắt buộc xảy ra. "Trừ khi" nêu ngoại lệ đã biết. Viết như vậy có một lợi ích lớn: mỗi quy tắc tự biến thành ít nhất hai ca kiểm thử, một ca cho "thì" và một ca cho "trừ khi".

Một quy tắc viết được thành phép thử khi người khác đọc xong có thể nói chắc một tình huống cụ thể là đúng hay sai quy tắc. "Đặt trước cần thông báo sớm" không thử được. "Khi đơn đặt trước được gửi sau 10:00 cùng ngày thì hệ thống từ chối" thử được: đơn gửi lúc 10:05 phải bị từ chối.

Ví dụ chi tiết

Dưới đây là sáu quy tắc của Căng tin số, mỗi quy tắc đi từ câu nghe được tới câu viết lại.

R1, cấu trúc suất cơm. Nghe từ Cô Hạnh: "Cơm phần là một chén cơm, tối đa hai món mặn, một món rau. Thêm món mặn thứ ba là cộng mười nghìn." Viết lại: Khi sinh viên chọn món cho một suất cơm thì suất gồm 1 cơm, tối đa 2 món mặn, 1 rau; mỗi món mặn từ thứ ba cộng 10.000đ. Câu hỏi mở: "tối đa hai" và "món thứ ba cộng tiền" mâu thuẫn nhẹ. Nếu cộng tiền được thì "tối đa" là tối đa trong giá gốc. Có giới hạn món thứ tư không? Ghi điểm nóng.

R2, chốt thực đơn. Nghe từ Anh Tuấn: "Thực đơn ngày mai chốt lúc 4 giờ chiều hôm trước, trong ngày chỉ đổi khi hết món." Viết lại: Khi tới 16:00 thì thực đơn ngày hôm sau bị khoá; trừ khi một món hết trong ngày, khi đó quản lý được đánh dấu món đó hết.

R3, giữ phần. Nghe từ Cô Hạnh: "Phần đặt mà quá 30 phút không tới lấy thì cô bán cho người đang xếp hàng." Viết lại: Khi phần đặt trước chưa được lấy sau 30 phút kể từ cuối khung giờ nhận thì phần chuyển sang bán cho hàng. Chú ý: "30 phút" tính từ đâu? Cô Hạnh không nói. Nhóm chọn "cuối khung giờ nhận" và đánh dấu cần xác nhận.

R4, suất hỗ trợ. Nghe từ Chị Lan: "Suất hỗ trợ mỗi em tối đa một suất một ngày, chỉ ngày thường, không dùng mua nước." Viết lại: Khi sinh viên dùng quyền hỗ trợ thì mỗi ngày thường được tối đa 1 suất, không áp dụng cho quầy đồ uống.

R5, an toàn thực phẩm. Nghe từ Cô Hạnh: "Món nấu quá bốn tiếng là phải bỏ, quy định vệ sinh an toàn thực phẩm." Viết lại: Khi một món đã nấu quá 4 giờ thì món đó không được bán. Cô nấu theo mẻ từ 10:30, nên mẻ đầu chạm mốc 4 giờ lúc 14:30, sau giờ trưa. R5 hiếm khi ảnh hưởng bữa trưa, nhưng nó cấm ý tưởng "giữ phần thừa bán buổi chiều".

R6, hoàn tiền. Nghe từ Anh Tuấn: "Hoàn tiền thì chỉ tôi được duyệt, nhân viên quầy không được." Viết lại: Khi có yêu cầu hoàn tiền thì chỉ quản lý căng tin được duyệt; nhân viên quầy chỉ được ghi nhận yêu cầu.

Bước tiếp theo là tìm ngoại lệ. Cách hiệu quả nhất là hỏi về ngày đặc biệt: ngày lễ, tuần thi, ngày mất điện, ngày có sự kiện lớn. Người làm nghề nhớ rất rõ những ngày vất vả. Bảng dưới là các câu hỏi nhóm mang tới buổi gặp tiếp theo.

Quy tắcCâu hỏi ngày đặc biệtNgoại lệ có thể cóNgười trả lời
R2Mất điện buổi sáng thì thực đơn đã chốt xử lý thế nàoNhiều món hết cùng lúc, đơn đã trả trước bị ảnh hưởngAnh Tuấn
R3Tuần thi, lớp kết thúc giờ khác thì khung giờ nhận có đổi khôngGiữ phần lâu hơn 30 phútCô Hạnh
R4Ngày lễ rơi vào thứ Hai thì có tính là ngày thường khôngSuất hỗ trợ bị chặn saiChị Lan
R1 và R4Suất hỗ trợ có được thêm món mặn thứ ba không, ai trả 10.000đSinh viên trả phần chênhChị Lan, Anh Tuấn
Chưa có ai trả lời bốn câu này. Đó không phải thất bại. Đó chính là sản phẩm của bước này: bạn biết chính xác mình chưa biết gì.

Cuối cùng là quyết định quy tắc nào thành tính năng, quy tắc nào thành ràng buộc. Tính năng là thứ có người bấm, có màn hình. Ràng buộc là điều kiện hệ thống kiểm tra khi người khác bấm.

flowchart TD
    R1[R1 cấu trúc suất] --> T1[Tính năng chọn món và tính giá]
    R2[R2 chốt thực đơn] --> T2[Tính năng quản lý đánh dấu hết món]
    R3[R3 giữ phần 30 phút] --> T3[Tính năng chuyển phần sang bán lại]
    R4[R4 suất hỗ trợ] --> C4[Ràng buộc kiểm tra khi đặt]
    R5[R5 món quá 4 giờ] --> C5[Nằm ngoài app, ghi nhận]
    R6[R6 hoàn tiền] --> C6[Ràng buộc phân quyền]
    R6 --> T6[Tính năng quản lý duyệt hoàn tiền]

R6 cho thấy một quy tắc có thể sinh ra cả hai: một ràng buộc (nhân viên quầy không thấy nút duyệt) và một tính năng (màn hình duyệt của Anh Tuấn).

Mẫu để dùng ngay

Sheet thứ hai trong mẫu nghiệp vụ ở bài 1 là danh sách quy tắc. Các cột cốt lõi:

Mã      : R1, R2...
Nghe từ : câu nguyên văn và tên người nói
Khi     : tình huống kích hoạt
Thì     : điều bắt buộc xảy ra
Trừ khi : ngoại lệ đã biết
Chủ quy tắc : người có quyền đổi quy tắc
Loại    : tính năng, ràng buộc, ngoài app
Câu hỏi mở : điểm nóng chưa ai trả lời

Lộ trình từng bước

  • Lọc câu có dạng luật. Tìm trong ghi chép các câu có "phải", "chỉ", "tối đa", "không được", "sau… thì". Sáu câu R1 tới R6 đều có những chữ này.
  • Viết lại dạng khi, thì, trừ khi. Giữ câu gốc ở cột riêng để còn đối chiếu.
  • Thay từ mơ hồ bằng từ trong bảng thuật ngữ. "Phần", "suất", "khung giờ nhận" phải đúng nghĩa đã định.
  • Thêm con số và mốc thời gian. "Sớm" thành 10:00, "lâu" thành 30 phút. Nếu không có con số, ghi điểm nóng.
  • Hỏi ngày đặc biệt. Mỗi quy tắc ít nhất một câu về lễ, thi, mất điện hoặc sự kiện.
  • Gán chủ quy tắc. Chủ quy tắc là người có quyền thay đổi nó, không phải người nói ra nó. R5 do quy định an toàn thực phẩm đặt ra; Cô Hạnh thực hiện nhưng không đổi được.
  • Phân loại. Tính năng, ràng buộc, hay nằm ngoài app.
  • Viết hai ca thử cho mỗi quy tắc. Một ca thoả "thì", một ca chạm "trừ khi". Khóa "Không bỏ sót: kiểm tra độ đầy đủ" sẽ mở rộng các ca này thành danh sách đường đi không thuận lợi.

Thói quen & kỷ luật

Thói quenTần suấtKết quả mong đợi
Ghi nguyên văn mọi câu có chữ phải, chỉ, tối đaTrong mỗi buổi phỏng vấnKhông quy tắc nào bị diễn giải mất nghĩa
Hỏi một câu ngày đặc biệt cho mỗi quy tắc mớiMỗi lần thêm quy tắcNgoại lệ lộ ra trước khi code
Rà quy tắc có câu hỏi mởMỗi tuầnKhông quy tắc nào treo quá hai tuần
Kiểm tra chủ quy tắc trước khi đổi quy tắcMỗi lần đổiKhông ai sửa luật mình không sở hữu

Cần luyện tập

Drill một: Viết R3 theo dạng khi, thì, trừ khi với ba mốc tính 30 phút khác nhau: từ đầu khung giờ nhận, từ cuối khung giờ nhận, từ lúc phần sẵn sàng. Với Minh Anh chọn khung 11:45 tới 12:00, tính giờ phần bị bán lại theo mỗi cách.

Drill hai: Lấy câu "Giảng viên với nhân viên trường cũng ăn ở đây, không có mã số sinh viên đâu." Đây có phải quy tắc nghiệp vụ không, hay chỉ là một sự thật về người dùng? Viết lý do, rồi viết quy tắc liên quan tới đăng nhập mà câu này làm lung lay.

Drill ba: Chọn quán ăn gần nhà bạn. Hỏi chủ quán ba câu: "Có món nào không bán sau giờ nào không?", "Ai được trả lại tiền cho khách?", "Ngày lễ có gì khác?". Viết ba quy tắc dạng khi, thì, trừ khi.

Checklist hành động tuần này

  • [ ] Lọc toàn bộ câu có dạng luật trong ghi chép của nhóm
  • [ ] Viết lại mỗi câu theo dạng khi, thì, trừ khi
  • [ ] Gán chủ quy tắc và phân loại tính năng hay ràng buộc
  • [ ] Lập danh sách câu hỏi ngày đặc biệt cho từng quy tắc
  • [ ] Viết hai ca thử cho mỗi quy tắc

Chỉ số cho cách làm

Các con số dưới đây đo cách nhóm làm bước này, không đo app có thành công hay không. Câu hỏi app có hiệu quả không, và làm gì tiếp, là việc của khóa Đo lường thành công.

Loại chỉ sốVí dụVai trò
North StarSố quy tắc viết được thành ca thử và đã có chủ xác nhậnCho biết danh sách quy tắc dùng được tới đâu
Chỉ số dẫnSố câu hỏi ngày đặc biệt đã hỏiĐo nỗ lực tìm ngoại lệ
Chỉ số rủi roSố quy tắc còn câu hỏi mởCảnh báo chỗ dễ sinh lỗi
Chỉ số trễSố lỗi khi chạy thử do quy tắc bị bỏ sótĐánh giá chất lượng sau khi đã muộn

Dấu hiệu bạn đã thành thạo

Bạn nghe "Đặt trước thì phải trả trước" và tự động hỏi "trừ khi nào?". Mỗi quy tắc của bạn có số, có mốc giờ, có tên chủ quy tắc. Bạn phân biệt được người nói ra quy tắc với người có quyền đổi nó. Và khi một bạn đề xuất "cho nhân viên quầy hoàn tiền cho nhanh", bạn chỉ ra ngay đó là thay đổi R6 và phải hỏi Anh Tuấn, không phải quyết định kỹ thuật.

Cạm bẫy thường gặp

Cạm bẫyBiểu hiệnCách tránh
Quy tắc không thử được"Đặt trước nên sớm"Bắt buộc có con số hoặc mốc giờ
Bỏ phần trừ khiR4 chặn luôn ngày lễ không ai hỏiHỏi ngày đặc biệt cho mỗi quy tắc
Nhầm chủ quy tắcĐổi giờ chốt theo ý sinh viênGhi người có quyền đổi, hỏi trước khi đổi
Biến mọi quy tắc thành tính năngXây màn hình theo dõi R5 không ai dùngPhân loại, quy tắc ngoài app chỉ ghi nhận
Tự trả lời câu hỏi mởNhóm tự quyết trứng chiên là món mặnGhi điểm nóng, hỏi người nghiệp vụ

Chốt lại

Quy tắc nghiệp vụ có trước phần mềm. Việc của bạn là bắt nó từ câu nói, viết lại dạng khi, thì, trừ khi, tìm ngoại lệ bằng câu hỏi về ngày đặc biệt, gán chủ quy tắc và quyết định nó thành tính năng hay ràng buộc. Sáu quy tắc của Căng tin số sinh ra ít nhất bốn tính năng và hai ràng buộc mà nếu chỉ đọc pain point bạn sẽ không thấy. Bài 3 đặt các quy tắc này lên một dòng thời gian cùng Cô Hạnh và Anh Tuấn, để thấy chúng chạm nhau ở đâu.

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi