Scrum là gì?
Scrum là một framework (khung làm việc) thuộc phương pháp Agile, giúp các nhóm phát triển phần mềm tổ chức và quản lý công việc theo từng giai đoạn ngắn gọi là Sprint (thường kéo dài từ 1 đến 4 tuần).
Nhiều người thường có sự nhầm lẫn về Scrum và Agile, và cho rằng chúng là cùng 1 loại, điều đấy là không đúng. Thực tế Scrum là một trong những Framework phổ biến nhất dùng để thực thi Agile. Và cũng có rất nhiều Framework khác cũng có thể dùng để thực thi Agile như Kanban chẳng hạn. Nếu như Agile là cái vỏ bọc lớn ở bên ngoài, bao gồm những giá trị cốt lõi và các nguyên tắc để triển khai thì Scrum chính là quy trình để hiện thực hóa và triển khai các giá trị và nguyên tắc đó
Ba trụ cột của Scrum
Đây chính là phần lõi của khung làm việc Scrum, thiếu bất cứ trụ cột nào trong số này đều khiến khung Scrum không còn hoạt động đúng nữa.
- Minh bạch (transparency): Đầu tiên, thông tin liên quan tới quá trình phát triển phải minh bạch và thông suốt. Các thông tin đó có thể là: tầm nhìn (vision) về sản phẩm, yêu cầu khách hàng, tiến độ công việc, các khúc mắc rào cản,… Từ đó mọi người ở các vai trò khác nhau có đủ thông tin cần thiết để tiến hành các quyết định có giá trị nhằm nâng cao hiệu quả công việc. Các công cụ và cuộc họp trong Scrum luôn đảm bảo thông tin được minh bạch cho các bên.
- Thanh tra (inspection): Công tác thanh tra liên tục các hoạt động trong Scrum đảm bảo cho việc phát lộ các vấn đề cũng như giải pháp để thông tin đa dạng và hữu ích đến được với các bên tham gia quá trình phát triển. Truy xét kỹ càng và liên tục là cơ chế khởi đầu cho việc thích nghi và các cải tiến liên tục trong Scrum.
- Thích nghi (adaptation): Dựa trên các thông tin minh bạch hóa từ các quá trình thanh gia và làm việc, Scrum có thể phản hồi các thay đổi một cách tích cực, nhờ đó mang lại thành công cho sản phẩm. Các nỗ lực minh bạch và thanh tra đều hướng tới hành động thích ứng nhanh chóng và hiệu quả.
Ví dụ về Quy trình Scrum
- Dự án: Phát triển ứng dụng thương mại điện tử.
- Product Owner: Định nghĩa các tính năng như tìm kiếm sản phẩm, giỏ hàng, thanh toán.
- Scrum Master: Đảm bảo nhóm tuân thủ quy trình Scrum.
- Development Team: Phát triển các tính năng theo Sprint.
Sprint 1: Tìm kiếm sản phẩm
- Tính năng tìm kiếm sản phẩm được phát triển và hoàn thành.
- Cuối Sprint, tính năng được trình bày cho khách hàng.
Sprint 2: Thêm sản phẩm vào giỏ hàng
- Phát triển tính năng giỏ hàng và trình bày cho khách hàng.
Sprint 3: Thanh toán
- Phát triển tính năng thanh toán, hoàn thiện sản phẩm.
Ưu điểm của Scrum
- Thích nghi với thay đổi nhanh chóng: Dễ dàng cập nhật yêu cầu mới.
- Minh bạch: Khách hàng và nhóm phát triển có thể theo dõi tiến độ.
- Cải tiến liên tục: Các buổi Sprint Retrospective giúp nhóm luôn cải thiện
Nhược điểm của Scrum
- Phụ thuộc vào Product Owner: Nếu Product Owner không rõ ràng, nhóm sẽ mất phương hướng.
- Dễ bị trì hoãn nếu không có kỷ luật: Đặc biệt trong các buổi họp.
- Không phù hợp với nhóm không tự tổ chức: Scrum yêu cầu nhóm phải chủ động.