Activity Diagram
Sơ đồ UML mô tả luồng công việc theo thứ tự thời gian, mạnh ở chỗ có rẽ nhánh điều kiện, có bước chạy song song và có nhiều vai trò cùng tham gia một quy trình.
Định nghĩa
Khách kể quy trình duyệt chi bằng miệng mất hai mươi phút, kể xong bạn vẫn không biết nếu phiếu quá 50 triệu thì ai ký. Activity diagram là chỗ để hỏi ngược lại: rẽ nhánh ở đâu, điều kiện gì, bước nào chạy song song, ai làm bước nào.
Đây là sơ đồ luồng công việc phiên bản UML: mạnh hơn flowchart ở chỗ có phân làn và có ký hiệu cho việc chạy song song.
Ký hiệu cần nhớ
- Chấm đen là điểm bắt đầu, chấm có vòng ngoài là điểm kết thúc.
- Hình chữ nhật bo góc là một action.
- Hình thoi là decision (rẽ) hoặc merge (nhập lại). Điều kiện ghi trong ngoặc vuông trên nhánh:
[đạt],[không đạt]. - Thanh đen ngang là fork và join. Fork tách ra chạy song song, join chờ đủ mọi nhánh mới đi tiếp.
- Partition (làn) chia sơ đồ theo vai trò.
- Object node mô tả dữ liệu hoặc chứng từ chạy qua luồng.
Cặp fork/join là thứ flowchart cổ điển không có. Khi nghiệp vụ nói "gửi mail và tạo task cùng lúc, xong cả hai mới ghi log" thì chỉ ký hiệu này diễn đạt được chính xác.
Khi nào vẽ, khi nào viết cho nhanh
Quy trình dưới năm bước, đi thẳng, không rẽ: viết bullet, nhanh hơn và ai cũng đọc được. Từ hai điều kiện rẽ nhánh trở lên, hoặc từ ba vai trò trở lên, hoặc có bước song song: vẽ. Trước đó thì vẽ chỉ tốn thời gian của bạn.
Ví dụ thực tế
Một câu hỏi làm cả buổi khảo sát đứng lại: phiếu đúng 100 triệu chẵn thì ai ký, kế toán trưởng hay giám đốc.
Đây là quy trình duyệt đề nghị thanh toán nội bộ ở một công ty logistics, mỗi tháng chừng 280 phiếu. Nhánh chia theo hạn mức: dưới 20 triệu trưởng bộ phận duyệt, từ 20 tới 100 triệu thêm kế toán trưởng, trên 100 triệu lên giám đốc — và đúng cái mốc 100 triệu chẵn kia là chỗ chưa ai định nghĩa. Có thêm một cặp fork/join: khi phiếu chuyển sang trạng thái chờ duyệt, hệ thống đồng thời gửi email và tạo task trên app nội bộ, join lại rồi mới ghi log. Sơ đồ gói trong một trang. Dev đọc hiểu ngay, QC lấy luôn bảy nhánh làm bảy ca kiểm thử chính.
Bản vẽ chỉ là phần còn lại. Giá trị nằm ở ba câu hỏi buộc phải trả lời lúc vẽ: quá hạn duyệt thì sao, người duyệt đi công tác thì ai thay, phiếu bị trả về thì quay lại bước nào.
Lỗi hay gặp
- Hình thoi không ghi điều kiện. Dev sẽ tự đoán, và đoán sai.
- Nhánh cụt: có nhánh "không đạt" nhưng nó không dẫn đi đâu cả. Mọi nhánh phải kết thúc ở một chỗ.
- Trộn hành động của người và của hệ thống mà không chia làn, đọc xong không biết ai chịu trách nhiệm.
- Vẽ tràn ba trang. Gom cụm bước thành sub-process rồi vẽ riêng, một trang một mức.
Bảng so sánh activity diagram với flowchart và BPMN nằm ở mục Flowchart. Đọc bảng đó trước khi chọn loại sơ đồ cho tài liệu sắp viết, vì chọn sai kiểu người đọc là bỏ công vô ích.
