Giới Thiệu về Scrum

I. Scrum là gì ?

Scrum là một khung làm việc trong đó mọi người có thể giải quyết và đáp ứng các vấn đề phức tạp. Đồng thời, nó cung cấp các sản phẩm có giá trị cao nhất theo một cách hiệu quả và sáng tạo. (https://www.scrum.org/resources/what-is-scrum)

Mô hình Scrum – Scrum.org

Scrum có những đặc điểm như sau :

  • Đơn giản (Simple) : có thể đọc và hiểu scrum một cách dễ dàng ( Scrum Guide khá gọn nhẹ ).
  • Gọn nhẹ (Lightweight) : các hoạt động tóm gọn trong 3 vai trò và 5 sự kiện trong từng vòng lặp.
  • Dễ áp dụng ( Easy to apply) : nghiên cứu Scrum trong vài ngày đã có thể bắt đầu được ngay. vì như đã đề cập, Scrum khá đơn giản.
  • Khó thành thục ( Difficult to master) : nó đòi hỏi quá trình tập luyện lâu dài và kể cả trải qua thất bại. Từ đó, scrum team có thể học được giá trị của scrum.

II. Các vai trò trong Scrum

Ba vai trò trong Scrum team (Scrum Org)

Scrum Master : người điều phối trong team. Người đảm bảo Scrum được chạy một cách đúng đắn theo ý nghĩa của nó. Đảm bảo động lực cho team làm việc. Gỡ bỏ mọi rào cản ngăn cản team hoàn thành một sprint.

Product Owner : là một đại diện duy nhất của team để nói chuyện với các bên liên quan. Thu thập yêu cầu người dùng và sắp xếp chúng sao cho tối ưu hóa giá trị đem lại cho team. Tối ưu hóa giá trị đầu tư (ROI – Return of Investment). Giúp team hiểu được người dùng đang cần gì ở sản phẩm và tại sao chức năng đó là cần thiết.

Developer : là những người trực tiếp tham gia vào quá trình tạo ra sự tăng trưởng của sản phẩm (Developer, Tester, Designer, Product Architect … ) đều gọi chung là devloper. Có trách nhiệm chuyển những ý tưởng, mong muốn của người dùng thành những sản phẩm có giá trị và đưa ra thị trường. Chịu trách nhiệm trong các giải pháp và phương pháp tạo ra sản phẩm.

P/S: Trong Scrum Guid 2020 thì Development Team đã chuyển thành Developer. Cho nên chỉ có một Scrum Team duy nhất bao gồm Scrum Master, Product Owner và Developer.

III. Các sự kiện trong Scrum

Sự kiện (event) các bạn có thể hiểu là một hoạt động diễn ra lặp đi lặp lại nhiều lần. Nó có thời gian bắt đầu và thời gian kết thúc. Ở mỗi sự kiện, sẽ cần yêu cầu sự có mặt của một số vai trò, nhằm đảm bảo đạt được mục tiêu của mỗi sự kiện.

a. Sprint

Sprint được tạo ra để giải quyết một vấn đề gì đó. Cho nên mỗi sprint sẽ gắn liền với một mục tiêu (Sprint Goal). Sẽ không gọi là Sprint nếu không gắn liền với một mục tiêu nào cả.

Sprint – Scrum Inc

Thời gian của một sprint có thể từ 1 đến 4 tuần, nhưng không quá 4 tuần. Thông dụng nhất và hiệu quá nhất theo kinh nghiệm của mình là sprint 2 tuần, vì nó không quá dài mà cũng không quá ngắn để thực thi công việc.

Sprint là một sự kiện lớn bao gồm các sự kiện khác bên trong nó. Và 3 vai trò tham gia trong sprint là Product Owner, Scrum Master và Developer.

b. Sprint Planning

Là buổi lên kế hoạch cho một Sprint và lựa chọn công việc để hoàn thành được mục tiêu của sản phầm (Product Goal). Kết thúc buổi này là mục tiêu của Sprint (Sprint Goal) và danh sách công việc sẽ cần làm trong Sprint để đạt được mục tiêu ấy.

Thời gian của một buổi planning có thể lên tới 4h cho một Sprint 2 tuần. Tuy nhiên khi team đã đạt được mục đích của buổi họp thì có thể kết thúc.

Planning thường đòi hỏi phải có sự tham gia của cả team Product Owner, Scrum Master và Developer. Thiếu một trong ba vai trò sẽ ảnh hưởng đến các giá trị của Scrum

c. Daily Scrum

Buổi này mục đích là để các Developer có 1 khoảng thời gian ngắn để cập nhật tiến bộ và hướng về khả năng đạt được mục tiêu của sprint. Từ đó Scrum Master có thể giúp và hỗ trợ các vấn đề xảy ra trong suốt quá trình chạy Sprint.

Myth: The Scrum Master must be present during the Daily Scrum | by  Christiaan Verwijs | The Liberators | Medium

Một buổi daily chỉ gói gọn tối đa 15 phút. các thành viên sẽ chia sẻ tiến độ công việc một cách ngắn gọn và dễ hiểu nhất cho những người còn lại nghe. Đồng thời, Scrum Master sẽ quan sát và nắm bắt các vấn đề hay khó khăn mà team đang gặp phải. Đây không phải là một buổi báo cáo tiến độ

Buổi daily thường diễn ra vào buổi sáng và có đủ sự góp mặt của developer. Vai trò của Scrum Master chỉ đảm bảo buổi này diễn ra đúng như kế hoạch và khung thời gian cho phép.

d. Sprint Review

Buổi tổng kết Sprint diễn ra vào ngày cuối của Sprint, để tổng kết lại những gì team đã hoàn thành so với mục tiêu. Từ đó cả team sẽ cùng thảo luận về bước tiếp theo cho sprint kế tiếp nhằm đạt được mục tiêu của sản phẩm.

Sprint review: Who's running the show?

Một buổi Sprint Review sẽ khoảng tối đa 2hrs cho sprint 2 tuần. Thành phần tham gia Sprint Review ngoài Scrum Team sẽ có thêm các bên liên quan : người dùng cuối, quản lý, đại diện khách hàng, …. để xem team trình bày về những gì đạt được và cung cấp những phản hồi.

Các phản hồi là yếu tố quan trọng để biết Scrum team có đi dúng hướng với mục đích về sản phầm ban đầu đề ra và thỏa tiêu chí của khách hàng. Chúng sẽ được Product Owner xem xét và đưa vào các sprint kế tiếp.

e. Sprint Retrospective

Sau buổi Sprint Review sẽ là Sprint Retrospective. Mục đích của buổi này là để cả team cùng nghiệm lại toàn bộ quá trình chạy một sprint và đưa ra những điểm tốt, những điểm chưa tốt và hướng khắc phục.

Thời gian cho sự kiện này tối đa là 1.5 hrs cho sprint 2 tuần. Các thành viên gồm đủ các vai trò cùng tham gia để có cái nhìn tổng quan về nhiều khía cạnh ( Requirement, Code, Test, Process, User Satisfaction , …. )

What is a Sprint Retrospective?
Sprint Retrospective format – (scrum.org)

IV. Ba trụ cột chống đỡ nên Scrum

Mastering Empirical Process Control With Sprint Planning | by Davie Elliott  | Serious Scrum | Medium
Scrum 3 Pillars – (medium.com)

Scrum được vận hành dựa trên 3 trụ cột chính :

Tính Minh Bạch ( Transparency) : Mọi quy trình và tiến độ được minh bạch rõ ràng, các thành viên chia sẻ thông tin qua các sự kiện , khách hàng nắm rõ được tiến độ của team.

Tính Thanh Tra (Inspection) : cả sprint là một quá trình lên kê hoạch và kiểm tra thường xuyên, để dễ dàng tìm tháy những sai phạm so với yêu cầu ban đầu, những hiểu nhầm hoặc những khó khăn trong suốt quá trình. Và những vấn đề đã hoàn thành và chưa hoàn thành sẽ được thanh tra trong sprint review.

Tính thích nghi (Adaption) : tính thích nghi dựa trên sự phức tạp của sản phẩm và công việc. Khi có những nghiệp vụ thay đổi thì đòi hỏi sản phẩm cũng sẽ cần thay đổi để đáp ứng theo. Việc vận hành theo sprint cũng giúp 1 phần nhanh chóng lập lại kế hoạch và bổ sung những thay đổi mới vào sprint kế tiếp.

Theo kinh nghiệm thì tính minh bạch sẽ giúp ta rất nhiều để phát triển scrum team. Nó sẽ hỗ trợ cho 2 trụ cột còn lại. Vì khi minh bạch thì ta sẽ dễ dàng phát hiện và thanh tra, dễ dàng tiếp thu những thay đổi.

V. 5 Giá Trị của Scrum

Một nhóm scrum làm việc và hoạt động sẽ luôn hướng tới 5 giá trị sau.

  1. Dũng cảm – Courage.
  2. Tập trung – Focus. 
  3. Cam kết – Commitment
  4. Tôn trọng – Respect.
  5. Cởi mở – Openness.

Để có thể hiểu hơn về 5 giá trị và tinh thần mà Scrum Team cần hướng tới, thì mình sẽ có 1 bài riêng để nói về 5 giá trị này.