+6

Tư tưởng Agile - Quy trình Scrum

1.Tổng quan

Agile là một phương pháp phát triển phần mềm linh hoạt để làm sao đưa sản phẩm đến tay người dùng càng nhanh càng tốt càng sớm càng tốt. Scrum là 1 dạng của mô hình Agile và là framework phổ biến nhất khi thực hiện mô hình Agile. Scrum là mô hình phát triển phần mềm lặp đi lặp lại. Những khoảng lặp cố định, thường kéo dài 1, 2 tuần được gọi là Sprint hoặc Iteration

2. 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.

3. Vì sao nên 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%.

4. Các nhân tố quan trọng trong Scrum

Một cách đơn giản có 03 thành tố quan trọng cấu thành nên Scrum: Tổ chức (Organization), Qui trình (Process), Tài liệu (Atifacts). Trong mỗi thành tố có 03 thành tố con. Như vậy, chúng ta chỉ cần hiểu và áp dụng được 9 thành tố này là có thể áp dụng Scrum.

Tổ chức (Organization) : Tổ chức nhóm dự án và Roles (Vài trò)

Product Owner (Người sở hữu sản phẩm) ScrumMaster (Người điều phối) Development Team (Nhóm phát triển)

Tài liệu (Atifacts): các kết quả đầu ra

Product Backlog (Danh sách các chức năng cần phát triển của sản phẩm) Sprint Backlog (Danh sách các chức năng cần phát triển cho mỗi giai đoạn) Estimation (Kết quả ước lượng của Team)

Qui trình(Process): Qui định cách thức vận hành của SCRUM

Sprint Planning meeting (Họp để hoạch định cho mỗi giai đoạn)

Sprint Review (Họp để tổng kết cho mỗi giai đoạn)

Daily Scrum Meeting (Họp review hàng ngày)

Sprint retrospective (Họp cải tiến sprint)

4.1 Tổ chức của dự án(Organization)

Product Owner

Product Owner là người sở hữu sản phẩm, người quyết định sản phẩm có những chức năng nào và là người quyết định Product Backlog. Thông thường Role này được khách hàng hoặc người đại diện cho khách hàng đảm nhận.

Scrum Master

Scrum Master là người đảm bảo các qui trình của Scrum được thực hiện đúng và thuận lợi, giúp đỡ cho Team thực hiện công việc phát triển sản phẩm một cách tốt nhất.

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

Một nhóm từ 4-7 kỹ sư phần mềm chịu trách nhiệm phát triển sản phẩm. Nhóm dự án phải làm việc với Product Owner để quyết định những gì sẽ làm trong Sprint (giai đoạn) này và kết quả sẽ ra sao. Đồng thời nhóm cũng thảo luận để đưa ra các giải pháp, ước lượng thời gian thực hiện công việc, họp đánh giá kết quả công việc. Nếu dự án lớn chúng ta cần chia ra thành các dự án nhỏ.

4.2 Tài liệu (Atifacts)

Product Backlog

Product Backlog là danh sách các chức năng cần được phát triển của sản phẩm. Danh sách này do Product Owner quyết định. Nó thường xuyên được cập nhật để đáp ứng được nhu cầu thay đổi của khách hàng cũng như các điều kiện của dự án.

Sprint Backlog

Sprint là một giai đoạn phát triển trong quá trình phát triển sản phẩm, nó được khuyến khích có chiều dài từ 1– 4 tuần. Mỗi Sprint được xác định bằng thời gian phát triển, danh sách các chức năng phát triển (Sprint Backlog). Mỗi sprint phải Release được sản phẩm để đảm bảo lấy được ý kiến khách hàng, qua được các qui trình phát triển của sản phẩm nhằm rút kinh nghiệm và tránh sự cố sau này.

Sprint Backlog là danh sách chức năng phát triển trong Sprint, nó được quyết định bởi cuộc họp Sprint Planning. Sprint Backlog là các chức năng được chọn từ Product Backlog dựa trên mức độ ưu tiên và khả năng của team phát triển.

Estimation (Ước lượng)

Trong Scrum thì các thành viên của Team sẽ tự lựa chọn Task cho mình và ước lượng thời gian phát triển dự kiến và chịu trách nhiệm với ước lượng này. Sau khi hoàn thành sẽ cập nhật vào bảng Sprint Backlog.

4.3 Qui trình(Process)

Sprint Planning meeting (Họp lập kế hoạch cho mỗi Sprint)

Như chúng ta đã biết ở trên Sprint là một giai đoạn phát triển có thời gian từ 2-4 tuần. Để chuẩn bị cho mỗi Sprint team cần phải họp để xác định những chức năng nào (story) sẽ phát triển trong giai đoạn này (sprint backlog), kết quả đầu ra dự kiến (Goal, kết quả Release), Estimate (ước lượng ai làm việc gì) và thảo luận các giải pháp. Tất cả được ghi thành biên bản để có cơ sở thực hiện và Review sau này.

Sprint Review

Là cuộc họp để đánh giá lại kết quả thực hiện của Sprint vừa qua, xác định những chức năng được Release, những chức năng tiếp tục sửa hoặc phát triển thêm, xác định những vấn đề phát sinh và bàn phương án giải quyết, bổ sung Product Backlog v….

Daily Scrum Meeting (Hay còn gọi là Standup Meeting)

Daily Scrum Meeting là cuộc họp hàng ngày và được đề nghị không quá 15 phút và họp đứng để đảm bảo thời gian họp không bị kéo dài vào đầu mỗi ngày, mỗi thành viên chỉ trả lời 3 câu hỏi:

– Hôm qua bạn làm được gì?

– Phát sinh vấn đề gì?

– Hôm nay bạn sẽ làm gì

Nếu thành viên gặp vấn đề thì nên làm việc riêng để giải quyết để không mất nhiều thời gian của các thành viên. Scrum Master phải đảm bảo cuộc họp này được thực hiện đúng qui định.

Sprint retrospective (Họp cải tiến sprint)

Dưới sự trợ giúp của Scrum Master, nhóm phát triển sẽ rà soát lại toàn diện Sprint vừa kết thúc và tìm cách cải tiến quy trình làm việc hay bản thân sản phẩm để đưa vào các Sprint tiếp theo.

Kết luận

Bài viết này chỉ hy vọng giúp các bạn hiểu cơ bản về Scrum và lý do vì sao nó được chọn làm mô hình phát triển phần mềm được ưa chuộng nhất hiện nay. Bạn cần tìm hiểu thêm để có thể hiểu sâu hơn về mô hình này cũng như áp dụng hiệu quả nó vào công ty bạn.

Tài liệu tham khảo: https://itviec.com/blog/agile-la-gi-scrum-la-gi/, http://www.scrumalliance.org/


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí