Kanban vận hành thế nào, nguyên tắc và thực hành

Kanban Board (bảng Kanban)

Công cụ trực quan hóa toàn bộ quy trình. Bảng chia thành các cột, mỗi cột là một trạng thái của công việc. Ví dụ bảng đơn giản:

Backlog → Ready → In Progress → Code Review → Testing → Done

Kanban Card (thẻ Kanban)

Mỗi việc là một thẻ, trên thẻ thường có:

  • ID, tên hạng mục, mô tả ngắn
  • Người phụ trách (Assignee), mức ưu tiên (Priority)
  • Tiêu chí nghiệm thu (Acceptance Criteria)
  • Lý do bị tắc (Blocked Reason), nếu có

WIP Limit

WIP Limit là số hạng mục tối đa được phép nằm ở một (hoặc một nhóm) trạng thái cùng lúc. Ví dụ:

Trạng thái WIP Limit
Backlog / Ready Không giới hạn
In Progress 3
Code Review 2
Testing 2
Done Không giới hạn

Nguyên lý ở đây là giảm WIP thì xong việc nhanh hơn. Khi có giới hạn, team buộc phải giải quyết dứt điểm mấy việc đang dở rồi mới được lấy việc mới. Nhờ vậy giảm thời gian chờ (Queue Time) và đỡ mất công chuyển đổi bối cảnh.

Bottleneck (điểm nghẽn)

Là công đoạn xử lý chậm hơn lượng việc đổ vào nó. Việc bị dồn lại phía trước, còn các công đoạn phía sau thì “đói việc”. Biết chỗ nghẽn thì team dồn sức gỡ nó, thay vì cứ tiếp tục đẩy thêm việc vào hệ thống.

Mấy chỉ số đo lường chính

  • Lead Time: từ lúc yêu cầu được ghi nhận/cam kết đến khi xong hoàn toàn.
  • Cycle Time: từ lúc thật sự bắt tay làm hạng mục đến khi xong.
  • Throughput (thông lượng): số hạng mục hoàn thành trong một khoảng thời gian, ví dụ 10 task/tuần.

Hình dung: Lead Time tính từ lúc nhận yêu cầu, còn Cycle Time tính từ lúc bắt đầu làm. Cả hai cùng kết thúc ở lúc hoàn thành, nên Lead Time luôn dài hơn hoặc bằng Cycle Time.

Cumulative Flow Diagram (CFD)

Biểu đồ khu vực xếp chồng, thể hiện số hạng mục ở từng trạng thái theo thời gian. Nhìn CFD có thể biết:

  • Công việc đang tích tụ nhanh cỡ nào
  • Cycle Time có ổn định không (nhìn khoảng cách giữa các đường)
  • Tổng WIP biến động ra sao (khoảng cách đứng giữa đường đầu và đường cuối)

4 nguyên tắc nền tảng (theo David J. Anderson)

  1. Bắt đầu từ cái đang làm: không cần đập đi xây lại tổ chức, áp thẳng lên quy trình hiện tại.
  2. Đồng ý thay đổi theo kiểu tiến hóa: cải tiến từng bước nhỏ, có đo lường, không đổi toàn bộ gây xáo trộn.
  3. Khuyến khích lãnh đạo ở mọi cấp: ai cũng có quyền đề xuất cải tiến dòng công việc.
  4. Tôn trọng vai trò, trách nhiệm, chức danh hiện có: giữ nguyên cơ cấu ban đầu để đỡ bị phản ứng chống đối.

6 thực hành cốt lõi

  1. Visualize (trực quan hóa): hiển thị rõ công việc và quy trình trên bảng.
  2. Limit WIP: đặt ngưỡng tối đa cho các công đoạn.
  3. Manage Flow (quản lý dòng chảy): theo dõi và tối ưu sự di chuyển của việc, giảm điểm nghẽn.
  4. Make Policies Explicit (công khai chính sách): quy định rõ điều kiện để một task được chuyển trạng thái.
  5. Implement Feedback Loops (thiết lập nhịp phản hồi): họp kiểm tra, rà soát dòng chảy định kỳ (như Daily Kanban, Replenishment, Service Delivery Review).
  6. Improve Collaboratively, Evolve Experimentally: cải tiến cùng nhau, dùng dữ liệu và cách làm khoa học để thử nghiệm, rồi phát triển dần.

