12/08/2018, 13:04

Các vai trò trong Scrum

Mô hình Scrum là một mô hình khá mới mẻ nhưng đang dần được áp dụng vào trong các dự án của khá nhiều công ty phần mềm hiện nay. Thay vì các mô hình truyền thống như mô hình thác nước (waterfall), mô hình Scrum đang ngày càng được ưa chuộng và đã được thử nghiệm tại các đội phát triển phần mềm vì ...

Mô hình Scrum là một mô hình khá mới mẻ nhưng đang dần được áp dụng vào trong các dự án của khá nhiều công ty phần mềm hiện nay. Thay vì các mô hình truyền thống như mô hình thác nước (waterfall), mô hình Scrum đang ngày càng được ưa chuộng và đã được thử nghiệm tại các đội phát triển phần mềm vì một số lí do:

  • Scrum là một khung làm việc linh hoạt cho phép bạn sử dụng được nhiều quy trình và kĩ thuật khác nhau
  • Scrum thích ứng nhanh với sự thay đổi yêu cầu
  • Scrum vận hành dựa trên đặc tính tự nhiên của người phát triển nên rất dễ hiểu, dễ áp dụng, tạo nên tính tương tác cao giữa các thành viên trong nhóm thay vì chịu sự áp đặt từ phía bên ngoài
  • Scrum giúp team tập trung vào sản phẩm, thích ứng nhanh với các thay đổi về yêu cầu từ đó tạo nên sự tương tác cao giữa khách hàng với nhóm phát triển để sản phẩm làm ra đáp ứng đúng với các yêu cầu của khách hàng

scrum.jpg

Có 3 yếu tố quan trọng cấu thành Scrum gồm: vai trò(roles), sự kiện(events) và đồ nghề(artifacts). Và điều tôi muốn nhấn mạnh ở đây chính là các vai trò và trách nhiệm của mỗi vai trò trong Scrum, một trong những nhân tố quan trọng dẫn đến sự thành công của Scrum. Như mọi người đã biết trong Scrum hiện tại đang bao gồm 3 vai trò chính:

  • Chủ sản phẩm(Product Owner)
  • Điều phối viên(Scrum Master)
  • Nhóm phát triển(Development Team)

1. Chủ sản phẩm (Product Owner)

Product Owner là người sở hữu sản phẩm, hiểu rõ nhất về sản phẩm và các yêu cầu của sản phẩm. Vai trò này thường được đảm nhiệm bởi khách hàng. Trong trường hợp khách hàng không có người thì Business Analyst/BrSE của công ty phần mềm có thể thay thế vai trò này.

Product-owner-e1427343947310.jpg

Product Owner chịu trách nhiệm:

  • Quản lý Product Backlog
  • Mô tả các hạng mục trong Product Backlog
  • Sắp xếp các item trong Product Backlog để tôi ưu hóa mục tiêu và trách nhiệm
  • Đánh giá một cách khách quan giá trị công việc mà Development Team thực hiện
  • Đảm bảo Product backlog luôn rõ ràng và dễ hiểu
  • Đưa ra tiêu chí để đánh giá/nghiệm thu sản phẩm

Không ai ngoài Product Owner được phép yêu cầu Nhóm phát triển làm gì khác, và Nhóm phát triển cũng không được phép làm bất cứ gì theo ý của người khác.

Bởi vậy để làm được một Product Owner cần có các kĩ năng cần thiết sau:

  • Phải có kinh nghiệm về sản phẩm sẽ phát triển
  • Hiểu rõ về khách hàng và quy trình nghiệp vụ của sản phẩm
  • Hiểu rõ các nhu cầu, chức năng, mức độ ưu tiên của sản phẩm
  • Có kĩ năng giao tiếp tốt với nhóm phát triển

2. Điều phối viên (Scrum Master)

Scrum master là người chịu trách nhiệm chính để nhóm phát triển apply và thực hiện đúng các yêu cầu của Scrum.

SC.png

Các công việc chính của một Scrum Master bao gồm:

  • Đảm bảo cho quy trình Scrum được tuân thủ
  • Thúc đẩy các sự kiện Scrum theo yêu cầu hoặc khi cần thiết
  • Huấn luyện nhóm phát triển cách tự tổ chức và làm việc liên chức năng
  • Lọai bỏ các trở lực trong quá trình tác nghiệp của nhóm phát triển
  • Phát hiện và giúp nhóm phát triển giải quyết các vấn đề
  • Giúp nhóm phát triển học hỏi từ các kinh nghiệm

Vì vậy, để làm được một Scrum Master cần phải có các kĩ năng cần thiết sau:

  • Am hiểu về Scrum và các quy trình của Scrum
  • Có kĩ năng về quản lý, xử lý tình huống, giải quyết các mâu thuẫn, động viên và phát huy khả năng làm việc của người khác
  • Có khả năng gắn kết giữa các thành viên

3. Nhóm phát triển(Development Team)

Nhóm phát triển là nhóm chịu trách nhiệm chính trong việc phát triển sản phẩm. Mỗi người trong nhóm sẽ có những kĩ năng riêng biệt khác nhau. Nhóm này nhằm phát huy tối đa các kĩ năng của mỗi thành viên trong nhóm để có thể đạt được kết quả cao nhất.

Team.jpg

Đặc điểm của Nhóm phát triển:

  • Là một nhóm tự tổ chức(self-organizing)
  • Là một nhóm liên chức năng( cross-functional) với tất cả các kĩ năng cần thiết để tạo ra phần tăng trưởng của sản phấm
  • Các thành viên trong nhóm phát triển có thể có các kĩ năng chuyên biệt, đặc thù nhưng họ phải chịu trách nhiệm dưới một thể thống nhất là nhóm phát triển
  • Nhóm phát triển không chứa bất cứ một nhóm con nào khác với các chức năng đặc thù
  • Họ nhận công việc, ước lượng thời gian hoàn thành và chịu trách nhiệm về chất lượng của phần công việc mà mình được giao
  • Sửa lỗi và đóng góp vào việc cải tiến sản phẩm
  • Hiểu và tuân thủ các quy trình trong Scrum
  • Tham gia các sự kiện trong Scrum như: Planning meeting, daily meeting, Retrospective meeting

Một nhóm phát triển thường từ 3 đến 9 thành viên. Product Owner và Scrum Master sẽ không được tính vào nhóm phát triển, trừ khi họ cũng kiêm luôn vai trò là thành viên của nhóm phát triển đấy.

Đế làm được các việc trên, các thành viên trong nhóm phát triển cần có một số kĩ năng sau:

  • Hiểu, áp dụng được Scrum
  • Có các kĩ năng về phân tích, thiết kế, ngôn ngữ lập trình, kiểm thử phần mềm
  • Có kĩ năng làm việc nhóm

** Kết luận **

Việc áp dụng mô hình Scrum vào các công ty phần mềm hiện nay đang khá phổ biến nhưng không phải công ty nào cũng áp dụng nó một cách thành công. Vì việc thay đổi sang mô hình Scrum mới này dẫn đến việc thay đổi toàn bộ cấu trúc của một công ty nên bước đầu áp dụng nó vào một tổ chức không hề đơn giản, có thể gây conflict từ nhiều phía. Do đó cần dựa vào tình hình của mỗi công ty để áp dụng mô hình này cho phù hợp.

Reference link:

http://www.scrumguides.org/docs/scrumguide/v1/scrum-guide-us.pdf

http://iviettech.vn/blog/283-co-ban-ve-scrum.html

0