Scrum


Bài viết trước: Agile
-----

1         Scrum


1.1       Scrum là gì?


Scrum (n): cuộc đấu tranh hỗn độn; nên hiểu theo nghĩa "chung vai gánh vác". Vào youtube gõ từ khóa “scrum rugby” để xem các cầu thủ thực hiện “scrum”. Hoặc xem hình sau:



Có vẻ khi làm phần mềm, dự án, người ta lấy ý tưởng của các cầu thủ thực hiện “scrum” để làm việc.

Scrum là một trong các quy trình phát triển phần mềm (sản phẩm) theo phương pháp Agile. Ngoài Scrum còn nhiều quy trình khác dựa trên tuyên ngôn agile như[1]: ASD (Adaptive software development), Agile Modeling, AUP (Agile unified process), Kanban, XP (Extreme programming).

Scrum là một khung làm việc dựa trên Agile. Scrum được xây dựng dựa trên thuyết thực nghiệm. Thuyết này cho rằng "mọi tri thức đều đến từ kinh nghiệm đã trải qua, mọi quyết định đều dựa trên những gì mình đã hiểu biết, điều này giúp giảm thiểu rủi ro, tăng tính chính xác của từng bước trong một tiến trình, đặc biệt trong môi trường nhiều biến động ".

Yếu tố quan trọng là quan sát và thích nghi. Do vậy, nhóm Scrum liên tục thăm dò và điều chỉnh hoạt động của mình, để giảm thiểu các rủi ro.


1.2       Khung làm việc của Scrum


Xem hình minh họa[2] về khung làm việc của Scrum,



Trong Scrum, đội tham gia phát triển gồm 3 thành phần: product owner, scrum master và development team.

– Product owner: người định nghĩa các yêu cầu của sản phẩm, đánh giá sản phẩm đầu ra

– Scrum master: vận hành nhóm làm việc theo Scrum

– Development team: nhóm liên chức năng, thực hiện các yêu cầu trong Product backlog nhằm tạo ra sản phẩm.

– Product Backlog: chứa các yêu cầu của sản phẩm, với các mục được sắp theo thứ tự ưu tiên.

– Lập kế hoạch Sprint: là cuộc họp nhóm diễn ra ở đầu mỗi Sprint, nhằm phân rã hạng mục công việc trong Product Backlog thành các việc cụ thể hơn.

– Sprint Backlog: danh sách các công việc cụ thể cần làm, đây là kết quả của cuộc họp Lập kết hoạch Sprint

– Sprint: là một chu kì làm việc của nhóm, thường có thời gian từ 1 đến 4 tuần

– Scrum hàng ngày: là cuộc trao đổi ngắn mà nhóm Phát triển thực hiện hàng ngày, nhằm trao đổi và cập nhật tình hình công việc giữa các thành viên

– Làm mịn Product Backlog: là hoạt động thêm vào các chi tiết, thay đổi trình tự các mục trong Product Backlog. Quá trình làm mịn thường được thực hiện vào giữa Sprint hiện tại, để chuẩn bị yêu cầu cho Sprint tiếp theo.

– Phần tăng trưởng chuyển giao được của sản phẩm: kết quả đạt được sau mỗi Sprint

– Sơ kết Sprint: cuộc họp cuối của mỗi Sprint, xem sản phẩm, tổng kết Sprint

– Cải tiến Sprint: diễn ra sau cuộc họp Sơ kết Sprint, xem xét và cải tiến các vấn đề liên quan đến Sprint (con người, truyền thông, quy trình, công cụ)


1.3       Lợi ích khi dùng Scrum[3]


– Cải thiện chất lượng sản phẩm

– Rút ngắn thời gian phát triển

– Nâng cao tinh thần đồng đội

– Gia tăng tỉ suất hoàn vốn đầu tư (ROI)

– Tăng mức độ hài lòng của khách

– Kiểm soát dự án tốt

– Giảm thiểu rủi ro


1.4       Ba trụ cột của Scrum


Scrum có ba trụ cột :

– Minh bạch: tất cả các khía cạnh của tiến trình phải được cung cấp rõ ràng cho mọi thành viên có liên quan đến việc phát triển sản phẩm. Điều này giúp: giảm rủi ro, nâng cao chất lượng, tăng tin cậy, ra quyết định chính xác.

– Thanh tra: người sử dụng Scrum phải thường xuyên kiểm tra lại công việc và tiến độ để đạt được tiến độ Sprint, đồng thời phát hiện ra điểm bất thường ngoài dự định.

– Thích nghi: nếu tại bước thanh tra có phát hiện ra các bất thường có ảnh hưởng lớn đến sản phẩm thì cần càng nhanh càng tốt điều chỉnh lại quy trình/tài liệu thực hiện. Tương tự như vậy, nếu có các ý tưởng mới có ảnh hưởng lớn đến sản phẩm thì cũng thực hiện điều chỉnh lại quy trình/tài liệu. 


1.5       Năm giá trị của Scrum[4]


– Tập trung

– Dũng cảm

– Cam kết

– Cởi mở

– Tôn trọng