Scrum basic

Scrum là gì

Scrum là process framework giúp cho team có thể giải quyết những vấn đề phức tạp, thay đổi liên tục trong khi vẫn có thể deliver được sản phẩm 1 cách hiệu quả với giá trị cao nhất có thể.

Framework: Scrum chỉ là 1 bộ khung. Các team khác nhau sẽ dựa trên bộ khung đó, phát triển thành process cho riêng mình.

Keyword chính của Scrum

3 keyword quan trọng nhất xuyên suốt tất cả các bước thực hiện Scrum là:

  • Transparency: sự trong suốt – hiểu mọi thứ 1 cách rõ ràngđồng nhất trong team. Ví dụ:
    • Dev và PM (PO) cùng hiểu 1 task là hoàn thành khi có đầy đủ code, test case, test evidence.
    • Team và khách hàng cùng hiểuchức năng A sẽ được giao hàng vào ngày X.
  • Inspection: sự xem xét, kiểm tra để phát hiện ra vấn đề sớm nhất có thể.
  • Adaptation: khi phát hiện ra vấn đề thì thay đổi để thích nghi và giải quyết vấn đề đó.

Scrum gồm những thành phần cơ bản nào

Scrum team

Product Owner

  • Thường là PM hoặc khách hàng.
  • Là người quản lý Product Backlog (bảng liệt kê tất cả các item mà team cần thực hiện).
    • Mô tả rõ ràng từng item trong Product Backlog.
    • Sắp xếp thứ tự ưu tiên để đạt được mục tiêu 1 cách tốt nhất.
    • Tối ưu hóa giá trị mà Dev Team có thể mang lại.
    • Đảm bảo Dev Team hiểu rõ các item trong Product Backlog ở mức cần thiết.

Scrum Master

  • Đảm bảo scrum được hiểu và thực thi đúng.
  • Host các scrum event.
  • Giúp Dev Team follow các hành động cải tiến đề ra trong buổi Sprint Retrospective.

Development Team

  • Là đội chịu trách nhiệm deliver 1 cụm tăng trưởng (Increment) nào đó cho sản phẩm vào cuối sprint.
  • Các đặc tính của Dev team:
    • Self-organizing: tự tổ chức và quản lý.
    • Cross-functional: có đủ các kĩ năng để hoàn thành công việc. VD: business analysis, dev, test…
    • Trong Scrum thì 1 team là phẳng, không có chức danh nào ngoài Developer, bất kể công việc mà người đó đang thực hiện.
    • Không có sub-team ở trong Dev Team, kể cả là testing hay business analysis.
    • Mỗi thành viên có thể có kĩ năng riêng biệt và chuyên môn riêng, nhưng trách nhiệm thì thuộc về cả Dev Team.
  • Team size: 3 – 9 người

Scrum events

Tất cả các events trong Scrum được build từ 3 keywords chính của Scrum: Transparency, Inspection và Adaptation. 

The Sprint

  • Là 1 khoảng thời gian cố định từ 1 tháng trở xuống. Trong khoảng thời gian đó, 1 cụm tăng trưởng (Increment) sẽ được tạo ra.
  • Độ dài của Sprint là cố định, không đổi.
  • Sprint bắt đầu ngay khi Sprint trước kết thúc. 

Sprint Planning

  • Lên kế hoạch các item sẽ làm trong Sprint.
  • Thời lượng: tối đa 8 tiếng cho Sprint 1 tháng.
  • Nội dung:
    • Item nào có thể được thực hiện ở Sprint này?
      • Input:
        • Product Backlog
        • Team velocity
        • Team capacity
      • Output:
        • Sprint Goal
        • Các item được chọn làm trong Sprint này từ Product Backlog
        • Các item cần được làm rõ ràng yêu cầu và AC (acceptance criteria – tiêu chí nghiệm thu) (Transparency)
    • Làm thế nào để hoàn thành các item đó?
      • Các thành viên xem xét kĩ lưỡng từng item (Inspection)
      • Estimate từng item và thống nhất với nhau theo point (Transparency)
      • Bẻ nhỏ những task lớn
      • Bẻ nhỏ  từng task thành các todo cần thực hiện (ví dụ: điều tra, viết test case, code và test, review…)

