Những người mới biết đến Agile thường không hiểu rằng có nhiều loại phương pháp Agile khác nhau. Một trong những quy trình Agile phổ biến nhất là phương pháp Scrum. Nhiều doanh nghiệp liên hệ với Viện Phần Mềm, nhận thấy rằng quy trình kinh doanh truyền thống không còn hiệu quả nữa vì ngày càng có nhiều thay đổi như là nhu cầu khách hàng, yêu cầu dự án hay các công việc hỗ trợ khác…khiến họ không nắm bắt kịp xu hướng, và nhiều quản lý dự án, quản lý sản phẩm và các nhóm phát triển phần mềm đang chuyển từ phương pháp truyền thống Waterfall sang phương pháp Agile.
Phương pháp Agile
Phương pháp Agile được giới thiệu lần đầu tiên vào năm 2011 trong “Agile Manifesto” được tổng hợp tại Utah. Agile Manifesto phác thảo 12 nguyên tắc quan trọng, bao gồm thông tin liên lạc (communication), hợp tác (collaboration), tầm quan trọng của phần mềm, cởi mở để thay đổi.
Các phương pháp Agile cơ bản đặt cùng nhau như một giải pháp phá vỡ cạm bẫy được kết hợp với mô hình Thác nước (Waterfall). Là một khuôn khổ quản lý linh hoạt hơn, Agile cho phép các nhóm vượt qua mô hình tuần tự truyền thống và hoàn thành nhiều việc hơn (work done) trong một khoảng thời gian ngắn hơn.
Nhóm Agile không nhận ra là có nhiều loại khác nhau của phương pháp Agile, một trong số đó và phổ biến nhất là Scrum.
Phương pháp Scrum
Hầu hết các nhóm chuyển từ Agile sang sử dụng Scrum vì nó đơn giản và linh hoạt. Định nghĩa trên trang Scrum Methodology.com: “Scrum là duy nhất bởi vì nó giới thiệu ý tưởng về “kiểm soát quá trình thực nghiệm”. Vì Scrum sử dụng những tiến bộ thực tế của dự án – không phải là một dự đoán tốt nhất hoặc dự báo không rõ ràng – để lập kế hoạch và tiến độ phát hành”
Phương pháp Scrum khác với các phương pháp khác?
– Scrum có 3 vai trò: Product Owner, Team members, Scrum Master.
– Dự án chia thành các giai đoạn gọi là Sprint, mỗi Sprint kéo dài từ 1-3 tuần
– Vào cuối mỗi Sprint, tất cả các bên liên quan (stakeholders) họp nhau để đánh giá tiến trình và kế hoạch cho giai đoạn tiếp theo
– Lợi ích của Scrum là điều chỉnh hướng đi của dự án dựa vào các công việc đã hoàn thành chứ không dựa trên suy đoán hay dự đoán
Quản lí dự án Scrum là gì?
Scrum là một trong những phương pháp quản lý dự án linh hoạt – Agile hoặc framework được sử dụng chủ yếu cho các dự án phát triển phần mềm với mục tiêu cung cấp phần mềm mới mỗi 2-4 tuần. Nó là một trong các phương pháp được ảnh hưởng bởi Agile Manifesto, bao gồm một tập hợp các giá trị và nguyên tắc hướng dẫn làm thế nào để phát triển phần mềm chất lượng cao nhanh hơn, hiệu quả hơn.
Ai sử dụng phương pháp Agile Scrum?
Scrum được những nhà phát triển phần mềm sử dụng rộng rãi. Thực tế nó là phương pháp Agile phổ biến nhất, có khoảng 72% đội ngũ phần mềm sử dụng Scrum hoặc Scrum hybrid. Tuy nhiên, Scrum đã lan rộng đến các chức năng kinh doanh khác bao gồm IT và Marketing trong đó đặc biệt là Digital Marketing, khi phải phát triển những dự án mơ hồ và phức tạp. Đội ngũ lãnh đạo cũng dựa vào thực tiễn quản lý Agile của họ về Scrum, thường kết hợp với Lean và Kanban (phân nhóm quản lý dự án Agile).
Phương pháp Scrum mang lại lợi ích gì?
- Năng suất cao hơn
- Sản phẩm có chất lượng tốt hơn
- Giảm thời gian chờ ra thị trường
- Cải thiện sự hài lòng của các bên liên quan
- Hoạt động nhóm tốt hơn
- Nhân viên hạnh phúc hơn
Các thành phần của phát triển Srcum Agile là gì?
Phương pháp Scrum được xác định bởi vai trò của nhóm, events, công cụ, và các quy tắc..
Nhóm phát triển (Nhóm Scrum)
Nhóm phát triển thường có 7 +/- 2 thành viên và không có nhóm trưởng để giao nhiệm vụ hoặc quyết định giải quyết vấn đề nào. Nhóm như một đơn vị độc lập quyết định đề cập và giải quyết vấn đề như thế nào. Mỗi thành viên của nhóm Scrum là một phần không thể thiếu trong việc đưa ra các giải pháp và dự kiến sẽ thực hiện một sản phẩm từ khi bắt đầu đến khi hoàn thành.
Có 3 nguyên tắc chính trong Nhóm Scrum:
Product Owner
Product Owner là bên liên quan chính của dự án – thường là khách hàng nội bộ hoặc bên ngoài, hoặc là người phát ngôn cho khách hàng. Chỉ có một Product Owner truyền đạt sứ mệnh và tầm nhìn tổng thể của sản phẩm mà nhóm đang xây dựng. Product Owner có trách nhiệm cuối cùng trong việc quản lý product backlog và xác nhận hoàn thành phần tăng trưởng của công việc
ScrumMaster
ScrumMaster là người lãnh đạo tôi tớ cho Product Owner, Nhóm phát triển và Tổ chức, không có thẩm quyền trong nhóm nhưng khá nhiều người hỗ trợ, ScrumMaster đảm bảo rằng Nhóm luôn tôn trọng lý thuyết, practices và quy tắc Scrum. ScrumMaster bảo vệ Nhóm bằng cách làm bất cứ điều gì có thể để giúp Nhóm cho ra năng suất ở mức cao nhất. Điều này có thể bao gồm việc loại bỏ những trở ngại, tổ chức các cuộc họp và giúp các Product Owner chuẩn bị backlog.
Nhóm phát triển
Nhóm phát triển là nhóm tự tổ chức, liên chức năng được trang bị tất cả các kĩ năng để sản xuất ra phần tăng trưởng chuyển giao được, phần mềm chạy được khi hoàn thành mỗi sprint. Scrum mở rộng định nghĩa của thuật ngữ “phát triển” vượt ra ngoài hoạt động lập trình để bao gồm bất cứ ai tham gia vào việc tạo ra các phần mềm chạy được. Không có chức danh trong Nhóm phát triển và không có ai, kể cả các ScrumMaster, nói với Nhóm phát triển phải làm như thế nào để biến các hạng mục product backlog thành các gói phần mềm hoàn chỉnh có thể chuyển giao được
Họp Scrum
Sprint
Là một khung thời gian mà công việc cụ thể được hoàn thành và sẵn sàng thực hiện để đánh giá. Sprint thường kéo dài từ 2-4 tuần nhưng có thể ngắn như một tuần.
Họp lên kế hoạch Sprint
Là sự kiện có khung thời gian để xác định hạng mục product backlog sẽ được lựa chọn và làm sao để công việc đạt hiệu quả
Họp Scrum hằng ngày
Là buổi hội thoại ngắn (dưới 15 phút) để các thành viên theo kịp tiến độ nhanh chóng và minh bạch từ cuối buổi họp trước, lên kế hoạch cho buổi họp tiếp theo và giải quyết bất cứ trở ngại nào ngăn cản tiến độ
Họp sơ kết Sprint
Là sự kiện cho Nhóm trình bày các công việc hoàn thành trong Sprint. Product Owner kiểm tra công việc với tiêu chí chấp nhận được xác định trước và có thể chấp nhận hoặc từ chối công việc. Các bên liên quan hoặc khách hàng cung cấp thông tin phản hồi để đảm bảo rằng các phần công việc đã bàn giaođáp ứng nhu cầu kinh doanh.
Họp cải tiến Sprint
Là buổi họp nhóm cuối cùng trong Sprint để xác định cái nào đã lảm tốt, cái gì chưa tốt và làm sao để Nhóm cải tiến trong Sprint tiếp theo. Nhóm phát triển và Scrum Master tham dự buổi họp quan trọng này giúp tập trung vào kết quả tổng kết và xác định chiến lược cho gia đoạn cải tiến kế tiếp
Scrum Artifacts
Product Backlog
Là tài liệu quan trọng nhất vạch ra từng yêu cầu cho hệ thống, dự án hoặc sản phẩm. Product backlog có thể được dùng như một danh sách công việc phải làm bao gồm các hạng mục công trình, mỗi cái đều mang lại giá trị kinh doanh và được Product Owner định nghĩa
Sprint Backlog
Là danh sách cụ thể những hạng mục lấy từ product backlog phải được hoàn thành trong Sprint
Phần tăng trưởng
Là tổng hợp của tất cả các hạng mục product backlog đã được hoàn thành từ khi phát hành phần mềm mới nhất. Tùy thuộc vào Product Owner quyết định khi nào phần tăng trưởng được phát hành, trách nhiệm của Nhóm là đảm bảo mọi thứ bao gồm phần tăng trưởng đã sẵn sàng được phát hành, đây cũng được gọi là Phần mềm hoàn chỉnh có thể chuyển giao được (PSI).
Mối liên hệ của Srum với quản lý dự án Agile?
Scrum là một tiểu nhóm Agile:
- Agile là một bộ các giá trị và nguyên tắc mô tả sự tương tác và các hoạt động nhóm hằng ngày. Bản thân Agile không nguyên tắc hay cụ thể.
- Phương pháp Scrum tuân theo các giá trị và nguyên tắc của Agile, nhưng bao gồm các định nghĩa và thông số kỹ thuật xa hơn, đặc biệt là liên quan đến những phương pháp phát triển phần mềm.
Mặc dù được sử dụng để phát triển phần mềm linh hoạt, Agile Scrum đã trở thành framework thuận lợi nhất để quản lý dự án nói chung và đôi khi được gọi đơn giản là quản lý dự án Scrum hoặc phát triển phần mềm Scrum.
Những câu hỏi thường gặp về Scrum
Scrum là gì?
Scrum là một cách để quản lý dự án, thường là phát triển phần mềm. Phát triển phần mềm Scrum thường được coi là một phương pháp luận. Nhưng thay vì xem Scrum là phương pháp luận, hãy xem nó như là framework để quản lý một quá trình.
Nhóm phát triển Scrum chịu trách nhiệm cung cấp đầy đủ mô tả chi tiết thực hiện một dự án vì họ là người hiểu rõ nhất nên giải quyết vấn đề như thế nào.
Nhóm Scrum có hai đặc điểm cực kì quan trọng là: tự tổ chức (self-organizing) và liên chức năng (cross-functional). Trong nhóm Scrum tự tổ chức sẽ không có trưởng nhóm hay người đưa ra quyết định phải làm gì và giải quyết vấn đề nào, vì đó là những vấn đề được quyết định bởi cả nhóm.
Và trong nhóm liên chức năng Scrum, mọi người đều phải hiểu rõ công việc từ khi lên ý tưởng cho đến khi thực hiện.
Trong agile development, nhóm Scrum được hỗ trợ bởi hai vai trò cụ thể. Đầu tiên là Scrum Master được xem như là một huấn luyện viên, giúp các thành viên trong nhóm sử dụng các quy trình Scrum thuần thục nhất.
Vị trí còn lại là Product Owner (PO) có vai trò đại diện doanh nghiệp, khách hàng hay người dùng và hướng dẫn nhóm xây dựng sản phẩm
Ai nên học Agile Scrum?
Khóa học này có thể dành cho tất cả mọi người, bất kỳ ai giữ vai trò hỗ trợ về hiệu suất, hiệu quả, và cải tiến liên tục của nhóm Team Leader hay người chịu trách nhiệm về việc sử dụng và/hoặc giới thiệu Scrum trong một dự án hoặc doanh nghiệp
Khóa học phù hợp cho tất cả thành viên làm phần mềm. Vai trò cụ thể phù hợp bao gồm các product managers và product analysts, Quản lý dự án, Team Leader, Kiến trúc sư, Software Developer, Software Tester, CIO và CTO
Các công cụ Agile Scrum (Artifacts)
Các công cụ Agile Scrum (Artifacts) tuy rất đơn giản nhưng hỗ trợ công việc rất hiệu quả. Chúng bao gồm Product backlog, Sprint Backlog và Product Increment.
1. Product backlog
Đây là danh sách ưu tiên các tính năng (feature) hoặc đầu ra khác của dự án, có thể hiểu như là danh sách yêu cầu (requirement) duy nhất của dự án. Product Backlog rất linh hoạt, nó liên tục thay đổi để xác định sản phẩm nào hữu ích hay mang tính cạnh tranh. Nó chứa các mô tả về tất cả các tính năng, chức năng, cải tiến, các hạng mục mong muốn, vv
Các hạng mục Product Backlog được tạo nên trong quá trình lập kế hoạch phát hành (Release Planning). Sau đó họ được cập nhật trong buổi họp lên kế hoạch Sprint (Sprint Planning) hoặc Backlog Groomings. Các hạng mục ưu tiên hàng đầu được chọn sẽ được phát triển trong Sprint và được xem xét trong buổi họp Sprint Review.
Công cụ Agile Scrum này do Product Owner chịu trách nhiệm sắp xếp độ ưu tiên cho từng hạng mục (Product Backlog Item) trong Product Backlog dựa trên các giá trị do Product Owner định nghĩa (thường là giá trị thương mại – business value). Các hạng mục ưu tiên hàng đầu thì rõ ràng hơn và có nhiều thông tin chi tiết hơn.
2. Sprint backlog
Loại công cụ Agile Scrum thứ hai là một loạt danh sách các hạng mục Product Backlog được chọn cho một Sprint; là kết quả dự đoán bởi Nhóm Scrum sau buổi họp lên kế hoạch (Sprint Planning); là những chức năng nào sẽ có mặt trong Incerment tiếp theo và các công việc cần thiết để cung cấp các chức năng đó.
Với sự kết hợp của Product Owner, nhóm Scrum sẽ phân tích các yêu cầu theo độ ưu tiên từ cao xuống thấp để hiện thực hóa các hạng mục trong Product Backlog dưới dạng danh sách công việc (TO-DO list).
Nhóm Scrum luôn phải cập nhật Sprint Backlog trong suốt một Sprint, có thể sử dụng biểu đồ Burndown Chart hay Task Board để dễ dàng nhìn thấy tình trạng hiện tại của công việc như “to do”, “in progress” hay “Done”
3. Product Increment
Là phần tăng trưởng mới phải sử dụng được và đáp ứng Định nghĩa của Done (DoD) của Nhóm Scrum vào cuối mỗi Sprint. Phần tăng trưởng này phải bao gồm mã đã được kiểm tra kỹ lưỡng, được xây dựng thành một file và sử dụng được trong tập tin trợ giúp (Help files) hoặc tài liệu hướng dẫn sử dụng.
Nếu tất cả mọi thứ hoạt động tốt và Nhóm phát triển đã ước tính tốt, phần tăng trưởng bao gồm tất cả các hạng mục đã được lên kế hoạch trong Backlog Sprint sẽ được thử nghiệm và lưu thành tài liệu.
Tham khảo: Internet và www.versionone.com
Ban biên tập: Viện Phần Mềm