Hướng dẫn vận hành một Sprint

1. Sprint là gì?

Sprint là một khoảng thời gian trong đó cả team cùng thực hiện một số lượng công việc nhất định do Product Owner tạo ra. Một sprint thường kéo dài 2 tuần.


2. Cấu trúc team

Một team scrum thường bao gồm:

  • 1 Product Owner: chịu trách nhiệm tạo ra các công việc cần làm và chỉ định người phụ trách từng công việc.
  • 1 Scrum Master: giúp team hoạt động đúng quy trình và hiệu quả để có được 1 sprint thành công.
  • và các thành viên còn lại

3. Các hoạt động diễn ra trong một Sprint

Trước khi một sprint diễn ra, Product Owner sẽ tạo ra các công việc và cho vào Product Backlog.

Buổi Sprint Planning diễn ra ngay trước khi một sprint bắt đầu, trong buổi này, Product Owner sẽ trình bày với cả team về các công việc cần làm trong sprint sắp tới và cùng cả team chọn ra người làm từng công việc cũng như ước tính thời gian cần thiết cho từng công việc. Sau đó Product Owner khởi động sprint đó.

Sau khi sprint được khởi động, cả team sẽ có 2 tuần để hoàn thành các công việc được giao.

Hằng ngày kể từ lúc sprint được khởi động cho đến khi sprint kết thúc, Scrum Master sẽ tổ chức các buổi họp nhóm (gọi là Daily Standup, một buổi Standup không nên kéo dài quá lâu, lý tưởng là khoảng 15′). Trong các buổi họp nhóm này, các thành viên trong team cần trả lời 3 câu hỏi sau:

  • Hôm qua tôi đã làm gì?
  • Hôm nay tôi dự định làm gì?
  • Tôi có gặp khó khăn và cần trợ giúp nào không? (khó khăn ở đây nghĩa là tôi có khả năng không thể hoàn thành task đúng hạn tương ứng với số sprint point đã vote)

Đến ngày cuối cùng của sprint, cả team sẽ tổ chức một buổi Sprint Review. Trong buổi này, Scrum Master sẽ đại diện cho team trình bày với Product Owner về các công việc đã được/chưa hoàn thành và thảo luận các vấn đề cần thiết.

Sau buổi Review, cả team còn một buổi cuối là Sprint Retro để cùng nhau nhìn lại Sprint vừa rồi, tìm ra các điểm được và chưa được để cải thiện.


4. Vai trò cụ thể của thành viên trong team

Product Owner có các vai trò sau:

  • tạo ra công việc (epic, user story, task, bug) trong Backlog
  • khởi tạo 1 sprint mới chọn ra các công việc từ Backlog để cho vào sprint đó.
  • điều hành buổi Sprint Planning
  • tham gia buổi Sprint Review

Scrum Master có các vai trò sau:

  • duy trì một sprint hoạt động hiệu quả với mục tiêu là hoàn thành sprint
  • điều hành buổi Standup hằng ngày
  • hỗ trợ và kết nối các thành viên trong team để hoàn thành nhiệm vụ
  • trình bày kết quả của cả team trong buổi Sprint Review
  • điều hành buổi Sprint Retro

Team Member có nhiệm vụ sau:

  • thực thi các công việc được giao.
  • phối hợp với các thành viên khác trong team để hoàn thành sprint trước hạn.

5. Các loại hình công việc và quy ước sử dụng

  • Campaign là một tập hợp các task liên quan để triển khai một tính năng lớn hoặc một chiến dịch nào đó. Campaign được tạo ra để theo dõi một cách tổng thể.
  • Task là các công việc nói chung.
  • Bug là các lỗi xảy ra trong sản phẩm.
  • Subtask: các task phức tạp có thể được chia nhỏ thành các subtask. Ví dụ với story đăng nhập, thì subtask có thể là tạo input nhập email, viết giải thuật kiểm tra độ mạnh của mật khẩu… Mỗi subtask có thể được assign cho một bạn trong team.

Bug/task/subtask có các field quan trọng sau:

  • Title
  • Description
  • Status: To do hoặc In progress hoặc QA Testing hoặc Done
  • Assignee: thành viên phụ trách công việc này
  • Reporter: thành viên phụ trách kiểm tra xem chất lượng công việc này (sau khi Assignee đã hoàn thành công việc)
  • Priority: độ ưu tiên của công việc. Có 5 mức độ ưu tiên theo thứ tự từ ít quan trọng đến quan trọng: Lowest => Low => Medium => High => Highest
  • Story points: ước tính thời gian sử dụng để hoàn thành công việc.
  • Consumed points: số points thực tế đã sử dụng cho task đó (note lại sau khi sprint kết thúc)
  • Confirmed points: số points thực tế được chấp nhận bởi lead team.

Lưu ý thêm về story points:

  • Trong buổi Sprint Planning, các thành viên am hiểu về một công việc sẽ vote số story points cho công việc đó.
  • 8 points tương ứng với 1 ngày làm việc (8 tiếng).

6. Hướng dẫn sử dụng Sprint Board

Trong sprint board ta có 4 cột sau (theo thứ tự từ trái sang phải):

  • TO DO
  • IN PROGRESS
  • QA TESTING
  • DONE

Khi sprint bắt đầu, tất cả các công việc đều ở trong cột TO DO.

Khi một thành viên bắt đầu một công việc, người đó cần chuyển công việc đó qua cột IN PROGRESS.

Khi thành viên đó hoàn thành công việc đó, người đó cần chuyển công việc đó qua cột QA TESTINGchọn người reporter cho công việc đó. Người reporter sẽ nhận được thông báo và sẽ review công việc đó.

Lưu ý:

  • chỉ người reporter mới được chuyển công việc từ cột QA TESTING sang cột DONE. Khi công việc ở cột Done được coi như là hoàn tất.
  • nếu reporter không duyệt công việc, reporter sẽ chuyển công việc ngược lại cột IN PROGRESS. Khi đó người phụ trách làm công việc này (assignee) sẽ tiếp tục sửa rồi lại chuyển vào cột QA TESTING để reporter duyệt.
  • reporter assignee không được là cùng một người.

7. Đánh giá hiệu suất hoàn thành công việc

  • Hiệu suất hoàn thành công việc của một bạn (được tính theo phần trăm) là tỷ lệ số task bạn đó đã hoàn thành (trong cột Done) chia cho tổng số task bạn đó cần phải làm trong sprint.
  • Mỗi team tùy vào đặc thù của team sẽ có một ngưỡng tổng points cần phải vượt qua trong sprint. Ví dụ team dev một sprint cần làm tối thiểu 60 points.
  • Đầu sprint, team lead và assignee phải thống nhất về số point được estimate cho một task. Note lại trong field estimated points.
  • Vào cuối sprint, team lead và assignee cùng review lại các task đã làm và số points thực tế đã dùng của một task trong sprint. Một task được coi là hoàn thành khi:
    • Task đó ở cột done và có số point thực tế ko vượt quá 20% số points estimate lúc ban đầu.
    • Task đó ở cột done, có số point thực tế vượt quá 20% số points estimate ban đầu, tuy nhiên assignee nêu được lý do thuyết phục team lead về số point dư ra.
  • Task ko hoàn thành được coi là fail. Khi task fail, team lead cần note lại lý do fail vào trong task.

Ghi chú:

  • Nếu tổng số confirmed points của các task trong done >= số points tối thiểu của sprint thì các task chưa done được miễn trừ và ko tính vào là task bị fail.