Product Management
Đăng nhập
ESC

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

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

Kiểm tra: Ma trận vai trò và hành động

Đã đọc 0/11 mục · còn khoảng 8 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

Ma trận CRUD ở bài 2 hỏi "dữ liệu này ai chạm vào". Bài này lật ngược góc nhìn: với mỗi người, họ cần làm gì, được phép làm gì, và có story nào cho việc đó không?

Lý do cần góc nhìn thứ hai rất thực tế. Một nhóm sinh viên làm khám phá gần như luôn hiểu sinh viên nhất, vì đó là chính họ. Các vai trò khác thì bị nhìn qua lăng kính sinh viên: bếp là "nơi nấu đồ ăn cho mình", quản lý là "người thu tiền". Kết quả là backlog có hai mươi story cho sinh viên và hai story cho tất cả những người còn lại, trong khi chính những người còn lại mới làm cho căng tin vận hành.

Bài này nhận vào persona và service blueprint (khóa Persona & User Journey dựa trên bằng chứng), quy tắc R1 tới R6 (khóa Hiểu nghiệp vụ trước khi xây) và trang CRUD từ bài 2. Đầu ra là trang Vai trò trong tệp kiểm tra: một bảng sáu vai trò nhân với các hành động, kèm quyền hạn và danh sách vai trò thiếu story.

Bức tranh lớn

Sáu vai trò của Căng tin số là: Sinh viên, Giảng viên và nhân viên trường, Nhân viên quầy, Bếp, Quản lý căng tin, Phòng Quản trị – Đời sống. Ma trận có hai trục: vai trò ở cột, hành động ở dòng. Mỗi ô trả lời một trong bốn giá trị:

  • Có: vai trò này làm hành động này, và cần story.
  • Xem: chỉ đọc, không thay đổi gì.
  • Không: bị cấm, và cấm có chủ ý. Nếu cấm vì một quy tắc, ghi mã quy tắc.
  • Hỏi lại: chưa biết. Đây là ô quan trọng nhất.
flowchart TD
    A[Liệt kê sáu vai trò] --> B[Liệt kê hành động từ story map và blueprint]
    B --> C[Điền Có, Xem, Không, Hỏi lại]
    C --> D{Vai trò nào không có ô Có nào?}
    D -->|Có vai trò như vậy| E[Cờ đỏ - quay lại ghi chép]
    D -->|Không| F{Ô Không nào chưa có quy tắc?}
    F -->|Có| G[Hỏi stakeholder vì sao cấm]
    F -->|Không| H[Chuyển quyền hạn thành tiêu chí chấp nhận]

Hai phép đọc ma trận quan trọng nhất là đọc theo cột và đọc ô Không. Đọc theo cột: một vai trò mà cả cột chỉ có Xem và Không là vai trò hệ thống đang phớt lờ. Đọc ô Không: mỗi lệnh cấm là một yêu cầu phân quyền mà lập trình viên phải xây và người kiểm thử phải thử.

Ví dụ chi tiết

Viết tắt trong bảng: SV là sinh viên, GV-NV là giảng viên và nhân viên trường, QL là quản lý căng tin, QT-ĐS là Phòng Quản trị – Đời sống.

Hành độngSVGV-NVQuầyBếpQLQT-ĐS
Xem thực đơn ngàyCóCóCóCóCóXem
Đặt trước một suấtCóHỏi lại, C2KhôngKhôngKhôngKhông
Đặt suất nhóm 20 tới 30 suấtHỏi lạiHỏi lạiKhôngKhôngCó, đang ghi sổKhông
Thanh toán đơnCóCóXác nhậnKhôngXemKhông
Huỷ đơnCó, trước giờ chốtCó, trước giờ chốtHỏi lạiKhôngCóKhông
Duyệt hoàn tiềnKhôngKhôngKhông, R6KhôngCó, R6Không
Dùng phiếu suất hỗ trợCó, nếu được cấpKhôngXác nhận, R4KhôngKhôngKhông
Cấp và thu hồi phiếuKhôngKhôngKhôngKhôngHỏi lạiHỏi lại
Đánh dấu hết mónKhôngKhôngHỏi lạiHỏi lạiCó, R2Không
Xem danh sách cần nấuKhôngKhôngXemCóXemKhông
Giao món cho người đặtKhôngKhôngCóKhôngKhôngKhông
Gửi phản hồiCóCóKhôngKhôngKhôngKhông
Trả lời phản hồiKhôngKhôngKhôngKhôngCóHỏi lại
Xem báo cáoKhôngKhôngKhôngHỏi lạiCóCó
Chốt thực đơn ngày maiKhôngKhôngKhôngHỏi lạiCó, R2Không
Đối soát cuối ngàyKhôngKhôngHỏi lạiKhôngCóKhông
Giờ đọc bảng như một người kiểm tra, không phải người điền.

