Giới thiệu về Scrum
Với sự trưởng thành trong suốt hơn 25 năm của Scrum cùng sự phổ biến của nó trong cộng đồng doanh nghiệp IT, Scrum đã chứng minh được tính hiệu quả trong việc phát triển, quản lý và duy trì những sản phẩn phần mềm phức tạp. Tuy nhiên, nó vẫn còn mới mẻ với nhiều người. Bài viết này sẽ trình bày tổng quản về Scrum một cách trực quan hơn thay vì toàn là chữ trên trang chủ Scrum.
Định nghĩa và ứng dụng
Scrum là một quy trình phát triển phần mềm chuyên sử dụng cho các vấn đề phức tạp và cần sự thích ứng khi sự thay đổi có thể xảy ra thường xuyên.
Scrum là một quy trình tinh gọn và dễ hiểu, nhưng lại khó master.
Scrum bắt đầu được sử dụng rộng rãi từ những năm 90 thế kỉ trước, chủ yếu để giải quyết các vấn đề sau:
- Nghiên cứu và xác định thị trường, công nghệ và tính khả thi của sản phẩm.
- Phát triển và cải tiển sản phẩm.
- Phát hành và cải tiến sản phẩm thường xuyên.
- Duy trì và đổi mới sản phẩm.
Sơ lược thuật ngữ
Trước khi giải thích về Scrum, chúng ta nên biết một chút về những thuật ngữ sẽ sử dụng trong phần giải thích để hiểu rõ hơn và tránh lẫn lộn. Chi tiết thuật ngữ nằm trong các phần phía dưới.
- Artifact: là các thành phần đại diện cho công việc hoặc giá trị để cung cấp sự minh bạch và cơ hội để kiểm tra và thích nghi. Nói đơn giản thì nó là các kiểu báo cáo quá trình và kết quả của sản phẩm.
- Sprint: là khoảng thời gian nhỏ hơn một tháng mà Nhóm Scrum tiến hành tất cả các hoạt động cần thiết để sản xuất được một Increment (phần tăng trưởng) có khả năng bàn giao được.
- Increment: là tổng của tất cả các hạng mục Product Backlog được hoàn thành trong Sprint và giá trị của các Increment của tất cả các Sprint trước đó
- Product Backlog: là một danh sách có thứ tự liệt kê mọi thứ cần thiết trong sản phẩm.
3 nguyên tắc của Scrum
Scrum sử dụng cách tiếp cận lặp đi lặp lại, có tính tăng dần để tối ưu hóa khả năng dự đoán và kiểm soát rủi ro. 3 nguyên tắc này được thể hiện xuyên suốt trong các thành phần của Scrum
3 nguyên lý của Scrum
Các giá trị của Scrum
Sự thành công của việc sử dụng Scrum phụ thuộc vào các thành viên trong Scrum Team ghi nhớ và thực hiện các giá trị sau
5 giá trị của Scrum
Thành phần của Scrum Team
Thành phần của Scrum Team
Vai trò của Scrum Master đối với Product Owner
Scrum Master hỗ trợ Product Owner bằng nhiều cách, bao gồm:
- Đảm bảo các mục tiêu, phạm vị và lĩnh vực sản phẩm được hiểu rõ bởi mọi người trong Scrum Team.
- Tìm kiếm các kỹ thuật để quản lý hiệu quả Product Backlog.
- Giúp Scrum Team hiểu ra sự cần thiệt của việc rõ ràng và ngắn gọn các hạng mục của Product Backlog.
- Hiểu rõ kế hoạch sản phẩm trong môi trường thực nghiệm.
- Đảm bảo Product Owner biết làm thế nào để sắp xếp Product Backlog để đạt giá trị tối đa.
- Hiểu và thực hành sự linh hoạt.
- Tạo điều kiện cho các sự kiện Scrum khi được yêu cầu hoặc cần thiết.
Vai trò của Scrum Master đối với Development Team
- Huấn luyện cho Dev Team cách tự tổ chức và làm việc liên chức năng.
- Giúp đỡ Dev Team để tạo ra các sản phẩm giá trị cao.
- Loại bỏ các trở ngại trong quy trình của Dev Team.
- Tạo điêù kiện cho các sự kiện Scrum khi được yêu cầu hoặc cần thiết.
- Huấn luyện Dev Team trong môi trường tổ chức mà trong đó Scrum không được hiểu và áp dụng đầy đủ.
Vai trò của Scrum Master đối với tổ chức
- Lãnh đạo và huấn luyện tổ chức trong việc áp dụng Scrum.
- Lập kế hoạch triển khai Scrum trong phạm vị tổ chức.
- Giúp đỡ các nhân viên và các bên liên quan hiểu và ban hành Scrum cũng như việc phát triển sản phẩm thực nghiệm.
- Làm việc với các Scrum Master khác để tăng tính hiệu quả của việc ứng dụng Scrum trong tổ chức.
Các Scrum Event
Các sự kiện được quy định trong Scrum được sử dụng để tạo ra tính đều đặn và giảm thiểu sự cần thiết cho những cuộc họp không được định nghĩa trong Scrum. Toàn bộ các sự kiện đều được đóng khung thời gian, tức là mỗi sự kiện đều có giới hạn thời gian tối đa. Ví dụ khi một Sprint bắt đầu, thời gian của nó không được ngắn hơn và dài hơn.
Sprint
Sprint - trái tim của Scrum
Các sự kiện con của Sprint
Các sự kiện con của Sprint
Luồng hoạt động các sự kiện trong tổng quan Scrum
Luồng hoạt động các sự kiện trong tổng quan Scrum
Chi tiết các Scrum Artifact
Các Scrum artifact thể hiển các công việc hoặc các giá trị của tính minh bạch cũng như các cơ hội cho việc kiểm tra và thích nghi. Các artifact Scrum được thiết kế để tối đa hóa tính minh bạch và thông suốt của các thông tin chính nhằm đảm bảo mọi người có cùng cách hiểu thống nhất về Artifact.
Các Scrum Artifact
Minh bạch hóa các Artifact
Scrum Master phải làm việc với Product Owner, Dev Team, và các đối tượng khác để hiểu rõ tại sao các artifact này hoàn toàn minh bạch. Có nhiều cách để xử lí việc minh bạch không đầy đủ; Scrum Master phải giúp đỡ mọi người áp dụng cách thức phù hợp trong tình huống không đủ minh bạch. Scrum Master có thể phát hiện sự minh bạch không đầy đủ bằng việc thanh tra các artifact, các mẫu thăm dò, lắng nghe những trao đổi, và phát hiện những sự khác biệt giữa kỳ vọng và kết quả thực tế
Định nghĩa “Hoàn thành”
Khi một hạng mục Product Backlog hoặc một Increment cho là “Hoàn thành”, mọi người phải hiểu rõ “Hoàn thành” là thế nào. Mặc dù việc xác định rõ định nghĩa này hoàn toàn phụ thuộc vào từng nhóm Scrum, nhưng mọi thành viên phải có một cách hiểu chung về định nghĩa “Hoàn thành” để đảm bảo tính minh bạch. Đây chính là (chuẩn) “Định nghĩa Hoàn thành” cho nhóm Scrum; nó được dùng để đánh giá khi nào công việc thực sự hoàn thành trên mỗi Increment của sản phẩm.
Lời kết
Mục tiêu của bài blog này là để hệ thống hóa và trực quan hóa các kiến thức về Scrum, do đó nó phải lược bớt một số chi tiết đề cập trong Scrum Guide. Nếu các bạn muốn hiểu chi tiết về Scrum - để trở thành Scrum master chẳng hạn - thì nên đọc Scrum Guide tuy là khá nhàm chán vì toàn là chữ :D
Tham khảo
- Scrum Guide trên trang chủ: https://www.scrumguides.org/scrum-guide.html