Kanban, Scrum và Agile: Những điểm khác biệt cơ bản
This post hasn't been updated for 3 years
Bạn có muốn hoàn thành dự án một cách hiệu quả, đúng thời điểm? Bạn đang mắc kẹt trong một dự án phức tạp? Có ai đó từng đưa cho bạn ý tưởng hay lời khuyên về các phương pháp agile để giải quyết tất cả các vấn đề đó? Khi nói đến các phương pháp agile, mỗi người khác nhau lại có những quan điểm khác nhau. Một số nói Kanban; một khác lại nói Scrum. Bạn bắt đầu cảm thấy rối loạn. Bài viết này sẽ giúp bạn hình dung rõ hơn về các phương pháp: Kanban, Scrum và Agile, trong đó đề cập kỹ hơn về Kanban và Scrum. Chúng ta sẽ hiểu Kanban và Scrum là gì, và chúng khác nhau như thế nào.
NỘI DUNG CHÍNH
- Kanban là gì?
- Scrum là gì?
- Kanban và Scrum
- Scrum và Agile
- Kết luận
1. Kanban là gì?
Kanban là một thuật ngữ bắt nguồn từ công ty chế tạo xe hơi Toyota, nơi có phương thức quản lý xí nghiệp thông minh, tạo đòn bẩy phát triển kinh tế của Nhật Bản và là tiêu chuẩn quản lý của các tập đoàn sản xuất lớn của Nhật hiện tại.
Kanban dịch từ tiếng Nhật có nghĩa là “bảng thông tin” với bốn nguyên lý cơ bản:
Trực quan hóa công việc
Kanban là công cụ để trực quan hóa công việc. Bảng Kanban bao gồm các cột tương ứng với trạng thái của công việc. Mỗi công việc khi ở trạng thái nào thì được đặt ở cột tương ứng. Chúng ta có thể dùng một bảng vật lý hoặc một phần mềm hỗ trợ Kanban như Trello.
Giới hạn công việc đang làm (Limit WIP – Limit Work In Progress)
Số lượng công việc đang được làm đồng thời ở mỗi trạng thái cần được giới hạn. Nguyên lý này giúp giới hạn những việc chưa hoàn thành trong tiến trình, từ đó giảm thời gian mỗi công việc đi qua hệ thống Kanban. Nguyên lý giới hạn WIP còn giúp cho nhóm làm việc tập trung, tránh lãng phí do phải việc chuyển qua lại giữa các công việc khác nhau.
Tập trung vào luồng làm việc
Việc áp dụng nguyên lý giới hạn WIP và phát triển những chính sách hướng theo nhóm giúp nhóm có thể tối ưu hóa hệ thống Kanban để cải tiến luồng làm việc trơn chu.
Cải tiến liên tục
Nhóm đo mức độ hiệu quả bằng cách theo dõi chất lượng, thời gian làm sản phẩm, v.v... để từ đó có những phân tích, thử nghiệm để thay đổi hệ thống nhằm tăng tính hiệu quả của nhóm
2. Scrum là gì?
Là một thành viên của họ Agile. Scrum được xây dựng dựa trên lý thuyết quản lý tiến trình thực nghiệm (Empirical process control), hay còn gọi là thực nghiệm luận (Empiricism). Lý thuyết này chỉ ra rằng tri thức đến từ kinh nghiệm và việc ra quyết định được dựa trên những gì đã biết. Điều này sẽ giúp giảm thiểu rủi ro và tăng tính chính xác đặc biệt là trong môi trường phát triển phần mềm nhiều biến động. Ví dụ đơn giản nhất cho khái niệm Scrum đó là những đàn chim di cư. Chúng không hề có kế hoạch chi tiết cho hành trình của mình nhưng vẫn vượt qua được hàng chục nghìn km mỗi năm qua những vùng đất xa lạ nhờ việc quan sát và thích nghi liên tục với điều kiện khí hậu thức ăn hay tơi trú ngụ của từng vùng ...
Ba yếu tố nòng cốt tạo thành một mô hình quản lý tiến trình thực nghiệm gồm: sự minh bạch (transparency), thanh tra (inspection) và thích nghi (adaptation). 1) Minh bạch Các khía cạnh quan trọng của tiến trình phải được hiển thị rõ ràng cho những người có trách nhiệm với thành quả của tiến trình đó. Sự minh bạch yêu cầu các yếu tố này cần được định nghĩa theo một tiêu chuẩn để những người quan sát có thể hiểu những gì họ thấy theo cùng một cách. 2) Thanh tra Người sử dụng Scrum phải thường xuyên thanh tra các tạo tác và tiến độ đến đích để phát hiện các bất thường không theo ý muốn. Tần suất thanh tra không nên quá dày để khỏi ảnh hưởng đến công việc. Công tác thanh tra có ích nhất khi được thực hiện bởi người có kĩ năng tại các điểm quan trọng của công việc. 3) Thích nghi Nếu một người thanh tra xác định được rằng có vấn đề nào đó vượt quá giới hạn cho phép, và hậu quả của vấn đề đó đối với sản phẩm là không thể chấp nhận được, thì quy trình hoặc các vật liệu được xử lý (processed material) phải được điều chỉnh. Sự điều chỉnh phải được tiến hành càng sớm càng tốt để giảm thiểu các sai sót khác có thể xảy ra. Để đảm bảo việc triển khai Scrum mang lại lợi ích cao nhất thì bạn phải đảm bảo cả ba trụ cột trên trong một thể thống nhất. Thiếu một trong số đó sẽ gây ra hậu quả nghiệm trọng và dễ dẫn đến thất bại.
3. Kanban và Scrum
Như đã đề cập ở trên, cả Kanban và Scrum đều bắt nguồn từ một hệ tư tưởng. Tuy nhiên, cách thực hiện của hai phương pháp này rất khác nhau.
Điểm giống nhau:
- Cả hai phương pháp Scrum và Kanban đều chia nhỏ các task lớn và phức tạp thành những đoạn nhỏ và hoàn thành theo một quy trình nhất định.
- Cả hai phương pháp thúc đẩy cải tiến liên tục, tối ưu hóa công việc và quá trình.
- Cả hai phương pháp đều tập trung vào dòng chảy công việc để khuyến khích các thành viên tham gia vào quy trình
Những khác biệt:
Phương pháp Scrum là giải pháp tốt nhất cho sản phấm và phát triển dự án. Kanban là giải pháp tốt nhất để hỗ trợ sản xuất. Sự khác nhau giữa phương pháp Scrum và Kanban là triết lý đằng sau và các ứng dụng thực tế của Scrum và Kanban. Có rất nhiều lí do khác nhau tuy nhiên có 3 điểm khác biệt lớn như sau:
1. Lập kế hoạch, sự lặp lại
Phương pháp Scrum đề cao tầm quan trọng về lịch trình. Các nhóm Scrum sẽ được cung cấp một danh sách ưu tiên của các task cần được hoàn thành, hoàn chỉnh chức năng và sẵn sàng chuyển giao (shippable) cho khách hàng. Các nhóm phải quyết định nhận task nào mà họ nhận thấy có thể được hoàn tất trong vòng một sprint. Bất kỳ việc nào ngoài phạm vi công việc mà họ đã cam kết sẽ được đưa vào sprint sau. Sau đó, mỗi hai tuần (hoặc tùy theo giai đoạn sprint) các nhóm sẽ cho ra một sản phẩm hoàn thiện sẵn sàng chuyển giao cho khách hàng. Sau đó các biên sẽ họp cải tiến (một trong những đặc điểm của phương pháp Scrum) để thảo luận về việc tối ưu hóa quá trình, và chuyển sang sprint tiếp theo. Quá trình này được lặp đi lặp lại và cho phép ước tính chính xác dòng chảy công việc và quản lý dự án hiệu quả. Nhóm Kanban không có khung thời gian (time box) hay quy trình lặp đi lặp lại. Sự cải tiến liên tục sẽ diễn ra liên tục trong suốt quá trình hoàn thành sản phẩm. Sự giới hạn trong dòng chảy công việc sẽ được điều chỉnh ở nhóm hay trong tổ chức dựa trên phương pháp Kanban cho đến khi đạt được sự tối ưu của các điều kiện và điểm giới hạn đến để giữ cho dòng chảy công việc đều đặn và hiệu quả.
2. Vai trò và trách nhiệm Trong một nhóm Scrum, có ít nhất ba bên được phép chỉ định xử lý công việc: PO, Scrum Master và nhóm phát triển. Mỗi bên bị ràng buộc bởi về trách nhiệm riêng biệt và họ phải làm việc cùng nhau để đạt được một sự cân bằng giữa yêu cầu và sản phẩm cuối. Nhóm Scrum bắt buộc là nhóm liên chức năng, hay nói cách khác nhóm Scrum phải có tất cả các nguồn lực cần thiết để hoàn thành công việc. Với phương pháp Kanban, không có quy định nào về vai trò. Có thể hiểu là một người sẽ đảm nhận vai trò như người quản lý dự án hoặc giám sát, đặc biệt là đối với các dự án Kanban có quy mô lớn và phức tạp thì không có bất cứ quy định về các vai trò. Một nhóm Kanban không nhất thiết phải là nhóm liên cá nhân như phương pháp Scrum. Bất kỳ hoặc tất cả các nhóm đều có thể tham gia dự án. Do đó, một nhóm chuyên gia hay một một riêng biệt đều có thể làm việc trên các khía cạnh khác nhau của dự án Kanban tương tự từ cùng một bảng Kanban.
3. Bảng quản trị Trên một bảng Scrum, các cột được dán nhãn để phản ánh các giai đoạn của dòng chảy công việc. Các task lần lượt theo thứ tự, làm tất cả mọi việc mỗi sprint trong một vài tuần (khoảng thời gian thông thường cho sprint) và chuyển chúng sang trạng thái hoàn thành (cột Done) và cuối cùng sẽ xử lý hết những sprint còn ở trạng thái chờ. Trên một bảng Kanban, các cột tương tự được dán nhãn để hiển thị trạng thái flow of work. Tuy nhiên khác biệt ở chỗ có sự giới hạn về số lượng tối đa cho phép của mỗi cột tại bất kỳ thời điểm nào và hạn chế khả năng thực thi mỗi task. Vì mỗi cột có một số giới hạn khác nhau và không yêu cầu thời gian (như sprint), nên không có lý do để lặp lại quy trình như phương pháp Scrum. Tiến trình sẽ tiếp tục chạy với những task mới được bổ sung khi cần thiết và được đánh giá lại nếu cần.
4. Scrum và Agile
Thắc mắc về sự khác biệt giữa Scrum vs Agile hoặc Agile vs Scrum giống như việc tìm kiếm sự khác biệt giữa 2 cụm từ "Màu đỏ" và "Màu sắc". Màu đỏ là một loại màu sắc và việc sử dụng nó phụ thuộc vào mức độ đặc biệt và mức độ thoải mái của người dùng. Scrum và Agile cũng tương tự như vậy.
Scrum là một loại phương pháp agile. Về cơ bản nó là một dạng thức đặc biệt của khuôn khổ agile. Trên thực tế, Scrum và Kanban trong các thuật ngữ phát triển phần mềm đều là những khái niệm đặc biệt được mở rộng từ phương pháp agile.
Chúng ta có thể so sánh Scrum với Kanban hoặc Kanban với Scrum (giống như việc so sánh 2 màu "Đỏ" và "Xanh dương") cũng như việc so sánh 2 phương pháp nói trên. Tuy nhiên, việc so sánh Scrum với Agile sẽ giống việc so sánh 2 từ "Màu đỏ" và "Màu sắc".
5. Thay lời kết: "Phương pháp nào tốt hơn?
Đây là một câu hỏi khó và không ai có thể trả lời câu hỏi này ngoài doanh nghiệp của bạn. Tùy vào nhu cầu, điều kiện và chiến lược riêng của từng doanh nghiệp để lựa chọn cho mình phương pháp Scrum hay Kanban. Ngoài ra doanh nghiệp cũng có thể thử phương pháp Scrumban – là sự kết hợp của phương pháp Scrum và Kanban. Scrumban được giới thiệu như một quy trình đơn giản để quản lý những dự án phức tạp. Hiện nay Scrumban được áp dụng tốt nhất khi phát triển website, phát triển phần mềm hoặc maintenance.
Bài viết có tham khảo từ nguồn dưới đây: http://www.softwaretestinghelp.com/kanban-vs-scrum-vs-agile/
All Rights Reserved