Quyền hạn theo R6. Dòng "Duyệt hoàn tiền" có đúng một ô Có. Câu của Anh Tuấn rõ ràng: "Hoàn tiền thì chỉ tôi được duyệt, nhân viên quầy không được." Điều đó sinh ra ít nhất hai yêu cầu. Một, story "Quản lý duyệt hoàn tiền" với tiêu chí chấp nhận nói rõ nhân viên quầy không thấy nút duyệt. Hai, một luồng chờ: khi sinh viên yêu cầu hoàn tiền lúc 12:00 mà Anh Tuấn đang bận, tiền nằm ở đâu, sinh viên thấy gì?

sequenceDiagram
    participant SV as Sinh viên
    participant Q as Nhân viên quầy
    participant QL as Quản lý căng tin
    SV->>Q: Báo món đã hết dù đã trả tiền
    Q->>QL: Gửi yêu cầu hoàn tiền kèm mã đơn
    Note over Q: Quầy không có quyền duyệt theo R6
    QL->>QL: Kiểm tra đơn và thanh toán
    QL-->>SV: Duyệt hoàn tiền, báo thời gian nhận
    QL-->>Q: Đơn chuyển sang Đã huỷ

Vai trò bị quên thứ nhất: giảng viên và nhân viên trường. Họ chiếm khoảng 15% doanh thu. Cột GV-NV có nhiều ô Có, nhưng ô "Đặt trước một suất" là Hỏi lại, vì mâu thuẫn C2: Chị Lan muốn đăng nhập bằng mã số sinh viên qua hệ thống của trường, còn Anh Tuấn nói thẳng "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." Ô này chặn cả cột. Nếu không giải quyết, mọi ô Có còn lại của cột đều vô nghĩa.

Vai trò bị quên thứ hai: Phòng Quản trị – Đời sống. Nhóm thường coi Chị Lan là người tài trợ, không phải người dùng. Nhưng phòng của chị nhận khoảng 25 email phàn nàn mỗi tháng và quản lý chương trình hỗ trợ cho khoảng 300 sinh viên. Chị cần xem phản hồi mà không phải đợi Anh Tuấn chuyển (P9), và cần biết phiếu hỗ trợ được dùng bao nhiêu. Đó là ít nhất hai story báo cáo mà backlog sinh viên không bao giờ tự sinh ra.

Vai trò bị quên thứ ba: bếp. Cột Bếp có đúng một ô Có: "Xem danh sách cần nấu". Nhưng ô đó chứa cả một yêu cầu thiết kế. Cô Hạnh nói: "Giờ cao điểm cô không cầm điện thoại được, tay đâu mà xem." Vậy story không thể là "bếp xem đơn trên app". Nó phải là một màn hình cố định, chữ lớn, đọc được từ khoảng cách vài bước, không cần chạm. Và vì Cô Hạnh nấu theo mẻ từ 10:30, màn hình đó phải tổng hợp theo món chứ không chỉ liệt kê theo đơn.

Cờ đỏ. Một vai trò không có story nào là cờ đỏ, kể cả khi ma trận có ô Có cho vai trò đó. Hãy đối chiếu từng cột với backlog. Nếu cột Bếp có ô Có mà backlog không có story nào bắt đầu bằng "Là bếp trưởng…", nghĩa là nhóm đã biết nhu cầu nhưng chưa biến nó thành việc.

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

  • Kẻ bảng với sáu vai trò ở cột. Không gộp, không thêm vai trò "Admin".
  • Lấy hành động từ ba nguồn: các bước trong story map, các làn trong service blueprint, và các thao tác trong ma trận CRUD ở bài 2.
  • Điền từng ô bằng một trong bốn giá trị. Khi điền Không, ghi mã quy tắc nếu có.
  • Đọc theo cột: vai trò nào có ít ô Có nhất? Đối chiếu với backlog để tìm vai trò không có story.
  • Đọc ô Không: mỗi ô cần một tiêu chí chấp nhận dạng "vai trò X không thấy hoặc không làm được Y".
  • Đọc ô Hỏi lại: gom theo người có thẩm quyền trả lời và đưa vào buổi walkthrough ở bài 6.
  • Viết story mới cho vai trò bị quên, ghi rõ bằng chứng nguyên văn.

