Quy trình SCRUM

10 972 0
Quy trình SCRUM

Đang tải... (xem toàn văn)

Thông tin tài liệu

Team Assignment 02 QUY TRÌNH SCRUM Phiên bản 1.0 Được viết bởi Nhóm 8 09/10/2014 Copyright © 2014 by Team 08. All Rights Reserved. Team Assignment 02 – Quy trình Scrum Page 2 Mục lục Lịch sử sửa chữa các phiên bản Tên Ngày tháng Lý do thay đổi Phiên bản Huy Hoàng 09/10/2014 Bản phác thảo 1.0 draft 1 1.0 approved Tài liệu tham khảo • http://hanoiscrum.net/hnscrum/article/91-nam-phut-vi-scrum • http://www.vntesters.com/tong-quan-scrum/ • http://tech.blog.framgia.com/vn/?p=808 • http://iviettech.vn/blog/283-co-ban-ve-scrum.html • http://duongtrongtan.wordpress.com/2012/03/29/v%E1%BB%81-ba-tr%E1%BB%A5-c %E1%BB%99t-c%E1%BB%A7a-scrum-va-s%E1%BB%B1-hi%E1%BB%87u-qu %E1%BA%A3-c%E1%BB%A7a-t%E1%BB%95-ch%E1%BB%A9c/ Copyright © 2014 by Team 08. All Rights Reserved. Team Assignment 02 – Quy trình Scrum Page 3 1. Giới thiệu: 1.1 Định nghĩa: - Scrum là một phương thức phát triển phần mềm chỉ ra cách để Team (nhóm phát triển) làm việc một cách hiệu quả để tạo ra sản phẩm phần mềm. Với nguyên tắc chủ đạo là chia nhỏ phần mềm cần sản xuất ra thành các phần nhỏ để phát triển (các phần nhỏ này phải đọc lập và Release được), lấy ý kiến khách hàng và thay đổi cho phù hợp ngay trong quá trình phát triển để đảm bảo sản phẩm release đáp ứng những gì khách hàng mong muốn. - Cũng có thể nói Scrum là một Framework đơn giản để phát triển phần mềm, trong đó nó qui định một số qui luật cơ bản nhằm đảm bảo tạo ra cấu trúc của nhóm dự án và giữ cho nó phát triển, sáng tạo và tạo ra sự hấp dẫn đối với những người tham gia. - 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 những lập trình viên trong nhóm và cùng nhau tạo ra những sản phẩm tốt. Thay vì chịu sự áp đặt từ bên ngoài. - Scrum được chia thành nhiều “đơn vị công việc” nhỏ hơn có tên là “Sprint”. 1.2 Khung làm việc của Scrum (Scrum Framework) có gì? - Các giá trị cơ bản trong Scrum được gọi là “Ba chân của Scrum” bao gồm “minh bạch”, ”thanh tra” và “thích nghi”. - Ba chân của Srum: Giúp cơ chế kiểm soát tiến trình thực nghiệm (empirical process control) có thể vận hành trơn tru. - Scrum Framework luôn đảm bảo thông tin (vấn đề, giải pháp, sáng kiến) được “minh bạch” và thông suốt cho toàn bộ tổ chức, nhằm mang lại khả năng ra quyết định tối ưu nhất để giải quyết công việc, nhằm đạt hiệu quả cao nhất. Trong quá trình phát triển, Scrum luôn đảm bảo nhóm phát triển tích cực tìm kiếm thông tin (vấn đề, giải pháp, ý tưởng v.v.) thông qua cơ chế “Thanh tra” đều đặn và liên tục (trong Daily Scrum, họp Sơ kết, hay họp Retrospective); từ đó mở đường cho các chiến lược và hành động “Thích nghi”, nhằm thích ứng với các thay đổi, đạt năng suất tối ưu, mang lại lợi ích tối đa cho dự án. Xuất phát từ cái lõi là "Ba chân", khung làm việc Scrum còn xây dựng các cơ chế, công cụ và phương pháp thực hành để đảm bảo cho các giá trị cốt lõi đó được phát huy. Trong Scrum, chúng được biết đến với các thuật ngữ như Đội hình Scrum (Scrum Team) với các vai trò (ScrumMaster, Product Owner và Đội sản xuất); các Hộp thời gian (Họp kế hoạch Sprint, Sprint, Họp Scrum hằng ngày, Sơ kết Sprint, Rà soát - Cải tiến Sprint); các Đồ nghề (Sprint Backlog, Product Backlog và Biểu đồ Burndown) và các Quy tắc Scrum ( mô tả rõ các thành tố trong Scrum framework được dùng như thế nào, giới hạn ra sao, nhằm mục đích gì v.v.) gắn kết các yếu tố lại với nhau. Copyright © 2014 by Team 08. All Rights Reserved. Team Assignment 02 – Quy trình Scrum Page 4 1.3 Một số đặc tính của Scrum: - Tập trung vào sản phẩm, sản phẩm mới là đích cuối cùng chứ không phải qui trình. - Thích ứng nhanh với sự thay đổi yêu cầu - Nhấn mạnh vai trò của Team, Team mới là người đưa ra giải pháp và thực hiện nó. - Tạo nên sự tương tác cao giữa khách hàng, nhóm phát triển sản phẩm để chắc chắn sản phẩm đầu ra đúng với yêu cầu của khách hàng. 1.4 Một số kĩ thuật được sử dụng trong Scrum: - Evolution Design - Refactoring - Agile Estimation - Pair Programming - Continuous Integration - Test – driven Development Copyright © 2014 by Team 08. All Rights Reserved. Team Assignment 02 – Quy trình Scrum Page 5 - 1.5 Tại sao nên sử dụng Scrum? - Sản phẩm của mối dự án phần mềm không giống nhau nên việc áp dụng để phát triển hàng loạt là rất khó khăn. Do vậy, nếu để có một qui trình chi tiết áp dụng được để phát triển cho tất cả các sản phẩm thì đó là một tác phẩm đồ sộ và tốn kém. Giả sử có một qui trình như vậy thì việc nhớ để áp dụng nó một cách hiệu quả cũng là một thách thức lớn. - Phần mềm là một sản phẩm phức tạp nên ngay từ đầu khách hàng khó có thể hình dung đầy đủ các yêu cầu đặt ra cho sản phẩm mà phải qua quá trình phát triển những chi tiết ấy mới hình thành nên việc ứng phó tốt với những thay đổi yêu cầu sẽ giúp giảm bớt rủi ro. Scrum đáp ứng rất tốt cho vấn đề này. - Như chúng ta đã nói ở trên quá trình phát triển phần mềm khá phức tạp và có nhiều khác nhau giữa các sản phẩm nên nếu không trực tiếp tham gia sản xuất sẽ rất khó hiểu hoặc hiểu không đúng. Do vậy, hãy để cho Team phát triển quyết định giải pháp cho sản phẩm và khách hàng quan tâm đến chức năng của sản phẩm để đáp ứng nhu cầu của họ là tốt nhất. - Khách hàng nên tham gia vào quá trình phát triển phần mềm để đảm bảo sản phẩm đầu ra đáp ứng nhu cầu phát triển của mình. - Một số tổ chức trên scrumalliance.org thống kê rằng trước khi áp dụng SCRUM tỷ lệ thành công của các dự án lớn chỉ 40% nhưng sau khi áp dụng SCRUM tỷ lệ này đã tăng lên 80%. 2. Các vai trò trong Scrum: Trong Scrum, đội ngũ tham gia phát triển phần mềm được phân chia ra ba vai trò với trách nhiệm rõ ràng để đảm bảo tối ưu hóa các công việc đặc thù. Ba vai trò này bao gồm: Product Copyright © 2014 by Team 08. All Rights Reserved. Team Assignment 02 – Quy trình Scrum Page 6 Owner (chủ sản phẩm), Scrum Master và Development Team (Đội sản xuất hay Nhóm Phát triển). Chủ sản phẩm (Product owner): Là người chịu trách nhiệm về sự thành công của dự án, người định nghĩa các yêu cầu và đánh giá cuối cùng đầu ra của các nhà phát triển phần mềm. Chịu trách nhiệm cho việc quản lý Product Backlog. Không phải là Quản lý dự án (Project Manager). Scrum Master: Là người có hiểu biết sâu sắc về Scrum và đảm bảo nhóm có thể làm việc hiệu quả với Scrum. Công việc đặc thù: loại bỏ trở lực. Không phải là Quản lý dự án (Project Manager). Đội sản xuất (Development Team): Một nhóm liên chức năng (cross-functional) tự quản lý để tiến hành chuyển đổi các yêu cầu được tổ chức trong Product Backlog thành chức năng của hệ thống, sẵn sàng chuyển giao ở cuối mỗi Sprint. 3. Các công cụ của Scrum: Scrum sử dụng các công cụ rất đơn giản nhưng hiệu quả để trợ giúp công việc. Chúng bao gồm bản yêu cầu của chủ sản phẩm được gọi là Product backlog, bản kế hoạch của từng Sprint (Sprint Backlog) và biểu đồ Burndown Chart. 3.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) của dự án. 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). Copyright © 2014 by Team 08. All Rights Reserved. Team Assignment 02 – Quy trình Scrum Page 7 Hình 1: Ví dụ về một Product Backlog 3.2 Sprint backlog: - Đây là bản kế hoạch cho một Sprint; là kết quả của buổi họp lập kế hoạch (Sprint Planning). Với sự kết hợp của Product Owner, nhóm 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 (TODO list). Hình 2: Ví dụ về một Sprint Backlog 3.3 Burndown Chart: - Đây là biểu đồ hiển thị xu hướng của dự án dựa trên lượng thời gian 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). - Biểu đồ burndown không phải là một thành tố tiêu chuẩn của Scrum theo định nghĩa mới, nhưng vẫn được sử dụng rộng rãi do tính hữu ích của nó. Copyright © 2014 by Team 08. All Rights Reserved. Team Assignment 02 – Quy trình Scrum Page 8 Hình 3: Ví dụ về một Burndown Chart 4. Quy trình vận hành của Scrum và các hoạt động: Quy trình bao gồm 5 hoạt động chính: - Sprint planning meeting - Sprint lifecycle - Daily meeting - Sprint Review - Sprint retrospective Copyright © 2014 by Team 08. All Rights Reserved. Team Assignment 02 – Quy trình Scrum Page 9 4.1 Sprint Planning Meeting: - Sau khi có bảng Product Backlog, nhóm sẽ chọn ra “User story” mà đảm bảo rằng sẽ hoàng thành đúng hạn từ bảng đó - Tạo Sprint Backlog trong đó có những “user story” được chọn và thiết lập mức độ ưu tiên. 4.2 Sprint Lifecycle: - Sau khi có Sprint Backlog, nhóm Scrum sẽ chọn các “User Story” và ước lượng thời gian phù hợp cho mỗi sprint. - Với mỗi Sprint, nhóm sẽ thực thi như là một mô hình Waterfall thu nhỏ. 4.3 Daily Meeting: - Mỗi buổi họp thường kéo dài 15 đến 30 phút. - Nội dung của buổi họp xoay quanh 3 câu hỏi:  Hôm qua bạn làm được gì?  Hôm nay bạn sẽ làm gì?  Bạn gặp khó khăn gì? - Nhóm phát triển sẽ tham gia buổi họp này. Khách hàng cũng có thể tham dự nhưng chỉ những người trong nhóm phát triển mới được đưa ra quyết định. 4.4 Sprint Review: - Nội dung của buổi họp bao gồm mọi thứ nhóm đạt được sau mỗi Sprint. - Các thành viên sẽ trình bày không quá 2 tiếng. - Và mọi người sẽ đánh giá dựa trên những mục tiêu ban đầu đề ra. - Thành viên tham dự: Những người có liên quan. 4.5 Sprint Retrospective: - Được thực hiện sau Sprint review. - Các thành viên tham dự: Những người có liên quan. - Mục đích của buổi họp là rút ra được kinh nghiệm gì và cải thiện ra sao. - Có thể sẽ có thêm User story mới và sẽ được đưa vào Product backlog. 5. Ưu, khuyết điểm của Scrum: 5.1 Ưu điểm: - Khách hàng nhanh chóng thấy được sản phẩm qua đó đưa ra phản hồi sớm. - Giảm thời gian dành cho quản lý, tăng thời gian dành cho việc phát triển - Có khả năng áp dụng được cho những dự án mà yêu cầu khách hàng không rõ ràng ngay từ đầu. Copyright © 2014 by Team 08. All Rights Reserved. Team Assignment 02 – Quy trình Scrum Page 10 5.2 Khuyết điểm: - Vai trò của PO rất quan trọng, PO là người định hướng sản phẩm. Nếu PO làm không tốt sẽ ảnh hưởng đến kết quả chung - Khi phát triển dự án theo Scrum thì dự án sẽ không có detail design. Do vậy mỗi thành viên của dự án cũng sẽ là một người thiết kế hệ thống. Do vậy nếu phối hợp không tốt thì có thể dẫn đến việc sản phẩm rất khó "sửa chữa" (thực tế ở VN, không có nhiều dự án có detail design). Copyright © 2014 by Team 08. All Rights Reserved.

Ngày đăng: 26/11/2014, 22:38

Từ khóa liên quan

Mục lục

  • Tài liệu tham khảo

  • 1. Giới thiệu:

    • 1.1 Định nghĩa:

    • 1.2 Khung làm việc của Scrum (Scrum Framework) có gì?

    • 1.3 Một số đặc tính của Scrum:

    • 1.4 Một số kĩ thuật được sử dụng trong Scrum:

    • 1.5 Tại sao nên sử dụng Scrum?

    • 2. Các vai trò trong Scrum:

    • 3. Các công cụ của Scrum:

      • 3.1 Product Backlog:

      • 3.2 Sprint backlog:

      • 3.3 Burndown Chart:

      • 4. Quy trình vận hành của Scrum và các hoạt động:

        • 4.1 Sprint Planning Meeting:

        • 4.2 Sprint Lifecycle:

        • 4.3 Daily Meeting:

        • 4.4 Sprint Review:

        • 4.5 Sprint Retrospective:

        • 5. Ưu, khuyết điểm của Scrum:

          • 5.1 Ưu điểm:

          • 5.2 Khuyết điểm:

Tài liệu cùng người dùng

Tài liệu liên quan