Trong bài viết trước chúng ta đã tìm hiểu về triết lí Agile và một số phương pháp Agile phổ biến. Trong bài viết này chúng ta sẽ tìm hiểu chi tiết về một trong những phương pháp Agile quan trọng và được thực hành rộng rãi nhất đó là Scrum.
=> Xem thêm: Agile là gì? Tổng quan về Agile Scrum
Scrum là gì?
Scrum là một phương pháp Agile dùng cho phát triển sản phẩm, đặc biệt là phát triển phần mềm. Scrum là một khung quản lý dự án được áp dụng rất rộng rãi, từ những dự án đơn giản với một nhóm phát triển nhỏ cho đến những dự án có yêu cầu rất phức tạp với hàng trăm người tham gia, và kể cả những dự án đòi hỏi khung thời gian cố định.
Trong Scrum, công việc được thực hiện bởi Nhóm Scrum thông qua từng phân đoạn lặp liên tiếp nhau được gọi là Sprint. Để hiểu được Scrum thì cần hiểu nguyên lý của Scrum, các Vai trò, Tạo tác, Sự kiện và sự vận hành của một vòng đời Scrum.
Ba trụ cột của Scrum
Ba trụ cột (hay ba chân) của Scrum là Tính minh bạch, Sự thanh tra và Sự thích nghi. Đây chính là phần lõi của khung làm việc Scrum, thiếu bất cứ trụ cột nào trong số này đều khiến khung Scrum không còn hoạt động đúng nữa.
- Minh bạch (transparency): Đầu tiên, thông tin liên quan tới quá trình phát triển phải minh bạch và thông suốt. Các thông tin đó có thể là: tầm nhìn (vision) về sản phẩm, yêu cầu khách hàng, tiến độ công việc, các khúc mắc rào cản,… Từ đó mọi người ở các vai trò khác nhau có đủ thông tin cần thiết để tiến hành các quyết định có giá trị nhằm nâng cao hiệu quả công việc. Các công cụ và cuộc họp trong Scrum luôn đảm bảo thông tin được minh bạch cho các bên.
- Thanh tra (inspection): Công tác thanh tra liên tục các hoạt động trong Scrum đảm bảo cho việc phát lộ các vấn đề cũng như giải pháp để thông tin đa dạng và hữu ích đến được với các bên tham gia quá trình phát triển. Truy xét kỹ càng và liên tục là cơ chế khởi đầu cho việc thích nghi và các cải tiến liên tục trong Scrum.
- Thích nghi (adaptation): Dựa trên các thông tin minh bạch hóa từ các quá trình thanh gia và làm việc, Scrum có thể phản hồi các thay đổi một cách tích cực, nhờ đó mang lại thành công cho sản phẩm. Các nỗ lực minh bạch và thanh tra đều hướng tới hành động thích ứng nhanh chóng và hiệu quả.
=> Xem thêm: Scrum là gì? Cách áp dụng mô hình Scrum hiệu quả nhất
Hai đặc điểm của Nhóm Scrum
Nhóm Scrum có 2 đặc điểm đó là tự quản (self-managing) và liên chức năng (cross-functional).
- Tự quản (self-managing): Đây là một thuật ngữ mới thay thế cho thuật ngữ cũ (self-organized) được cập nhật trong tài liệu Hướng dẫn Scrum mới nhất năm 2020. Điều này có nghĩa là nhóm sẽ cùng ra quyết định sẽ làm gì, ai sẽ làm và làm như thế nào mà không bị sự chỉ đạo bởi ai đó bên ngoài nhóm. Các Nhóm Scrum được trao quyền để quản lý công việc của họ nhằm hướng tới một mục tiêu chung là giúp tổ chức giải quyết các vấn đề phức tạp nhanh nhẹn hơn và tạo ra kết quả chất lượng hơn.
- Liên chức năng (cross-functional): Một nhóm liên chức năng bao gồm nhiều cá nhân với các chuyên môn khác nhau đủ năng lực được kết hợp lại cùng làm việc hướng tới một mục tiêu chung. Trong dự án, các cá nhân có thể đến từ nhiều phòng ban chức năng khác nhau, cũng có thể xuất phát từ bên ngoài. Nhưng khi đã thành một nhóm (team), thì các cá nhân làm việc tập trung cho đội như là một đơn vị (unit) để hoàn tất mục tiêu chung. Bên trong nhóm liên chức năng không có các nhóm nhỏ khác.
Ba vai trò trong nhóm Scrum
Trong Scrum, có ba vai trò: Product Owner, Nhà Phát triển, và Scrum Master. Tất cả hợp thành Nhóm Scrum.
- Product Owner: là một trong ba vai trò trong nhóm Scrum. Vai trò này chịu trách nhiệm tối ưu hóa lợi nhuận trên đầu tư (ROI - Return On Investment) thông qua việc quyết định các tính năng của sản phẩm, đánh giá và sắp xếp độ ưu tiên của từng hạng mục, những hạng mục có độ ưu tiên cao thì sẽ được đưa vào phát triển trước, những hạng mục có độ ưu tiên thấp hơn thì sẽ được phát triển sau. Product Owner thường khác với một Giám đốc Sản phẩm truyền thống ở chỗ đó là Product Owner tham gia tích cực vào quá trình phát triển sản phẩm, thay vì chỉ quản lý và ủy quyền cho những người khác thực hiện các quyết định liên quan đến sản phẩm.
- Scrum Master: là một vai trò then chốt giúp nhóm Scrum làm việc hiệu quả bằng cách tuân thủ nguyên lý, các kỹ thuật và quy tắc của Scrum. Scrum Master không phải là người quản lý của Nhóm mà là một lãnh đạo theo phong cách phục vụ (Servant Leader). Scrum Master làm tất cả những gì trong thẩm quyền phục vụ Product Owner, Nhóm Phát triển, và Tổ chức đi đến thành công.
- Nhóm phát triển: là đội ngũ trực tiếp làm ra sản phẩm, họ bao gồm các chuyên gia có nhiệm vụ chuyển giao phần tăng trưởng ở cuối mỗi Sprint. Các Nhà phát triển không có sự phân chia các chức danh chuyên môn đặc thù cho từng thành viên, ví dụ như: kiểm thử viên, lập trình viên, chuyên gia thiết kế, chuyên gia cơ sở dữ liệu,… mà tất cả đều được gọi chung là Nhà phát triển. Việc này giúp nâng cao tính sở hữu tập thể, trách nhiệm tập thể và bình đẳng giữa các thành viên.
Ngoài ra, dành cho các Scrum Master, Product Owner và các thành viên trong Nhóm phát triển mong muốn nâng cao kiến thức và giá trị thương hiệu trong ngành! Khóa huấn luyện chứng chỉ quốc tế PSM/PSPO của Học viện Agile giúp bạn tiết kiệm thời gian và công sức luyện thi, tỉ lệ đỗ cao trong thời gian ngắn, với sự dẫn dắt trực tiếp của Agile Coach Nguyễn Thế Nghị.
- Giảm thời gian học, học đúng trọng tâm, tỉ lệ đỗ cao
- Rèn luyện kỹ năng làm đề thi bám sát với đề thi thật
- Agile Coach đồng hành trong suốt quá trình luyện thi
- Cung cấp ví dụ, case study thực tế, hỏi đáp trên tình huống thực tế tại doanh nghiệp
- Định hướng lộ trình phát triển nghề nghiệp cho học viên
- Kết nối việc làm với các doanh nghiệp nổi tiếng
Khóa học liên quan:
- Huấn luyện chứng chỉ quốc tế PSM & PSPO
Năm sự kiện trong Scrum
Có thể nói Sprint là trái tim của Scrum và là khoảng thời gian cố định mà ở đó các Nhà Phát triển thực hiện công việc phát triển sản phẩm.
Sprint được đóng khung thời gian không dài hơn 1 tháng và thường thì không ngắn hơn một tuần. Các Sprint có độ dài như nhau và diễn ra liên tiếp nhau mà không bị gián đoạn. Sprint kết thúc khi thời gian đóng khung kết thúc, bất kể các công việc trong đó đã được hoàn thành hết hay chưa.
- Lập kế hoạch Sprint (Sprint Planning):
Là sự kiện diễn ra đầu Sprint để lên kế hoạch làm việc cho toàn bộ Sprint. Sự kiện này được chia làm 3 phần với 3 mục đích rõ ràng:
Phần 1: nhằm trả lời câu hỏi Why - “Tại sao chúng ta làm những thứ này?” - điều này được trình bày bởi Product Owner và sau đó cả nhóm sẽ thống nhất để xác định rõ Mục tiêu của Sprint (Sprint Goal)
Phần 2: trả lời cho câu hỏi What - “Chúng ta sẽ hoàn thành những gì?“. Thông qua việc trao đổi với Product Owner, các Nhà phát triển sẽ lựa chọn những hạng mục từ Product Backlog để phát triển trong Sprint hiện tại.
Phần 3: sẽ trả lời câu hỏi How - “Chúng ta sẽ làm như thế nào?“. Đối với mỗi hạng mục được lựa chọn, các Nhà phát triển sẽ lên kế hoạch các công việc cụ thể để hoàn thành được mục tiêu Sprint (Sprint Goal).
3 câu hỏi Why - What - How sẽ giúp 1 Sprint diễn ra hiệu quả và rõ ràng hơn. Các Nhà Phát triển có quyền quyết định lựa chọn những hạng mục mà mình sẽ làm, không ai được phép can thiệp và gán công việc cho nhóm, kể cả Product Owner hay các lãnh đạo khác. Kết quả của buổi Lập kế hoạch Sprint là: Mục tiêu Sprint và Sprint Backlog.
- Scrum Hằng ngày (Daily Scrum):
Là buổi gặp mặt ngắn 15 phút hằng ngày của tất cả các thành viên Nhóm Phát triển để thanh tra và tái lập kế hoạch cho nhóm. Để giữ đơn giản và tạo thói quen thì các buổi Scrum Hằng ngày phải diễn ra tại cùng một địa điểm vào cùng một khung thời gian. Scrum Master không bắt buộc tham dự nhưng phải đảm bảo Nhóm Phát triển đang thực hiện tốt sự kiện này.
- Sơ kết Sprint (Sprint review):
Là sự kiện diễn ra ở cuối Sprint nhằm thanh tra và thích nghi sản phẩm đang được xây dựng. Toàn bộ Nhóm Scrum (bao gồm Product Owner, Scrum Master và Nhóm Phát triển) tham dự sự kiện này. Product Owner có thể mời thêm những người khác cùng tham gia.
Sự kiện này bao gồm 2 hoạt động chính đó là dùng thử sản phẩm và thảo luận về tình hình của sản phẩm, hướng đi tiếp theo và những điều chỉnh đối với sản phẩm nếu cần thiết. Product Backlog và Kế hoạch Phát hành có thể được điều chỉnh sau sự kiện này.
- Cải tiến Sprint (Sprint Retrospective):
Diễn ra sau sự kiện Sơ kết Sprint nhằm thanh tra và thích nghi quy trình làm việc. Nói ngắn gọn, sự kiện này là để cải tiến cách làm việc.
Nhóm Phát triển và Scrum Master bắt buộc tham gia sự kiện này. Product Owner có thể tham gia hoặc không. Nhóm Phát triển có thể mời thêm những người khác tham dự. Kết quả của buổi làm việc này là một danh sách các thay đổi về cách làm việc được đưa vào áp dụng ngay trong Sprint tiếp theo.
Một số kỹ thuật cải tiến thường được áp dụng như “Glad, Sad, Mad”, “SpeedBoat”…
Các tạo tác trong Scrum - Scrum Artifact
- Product Backlog: là nơi lưu trữ danh sách các tính năng mong muốn của sản phẩm và liên tục được cập nhật trong suốt vòng đời của sản phẩm. Mỗi Product Backlog sẽ được gắn với mục tiêu (Product Goal) mô tả đích đến của sản phẩm mà mỗi hạng mục trong Product Backlog phải hỗ trợ mục tiêu này. Product Owner là người chịu trách nhiệm quản lý và bảo trì Product Backlog. Việc này bao gồm xác định nội dung (các hạng mục cần phát triển), đánh giá độ ưu tiên và sắp xếp các hạng mục, làm mịn các hạng mục, làm rõ và giải thích tất cả mọi thắc mắc liên quan đến sản phẩm.
- Sprint Backlog: Sprint Backlog là bảng công việc được các Nhà Phát triển sử dụng để quản lý quá trình phát triển trong một Sprint và được cập nhật trong suốt Sprint. Sprint Backlog chứa danh sách các hạng mục và các công việc cần làm tương ứng với từng hạng mục để hoàn thành mục tiêu của Sprint đó
- Incremental (Phần tăng trưởng): là phần sản phẩm các Nhà Phát triển tạo ra cuối mỗi Sprint. Đây là một khái niệm quan trọng trong Scrum tạo ra sự khác biệt lớn về mặt sản phẩm so với các phương pháp truyền thống. Scrum không chỉ đơn giản tách quá trình phát triển thành các Sprint nhỏ liên tiếp nhau, mà cuối mỗi Sprint đòi hỏi nhóm phải chuyển giao một phần tính năng “hoàn chỉnh” của sản phẩm. Hoàn chỉnh ở đây được hiểu theo nghĩa được Product Owner chấp nhận dựa theo Định nghĩa Hoàn thành đã được thống nhất trước đó. Có thể nói, việc chuyển giao được một Phần tăng trưởng ở cuối mỗi Sprint là nhiệm vụ cốt lõi và không hề dễ dàng đối với các Nhà Phát triển.
Bên cạnh những khái niệm đề cập ở trên, các nhóm Scrum một khái niệm cũng thường xuyên xuất hiện trong Scrum đó là biểu đồ Burndown Chart. Đây là biểu đồ hiển thị khối lượng cần thiết còn lại để hoàn tất công việc. Burndown Chart có thể được dùng để theo dõi tiến độ của Sprint (được gọi là Sprint Burndown Chart) hoặc của cả dự án (Project Burndown Chart).
=> Xem thêm: Biểu đồ Sprint Burndown có vai trò gì trong Scrum?
Các giá trị của Scrum
Để áp dụng Scrum và tận dụng hiệu quả những lợi ích mà Scrum mang lại phụ thuộc rất nhiều vào mức độ theo đuổi và sống với những giá trị sau đây:
- Tập trung: Mọi người tập trung vào công việc trong Sprint và Mục tiêu Sprint của Nhóm. Khi Nhóm Phát triển đã cam kết với những việc trong Sprint, họ cần phải tập trung để hoàn thành những gì mà mình đã cam kết.
- Dũng cảm: Để một người dám nói ra vấn đề của mình và chấp nhận rất nhiều loại rủi ro khi thay đổi, cam kết, họ cần là người dũng cảm. Về cơ bản, những giá trị khác không thể có nếu bạn không có sự dũng cảm.
- Cam kết: Ngoài ra, chúng ta liên tục cải tiến tức là thay đổi để trở thành một cá nhân tốt hơn, nhóm tốt hơn và tổ chức tốt hơn. Chúng ta luôn phải thay đổi để giữ vững lợi thế cạnh tranh và phục vụ khách hàng. Thực hiện thay đổi bao giờ cũng rất khó khăn, do đó chỉ với sự cam kết của chúng ta mới có thể làm được.
- Cởi mở: Mọi thứ cần phải rõ ràng, minh bạch để mọi người có thể làm việc hiệu quả.Công việc phát triển sản phẩm ngày nay rất phức tạp, một người không thể nhìn và hiểu được hết tất cả mọi vấn đề. Do đó, nếu mọi người không cởi mở với nhau, thông tin bị che giấu rất nhiều và hiệu quả công việc khó có thể nâng cao.
- Tôn trọng: Khi thiếu tôn trọng, mọi người khó thành thật trong chia sẻ. Ví dụ, khi một người không biết một điều gì đó và đi hỏi lại người khác. Người trả lời thay vì mong muốn giúp đỡ để người hỏi trở nên tốt hơn, độc lập hơn lại phàn nàn, đánh giá người hỏi thì lần sau người hỏi sẽ khó mà cởi mở và nói sự thật được. Không có tôn trọng, khó có sự cởi mở. Những công ty có văn hóa đổ lỗi khó có sự cởi mở.
Cách áp dụng mô hình Scrum hiệu quả nhất
Rất nhiều doanh nghiệp đã và đang chuyển đổi sang Agile/Scrum nhưng không hiệu quả, thậm chí còn gây ra hậu quả nghiêm trọng hơn so với trước khi chuyển đổi, như:
- Lãng phí các nguồn lực như tài chính, nhân sự, thời gian…
- Chi phí tăng cao do quá trình Thử sai nhiều lần
- Dự án thất bại, trễ hạn, vượt quá ngân sách.
- Khách hàng không hài lòng về chất lượng sản phẩm
- Nội bộ nhóm mất lòng tin
Theo chia sẻ của ông Ken Schwaber - Creator of Scrum, Founder of Agile Alliance, về nguyên nhân của thực trạng này: “75% các nhóm dùng Scrum đang không nhận được giá trị vì dùng sai”. Scrum chỉ thực sự thành công khi doanh nghiệp áp dụng đúng bản chất và đồng bộ ngay từ đầu, từ nhân viên đến cấp quản lý, từ đội nhóm đến toàn thể công ty.
Đó chính là lý do Học viện Agile đã xây dựng khóa đào tạo Quản trị dự án Agile (Agile Project Management) để nhóm dự án áp dụng mô hình Scrum hiệu quả nhất, với sự dẫn dắt của các giảng viên giàu kinh nghiệm.
Khóa học này được xây dựng dựa trên khung kiến thức PMI-ACP của Project Management Institute, Scrum Framework trong quản trị dự án, cung cấp kiến thức về quản trị dự án theo Agile một cách bài bản, hệ thống, cùng với đó là các phương pháp và công cụ thực hành giúp triển khai dự án hiệu quả và tối ưu chi phí.
Khóa học được thiết kế dành cho:
- Các chủ doanh nghiệp đang tìm kiếm phương pháp triển khai mới đột phá cho dự án và công ty
- Quản lý dự án mong muốn áp dụng Agile trong dự án để kiểm soát tiến độ, chi phí và tăng khả năng thích ứng với thay đổi
- Team Leader mong muốn áp dụng mô hình Agile cho đội nhóm để tăng năng suất làm việc và sự gắn kết giữa các thành viên
- R&D Manager, QA, Business Analyst, Developer muốn tìm hiểu bài bản về quản lý dự án theo Agile để áp dụng trong công việc
Khóa học sẽ giúp bạn:
- Có được tầm nhìn bao quát về một dự án hiệu quả theo đúng chuẩn Agile
- Có khả năng định hướng một dự án chuẩn xác ngay từ khi bắt đầu
- Nâng cấp kỹ năng tổ chức đội dự án hiệu suất cao và điều phối mối quan hệ với các bên liên quan
- Biết cách lập kế hoạch và thực thi dự án theo Agile để quản lý rủi ro, cải tiến liên tục và thích ứng nhanh với các thay đổi
- Nắm được cách kiểm soát tiến độ và chi phí của dự án, nhất là các dự án quy mô lớn và phức tạp
- Nâng cao năng lực quản lý tầm chiến lược cũng như mở rộng năng lực quản trị dự án của tổ chức
Bài viết liên quan:
- Các kiến thức chung về Agile & Scrum
Khóa học liên quan:
- Khóa học Quản trị dự án Agile
- Khóa học Scrum thực chiến
- Khóa học kỹ năng thiết yếu dành cho Scrum Master
- Khóa học Certified Scrum Master