Scrum và ứng dụng thực tế
SCRUM LÀ GÌ?
Scrum là một khung làm việc để phát triển bền vững các sản phẩm phức tạp. Có thể hiểu đây là khung tổ chức công việc tổng quát hướng đến phát triển các sản phẩm phức tạp, chủ yếu là phần mềm. Tuy vậy, Scrum có thể được dùng như là nền tảng tổ chức các công việc khác nhau, từ quản trị dự án linh hoạt nói chung, đến phát triển sản phẩm, thực hiện các chiến dịch marketing, tổ chức dạy học, sản xuất ô tô module hóa hoặc những công việc cá nhân khác. Cần lưu ý rằng Scrum là một khung làm việc (framework) chứ không phải một phương pháp (method) cụ thể. Khi vận dụng, Scrum cung cấp các nền tảng cơ bản, kết hợp với các phương pháp hay biện pháp thực hành khác để phát huy tác dụng.
BA VAI TRÒ
Trong Scrum, đội ngũ tham gia phát triển phần mềm được phân chia ra ba vai trò với trách nhiệm rõ ràng để đảm bảo tối ưu hóa các công việc đặc thù. Ba vai trò này bao gồm:
- Product Owner (chủ sản phẩm): Là người chịu trách nhiệm về sự thành công của dự án, người định nghĩa các yêu cầu và đánh giá cuối cùng đầu ra của các nhà phát triển phần mềm.
- Scrum Master: Là người có hiểu biết sâu sắc về Scrum và đảm bảo nhóm có thể làm việc hiệu quả với Scrum.
- Development Team (Đội sản xuất, hay Nhóm phát triển) Một nhóm liên chức năng (cross-functional) tự quản lý để tiến hành chuyển đổi các yêu cầu được tổ chức trong Product Backlog thành chức năng của hệ thống.
BA CHÂN (HAY GIÁ TRỊ CỐT LÕI) CỦA SCRUM
Scrum là một phương pháp linh hoạt (agile), vì thế nó tuân thủ các nguyên tắc của Tuyên ngôn Agile (Manifesto for Agile Software Development). Ngoài ra Scrum hoạt động dựa trên ba giá trị cốt lõi, còn gọi là Ba chân của Scrum bao gồm Minh bạch, Thanh tra và Thích nghi.
- Minh bạch (transparency): Trong Scrum, tính minh bạch được đề cao như là giá trị cốt lõi cơ bản nhất. Muốn thành công với Scrum, thông tin liên quan tới quá trình phát triển phải minh bạch và thông suốt. Các thông tin đó có thể là: tầm nhìn (vision) về sản phẩm, yêu cầu khách hàng, tiến độ công việc, các khúc mắc và rào cản v.v. Từ đó mọi người ở các vai trò các nhau có đủ thông tin cần thiết để tiến hành các quyết định có giá trị để nâng cao hiệu quả công việc. Các công cụ và cuộc họp trong Scrum luôn đảm bảo thông tin được minh bạch cho các bên.
- Thanh tra (inspection): Công tác thanh tra liên tục các hoạt động trong Scrum đảm bảo cho việc phát lộ các vấn đề cũng như giải pháp để thông tin đa dạng và hữu ích đến được với các bên tham gia dự án. Truy xét kĩ càng và liên tục là cơ chế khởi đầu cho việc thích nghi và các cải tiến liên tục trong Scrum.
- Thích nghi (adaptation): Scrum rất linh hoạt như các phương pháp phát triển linh hoạt (agile software development) khác. Nhờ đó nó mang lại tính thích nghi rất cao. Dựa trên các thông tin minh bạch hóa từ các quá trình thanh tra 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, nhờ đó mang lại thành công cho dự án.
MỐI LIÊN HỆ GIỮA SCRUM MASTER VÀ CÁC BỘ PHẬN TRONG TỔ CHỨC
Scrum Master phục vụ Product Owner thông qua một số công việc như:
- Scrum Master giúp Product Owner xác định Product Goal và tìm kiếm các kĩ thuật quản lý Product Backlog hiệu quả.
- Scrum Master giúp Nhóm Scrum hiểu sự cần thiết của việc đảm bảo các hạng mục Product Backlog rõ ràng và súc tích.
- Scrum Master giúp Product Owner hiểu việc lên kế hoạch cho sản phẩm trong môi trường thực nghiệm.
- Scrum Master đảm bảo rằng Product Owner hiểu cách bố trí Product Backlog sao cho giá trị đạt được lớn nhất.
- Scrum Master giúp Product Owner hiểu rõ và thực hành linh hoạt.
- Scrum Master tạo điều kiện cho sự hợp tác giữa các bên liên quan khi cần thiết hoặc được yêu cầu.
Scrum Master phục vụ Nhóm Scrum thông qua một số công việc như:
- Scrum Master huấn luyện các thành viên trong nhóm cách tự tổ chức và làm việc liên chức năng.
- Scrum Master giúp các thành viên trong nhóm tập trung vào việc tạo ra Phần tăng trưởng có giá trị đáp ứng Định nghĩa Hoàn thành.
- Scrum Master loại bỏ các rào cản trong quá trình làm việc của Nhóm Scrum.
- Đảm bảo rằng tất cả các sự kiện trong Scrum diễn ra một cách tích cực, hiệu quả và đúng với timebox.
Scrum Master phục vụ Tổ chức thông qua một số công việc như:
- Scrum Master dẫn dắt và huấn luyện tổ chức trong việc áp dụng Scrum.
- Scrum Master lập kế hoạch và tư vấn triển khai Scrum trong phạm vi tổ chức.
- Scrum Master giúp đỡ nhân viên và các bên liên quan hiểu và triển khai phát triển sản phẩm theo mô hình Scrum và thực nghiệm.
- Scrum Master loại bỏ rào cản giữa Nhóm Scrum và các bên liên quan.
Trọng tâm công việc của Scrum Master thay đổi theo từng giai đoạn, như được mô tả trong hình sau:
Ở giai đoạn đầu thì trọng tâm công việc của Scrum Master tập trung phục vụ Nhóm Phát triển và Product Owner. Khi Nhóm Scrum đã đi vào hoạt động tốt thì Scrum Master có thể an tâm và dần dần chuyển trọng tâm sang các đối tượng khác là Tổ chức và Các kỹ thuật phát triển.
CÁC ĐẶC ĐIỂM MÀ MỘT SCRUM MASTER NÊN CÓ
- Scrum Master cần làm việc toàn thời gian để phục vụ Nhóm Phát triển, Product Owner và Tổ chức cả trong các công việc hiện tại cũng như định hướng lâu dài trong quá trình phát triển.
- Scrum Master cần am hiểu Scrum. Nếu không, làm sao để có thể trở thành người giảng dạy, hướng dẫn, thực thi và bảo vệ Scrum?
- Scrum Master cần có kỹ năng giao tiếp tốt.
- Scrum Master cần rèn luyện kỹ năng và các phương pháp đào tạo để giảng dạy nhóm về Scrum cũng như về các kỹ thuật phát triển.
- Scrum Master cần có tinh thần học tập và cải tiến liên tục, bao gồm cả việc củng cố kiến thức và kỹ năng cho bản thân cũng như tạo môi trường học tập liên tục trong Nhóm và Tổ chức.
- ScrumMaster có thể xuất thân từ nền tảng kỹ thuật hoặc không. Nhưng ScrumMaster kỹ thuật thì thường có nhiều thuận lợi hơn.
NHIỆM VỤ CỦA 1 SCRUM MASTER
- Tổ chức các cuộc họp
- Thanh tra quy trình
- Loại bỏ trở ngại
- Tìm kiếm cải tiến
- Huấn luyện Scrum cho nhóm
- Hỗ trợ, động viên các thành viên khi cần thiết
Xin cảm ơn!