Scrum và Kanban là hai từ thường được sử dụng thay thế cho nhau hoặc được mọi người hiểu sai nó là cặp từ đồng nghĩa. Trong thực tế, hai phương pháp Scrum và Kanban là khác nhau và thường được kết hợp với nhau Scrumkanban. Hiểu được những sự khác biệt của hai phương pháp sẽ giúp bạn chọn được phương pháp tốt nhất và phù hợp nhất cho công ty của bạn. Như vậy, Viện Phần Mềm sẽ giúp bạn hiểu rõ hơn.
Khái niệm cần nắm
Phương pháp Scrum là gì?
Về cơ bản, phương pháp Scrum là bộ khung làm việc (framework) giúp các công ty, tổ chức chia nhỏ công việc thành những phần nhỏ hơn, để quản lý dễ dàng hơn và được hoàn thành bởi một nhóm liên chức năng (cross-function) trong một khoảng thời gian quy định (còn gọi là sprint trong 2-4 tuần).
Để lập kế hoạch, tổ chức, quản lý và tối ưu hóa quá trình này, Scrum dựa trên ba vai trò chính: Product Owner (PO) (chịu trách nhiệm lập kế hoạch ban đầu, thiết lập các ưu tiên và phối hợp với các bộ phận khác của công ty), Scrum Master (chịu trách nhiệm giám sát công việc trong suốt quá trình thực hiện) và các thành viên của nhóm Scrum có trách nhiệm thực hiện phần việc trên mỗi sprint.
Nhóm Scrum thường sử dụng Bảng Scrum để theo dõi công việc của từng thành viên trong nhóm (dòng chảy công việc – flow of work). Mỗi nhiệm vụ (task) được chia thành các đoạn nhỏ gọi là “stories”, mỗi stories chuyển giao trong Bảng gọi là “backlog” (những việc phải làm), trở thành “work-in-progess” (việc đang triển khai)
Mô hình Scrum là một trong những mô hình phát triển phần mềm linh hoạt được sử dụng rộng rãi trong các dự án phát triển phần mềm. Hãy cùng Viện Phần Mềm tìm hiểu về mô hình này!
Mô hình Scrum là gì?
Mô hình Scrum là một trong những mô hình phát triển phần mềm linh hoạt được sử dụng rộng rãi trong các dự án phát triển phần mềm. Hãy cùng Viện Phần Mềm tìm hiểu về mô hình này!
Đó là một quy trình phát triển phần mềm theo mô hình linh hoạt (agile), cung cấp rất nhiều phương pháp luận, quy trình và các thực nghiệm để cho việc phát triển phần mềm trở nên nhanh chóng và dễ dàng. Với nguyên tắc chính là chia nhỏ phần mềm cần sản xuất ra thành các phần nhỏ để phát triển (gọi là Sprint. Sprint phải độc lập và release được), lấy ý kiến khách hàng (Product Owner) và thay đổi cho phù hợp ngay trong quá trình phát triển để đảm bảo sản phẩm release đáp ứng những gì khách hàng mong muốn.
Mỗi Sprint thường mất 2- 4 tuần để hoàn thành. Vì vậy nó rất phù hợp cho những dự án có nhiều sự thay đổi và yêu cầu tốc độ cao. Các tác vụ trong Sprint được chia ra thành các danh mục (product backlog items), nhóm dự án Scrum sẽ phát triển và đánh giá lại sao cho đạt được mục đích ban đầu trong khoảng thời gian đề ra.
Mô hình Scrum vận hành dựa trên đặc tính tư nhiên của người phát triển nên rất dễ hiểu, dễ áp dụng, tạo nên tính tương tác cao giữa những thành viên trong nhóm thay vì chịu sự áp đặt từ bên ngoài.
Ưu điểm của mô hình Scrum là gì?
- Thời gian hoàn thành dự án linh hoạt, không bị cố định từ đầu
- Thời gian tạo ra sản phẩm dựa vào mô hình Scrum nhanh, tốc độ phát triển nhanh, tiết kiệm thời gian
- Phân phối sản phẩm mềm dẻo: nội dung sản phẩm chuyển giao được xác định linh hoạt theo môi trường sử dụng thực tế.
- Mỗi thành viên phụ trách một “sprint” nên hiệu quả công việc cao hơn, năng suất cao hơn và tính chính xác cao hơn
- Khách hàng tham gia vào quá trình phát triển phần mềm để đảm bảo sản phẩm đầu ra đáp ứng đúng nhu cầu phát triển.
- Kiểm soát quá trình thực nghiệm vì nhóm Scrum có thể điều chỉnh và sửa chữa các practice bằng cách sử dụng hướng dẫn thực tế nhất từ các thử nghiệm và báo lỗi
- Các bugs (lỗi) và các vấn đề trong mô hình Scrum được phát hiện sớm hơn rất nhiều so với các phương pháp truyền thống
- Chất lượng sản phẩm tốt và giảm rủi ro sản xuất, chi phí thấp. Khả năng trao đổi giữa khách hàng và nhà phát triển, giữa những thành viên trong đội được đặt lên mức cao.
Mô hình Agile Scrum mang lại lợi ích gì?
Agile Scrum đang ngày trở nên phổ biến và được sử dụng rộng rải bởi những nhà phát triển phần mềm. Vậy vì những lợi ích gì mà mô hình Agile Scrum lại được ưa chuộng như vậy?
Cải thiện chất lượng phần mềm
Framewrok của Scrum giúp nhóm phát triển Scrum nhận phản hồi liên tục và nhanh chóng điều chỉnh để đảm bảo chất lượng phần mềm cao nhất, đồng thời đáp ứng đúng nhu cầu của thị trường luôn thay đổi. Bằng cách áp dụng các nguyên tắc nghiệm ngặt trong mô hình Scrum, nhóm phát triển Scrum có thể đưa ra thị trường các sản phẩm có chất lượng tốt nhất.
Rút ngắn thời gian phát hành phần mềm
Scrum đã được chứng minh là cung cấp sản phẩm đến tay khách hàng cuối cùng nhanh hơn 30%-40% so với phương pháp truyền thống. Vì mô hình Scrum làm việc với nguyên tắc chính là chia nhỏ phần mềm cần sản xuất ra thành các phần nhỏ để phát triển gọi là Sprint. Mỗi Sprint thường mất 2- 4 tuần để hoàn thành.
Nâng cao tinh thần đồng đội
Mô hình Scrum áp dụng cách thức tự quản và tự tổ chức (self-managing & self-organizing ), với mục đích các thành viên trong nhóm Scrum có thể vui vẻ làm việc cùng nhau, khơi dậy sự sáng tạo, chủ động trong họ. Cách thức tự quản lí cũng cho phép mọi thành viên trong nhóm Scrum đều có thể ra quyết định. Trong nhóm Scrum sẽ không có nhóm trưởng mà chỉ có Scrum Master, là người giúp nhóm vượt qua các trở ngại và che chắn cho nhóm khỏi những ảnh hưởng từ nội bộ hay bên ngoài.
Gia tăng tỷ suất hoàn vốn đầu tư (ROI)
Giảm thời gian sản xuất là lí do chính yếu nhất giúp các dự án Scrum đạt được ROI cao hơn. Bởi vì doanh thu và các mục tiêu khác đến sớm hơn, nên tổng lợi nhuận cao hơn theo thời gian. Đây là một nguyên lý cơ bản của giá trị hiện tại thuần (NPV)
Tăng mức độ hài lòng của khách hành
Nhóm Scrum cam kết sản xuất ra các sản phẩm hoặc dịch vụ có thể khiến khách hàng hài lòng. Sở dĩ như vậy vì nhóm Scrum xem khách hàng là đối tác và giữ khách hàng tham gia vào dự án; thành phần tham gia dự án Scrum còn có Product Owner là người hiểu rõ các yêu cầu (requirements) của dự án và nhu cầu của khách hàng; thời gian cung cấp sản phẩm nhanh hơn
Kiểm soát dự án tốt
Tất cả các thành viên của nhóm dự án Scrum, Product Ower, Scrum Master và các bên liên quan có rất nhiều cơ hội để kiểm tra và điều chỉnh sản phẩm trong suốt dự án và cuối cùng tạo ra sản phẩm tốt nhất. Vì các framework của mô hình Scrum cho phép nhận các phản hồi liên tục và qua đó có thể nhanh chóng điều chỉnh.
Giảm thiểu rủi ro
Mô hình Scrum giúp giảm thiểu rủi ro thất bại hoàn toàn khi mất một số tiền đầu tư khổng lồ và thời gian dài để triển khai dự án mà không thu lại được ROI. Vì như đã trình bày, Scrum làm việc theo từng giai đoạn, từng Sprint, nên nhóm dự án có thể thực hiện từng bước, sau đó rút kinh nghiệm hoặc tiếp tục phát huy các ưu điểm của Sprint trước để cải thiện hơn sản phẩm trong Sprint sau tránh gây thất thoát quá lớn trong suốt dự án.
Phương pháp Kanban là gì?
Kanban cũng là một công cụ được sử dụng để giúp các công ty tổ chức đạt hiệu quả cao trong công việc. Kanban là công cụ kiểm soát sản xuất, dùng nhiều màu sắc để chỉ định nguyên liệu và các công đoạn khác nhau.
Giống như phương pháp Scrum, Kanban cũng dùng Bảng Kanban và chia công việc thành những phần nhỏ. Trong khi phương pháp Scrum giới hạn thời gian cho phép để hoàn thành một công việc cụ thể (sprint) thì Kanban giới hạn số lượng công việc cho phép trong một điều kiện nhất định (bao gồm nhiều task trên một thẻ Kanban và trên To do list – chỉ định rõ phải nhận bộ phận, chi tiết hay nguyên liệu nào từ trạm trước nó với số lượng bao nhiêu)
Scrum và Kanban giống nhau ở điểm gì?
- 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
Scrum và Kanban khác nhau ở điểm gì?
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.
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 Scrum-Kanban – 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.
Tham khảo: www.cprime.com
Ban biên tập: Viện Phần Mềm