Khi hoạt động trong ngành lập trình phần mềm thì bạn sẽ được làm quen với nhiều thuật ngữ cùng nhiều mô hình khác nhau trong đó có Scrum. Vậy mô hình Scrum là gì? Những điều cần biết về mô hình là gì? Tất cả vấn đề thắc mắc này sẽ được Testerpro.vn giải đáp trong bài viết dưới đây. Mời bạn tham khảo.
Scrum là gì?
Scrum hay mô hình scrum là một mô hình phát triển phần mềm linh hoạt (Agile) vận hành dựa trên cơ chế lặp và tăng trưởng. Scrum được tạp lập nhằm mục đích hỗ trợ việc phát triển, cung cấp và cải tiến các sản phẩm phức tạp.
Ở Scrum được thiết lập trong một chuỗi các quy trình lặp lại được gọi là vòng Sprint. Nhờ đó bạn có thể cải tiến sản phẩm, kỹ thuật cùng nhóm và môi trường làm việc liên tục. Thông qua cung cấp giá trị cho khách hàng trong suốt quá trình phát triển.
Bản chất của Scrum cũng là một framework (khung tổ chức công việc) được áp dụng với các dự án phát triển phần mềm. Với mục đích là tạo điều kiện cho sự hợp tác hiệu quả giữa các thành viên trong nhóm khi phát triển các dự án phức tạp.
Một nhóm Scrum tiêu chuẩn bao gồm từ 5 -10 thành viên và không có sự phân cấp thành nhóm nhỏ. Với 1 Scrum Master (người am hiểu về Scrum và quản lý dự án hay SM), 1 chủ sản phẩm (Product Owner – PO) cùng nhiều Developer.
3 giá trị cốt lõi của mô hình Scrum
Tính minh bạch (Transparency)
- Mô hình Scrum được triển khai thành công khi thông tin quy trình phải công khai minh bạch. Nó bao gồm tầm nhìn sản phẩm, nhu cầu người dùng, tiến độ công việc,… Để tăng sức mạnh cho dự án thì mọi người cần hiểu rõ vai trò của mình trong nhóm và phối hợp với nhau để hoàn thành mục tiêu đề ra. Các công cụ và cuộc họp trong Scrum luôn đảm bảo thông tin cho các bên được minh bạch.
- Yếu tố minh bạch này có sự liên quan mật thiết với 2 giá trị còn lại. Nếu công việc hoặc quy trình không được người khác thấy thì rất khó để kiểm tra. Hoặc nếu thiếu thông tin hay luồng thông tin bị gián đoạn thì kế hoạch khó có thể thay đổi nhanh chóng được.
Thanh tra (Inspection)
Để đảm bảo chất lượng của sản phẩm đồng thời tránh được sự chênh lệch quá lớn giữ sản phẩm được sản xuất thực tế và sản phẩm mong muốn. Chúng ta cần kiểm tra liên tục các hoạt động trong Scrum để phát hiện vấn đề cùng giải pháp để thông tin hữu ích đến với các bên tham gia quá trình phát triển. Sự thanh tra nên diễn ra ở một thời điểm nhất định và thực hiện ở cá nhân đủ năng lực. Tại những điểm quan trọng ở công việc thì việc kiểm tra giúp thúc đẩy sự phát triển liên tục ở mô hình Scrum.
Sự thích nghi (Adaptation)
Thông qua các thông tin minh bạch hóa từ quá trình tham gia và làm việc. Scrum có thể phản hồi lại các thay đổi một cách tích cực để đem lại sự thành công cho sản phẩm được tạo ra. Hai giá trị ở trên gồm minh bạch và thanh tra đều hướng tới sự thích nghi nhanh chóng và hiệu quả.
Các khái niệm cơ bản Scrum
Scrum Team
Khác với các mô hình phát triển phần mềm khác thì ở Scrum Team sẽ có 3 vai trò gồm 3 thành tố sau:
- Product Owner: nhằm đảm bảo việc quản lý những cồng việc tồn đọng của việ phát triển phần mềm. Thành phần này phải liên tục cập nhật thông tin cho các thành viên trong team để họ hiểu về các yêu cầu và tính năng cần có của sản phẩm khi họ không trực tiếp phát triển tính năng đó.
- Development Team: Các lập trình viên sẽ tham dự vào việc phát triển từng tính năng cụ thể. Mỗi lập trình viên sẽ có thể có nhiều kỹ năng và giỏi về các tính năng nhất định. Tuy vậy khi dùng Scrum thì các thành viên trong Development Team cần có khả năng làm việc ở các vị trí nhất định. Không ai có thể chịu trách nhiệm hoàn toàn về việc xây dựng tính năng cụ thể của sản phẩm.
- Scrum Master: Chịu trách nhiệm cho việc lên kế hoạch để phân công công việc. Sắp xếp thứ tự ưu tiên giải quyết những vấn đề tồn đọng có trong Backlog trước. Đồng thời tổ chức các buổi họp với với Product Owner để theo dõi tình hình và cập nhật thông tin cần thiết liên tục.
Sprint
Là một phân đoạn lặp đi lặp lại trong quy trình phát triển phần mềm. Với khung thời gian khoảng 1 tháng và sản phẩm sẽ được Release phiên bản mới. Khi một Sprint kết thúc thì Scrum Master cần chuyển trạng thái sang Done.
Bắt đầu một Sprint thì Scrum Master cần đưa ra mục tiêu Sprint đó và bạn không thể thay đổi được mục tiêu cho tới khi Sprint hoàn thành. Nhưng Product Owner vẫn có quyền hủy một Sprint trước thời hạn kết thúc. Tuy nhiên cần có sự đồng thuận của Development Team và Scrum Master. Khi Sprint kết thúc thì các bên sẽ dựa trên kết quả của Sprint đó để lên kế hoạch cho Sprint tiếp theo.
Sprint Planing
Bước đầu tiên cần thực hiện trước khi bắt đầu Sprint, Development Team cùng với Product Owner để lên kế hoạch cho một Sprint. Xác định những công việc nào cần hoàn thành trong Sprint này và cách tiến hành.
Sau khi Development Team họp bàn với Product Owner để thống nhất số lượng công việc và thời gian hoàn thành thì tiến hành triển khai một Sprint. Trong quá trình thực hiện thì bạn cần có những buổi họp Daily Sprint hay Daily Meeting.
Daily Sprint
Mỗi buổi họp Daily Sprint có thời lượng khoảng 15 phút và các thành viên trong buổi họp cần báo cáo. Với các nội dung gồm: những gì họ đã làm được ngày hôm qua, những gì làm ngay hôm nay và khó khăn họ gặp phải.
Các buổi họp Daily Sprint diễn ra giúp việc dự kiến được kế hoạch đưa ra trong Sprint đang triển khai sẽ ra sao và có cần điều chỉnh gì không? Sự thay đổi kế hoạch thì không gồm việc thay đổi mục tiêu đã đưa ra trong Sprint
Sprint Review
Được tiến hành bởi Development Team và Product Owner ở cuối Sprint giúp đánh giá lại kết quả thực hiện được. Từ lúc Sprint mới hoàn thành để đưa ra thay đổi và điều chỉnh cần thiết ở Sprint tiếp theo.
Sprint Restrospective
Development Team sẽ tổng kết những kiến nghị và đánh giá từ bước Sprint Review trên với sự hỗ trợ của Scrum Master. Để từ đó đưa ra những cải tiến giúp nâng cao hiệu quả sản phẩm lẫn công việc
Các công cụ của Scrum
Product backlog
Là danh sách ưu tiên các tính năng và đầu ra khác của dự án hay là danh sách yêu cầu. Product Owner có trách nhiệm sắp xếp thứ tự ưu tiên của từng Product Backlog Item trong Product Backlog. Dựa trên các giá trị Product Owner định nghĩa thường là Business Value (giá trị thương mại).
Sprint backlog
Đây là bản kế hoạch cho một Sprint và nó là kết quả của Sprint Planning. Bao gồm Sprint Goals cùng tập hợp item chọn từ Product Backlog cho Sprint đó và kế hoạch thực hiện để bàn giao được Increment. Công cụ này có thể được cập nhật trong suốt Sprint và đủ cụ thể để thanh tra tiến độ trong Daily Scrum.
Sprint backlog kết hợp với Product Owner thì nhóm sẽ phân tích các yêu cầu theo mức độ ưu tiên từ cao đến thấp. Qua đó tiến hành hiện thực hóa các hạng mục trong Product Backlog ở dạng Todo List.
Increment (Sprint Goal)
Là bước đệm nền tảng hướng đến Product Goal và mỗi Increment đều có thể sử dụng được. Nó không nhất thiết phải được release vào cuối Sprint và Sprint Review không phải là nơi release value. Bạn sẽ rất ít khi nghe đến Increment vì nó thường được gọi với cái tên Sprint Goal, milestone,…
Mục tiêu duy nhất của Sprint là Sprint Goal được tạo ra trong suốt Sprint Planning rồi được thêm vào Sprint Backlog. Developers cần phải luôn ghi nhớ Sprint Goal trong suốt Sprint.
Burndown chart
Biểu đồ thể hiện xu hướng của dự án dựa trên lượng thời gian cần thiết còn lại để hoàn thành công việc và tiến tới mục tiêu ra sao. Với trục dọc biểu thị cho lượng công việc còn trục ngang là ngày hoặc sprint. Burndown Chart sử dụng để theo dõi tiến độ của Sprint hoặc cả dự án.
Qua những nội dung đã trình bày ở trên thì bạn đọc sẽ đã hiểu rõ hơn về mô hình scrum. Phương pháp hiệu quả được nhiều doanh nghiệp áp dụng trong việc quản lý dự án và phát triển phần mềm. Nếu có điều gì cần giải đáp thì bạn hãy để lại bình luận phía dưới nhé!
>>>Đăng ký ngay: Khóa học Tester cho người mới hoàn toàn