Mô hình Scrum là thuật ngữ được bắt gặp thường xuyên khi bạn tìm hiểu về lập trình phần mềm. Cloudify sẽ cùng bạn tìm hiểu Scrum là gì và vai trò của mô hình này trong phát triển phần mềm ở bài viết sau.
Nội dung bài viết
Scrum là một phương pháp phát triển phần mềm linh hoạt, được dựa theo cơ chế lặp và tăng trưởng. Scrum được thiết kế để hỗ trợ việc tạo ra, phân phối và cải tiến các sản phẩm phức tạp.
Bản thân mô hình Scrum cũng là một Framework – khuôn khổ cơ bản. Mục đích của khuôn khổ này nhằm tạo điều kiện cho sự hợp tác hiệu quả nhất giữa các thành viên trong nhóm phát triển trong khi phát triển các dự án phức tạp.
Bên cạnh khái niệm của mô hình Scrum, bạn cũng cần phải nắm rõ 3 giá trị cốt lõi của nó, bao gồm Tính minh bạch, Sự thanh tra và Sự thích nghi. Thiếu 1 trong 3 cốt lõi này thì Scrum sẽ không còn hoạt động đúng.
Để triển khai thành công Scrum, thông tin quy trình cần phải công khai minh bạch. Tầm nhìn sản phẩm, nhu cầu của khách hàng, lịch trình làm việc, … là những ví dụ về thông tin này. Mọi người ở các vai trò khác nhau sẽ có đủ hiểu biết để đưa ra các quyết định có ý nghĩa nhằm tăng hiệu quả công việc.
Khái niệm minh bạch này được đan xen với hai giá trị còn lại. Nếu công việc hoặc quy trình không được người khác nhìn thấy, thì sẽ rất khó để kiểm tra. Cũng sẽ rất khó để thay đổi kế hoạch một cách nhanh chóng nếu thiếu thông tin hoặc luồng thông tin bị gián đoạn.
Chúng ta phải kiểm tra những thứ được tạo ra một cách thường xuyên để đảm bảo chất lượng của sản phẩm. Bên cạnh đó phải tránh sự chênh lệch quá lớn giữa sản phẩm được sản xuất thực tế và sản phẩm mong muốn ban đầu. Tần suất kiểm tra không nên quá thường xuyên để tránh ảnh hưởng đến hiệu suất công việc. Khi được thực hiện bởi những cá nhân đủ năng lực, ở những điểm quan trọng trong công việc, việc kiểm tra sẽ hỗ trợ sự phát triển liên tục trong Scrum.
Tính linh hoạt cao là lợi thế của mô hình Scrum, nhờ vậy mang lại tính thích nghi cao. Từ những thông tin minh bạch của các quá trình thanh tra và làm việc, Scrum phản hồi lại các thay đổi theo một cách tích cực. Kết quả là đem lại sự thành công cho sản phẩm được tạo ra.
Hai giá trị minh bạch và thanh tra đều hướng tới sự thích ứng hiệu quả và nhanh chóng.
Có 3 vai trò được phân ra trong Scrum Team:
Chủ sở hữu sản phẩm: Trách nhiệm của Product Owner là quản lý công việc tồn đọng (Product Backlog) của quá trình phát triển sản phẩm phần mềm. Ngay cả khi họ không trực tiếp xây dựng tính năng, Product Owner phải cập nhật liên tục cho các thành viên trong nhóm về các yêu cầu hoặc tính năng của sản phẩm.
Nhóm phát triển: Các lập trình viên sẽ tham gia vào việc tạo ra và phát triển từng tính năng. Những lập trình viên này có thể sẽ có nhiều kỹ năng khác nhau. Với một số kỹ năng xuất sắc, nổi bật ở những khía cạnh cụ thể. Tuy nhiên, khi sử dụng Scrum, tất cả các thành viên của nhóm phát triển phải có khả năng làm việc ở các vị trí của nhau. Không một người nào chịu trách nhiệm hoàn toàn về việc xây dựng một (hoặc một số) tính năng cụ thể của sản phẩm.
Đội sản xuất: Là người sẽ chịu trách nhiệm tổ chức phân công công việc. Ưu tiên những công việc tồn đọng có trong Backlog và sắp xếp các cuộc họp 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.
Đây là nơi lưu giữ danh sách các tính năng sản phẩm mong muốn được cập nhật liên tục trong vòng đời của sản phẩm, do Product Owner giám sát.
Mỗi Product Backlog sẽ được kết hợp với một Product Goal. Trong đó phác thảo đích cuối cùng của sản phẩm và các yêu cầu mà mỗi hạng mục trong Product Backlog phải đáp ứng. Product Owner sẽ chịu trách nhiệm liên tục quản lý, sắp xếp thứ tự ưu tiên và duy trì Product Backlog.
Sprint Backlog là một bảng nhiệm vụ mà đội phát triển sử dụng để quản lý sự phát triển được cập nhật trong suốt 1 Sprint. Sprint Backlog chứa danh sách các mục cũng như việc cần làm liên quan đến từng mục để đạt được mục tiêu của Sprint. Nhóm phát triển sẽ tổ chức một cuộc họp Sprint Planning trước mỗi Sprint để quyết định những hạng mục nào từ Product Backlog cần thực hiện.
Đây là sản phẩm mà nhóm phát triển sản xuất vào cuối mỗi Sprint. Đây là một khái niệm quan trọng trong Scrum, tạo ra sự khác biệt đáng kể về chất lượng sản phẩm khi so sánh với các kỹ thuật cũ. Increment bị hạn chế bởi định nghĩa hoàn thành đã được thỏa thuận trước đó.
Các vòng Sprint có thể được coi là “nhịp tim” của Scrum, nơi các ý tưởng được biến thành giá trị. Sprint thường kéo dài không quá một tháng và không ít hơn một tuần. Các Sprint có độ dài bằng nhau và diễn ra liên tiếp, không bị gián đoạn. Một Sprint có thể bị hủy bỏ nếu Sprint Goal không còn hợp lệ, nhưng chỉ PO mới có thẩm quyền để làm như vậy.
Một sự kiện diễn ra để lập kế hoạch công việc chính xác cho toàn bộ Sprint. Các bên liên quan sẽ lần lượt đánh giá và trả lời ba câu hỏi sau:
Một cuộc họp ngắn 15 phút của tất cả các thành viên trong nhóm phát triển mỗi ngày để kiểm tra và lập kế hoạch lại cho nhóm. Daily Scrum sẽ được tổ chức tại cùng một thời điểm và địa điểm vào mỗi ngày của Sprint. Mục tiêu là đánh giá tiến độ hoàn thành Sprint Goal và nếu cần, sửa đổi Sprint Backlog.
Sprint Review là cuộc họp kế cuối của Sprint. Với thời gian giới hạn là 4 giờ cho một Sprint kéo dài một tháng. Trong cuộc họp này bao gồm hai hoạt động chính: dùng thử sản phẩm và thảo luận về trạng thái của sản phẩm; hướng đi tiếp theo và mọi điều chỉnh sản phẩm cần thiết.
Cuộc họp cuối cùng của Sprint, được giới hạn trong ba giờ cho Sprint kéo dài một tháng. Cuộc họp Sprint retrospective sẽ ngắn hơn khi thời gian của Sprint ngắn. Mục đích của cuộc họp này là đưa ra được một danh sách các thay đổi công việc sẽ được thực hiện trong Sprint sắp tới.
Cloudify hi vọng bài viết này sẽ giúp bạn hiểu rõ hơn về khái niệm mô hình Scrum. Theo dõi chúng tôi tại đây để đọc những bài viết bổ ích về quản lý doanh nghiệp.