Scrum là một khuôn khổ để phát triển và duy trì các sản phẩm phức tạp. Ken Schwaber và Jeff Sutherland đã phát triển ra Scrum.
Định nghĩa Scrum
Scrum là một khuôn khổ trong đó mọi người có thể giải quyết các vấn đề phức tạp về khả năng thích ứng, đồng thời cung cấp các sản phẩm có giá trị cao nhất có thể một cách hiệu quả và sáng tạo.
Scrum là một khung quy trình đã được sử dụng để quản lý việc phát triển sản phẩm phức tạp từ đầu những năm 1990. Scrum không phải là một quy trình hay một kỹ thuật để xây dựng sản phẩm; đúng hơn, nó là một khuôn khổ mà trong đó bạn có thể sử dụng các quy trình và kỹ thuật khác nhau. Scrum làm rõ hiệu quả tương đối của các phương pháp quản lý và phát triển sản phẩm của bạn để bạn có thể cải thiện.
Khung Scrum bao gồm các Scrum team và các vai trò, sự kiện, hiện vật và quy tắc liên quan của họ. Mỗi thành phần trong khuôn khổ phục vụ một mục đích cụ thể và là yếu tố cần thiết cho sự thành công và cách sử dụng của Scrum.
Các quy tắc của Scrum gắn kết các sự kiện, vai trò và hiện vật lại với nhau, chi phối các mối quan hệ và sự tương tác giữa chúng.
Khung quy trình Scrum
Trong Scrum, các sự kiện theo quy định được sử dụng để tạo ra sự đều đặn. Tất cả các sự kiện đều là các sự kiện time-boxed, sao cho mọi sự kiện đều có thời lượng tối đa.
Sprint
Trọng tâm của Scrum là Sprint, một time-boxed kéo dài hai tuần hoặc một tháng, trong đó phần tăng sản phẩm tiềm năng có thể thay thế được sẽ được tạo ra. Một Sprint mới bắt đầu ngay sau khi kết thúc Sprint trước đó. Sprint bao gồm Sprint planning, daily scrums, công việc phát triển, Sprint review và Sprint retrospective.
- Trong Sprint planning, công việc sẽ được thực hiện trong Sprint được Scrum team lên kế hoạch một cách cộng tác.
- Daily Scrum Meeting là một sự kiện kéo dài 15 phút để Scrum team đồng bộ hóa các hoạt động và lập kế hoạch cho ngày đó.
- Sprint review được tổ chức vào cuối Sprint để kiểm tra Phần gia tăng và thực hiện các thay đổi đối với Product Backlog, nếu cần.
- Sprint retrospective xảy ra sau Sprint review và trước Sprint planning tiếp theo. Trong cuộc họp này, Scrum team phải tự kiểm tra và lập một kế hoạch cho các cải tiến sẽ được thực hiện trong Sprint tiếp theo.
Roles
Scrum team bao gồm ba vai trò, đó là Scrum Master, Product Owner và Team.
1. Scrum Master
Scrum Master là người quản lý quy trình Scrum, có trách nhiệm:
- Làm cho quá trình chạy trơn tru
- Loại bỏ những trở ngại ảnh hưởng đến năng suất
- Tổ chức và tạo điều kiện cho các cuộc họp quan trọng
2. Product Owner
Product Owner có trách nhiệm tối đa hóa giá trị của sản phẩm và công việc của Team. Cách thực hiện điều này có thể rất khác nhau giữa các tổ chức, Scrum team và cá nhân.
Product Owner là người duy nhất chịu trách nhiệm quản lý Product Backlog. Việc quản lý Product Backlog bao gồm:
- Thể hiện các hạng mục Product Backlog một cách rõ ràng.
- Sắp xếp các hạng mục Product Backlog để đạt được mục tiêu và sứ mệnh tốt nhất.
- Tối ưu hóa giá trị của công việc mà Team thực hiện.
- Đảm bảo rằng Product Backlog được hiển thị, minh bạch và rõ ràng cho tất cả mọi người và cho thấy Team sẽ làm việc gì hơn nữa. Đảm bảo rằng Team nghiên cứu hiểu các mục trong Product Backlog ở mức độ cần thiết.
Product Owner có thể thực hiện công việc trên hoặc nhờ Team làm việc đó. Tuy nhiên, Product Owner vẫn phải chịu trách nhiệm về những nhiệm vụ này.
Product Owner là một người, không phải là một ủy ban. Product Owner có thể đại diện cho mong muốn của một ủy ban trong Product Backlog, nhưng những người muốn thay đổi mức độ ưu tiên của mục Product Backlog phải đề cập đến Product Owner.
Để Product Owner thành công, toàn bộ tổ chức phải tôn trọng các quyết định của họ. Các quyết định của Product Owner được hiển thị trong nội dung và thứ tự của Product Backlog. Không ai được phép yêu cầu Team làm việc từ một nhóm yêu cầu khác và Team không được phép làm theo những gì người khác nói. Điều này được đảm bảo bởi Scrum Master.
3. Team
Team là tự tổ chức và hoạt động chéo. Điều đó có nghĩa là team bao gồm các analysts, designers, developers, testers, v.v. phù hợp và liên quan đến dự án.
Một số người trong ngành gọi nhóm này là nhóm phát triển. Tuy nhiên, tham chiếu như vậy dẫn đến tranh cãi rằng Team chỉ có thể có nhà phát triển và không có vai trò nào khác. Đó là một sự hiểu biết hiển nhiên rằng đó chỉ là một quan niệm sai lầm. Để phát triển một sản phẩm phần mềm, chúng tôi yêu cầu tất cả các vai trò và đó là bản chất của scrum - Team sẽ phối hợp hoạt động. Các Team liên chức năng có tất cả các năng lực cần thiết để hoàn thành công việc mà không phụ thuộc vào những người khác không thuộc nhóm, và do đó có thể tiết kiệm thời gian và công sức. Mô hình nhóm trong Scrum được thiết kế để tối ưu hóa tính linh hoạt, sáng tạo và năng suất.
Quy mô Team tối ưu đủ nhỏ để luôn nhanh nhẹn và đủ lớn để hoàn thành công việc quan trọng trong Sprint. Quy mô Team nên được duy trì trong khoảng từ năm đến chín người, nếu có thể. Ít hơn năm thành viên trong nhóm làm giảm sự tương tác và dẫn đến hiệu quả năng suất thấp hơn. Có nhiều hơn chín thành viên đòi hỏi quá nhiều sự phối hợp.
Scrum team làm việc cùng nhau chặt chẽ hàng ngày để đảm bảo luồng thông tin trôi chảy và giải quyết vấn đề nhanh chóng. Scrum team cung cấp sản phẩm lặp đi lặp lại và tăng dần, tối đa hóa cơ hội cho phản hồi. Việc cung cấp tăng dần một sản phẩm hoàn chỉnh đảm bảo luôn có sẵn một phiên bản hữu ích tiềm năng của sản phẩm đang hoạt động.
Lợi ích
Scrum hỗ trợ sự hợp tác liên tục giữa khách hàng, các thành viên trong nhóm và các bên liên quan có liên quan. Phương pháp tiếp cận theo thời gian và phản hồi liên tục từ chủ sở hữu sản phẩm đảm bảo sản phẩm luôn hoạt động với các tính năng thiết yếu. Ngoài ra, Scrum cung cấp các lợi ích khác nhau cho các vai trò khác nhau trong dự án.
1. Lợi ích cho khách hàng
Sprint có thời lượng ngắn hơn và user story được ưu tiên được đưa vào mỗi lần sprint planning. Nó đảm bảo rằng tại mỗi lần sprint delivery, các tính năng theo yêu cầu của khách hàng ngay lập tức được đưa vào. Hơn nữa, nếu khách hàng đưa ra bất kỳ yêu cầu thay đổi nào, thì yêu cầu đó sẽ được đưa vào sprint hiện tại hoặc được đưa vào sprint tiếp theo. Do đó, nhóm phát triển nhanh chóng đáp ứng các yêu cầu của khách hàng rất nhanh.
2. Lợi ích đối với tổ chức
Tổ chức có thể tập trung vào nỗ lực cần thiết để phát triển các user story được ưu tiên và do đó giảm chi phí và công việc lại. Do những lợi ích cụ thể của scrum đối với khách hàng, việc tăng hiệu quả của nhóm phát triển, sự hài lòng của khách hàng và do đó sẽ có thể duy trì khách hàng và giới thiệu khách hàng. Nó làm tăng tiềm năng thị trường của tổ chức.
3. Lợi ích đối với Product Managers
Product Manager đóng vai trò Product Owner trong dự án. Trách nhiệm của Product Owner là đảm bảo sự hài lòng của khách hàng. Vì Scrum tạo điều kiện cho phản hồi nhanh, ưu tiên công việc, tiếp thu các thay đổi, Product Manager có thể dễ dàng đảm bảo rằng công việc phù hợp với nhu cầu của khách hàng, từ đó đảm bảo sự hài lòng của khách hàng.
4. Lợi ích đối với Project Managers
Project Manager đóng vai trò của Scrum Master trong dự án. Bản chất cộng tác của Scrum tạo điều kiện cho việc lập kế hoạch và theo dõi dễ dàng và cụ thể. Việc sử dụng Biểu đồ Burndown để hiểu công việc còn lại, và các cuộc họp Scrum hàng ngày cung cấp cho Project Manager nhận thức về trạng thái của dự án tại mọi thời điểm. Nhận thức này là điều cần thiết để giám sát dự án, cũng như để nắm bắt và giải quyết các vấn đề một cách nhanh chóng.
5. Lợi ích đối với Development Team
Do tính chất time-boxed của sprint và việc phân phối sản phẩm tăng dần vào cuối mỗi sprint, Development Team trở nên nhiệt tình khi thấy rằng công việc của họ được sử dụng ngay lập tức. Sự hợp tác trong nhóm được xây dựng làm cho nhóm thích thú với công việc họ làm. Vì câu chuyện của người dùng cho mỗi sprint đều dựa trên các ưu tiên của khách hàng, nên nhóm cũng hiểu rằng công việc của họ được đánh giá cao.
(Nguồn: https://www.tutorialspoint.com/)