Daily standup

  • Thời lượng: 15’ hàng ngày.
  • Nội dung: mỗi thành viên trả lời 4 câu hỏi sau:
    • Hôm qua tôi đã làm gì? (Transparency)
    • Tôi đã gặp vấn đề gì? (Inspection)
    • Tôi đã giải quyết nó như thế nào?/Tôi không biết giải quyết nó như thế nào. Các bạn có thể giúp tôi được không? (Adaptation)
    • Hôm nay tôi sẽ làm gì? (Transparency)

Sprint Review

  • Là buổi tổng kết các item mà Dev Team đã làm được trong sprint vừa rồi.
  • Thời lượng: tối đa 4 tiếng, khi kết thúc Sprint.
  • Thành phần tham dự: toàn bộ Scrum team và các stakeholders.
  • Nội dung:
    • Dev Team sẽ trình bày các item mình đã làm (Transparency)
    • PO, stakeholders sẽ kiểm tra và xem xét lại (Inspection)
    • PO, stakeholders đưa ra luận điểm để điều chỉnh các item trong Product Backlog, các item sẽ làm ở Sprint tiếp theo, cải tiến process… (Adaptation)

Đọc thêm tại: http://agileforeveryone.com/2013/03/20/17/

Sprint Retrospective

  • Là buổi để team tự xem xét lại chính mình (Inspection) và đưa ra những cải tiến (Adaptation) để cải thiện ở Sprint tiếp theo.
  • Nội dung:
    • Mỗi thành viên trả lời các câu hỏi sau:
      • Nên bắt đầu làm cái gì?
      • Nên dừng làm cái gì?
      • Nên tiếp tục làm cái gì?
    • Sau đó team cùng nhau thảo luận.

Scrum artifacts

Product Backlog

  • Là 1 list các item đã được sắp xếp theo thứ tự ưu tiên có thể cần được làm. Mọi thay đổi requirement đều được cho vào đây.
  • Làm mịn Product Backlog là hành động thêm thông tin chi tiết, estimate và sắp xếp lại items. Việc làm mịn này không nên tốn quá 10% effort của team.

Sprint Backlog

  • Là 1 cụm các items được chọn trong Product Backlog để thực hiện ở Sprint này, cùng với kế hoạch deliver và Sprint Goal.

Increment(cụm tăng trưởng)

  • Cụm tăng trưởng bao gồm tất cả các item đã được hoàn thành trong Sprint này và giá trị của các cụm tăng trưởng trước đó.

Tại sao lại estimate task theo story point mà không phải theo giờ?

Story point ở đây là universal meter, thước đo chung để estimate 1 vấn đề do mỗi developer có hiệu suất làm việc khác nhau.

Ví dụ cùng 1 vòng Hồ Gươm, dev A chạy mất 5’, dev B chạy mất 10’.

Với 1 task mới là chạy 1 vòng Hồ Tây:

  • Dev A: tôi nghĩ sẽ mất 1 tiếng để chạy
  • Dev B: tôi thì nghĩ phải mất 2 tiếng

→ Conflict

Nếu team quy định chung 1 vòng Hồ Gươm là 1 point thì khi estimate 1 vòng Hồ Tây:

  • Dev A: tôi nghĩ là gấp 20 lần Hồ Gươm nên khoảng 20 points
  • Dev B: tôi cũng nghĩ là gấp 20 lần Hồ Gươm nên khoảng 20 points

→ Cả team estimate với cùng 1 thước đo chung

Reference

http://agileforeveryone.com/2013/03/20/17/

http://www.scrumguides.org/

https://www.mountaingoatsoftware.com/blog/dont-equate-story-points-to-hours
Leave a Reply 0

Your email address will not be published. Required fields are marked *