Thói quen & kỷ luật

Thói quenTần suấtKết quả mong đợi
Đọc ma trận theo cột trước khi đọc theo dòngMỗi lần rà soátPhát hiện vai trò bị bỏ rơi
Gắn mã quy tắc vào mọi ô KhôngMỗi ô KhôngPhân quyền có căn cứ, kiểm thử được
Đếm story theo vai tròMỗi tuầnThấy độ lệch giữa sinh viên và hậu trường
Hỏi "người này làm việc này bằng tay hay bằng thiết bị gì"Mỗi vai trò vận hànhYêu cầu giao diện đúng với hoàn cảnh thật

Cần luyện tập

Drill một: Thêm vào bảng ba hành động còn thiếu mà bạn tìm được từ service blueprint của Căng tin số. Gợi ý: nghĩ về món nấu quá bốn tiếng phải bỏ theo R5. Ai ghi nhận suất bỏ? Ai xem số liệu đó để giảm khoảng 40 suất bỏ đi mỗi ngày?

Drill hai: Đếm story trong backlog của nhóm theo sáu vai trò. Viết tỉ lệ ra. Nếu sinh viên chiếm hơn 70%, liệt kê ba story còn thiếu cho vai trò ít nhất.

Drill ba: Chọn ứng dụng quản lý đào tạo của trường bạn. Liệt kê ít nhất năm vai trò dùng nó. Vai trò nào bạn chưa từng nghĩ tới?

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

  • [ ] Điền đủ ma trận sáu vai trò cho mọi hành động
  • [ ] Gắn mã quy tắc cho mọi ô Không
  • [ ] Viết story cho bếp, quản lý và Phòng Quản trị – Đời sống nếu còn thiếu
  • [ ] Đưa ô Hỏi lại về C2 vào danh sách quyết định cần chốt
  • [ ] Đối chiếu từng cột với backlog để tìm vai trò không có story

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ố vai trò có ít nhất một story, mục tiêu 6 trên 6Không vai trò nào bị bỏ rơi
Chỉ số dẫn dắtSố ô Hỏi lại còn mởKhối lượng quyết định chưa chốt
Chỉ số dẫn dắtTỉ lệ ô Không có mã quy tắcĐộ chắc của phân quyền
Chỉ số kết quảTỉ lệ story của vai trò không phải sinh viênĐộ cân bằng của backlog

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

  • Bạn nhìn thấy cột Bếp trống và biết ngay phải đọc lại ghi chép Cô Hạnh.
  • Bạn biến câu "chỉ tôi được duyệt" thành tiêu chí chấp nhận kiểm thử được.
  • Bạn nhận ra một ô Hỏi lại có thể chặn cả một cột, như C2 chặn giảng viên.
  • Bạn hỏi về hoàn cảnh dùng của từng vai trò, không chỉ về chức năng.

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

Cạm bẫyBiểu hiệnCách tránh
Gộp vai trò cho gọnGộp quầy và bếp thành "nhân viên"Giữ sáu vai trò, vì hoàn cảnh dùng khác nhau
Coi sponsor không phải người dùngKhông có story nào cho Chị LanHỏi sponsor cần xem gì, khi nào
Ô Có không có storyMa trận đẹp, backlog vẫn thiếuĐối chiếu từng ô Có với mã story
Phân quyền nằm trong đầu"Ai cũng biết quầy không được hoàn tiền"Viết thành tiêu chí chấp nhận và ca kiểm thử

Chốt lại

Ma trận vai trò và hành động bắt lỗ hổng theo con người. Với Căng tin số, nó lộ ra ba vai trò bị quên: giảng viên và nhân viên bị chặn bởi C2, Phòng Quản trị – Đời sống cần báo cáo, bếp cần một màn hình đọc được khi tay đang nấu. Mọi ô Không là một yêu cầu phân quyền, và mọi vai trò không có story là cờ đỏ. Bài 4 chuyển sang lỗ hổng theo tình huống: đường không vui.

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