Nếu bạn đang làm PM hay có nguyện vọng muốn làm một PM thì ắt hẳn bạn đã nghe đến thuật ngữ Scrum. Vậy rốt cuộc nó là cái gì mà người làm PM phải biết? Bài viết này mình sẽ cố gắng giải thích đầy đủ nhất cho mọi người nhé ^^
1. Khái niệm
Scrum là một phương pháp phát triển phần mềm linh hoạt (Agile) dựa trên cơ chế lặp và tăng trưởng. Với Scrum, sản phẩm được xây dựng trong một chuỗi các quy trình lặp lại được gọi là Sprint. Qua đó có thể liên tục cải tiến và khắc phục lỗi xảy ra với sản phẩm trong suốt quá trình phát triển.
2. Vai trò trong Scrum
– Product Owner (PO): Là người chịu trách nhiệm cao nhất đối với sản phẩm và nhóm phát triển. PO có trách nhiệm làm việc với chủ đầu tư để hiểu yêu cầu về sản phẩm, quản lý những yêu cầu đó, tạo ra những “câu chuyện người dùng” – user story – đối với sản phẩm và truyền đạt những thông tin đó đến đội phát triển
– Development team: Là một tập hợp những kỹ sư “liên chức năng”- nghĩa là công việc của họ không cố định ở lập trình, kiểm thử, phân tích hay thiết kế. Tùy theo yêu cầu công việc mà họ sẽ đảm nhận những vai trò tương ứng.
- Development team chủ động tổ chức công việc, ước lượng khối lượng công việc và cam kết hoàn thành công việc đã được giao.
- Trong Sprint, Development Team có tiếng nói lớn nhất và những bộ phận khác có nhiệm vụ hỗ trợ những điều kiện tốt nhất để nhóm làm việc hiệu quả.
– Scrum Master (SM): Đây là thành viên giúp mọi người trong nhóm hiểu được Scrum, làm theo Scrum đồng thời hỗ trợ nhóm phát triển để họ có thể toàn tâm toàn ý làm việc.
– Trong Scrum sẽ không có vai trò PM (Quản lý dự án) hay Tech Lead
3. Artifact của Scrum
– Product Backlog: Là một danh sách các đầu mục cần phải làm để phát triển sản phẩmbao gồm đủ loại như chức năng của sản phẩm, lỗi cần sửa, nghiên cứu công nghệ haynhững việc công việc liên quan khác. Những đầu mục này thường được mô tả dưới dạng“câu chuyện người dùng” (user story)
- Product Backlog bị ràng buộc bởi product goal (mục tiêu sản phẩm): miêu tả về trạng thái tương lai của sản phẩm.
– Sprint backlog: Là một danh sách các đầu mục mà nhóm cam kết hoàn thành trong Sprint sau buổi họp sơ kết Sprint. Trong thời gian diễn ra Sprint, nhóm phát triển sẽ chỉ tập trung vào danh sách này và cập nhật tiến độ hoàn thành của chúng.
- Sprint Backlog bị ràng buộc bởi sprint goal (mục tiêu vòng sprint): mục tiêu duy nhất cần phải đạt được sau vòng sprint.
– Product Increment: tổng hợp các hạng mục product backlog đã hoàn thành cho đến vòng sprint hiện tại. Vào cuối mỗi vòng sprint, các increment mới và đã “hoàn thành” sẽ được thêm vào bộ tổng hợp này.
- Increment bị ràng buộc bởi definition of done (định nghĩa hoàn thành): định nghĩa chính thức về trạng thái “hoàn thành”.
4. Quy trình vận hành Scrum
Scrum được vận hành như sau:
- PO sẽ trao đổi với khách hàng để nắm rõ yêu cầu về sản phẩm, sau đó xây dựng và cung cấp Product Backlog cho team.
- Ở đầu mỗi sprint, Scrum team sẽ tổ chức họp và lên kế hoạch làm những yêu cầu nào từ Product Backlog và tạo ra Sprint Backlog, buổi họp này được gọi là Sprint Planning.
- Sau đó, Dev team sẽ thực hiện xây dựng và kiểm thử sản phẩm trong suốt quá trình của sprint, thường kéo dài từ 1 đến 4 tuần dưới sự chỉ dẫn của SM.
- Trong khoảng thời gian này, team phải điều chỉnh Sprint Backlog và tổ chức các buổi họp Daily Scrum để cập nhật tiến độ công việc & thông báo vấn đề nếu có.
- Ở cuối mỗi sprint là một sản phẩm hoàn thiện chạy được và có thể chuyển giao cho khách hàng. Phần increment này sẽ được review trong Sprint Demo.
- Khi kết thúc sprint, team sẽ tổ chức 1 buổi Sprint Retrospective để tổng duyệt kết quả làm việc của team trong sprint vừa rồi và lập ra kế hoạch để tăng chất lượng và hiệu quả ở vòng sprint tiếp theo.