Kanban là gì?
Kanban (trong tiếng Nhật có nghĩa là bảng hiệu) là một phương pháp tinh gọn để quản lý và cải tiến công việc trên toàn hệ thống của con người. Cách tiếp cận này nhằm mục đích quản lý công việc bằng cách cân bằng nhu cầu công việc với năng lực hiện có và cải thiện việc xử lý vấn đề thắt cổ chai ở cấp hệ thống.
Các hạng mục công việc được hiển thị trực quan để cung cấp cho người tham gia một cái nhìn về tiến độ và quy trình, từ đầu đến cuối — thường thông qua bảng Kanban. Công việc được kéo theo khả năng cho phép, thay vì đẩy công việc vào quy trình khi được yêu cầu.
Trong các công việc trí óc, đặc biệt trong phát triển phần mềm, mục đích là cung cấp một hệ thống quản lý quy trình trực quan, hỗ trợ việc ra quyết định về sản xuất cái gì, khi nào và bao nhiêu. Phương pháp Kanban cơ bản bắt nguồn từ sản xuất tinh gọn, được lấy cảm hứng từ hệ thống sản xuất của Toyota. Nhưng chính kỹ sư David J. Anderson của Microsoft đã nhận ra phương pháp này có thể trở thành một quy trình áp dụng cho bất kỳ loại hình công ty nào. Kanban thường được sử dụng trong phát triển phần mềm kết hợp với các phương pháp và mô hình khác như Scrum.
5 nguyên lý của Kanban
Phương pháp Kanban vận hành dựa trên 5 nguyên lý cốt lõi:
Trực quan hóa luồng công việc: Những dự án yêu cầu kiến thức hay như trong định nghĩa là sử dụng trí óc, có đặc điểm là không đong đếm được và vô hình. Do đó, tìm ra cách để hình dung luồng công việc rất quan trọng trong việc tổ chức, tối ưu và theo dõi công việc.
Giới hạn WIP (Work in Progress: Lượng công việc làm đồng thời): Việc giới hạn số lượng các công việc làm đồng thời giúp cải thiện hiệu suất, tăng tính rõ ràng của các vấn đề và các trở ngại, tạo điều kiện cho sự cải tiến liên tục. Công việc này giúp nhóm dễ dàng hơn trong việc xác định vấn đề và giảm thiểu chi phí và sức lực cần có để thay đổi. Ngoài ra, nó còn tạo động lực “kéo” (pull) ổn định trong công việc thông qua nỗ lực phát triển, vì tác vụ mới chỉ có thể được tiến hành khi các tác vụ hiện tại đã được hoàn thành.
Quản lý luồng công việc: Việc theo dõi luồng công việc thông qua một hệ thống, vấn đề có thể được xác định và các phương án thay đổi sẽ được đánh giá dựa trên mức độ hiệu quả. Các chính sách quy trình minh bạch, rõ ràng. Việc giải thích quy trình công việc rõ ràng rất quan trọng để nhóm có thể trao đổi, bàn luận về các cải tiến, cải thiện một cách công khai, khách quan thay vì theo định hướng chủ quan và cảm tính.
Cùng nhau tiến bộ: Qua các thước và thử nghiệm khoa học, nhóm nên nắm vững và cải thiện một cách tập thể các quy trình mà nhóm đang sử dụng.
Hệ thống động lực “Kéo” trong Kanban
Kanban có một số đặc điểm khác biệt so với Scrum, XP và agile nói chung. Điểm khác biệt chính mà chúng ta cần phải hiểu chính là nhóm Kanban sử dụng “Hệ thống động lực kéo” (Pull System) để thúc đẩy công việc trong một quy trình phát triển chứ không lên kế hoạch công việc trong một vòng lặp giới hạn thời gian. Mỗi khi nhóm Kanban hoàn thành một tác vụ, điều đó sẽ bật công tắc “kéo” tác vụ tiếp theo mà họ sẽ làm. Như chúng ta có thể thấy, chỉ có một số lượng nhất định các ô có sẵn cho mỗi cột trong bảng Kanban. Khi có một ô trống trên bảng, đó là dấu hiệu để team “kéo” tác vụ từ giai đoạn trước lên (nếu có). Do đó, các tác vụ liên tục được “kéo” từ phía bên trái sang phía bên phải của bảng.
(Lưu ý: Điều này có thể trông giống với việc đẩy tác vụ qua một quy trình trừ trái sang phải trên một bảng Agile Task nhưng thực tế không phải vậy. Trên một bảng Kanban, giới hạn khả năng là dấu hiệu để nhóm kéo tác vụ tới giai đoạn tiếp theo. Trên bảng Agile task, team chỉ dịch chuyển tác vụ từ trái sang phải để thể hiện trạng thái của tác vụ trên quy trình)
Hệ thống động lực “kéo” thể hiện rằng Kanban ít nhấn mạnh vào vòng lặp hơn Agile. Mặc dù team Kanban có thể sử dụng vòng lặp nếu họ muốn, nhưng động lực kéo nói lên rằng việc sử dụng vòng lặp là không cần thiết. Tất nhiên, đa số các tổ chức sẽ muốn nhóm của họ cam kết với một nhịp độ nhất định (bao lâu thì tác vụ tiến triển đủ để tiêu thụ, sử dụng). Tuy nhiên, nhịp độ phát triển của nhóm không nhất thiết phải đi đôi với nhịp độ hoàn thành tác vụ hay bất cứ tập hợp nào của nó.
Ví dụ, một nhóm Agile có thể quyết định sử dụng một vòng lặp 2 tuần với triển khai trong môi trường kiểm thử cùng với triển khai với khách hàng mỗi quý. Do đó, trong khoảng thời gian của triển khai hàng quý (13 tuần) sẽ có 6 lòng lặp được hoàn thành. Từ đó, nhóm sẽ biết rằng có 6 vòng lặp trước mỗi lần phát hành chính và có thể lên kế hoạch các tính năng dựa trên đó.
Ngược lại, nhóm Kanban dù cũng có phát hành theo quý nhưng họ sẽ không sử dụng vòng lặp. Thay vào đó, bất kì gói công việc đã hoàn thành nào cũng có thể là ứng viên cho lần phát hành tới. Họ có thể lên kế hoạch và theo dõi công việc cho những lần phát hành, nhưng thay vì sử dụng thước đo là tốc độ ví dụ như các điểm được công nhận mỗi vòng lặp. Họ sẽ sử dụng thời gian chu kì, thời gian sản xuất (lead time) và thước đo công suất.
Giới hạn lượng công việc tiến hành đồng thời (WIP) trong Kanban
Việc giới hạn lượng công việc tiến hành đồng thời về cơ bản, khái niệm này có nghĩa là giới hạn số lượng hạng mục cho phép trong một trạng thái (state) của quá trình được nêu ra trong các cột của bảng Kanban. Khi số lượng hạng mục đã đạt giới hạn được nêu ở đầu cột, sẽ không có hạng mục mới nào được cho vào cột cho đến khi một hạng mục đang nằm trong cột được chuyển sang cột khác. Đây là một ví dụ về bảng Kanban với giới hạn công việc chưa hoàn thành:
Trên sơ đồ này,ta có thể thấy backlog của nhóm ở cột đầu tiên. Cột thứ hai có 3 user stories đã được chọn để phát triển điều này là hoàn toàn bình thường vì giới hạn của cột này là 4 mục. Lần lượt các cột tiếp theo là Develop và Acceptance cũng có giới hạn là 3 và 2.
Tại sao việc giới hạn công việc chưa hoàn thành này lại quan trọng? Việc giảm số lượng công việc chưa hoàn thành có tác dụng tăng năng suất của team hay tăng tỉ lệ tốc độ hoàn thành công việc. Nếu nhận định đó là một điều gây tranh cãi, thì mối quan hệ giữa công việc chưa hoàn thành và năng suất đã được chứng minh bởi Little’s Law (Định lý Little) như mô tả bên dưới. Định lý này nói rằng thời lượng của một hàng đợi (thời gian cần có để hoàn thành một task) tỉ lệ với quy mô, khối lượng (số lượng công việc chưa hoàn thành). Nói cách khác, nhóm áp dụng giới hạn số lượng công việc tiến hành đồng thời sẽ làm xong việc nhanh hơn.
Phương pháp phát triển theo Kanban đã giúp phổ biến việc sử dụng bảng công việc với giới hạn công việc tiến hành đồng thời và hệ thống động lực “kéo”. Nó còn cho phép và thúc đẩy các thành viên nhóm thử các cách tiếp cận mới và thay đổi các quy trình. Với mô hình động lực “kéo” liên tục, vòng lặp có thể là không cần thiết và do đó, các hoạt động như tạo ước tính có thể được cho là lãng phí và có thể được giảm hoặc loại bỏ hoàn toàn.