Scrum là gì?

Scrum là một framework được sử dụng để tổ chức và quản lý quá trình phát triển sản phẩm, đặc biệt phổ biến trong phát triển phần mềm. Scrum giúp một team biến những nguyên tắc của Agile thành một cách làm việc cụ thể hơn. Nếu Agile là tư duy, thì Scrum có thể hiểu là một framework để team áp dụng tư duy đó vào công việc thực tế. Scrum không phải là một tool hay phần mềm. Scrum quy định cách team tổ chức công việc, cách lập kế hoạch, cách kiểm tra kết quả, cách nhận feedback và cách cải tiến sau mỗi giai đoạn. Điểm đặc trưng của Scrum là team làm việc theo những khoảng thời gian cố định gọi là Sprint. Trong mỗi Sprint, team lựa chọn một phần công việc có giá trị để thực hiện, sau đó tạo ra một Increment của sản phẩm.

Các thành phần chính của Scrum

Scrum có nhiều khái niệm, nhưng có thể tập trung vào ba nhóm chính:

  • Scrum Team – những người tham gia và chịu trách nhiệm tạo ra sản phẩm.
  • Scrum Events – các hoạt động và sự kiện được tổ chức trong Scrum.
  • Scrum Artifacts – những thành phần chứa thông tin quan trọng về sản phẩm và công việc.

Scrum Team

Một Scrum Team gồm ba accountability chính là Product Owner, Scrum Master và Developers.

Product Owner

Product Owner là người chịu trách nhiệm tối đa hóa giá trị của sản phẩm và quản lý Product Backlog.

Product Owner cần hiểu nhu cầu của khách hàng, người dùng và business để xác định những gì team nên ưu tiên thực hiện.

Ví dụ, nếu team đang xây dựng một ứng dụng bán hàng thì Product Owner có thể phải quyết định:

  • Tính năng nào quan trọng hơn?
  • Nên làm thanh toán trước hay voucher?
  • Người dùng đang gặp vấn đề gì?
  • Feature nào tạo ra nhiều giá trị hơn?

Product Owner không đơn giản chỉ là người “giao task cho developer”. Vai trò quan trọng hơn là định hướng sản phẩm và ưu tiên giá trị cần tạo ra.

Scrum Master

Scrum Master là người giúp team hiểu và áp dụng Scrum đúng cách, đồng thời hỗ trợ loại bỏ những trở ngại đang ảnh hưởng đến team.

Scrum Master không phải là “sếp của developer” và cũng không phải Project Manager theo nghĩa truyền thống.

Họ có thể hỗ trợ team trong những vấn đề như:

  • Team chưa hiểu cách làm Scrum.
  • Các cuộc Scrum Event không hiệu quả.
  • Có trở ngại khiến team không thể hoàn thành công việc.
  • Team cần cải thiện cách phối hợp.
  • Giúp tổ chức hiểu và áp dụng Scrum tốt hơn.

Có thể hiểu Scrum Master giống như người hỗ trợ team trở nên hiệu quả hơn trong môi trường Scrum.

Sprint là gì?

Sprint là khoảng thời gian cố định trong Scrum, trong đó team thực hiện công việc để tạo ra một Increment có giá trị.

Một Sprint có độ dài cố định và thường không thay đổi giữa các Sprint. Theo Scrum Guide, một Sprint có thời lượng tối đa một tháng.

Ví dụ team chọn Sprint kéo dài 2 tuần.

Trong 2 tuần đó, team sẽ:

  • Xác định mục tiêu của Sprint.
  • Chọn những công việc phù hợp.
  • Phát triển sản phẩm.
  • Kiểm tra kết quả.
  • Nhận feedback.
  • Nhìn lại cách làm việc.

Sau Sprint, team tiếp tục bước vào Sprint tiếp theo.

Điểm quan trọng là mỗi Sprint không đơn giản là “2 tuần để làm task”. Sprint cần có một Sprint Goal – mục tiêu mà team muốn đạt được trong Sprint đó.

Product Backlog

Product Backlog là danh sách những công việc và nhu cầu cần được thực hiện để cải thiện sản phẩm.

Các item trong Product Backlog có thể là:

  • Feature mới.
  • Bug.
  • Cải tiến.
  • Yêu cầu kỹ thuật.
  • Công việc cần thiết để phát triển sản phẩm.

Ví dụ một Product Backlog có thể gồm:

Login
Register
Product Search
Shopping Cart
Payment
Order History
Voucher

Tuy nhiên, Product Backlog không phải một danh sách cố định từ đầu đến cuối dự án.

Nó có thể thay đổi và được sắp xếp lại liên tục dựa trên feedback, nhu cầu người dùng, tình hình business và những thông tin mới mà team học được.

Scrum vận hành như thế nào?

Có thể hiểu toàn bộ Scrum bằng một vòng lặp đơn giản:

Team có một Product Backlog chứa những nhu cầu của sản phẩm. Khi bắt đầu Sprint, team cùng nhau chọn những công việc phù hợp và xác định Sprint Goal. Trong Sprint, Developers thực hiện công việc và thường xuyên kiểm tra tiến độ thông qua Daily Scrum.

Khi Sprint kết thúc, team tạo ra một Increment và cùng stakeholder xem xét kết quả trong Sprint Review. Sau đó team nhìn lại cách làm việc trong Sprint Retrospective để tìm ra những điểm cần cải thiện.

Những thông tin thu được từ quá trình này tiếp tục ảnh hưởng đến Product Backlog và các Sprint tiếp theo.

Điều này tạo ra một vòng lặp:

Plan → Build → Inspect → Adapt

Bài viết khác

Kanban

Kanban là gì? Kanban là một phương pháp quản lý công việc tập trung vào việc trực quan hóa công việc, kiểm soát lượng công việc đang thực hiện và cải thiện dòng chảy của công việc. Kanban giúp team nhìn thấy toàn bộ công việc đang ở trạng thái nào, công việc nào đang […]

SCRUM

1. Scrum là gì và bản chất cốt lõi của nó? Nếu như Agile là bức tranh lớn mang tính định hướng tư duy và triết lý, thì Scrum chính là một khung làm việc (framework) cụ thể, có cấu trúc chặt chẽ để biến tư duy Agile đó thành hành động thực tế. Thay […]

Git Flow

Giới thiệu Git flow là một chiến lược quản lý branch trong Git, được Vincent Driessen giới thiệu vào năm 2010. Mục đích của Gitflow là tổ chức quá trình phát triển và phát hành phần mềm bằng cách quy định vai trò của từng loại branch và cách các branch tương tác với nhau. […]

Waterfall

Waterfall là gì? Waterfall hay còn gọi là mô hình thác nước, là một mô hình phát triển phần mềm theo hướng tuần tự. Có nghĩa là một dự án sẽ được chia thành nhiều giai đoạn và team sẽ thực hiện lần lượt từng giai đoạn, thường phải hoàn thành bước trước rồi mới […]

WaterFall

1. Waterfall là gì và cách thức hoạt động? Waterfall (hay còn gọi là mô hình thác nước) là một trong những phương pháp quản lý và phát triển phần mềm mang tính cổ điển, tuần tự theo đúng nghĩa đen. Giống như một dòng thác nước chảy từ trên đỉnh núi xuống dưới, quy […]

AGILE

1. Agile là gì? Agile (phương pháp phát triển phần mềm linh hoạt) không phải là một công cụ hay một quy trình kỹ thuật cụ thể nào cả, mà nó là một tư duy (mindset) và triết lý làm việc. Thay vì lập ra một kế hoạch khổng lồ từ đầu, làm một mạch […]