Trong bài trước chúng ta đã nắm được cơ bản về các vai trò (Role) trong SCRUM những nó chưa được mô tả chi tiết để bạn có thể hình dung được trách nhiệm cũng như yêu cầu của mỗi Role. Trong bài này chúng ta sẽ cùng xem chi tiết hơn những mô tả công việc của các Role để hiểu rõ hơn về chúng.
1. Product Owner
Về định nghĩa 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. Thông thường vai trò này được đảm nhiệm bởi khách hàng. Nếu khách hàng không có người thực hiện việc này thì có thể người đóng vai trò Business Analyst của công ty phần mềm hoặc của đơn vị tư vấn thực hiện vai trò này. Product Owner chịu trách nhiệm về yêu cầu đầu ra của sản phẩm và là người chấp nhận sản phẩm.
Chúng ta sẽ xem xét trách nhiệm của Role này để hiểu hơn về yêu cầu công việc của họ.
Theo http://scaledagileframework.com Product Owner có các trách nhiệm sau:
– Quản lý Product Backlog: Product Owner là người chịu trách nhiệm chính trong việc xây dựng, hiệu chỉnh và duy trì Product Backlog. Product Backlog chứa chủ yếu là các User Stories (chức năng) cộng thêm các defect (lỗi phát sinh) và một số công việc liên quan khác. Nó đóng vai trò quan trọng trong việc đưa ra sản phẩm có chất lượng, tiến độ dự án cũng như giảm thiểu các rủi ro.
– Định nghĩa Sprint Backlog: Product Owner chịu trách nhiệm Review, xác định thứ tự ưu tiên và hiểu rất rõ về backlog nên sẽ là thành phần quan trọng trong cuộc họp Sprint Planning. Product Owner cũng là người thông qua cuối cùng cho Sprint Backlog.
– Giám sát thường xuyên quá trình xây dựng các Stories: Trong quá trình phát triển các chức năng nếu cần bất kỳ sự thay đổi nào thì Product Owner luôn chịu trách nhiệm chính trong việc thông qua các thay đổi đó.
– Xét duyệt các chức năng được đưa ra trong mỗi phiên bản: Product Owner còn chịu trách nhiệm xét duyệt các chức năng có trong mỗi phiên bản Release. Điều này bao gồm việc kiểm tra các chức năng có đáp ứng được các yêu cầu hay không? Có qua được qui trình kiểm thử không? Có đảm bảo chất lượng và khả năng sử dụng hay không?
– Sắp xếp các giai đoạn Release (PSI/release: Potentially Shippable Increment): trong quá trình phát triển theo SCRUM, dự án sẽ liên tục Release theo từng giai đoạn và Product Owner có vai trò quan trọng trong việc sắp xếp thời gian, các chức năng Release cũng như phối hợp Demo cho khách hàng, các nhà đầu tư.
– Tham gia và chuẩn bị cho quá trình hoạch định: Như một thành viên mở rộng của bộ phận quản lý, Product Owner có trách nhiệm trong việc phối hợp để hoạch định quá trình xây dựng sản phẩm, ước lượng, sắp xếp các sự kiện ra mắt sản phẩm, Demo v….
Ngoài ra, tùy theo từng dự án, product owner có thể tham gia xây dựng tầm nhìn, chiến lược, hoạch định các kế hoạch liên quan cho sản phẩm.
Từ các trách nhiệm đó, chúng ta có thể xác định một số yêu cầu kỹ năng cơ bản của Product Owner như sau:
– Phải có kinh nghiệm về sản phẩm sẽ phát triển
– Có kiến thức tốt về quản lý, công nghệ bao gồm cả kiến trúc, thiết kế v.v..
– Hiểu rõ về khách hàng và qui trình nghiệp vụ của sản phẩm
– Hiểu rõ nhu cầu, chức năng của sản phẩm, mức độ ưu tiên của sản phẩm.
– Có kỹ năng lãnh đạo và giải quyết vấn đề
– Phải có kỹ năng giao tiếp tốt cả với khách hàng và nhóm dự án
– Có khả năng dẫn dắt, động viên nhóm dự án làm việc để họ phấn đầu hoàn thành dự án đúng mục tiêu đề ra.
Như vậy, Product Owner là một Role đòi hỏi có kinh nghiệm, nó nắm một phần quan trọng vai trò của người quản lý dự án trong mô hình truyền thống nhưng khác ở chỗ là tập trung vào sản phẩm. Làm tất cả mọi thứ sao cho sản xuất được một sản phẩm tốt nhất. PM theo mô hình truyền thống có quá nhiều thứ phải quan tâm.
2. SCRUM Master
Scrum Master là người chịu trách nhiệm chính để nhóm phát triển thực hiện đúng các yêu cầu của SCRUM. German Sakaryan đã liệt kê các công việc chính của Scrum Master trên http://www.scrumalliance.org như sau:
- Đảm bảo cho qui trình Scrum được tuân thủ
- Đảm bảo sự tương tác hợp lý giữa PO, Team và Management
- Bảo vệ và động viên Team
- Giúp công tác tổ chức (như họp, hạ tầng v.v..)
- Giúp Team tập trung vào công việc và đạt mục tiêu của Sprint hiện tại
- Làm việc với PO
- Training về Sprint cho Team, PO, Management và tổ chức
- Đảm bảo và giúp cho mọi thứ thông suốt
- Đấu tranh để phát triển một team có năng suất cao
- Hỗ trợ các hoạt động như Team building, phát triển kỹ năng cho các thành viên, xây dựng feedback v.v..
- Phát hiện và giải quyết các vấn đề
- Giúp team học hỏi từ các kinh nghiệm
Về kỹ năng được yêu cầu thì đây là một vị trí yêu cầu về các kỹ năng quản lý. Có thể liệt kê một số các yêu cầu kỹ năng như sau:
- Am hiểu về SCRUM và các qui trình của SCRUM.
- Có kỹ năng về quản lý, lãnh đạo, xử lý tình huống, giải quyết các mâu thuẫn, động viên, phát huy khả năng làm việc của người khác.
- Có kiến thức cơ bản về kỹ thuật.
3. Development Team
Team chịu trách nhiệm chính là phát triển sản phẩm, nó bao gồm các kỹ sư phần mềm làm việc cùng nhau. Tùy theo yêu cầu của từng dự án mà kỹ năng của các thành viên trong team khác nhau. Dưới đây, chúng ta sẽ liệt kê những yêu cầu chung của một kỹ sư phần mềm.
Trách nhiệm của Team:
– Hiểu rõ yêu cầu, phân tích, thiết kế, coding sản phẩm
– Làm việc với PO để nắm rõ yêu cầu, đề xuất giải pháp, yêu cầu thay đổi các stories
– Tham dự các cuộc họp Kick off, Sprint Planning, Sprint Review, Dialy Scrum Meeting
– Nhận công việc, ước lượng và chịu trách nhiệm với công việc của mình về chất lượng, thời hạn hoàn thành
– Sửa lỗi và đóng góp cải tiến sản phẩm
– Hiểu rõ và tuân thủ Scrum Process
Yêu cầu kỹ năng các thành viên dự án:
- Hiểu và á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, cơ sở dữ liệu được yêu cầu của một kỹ sư phần mềm
- Có kỹ năng làm việc nhóm
4. Kết luận
Chúng ta đã tìm hiểu sâu hơn về các vai trò trong SCRUM, hy vọng bài viết giúp các bạn nắm rõ hơn về trách nhiệm và kỹ năng của các thành phần tham gia vào SCRUM. Tất nhiên, khi áp dụng SCRUM tùy theo đặc điểm của tổ chức mà bạn định nghĩa các vai trò cho sát với thực tế tại đơn vị của bạn.
Sau khi đã nắm cơ bản về SCRUM chúng ta sẽ bàn đến việc chuyển đổi từ phương thức truyền thống sang SCRUM. Bài tiếp theo chúng ta sẽ bàn về “Sự khác biệt giữa phương thức truyền thống và Agile”. Mời các bạn đón đọc.
Bài trước: Thực hành áp dụng SCRUM