Giới thiệu về mô hình phát triển phần mềm Agile/Scrum
Bài đăng này đã không được cập nhật trong 5 năm
Đa phần mỗi người khi học về CNTT đều từng nghe qua về một số mô hình phát triển phần mềm như: Mô hình thác nước (Waterfall), V-Model, Xoắn ốc, mô hình tăng trưởng, mô hình phát triển lặp, mô hình Agile-Scrum... Hôm nay mình sẽ giới thiệu với mọi người mô hình Agile-Scrum - một mô hình phát triển phần mềm đang được sử dụng phổ biến hiện nay tại các công ty CNTT.
1. Agile
1.1. Agile là gì?
Agile là tập hợp các phương thức phát triển lặp và tăng dần trong đó các yêu cầu và giải pháp được phát triển thông qua sự liên kết cộng tác giữa các nhóm tự quản và liên chức năng. Agile là cách thức làm phần mềm linh hoạt để đưa ra sản phẩm đến tay người dùng các sớm càng tốt. Sau đó khách hàng sẽ dùng thử và phản hồi lại để đội ngũ phát triển tiếp tục làm ở các giai đoạn tiếp theo.Tùy từng dự án mà thời gian release ra sản phẩm có thể dài hoặc ngắn.
Agile hoạt động dựa trên 4 tuyên ngôn sau:
- Cá nhân và sự tương hỗ quan trọng hơn quy trình và công cụ.
- Sản phẩm dùng được quan trọng hơn tài liệu về sản phẩm.
- Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng.
- Phản hồi với sự thay đổi quan trọng hơn bám theo kế hoạch.
1.2. Ưu điểm
- Khách hàng được tham gia vào quá trình phát triển và có thể thấy được một phần của sản phẩm sau mỗi giai đoạn => đưa ra phản hồi.
- Người kiểm thử tham gia vào ngay từ đầu => phát hiện lỗi sớm.
- Rút ngắn thời gian phát triển vì mô hình này chia dự án thành các phần nhỏ để phát triển.
- Đáp ứng kịp thời nếu có sự thay đổi.
- Tăng cường tinh thần làm việc nhóm.
1.3. Nhược điểm
- Luôn lắng nghe ý kiến của khách hàng với những thay đổi => thời gian có thể bị kéo dài.
- Khó khăn trong việc xác định ngân sách và thời gian.
- Không chú trọng vào thiết kế và tài liệu.
1.4. Ứng dụng
Thường được áp dụng cho những dự án có nhiều thay đổi, chưa có yêu cầu rõ ràng.
2. Scrum
2.1. Scrum là gì?
Scrum là một trong những phương pháp phổ biến nhất để thực thi mô hình Agile (Tỉ lệ được sử dụng 52% trên tổng số các phương pháp).
- Đối với scrum dự án được chia thành nhiều giai đoạn nhỏ để thực hiện hay còn gọi là Sprint.
- Mỗi Sprint thường kéo dài từ 1 tuần đến 4 tuần.
- Đầu sprint sẽ lên kế hoạch làm những công việc gì. Cuối sprint là 1 sản phẩm có thể demo và chạy được.
- Hoàn thành sprint 1, tiếp tục làm sprint 2, ... cho đến khi hoàn thành hết các yêu cầu.
- Hàng ngày cả team sẽ có 1 cuộc họp, các thành viên sẽ báo cáo hôm qua tôi đã làm gì? Hôm nay tôi sẽ làm gì? Và có gặp khó khăn gì không?
2.2. Các vai trò trong Scrum
Có 3 vai trò chính:
- Product Owner (PO): Là người đại diện của khách hàng đưa ra những yêu cầu của sản phẩm, hiểu rõ nhất về sản phẩm và cũng là người tiếp nhận đầu ra, đánh giá kết quả của dự án.
- Scrum Master: Là người thiết lập các cuộc họp trong giai đoạn phát triển. Là người hỗ trợ, định hướng cho team đảm bảo mọi người đang thực hiện đúng theo tiến trình. Scrum master còn giải quyết các vấn đề cản trở ảnh hưởng đến tiến độ công việc.
- Scrum Team: Bao gồm cả developer, QA. Team sẽ tổ chức và quản lý công việc nhằm hoàn thành sản phẩm đề ra trong mỗi giai đoạn và đưa cho khách hàng. Mọi người trong team luôn hỗ trợ lẫn nhau.
2.3. Các cuộc họp trong Scrum
Có 4 cuộc họp quan trọng trong mỗi sprint như sau:
- Sprint Planning: Mọi người trong team sẽ gặp nhau, trao đổi yêu cầu của khách hàng và lập kế sẽ làm gì trong sprint tới.
- Daily Scrum Meeting: Cuộc họp sẽ kéo dài khoảng 15 phút, mọi thành viên sẽ trả lời các câu hỏi: Hôm qua tôi làm gì? Hôm nay tôi sẽ làm gì? Có gặp khó khăn gì không?
- Sprint Review Meeting: Kết thúc mỗi sprint team và PO sẽ đánh giá và quyết định những công việc nào đã hoàn thành, những công việc nào chưa hoàn thành. Team sẽ trình bày và demo ra những gì họ đã làm được trong sprint đó để khách hàng có thể đưa ra những phản hồi.
- Sprint Retrospective meeting: Mọi người họp và đưa ra những điểm tốt trong sprint này và những điểm chưa tốt để rút kinh nghiệm, và đưa ra những giải pháp cho các sprint tiếp theo.
2.4. Các yếu tố nòng cốt trong Scrum
Có 3 yếu tố nòng cốt trong Scrum là:
- Minh bạch: Mọi kế hoạch và công việc của các thành viên tất cả mọi người đều phải biết và công khai kể cả PO.
- Thanh tra: Phải thường xuyên thanh tra kiểm soát tiến độ công việc của mình xem đã hoàn thành đến đâu rồi có phát hiện điều gì bất thường không để kịp thời xử lý, đảm bảo tiến độ công việc.
- Thích nghi: Là đảm bảo rằng khi có một vấn đề mới hay có sự thay đổi nào từ phía khách hàng thì mọi người trong team sẽ có thể xử lý và đáp ứng theo cách thích hợp. Luôn phải thích nghi trọng mọi hoàn cảnh.
Hi vọng bài viết sẽ giúp ích cho các bạn!!!
Tài liệu tham khảo
https://vntesters.com/tuyen-ngon-cua-agile/
https://vi.wikipedia.org/wiki/Scrum_(mô_hình_phát_triển_phần_mềm)
All rights reserved