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