- Là một framework (khung làm việc) thuộc phương pháp Agile, được dùng để quản lý và phát triển sản phẩm phức tạp, đặc biệt là trong phần mềm và dự án sáng tạo.
- Scrum tập trung vào làm việc theo vòng lặp ngắn (Sprint), liên tục cải tiến, và cộng tác chặt chẽ giữa các thành viên.
=> Agile tập trung vào các giá trị cốt lõi như sự linh hoạt, tương tác và phản ứng với thay đổi, Scrum cung cấp một bộ quy tắc, vai trò và sự kiện cụ thể để biến những giá trị đó thành hành động.
Đặc điểm chính của Scrum
- Làm việc theo Sprint: mỗi Sprint thường kéo dài 1-4 tuần, tạo ra một phiên bản sản phẩm hoàn chỉnh, có thể sử dụng hoặc demo cho khách hàng.
- Tập trung vào giá trị: ưu tiên các hạng mục có giá trị cao nhất trước.
Ba nguyên tắc của Scrum
- Tính minh bạch (transparency)
Quá trình thực thi trong Scrum phải luôn minh bạch với tất cả những thành viên thực hiện công việc và cả người nhận kết quả. Nói cách khác, mọi thông tin liên quan đến quy trình và sản phẩm của dự án đều cần được hiển thị một cách rõ ràng và công khai. Đây là nguyên tắc đầu tiên và cần thiết nhất của Scrum, giúp nhà quản lý nắm rõ được tình trạng dự án, tiến độ công việc cũng như lường trước các rủi ro có thể xảy ra.
- Tính thanh tra (inspection)
Đây là nguyên tắc quan trọng thứ hai của Scrum, giúp kiểm soát những rủi ro và có phương án điều chỉnh kịp thời nhằm đáp ứng sự thay đổi liên tục trong suốt quá trình diễn ra dự án. Đây cũng chính là nguyên tắc giúp cho Scrum trở thành một phương pháp quản lý dự án phổ biến.
- Tính thích ứng (adaptation)
Đây là nguyên tắc cuối cùng của Scrum giúp cho dự án luôn đi đúng với giới hạn và các tiêu chuẩn đặt ra ban đầu. Các sai số hay sự thay đổi so với kế hoạch sẽ ngay lập tức được đội nhóm điều chỉnh và cải tiến, tránh mất thời gian cho việc sửa chữa những công việc bị chệch hướng so với mục tiêu. Nhờ nguyên tắc này, Scrum được áp dụng sử dụng trong nhiều lĩnh vực có tính chất công việc phức tạp mà các phần mềm cũng không thể can thiệp xử lý được.
Vai trò (Roles)
Một nhóm Scrum bao gồm 3 vai trò chính:
- Product Owner: Là người chịu trách nhiệm tối đa hóa giá trị của các thành phẩm và lợi nhuận của dự án, cũng là người quản lý Product backlog để giúp tập thể đạt được Product goal – mục tiêu cuối cùng của sản phẩm.
- Scrum Master: Là người chịu trách nhiệm triển khai Scrum, người nắm rõ nhất lý thuyết và thực hành của Scrum trong đội nhóm. Scrum Master cũng sẽ là người đảm bảo được tiến độ cho tất cả các tạo tác của Scrum, giúp chúng được thực hiện một cách hiệu quả, tích cực và đúng thời lượng.
- Development Team: Là một nhóm liên chức năng chịu trách nhiệm tạo ra các kế hoạch công việc và thực hiện chúng trong các Sprint. Đội nhóm này thường được giữ nguyên trong suốt 1 Sprint, chỉ thay đổi giữa các Sprint với nhau. Các kỹ năng cụ thể cần thiết cho Developers thường khá rộng và khác nhau tùy chức năng công việc.
Sự kiện (Events)
Scrum có một chuỗi các sự kiện diễn ra trong mỗi Sprint:
- Sprint Planning: Cuộc họp đầu Sprint để nhóm thống nhất mục tiêu và chọn ra các công việc cụ thể từ Product Backlog để làm trong Sprint này.
- Daily Scrum (Daily Stand-up): Cuộc họp ngắn (15 phút) mỗi ngày để các thành viên chia sẻ tiến độ, kế hoạch làm việc trong ngày và nêu ra những khó khăn đang gặp phải.
- Sprint Review: Cuộc họp vào cuối Sprint để giới thiệu sản phẩm đã hoàn thành cho các bên liên quan và lấy ý kiến phản hồi.
- Sprint Retrospective: Cuộc họp để cả nhóm cùng nhìn lại và thảo luận về cách làm việc của họ trong Sprint vừa qua, từ đó tìm cách cải thiện cho Sprint tiếp theo.
Các tạo tác (Artifacts)
Là các công cụ giúp Scrum team quản lý công việc:
- Product Backlog: Product Backlog là một danh sách sắp xếp theo trật tự về những điều cần thiết để cải tiến sản phẩm. Các hạng mục trong Product Backlog có thể được làm rõ ràng và minh bạch hơn sau các lần tinh chỉnh – là việc chia nhỏ và xác định chi tiết Product Backlog thành các hạng mục nhỏ
- Product Goal: chính là phần tiêu chuẩn ràng buộc của Product Backlog. Nó cung cấp bối cảnh cho Product Backlog, mô tả trạng thái tương lai của sản phẩm, biến nó thành mục tiêu để nhóm thực thi lên kế hoạch tương ứng. Product Goal là mục tiêu dài hạn cho nhóm thực thi dự án. Và họ sẽ phải hoàn thành (hay từ bỏ) một mục tiêu cũ trước khi lựa chọn mục tiêu tiếp theo, và sẽ không có 2 mục tiêu tồn tại song song tại cùng một thời điểm.
- Sprint Goal: là mục tiêu duy nhất của Sprint, được đặt ra nhằm tạo sự gắn kết và tập trung, khuyến khích nhóm thực thi làm việc với nhau thay vì làm việc riêng lẻ. Mặc dù Sprint Goal là sự cam kết của nhóm thực thi, nó cũng cho phép một sự linh hoạt về những gì chính xác cần thực hiện để đạt được nó. Và mục tiêu này phải có độ khả thi, bởi nếu không thì chúng sẽ có tác động xấu ngược lại.hơn và chính xác hơn.
- Sprint Backlog: là tập hợp của các mục trong Product Backlog được chọn cho Sprint, và một kế hoạch khả thi để tạo ra các Increment. Sprint Backlog là một kế hoạch được thực hiện và dành cho nhóm thực thi. Nó phải rõ ràng, vẽ nên một bức tranh thực tế và khả thi về công việc cần thực hiện để đạt được Sprint Goal.
- Increment: được xem như một bước đệm để giúp nhóm phát triển hướng đến mục tiêu sản phẩm. Mỗi một Increment là một phần thêm vào của tất cả các Increment trước đó, vậy nên phải đảm bảo tất cả các Increment tích hợp tốt với nhau. Trong một Sprint có thể tạo ra nhiều Increment, con số này sẽ được trình bày tại các buổi Sprint Review. Các công việc sẽ chỉ được xem như là một Increment khi mà nó đảm bảo được quy chuẩn của Definition of Done – Định nghĩa về sự hoàn thành.
- Burndown Chart: còn được gọi là Biểu đồ ước tính khối lượng công việc còn lại phải làm theo thời gian. Thông thường, trong Burndown Chart, công việc nổi bật thường nằm trên trục tung (trục y) và thời gian nằm ở trục hoành (trục x). Nó rất hữu ích cho việc lên kế hoạch công việc trong ngày, dự đoán khi nào tất cả công việc được hoàn thành và duy trì đội ngũ hoạt động đúng tiến độ.