Áp dụng vào dự án thật

Definition of Done (DoD)

Tập tiêu chuẩn bắt buộc để một hạng mục được coi là xong hẳn. Phân biệt cho khỏi nhầm:

  • Acceptance Criteria: áp dụng cho từng yêu cầu cụ thể của một tính năng.
  • Definition of Done: áp dụng chung cho mọi hạng mục đi qua quy trình.

Daily Kanban Meeting

Khác với Daily Scrum (xoay quanh việc mỗi người báo cáo với 3 câu hỏi), Daily Kanban tập trung vào chuyển động của các thẻ trên bảng:

  • Rà từ phải qua trái, ưu tiên mấy task gần cột Done nhất
  • Xử lý thẻ bị Blocked hoặc vượt WIP Limit
  • Bàn cách giải phóng dòng chảy

Classes of Service (phân loại theo mức khẩn)

Kanban chia việc theo rủi ro và chi phí khi bị trễ (Cost of Delay):

  • Expedite (khẩn cấp): trễ là mất rất nhiều, ví dụ sập hệ thống thanh toán. Được phép vượt WIP Limit nhưng chỉ 1 task tại một thời điểm trên toàn hệ thống.
  • Fixed Date (ngày cố định): có hạn chót cứng do luật hoặc sự kiện kinh doanh.
  • Standard (tiêu chuẩn): việc bình thường.
  • Intangible (vô hình/dài hạn): như xử lý nợ kỹ thuật (Technical Debt), tối ưu hạ tầng. Hiện tại trễ chưa mất nhiều, nhưng về sau sẽ rất đắt.

Bài viết khác

Test Automation(Kiểm thử tự động)

1.Test Automation (Kiểm thử tự động) là gì? Trong các dự án phát triển phần mềm truyền thống trước đây, toàn bộ quy trình kiểm thử (Testing) đều được thực hiện thủ công (Manual Testing) bởi con người. Các kiểm thử viên trực tiếp thao tác trên giao diện, nhập dữ liệu, kiểm tra kết […]

Logging – Monitoring – CI/CD

Logging, Monitoring và CI/CD là gì? Vai trò trong phát triển Backend 1. Tổng quan Khi xây dựng một ứng dụng Backend, viết code và chạy được chương trình mới chỉ là bước đầu. Khi ứng dụng được đưa vào sử dụng, lập trình viên còn cần biết ứng dụng đang hoạt động như thế […]

Redis & Caching là gì?

Redis & Caching là gì? Hướng dẫn sử dụng Redis trong Go 1. Caching là gì? Vì sao cần cache khi đã có database? Caching (bộ nhớ đệm) là kỹ thuật lưu tạm dữ liệu thường được truy cập để có thể lấy lại nhanh chóng khi cần, thay vì phải thực hiện lại toàn […]

Background Jobs & Queues

1. Background Jobs & Queues là gì? Trong một ứng dụng backend, không phải công việc nào cũng cần hoàn thành ngay trong lúc xử lý HTTP request. Ví dụ, khi người dùng đăng ký tài khoản, hệ thống có thể cần: Lưu thông tin người dùng vào database. Gửi email xác nhận. Gửi thông […]

Saga Pattern

Saga Pattern là gì? Quản lý Transaction trong kiến trúc Microservices 1. Saga Pattern là gì? Saga Pattern là một mẫu thiết kế được sử dụng để quản lý các nghiệp vụ phân tán gồm nhiều bước xử lý, trong đó mỗi bước có thể thực hiện một local transaction tại một service hoặc Database […]

Two-Phase Locking (2PL)

Two-Phase Locking (2PL) là gì? Cơ chế khóa hai pha trong Database 1. Two-Phase Locking (2PL) là gì? Two-Phase Locking (2PL — khóa hai pha) là một giao thức quản lý khóa trong Database, quy định cách một transaction được phép lấy và giải phóng lock trong quá trình thực thi. Khi nhiều transaction cùng […]

Leave a Reply

Your email address will not be published. Required fields are marked *