Waterfall vs Agile - Cái nào tốt hơn?
WATERFALL vs AGILE
1. MÔ HÌNH THÁC NƯỚC - WATERFALL
Khi có một yêu cầu phát triển phần mềm cần đi qua tuần tự các giai đoạn:Khách hàng chỉ có thể sử dựng được phần mềm khi tất cả các giai đoạn hoàn thành. Nghĩa là, từ lúc khách hàng cung cấp yêu cầu cho công ty phần mềm thì chỉ nguồi run đùi chờ tới ngày công ty phần mềm bàn giao sản phẩm cho mình => Điều này sẽ có một rủi ro là khách hàng không biết đội làm phần mềm có hiểu đúng yêu cầu của mình không? hay mình truyền đạt yêu cầu cho công ty phần mềm có thiếu sót gì không?
Nên sử dụng Waterfall khi nào?
- Dự án đơn giản, thời gian hoàn thành nhanh chóng- Khách hàng biết chính xác họ cần gì và muốn gì => yêu cầu về phần mềm rõ ràng và cố định, không có bất kì thay đổi nào về nghiệp vụ
Ưu điểm
- Dễ sử dụng, tiếp cận- Waterfall bỏ rất nhiều công sức cho Requirements phase do đó nguồn tài liệu cho hệ thống phần mềm rõ ràng => dễ dàng trainning cho người mới cũng như trong giai đoạn bảo trì phần mềm
Nhược điểm
- Cứng nhắc, không thể quay lại phase trước nếu có bất kì sự thay đổi nào- Thời gian khách hàng nhận được sản phẩm lâu (mất hàng tháng, hàng năm)
2. MÔ HÌNH AGILE
- Chia quá trình phát triển phần mềm thành nhiều vòng lặp (iteration), mỗi vòng lặp sẽ bàn giao một phần nào đó của phần mềm- Khách hàng có thể thay đổi yêu cầu bất cứ lúc nào trong dự án
- Cần sự tương tác của khách hàng thường xuyên thường xuyên
- Tập trung vào phát triển chức năng phần mềm hơn là xây dựng tài liệu
Nên sử dụng Agile khi nào?
- Khách hàng chưa định nghĩa được sản phẩm cuối cùng của họ là gì? => đang trong quá trình lên ý tưởng xây dựng nghiệp vụ- Mục tiêu của dự án là phát triển nhanh để có cái bàn giao cho khách hàng
Ưu điểm
- Xây dựng đội làm việc có khả năng làm việc nhóm cao - teamwork- Chức năng của hệ thống được xây dựng nhanh chóng để bàn giao cho khách hàng
- Dễ bổ sung, thay đổi yêu cầu
Nhược điểm
- Phụ thuộc nhiều vào sự tương tác của khách hàng- Ít tài liệu => khó training cho người mới
--------------------------------------------------------------------
Như vậy thì mô hình nào tốt hơn ?
Trả lời: 2 mô hình gần như đối lập nhau (cứng nhắc cho Waterfall >< linh hoạt cho Agile) nên khi nói cái nào tốt hơn cần phải phụ thuộc vào từng dự án: mức độ rõ ràng về yêu cầu, mức độ linh hoạt cần cho dự án để xác định cái nào tốt hơn cho thời điểm hiện tại của dự án
Nhận xét
Đăng nhận xét