CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1. Qui trình phát triển phần mềm linh hoạt
2.1.5. Các phương pháp Agile
2.1.5.1. Phương pháp Scrum
Giới thiệu: Scrum là một cách tiếp cận nhanh để phát triển phần mềm
theo triết lý của Agile, sử dụng cơ chế lặp (Iterative) và tăng dần (Incremental) để tối ưu hóa hiệu quả và kiểm soát rủi ro.
Hình 2.2.Qui trình Scrum
(Abrahamsson, Salo, Ronkainen & Warsta, 2002)
Theo phương pháp Agile, dự án phần mềm được chia nhỏ thành nhiều phân đoạn, mỗi phân đoạn là một quá trình phát triển phần mềm thu nhỏ, với đầy đủ các công đoạn từ tiếp nhận yêu cầu, phân tích thiết kế, lập trình, kiểm thử và chuyển giao. Các phân đoạn này được gọi là Sprint.
Giá trị cốt lõi:
- Minh bạch (transparency): Các thông tin trong quá trình phát triển
sản phẩm phải minh bạch giữa các bên, các thành viên trong nhóm và giữa các nhóm.
- Thanh tra (inspection): Tính cải tiến liên tục, thích nghi với
sự thay đổi đòi hỏi Scrum phải thanh tra, kiểm soát chặt chẽ tiến độ công việc cam kết.
- Thích nghi (adaptation): Đáp ứng nhanh sự thay đổi từ khách hàng,
qua đó đem lại giá trị cao cho sản phẩm cũng như gia tăng sự hài lòng từ khách hàng.
Các vai trò trong Scrum:
- Product Owner (chủ sản phẩm): 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.
- 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.
- TeamMember (nhóm phát triển): Một nhóm liên chức năng (cross- functional) tự quản lý để hiện thực hóa các yêu cầu.
Các cuộc họp trong Scrum: Nhằm tạo ra luồng thông tin gắn kết
trong quá trình phát triển sản phẩm, Scrum đưa ra bốn “cuộc họp”
(ceremony) trong nhóm như sau:
- Sprint Planning (Họp Kế hoạch Sprint): Lập kế hoạch cho từng Sprint
(từng phân đoạn phát triển ngắn hạn) thông qua tương tác với khách hàng nhằm làm rõ những yêu cầu cần thiết ưu tiên kế tiếp.
- Daily Scrum (Họp Scrum hằng ngày): Họp chia sẻ tiến độ công việc trong nhóm phát triển, nhằm phát hiện ra những rủi ro, khó khăn và kịp thời khắc phục.
- Sprint Review (Họp Sơ kết Sprint): Họp đánh giá kết quả hoàn thành
cho một phân đoạn.
- Sprint Retrospective (Họp Cải tiến Sprint): Họp tìm ra những trạng thái cần cải tiến cho phần sản phẩm của phân đoạn vừa kết thúc.
Các tài liệu trong 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 (Product backlog), bản kế hoạch của từng Sprint (Sprint backlog) và biểu đồ Burndown chart.
- Product backlog: Các yêu cầu chức năng của hệ thống, của module cần thực hiện trong sprint. ScrumMaster sẽ sắp xếp thứ tự ưu tiên các nhiệm vụ cần làm (thông qua tương tác trực tiếp với khách hàng để xác định giá trị cần đạt được của module).
- Sprint backlog: Chi tiết danh sách công việc cần phải làm trong sprint.
- Burndown chart: Biểu đồ thể hiện khối lượng công việc cũng như thời gian còn lại của dự án.
2.1.5.2. Extreme Programming (XP) XP là một cách tiếp cận nhanh để phát triển phần mềm tuân thủ triết lý Agile. XP hoạt động theo mô hình lặp và tăng trưởng. Sản phẩm được chia ra thành các phần tăng trưởng nhỏ, mỗi phần được phát triển trong vòng một hoặc vài tuần gọi là một phân đoạn lặp (Iteration).
Mỗi phân đoạn là một quá trình hoàn chỉnh từ khâu lên kế hoạch đến khâu kiểm thử sản phẩm.
Hình 2.3.Vòng đời của qui trình XP
(Abrahamsson, Salo, Ronkainen & Warsta, 2002)
Chính vì việc cập nhật từng phần nhỏ hoàn chỉnh của sản phẩm giúp cho khách hàng có những thay đổi, hiệu chỉnh phù hợp cho sản phẩm cuối và cũng giúp cho nhóm phát triển đáp ứng tốt những thay đổi này trong các phân đoạn tiếp theo.