Cập nhật lần cuối vào 28/09/2022 bởi Phạm Mạnh Cường
Lần đầu tiên được công bố vào năm 1970, mô hình Waterfall diễn tả quá trình phát triển phần mềm. Mô hình Waterfall chú trọng vào sự tiến triển logic của các bước thực hiện trong suốt vòng đời phát triển của một phần mềm. Hiện nay mô hình này được sử dụng rộng rãi trong thị trường xây dựng phần mềm tại Việt Nam.
Trong bài viết này, PMA xin chỉ ra những ưu – nhược điểm và các ứng dụng của mô hình Waterfall. Để giúp bạn đọc hiểu rõ về mô hình này cũng như tiện so sánh với các mô hình khác đang có hiện nay.
1. Định nghĩa mô hình Waterfall
Mô hình Waterfall hay còn gọi là mô hình thác nước. Được biết tới là một trong những mô hình quản lý dự án dễ hiểu nhất hiện nay, mô hình Waterfall là một phương pháp quản lý dự án dựa trên quy trình thiết kế tuần tự và liên tiếp.
Trong mô hình Waterfall, các giai đoạn của dự án được thực hiện lần lượt và nối tiếp nhau. Giai đoạn mới chỉ được bắt đầu khi giai đoạn trước nó đã được hoàn thành.
2. Các giai đoạn của mô hình Waterfall
Một mô hình Waterfall đơn giản có 6 giai đoạn:
- Yêu cầu
- Thiết kế
- Thực hiện (xây dựng)
- Kiểm chứng
- Triển khai
- Bảo trì
2.1 Giai đoạn yêu cầu (Requirement Analysis)
Nhóm thực hiện tìm kiếm các yêu cầu liên quan đến dự án.
Ví dụ:
- Xác định dự án sẽ giải quyết nhu cầu kinh doanh nào
- Yêu cầu của người dùng đối với sản phẩm được phát triển bởi dự án
- Các ràng buộc và rủi ro đi kèm.
2.2 Giai đoạn thiết kế (Design)
Nhóm tạo ra thiết kế cho sản phẩm để giải quyết mọi yêu cầu, ràng buộc và mục tiêu thiết kế. Một bản thiết kế điển hình sẽ được hoàn thành một cách càng cụ thể càng tốt. Nó sẽ mô tả chính xác logic của hệ thống được đề cập trong phần phân tích sẽ được thực thi như nào.
2.3 Giai đoạn thực hiện hay giai đoạn xây dựng ( Development)
Sản phẩm được chế tạo để hỗ trợ thiết kế. Đôi khi, sản phẩm được xây dựng trong các đơn vị dùng để thí nghiệm và tích hợp trong giai đoạn tiếp theo.
2.4 Giai đoạn kiểm chứng (Test)
Các bộ phận của sản phẩm được kiểm tra. Nếu cần sẽ được tích hợp lại với nhau để thử nghiệm. Toàn bộ hệ thống được kiểm tra để tìm ra lỗi và đảm bảo các mục tiêu thiết kế.
2.5 Giai đoạn triển khai (Deployment)
Sản phẩm được thử nghiệm thực sự đi vào hoạt động. Đối với các dự án thuộc lĩnh vực công nghệ thông tin, sản phẩm được triển khai vào môi trường để người dùng có thể bắt đầu sử dụng nó. Đối với một dự án xây dựng, giai đoạn triển khai là khi tòa nhà hoàn toàn sẵn sàng cho người ở.
2.6 Giai đoạn bảo trì (Maintenance)
Là một khoảng thời gian giám sát ngắn. Trong đó nhóm dự án giải quyết các vấn đề của khách hàng. Đối với các dự án phần mềm, điều này thường có nghĩa phát hành các bản vá và cập nhật để sửa vấn đề. Trong các dự án khác, các điều chỉnh về môi trường được thực hiện để giải quyết vấn đề. Chẳng hạn như tối ưu hóa điều hòa không khí trong một tòa nhà mới.
3. Ưu điểm của mô hình Waterfall
Dù mô hình thác nước đã dần dần biến mất trong vài năm trở lại đây nhường chỗ cho các mô hình linh hoạt (Agile) hơn. Nhưng nó vẫn đem lại một số lợi ích, đặc biệt trong các dự án và tổ chức lớn mà cần các giai đoạn và hạn hoàn thành của công việc.
Thích nghi tốt với những nhóm linh hoạt
Dù đây không đơn thuần là mô hình duy nhất có ưu điểm này. Ứng dụng này đã giúp ích cho toàn bộ dự án được duy trì theo đúng định hướng phát triển. Có mục tiêu bao quát và thiết kế. Có cấu trúc nhờ việc phác thảo và tự động hóa tài liệu từ ngay giai đoạn đầu tiên.
Điều này hoàn toàn phù hợp với những nhóm lớn, thường có thành viên ra vào thường xuyên, không cố định nhưng vẫn có phép thiết kế cốt lõi của dự án.
Áp đặt một tổ chức có kết cấu chặt chẽ:
Đây chính là lợi thế và để duy trì mô hình Waterfall này. Cần có một tổ chức xây dựng dự án nghiêm ngặt, chính xác, tuân thủ theo thiết kế và cấu tạo của sản phẩm. Trong đó, những dự án lớn sẽ cần nhiều tiến trình cụ thể để giúp quản lý toàn bộ mọi vấn đề của dự án, từ việc lên ý tưởng, thiết kế, phát triển, triển khai và thử nghiệm.
Cho phép những thay đổi thiết kế sớm
Như chúng ta đều biết, trong những giai đoạn sau việc thay đổi thiết kế sẽ rất khó khăn. Nhưng với phương pháp Waterfall cho phép triển khai các thay đổi ở giai đoạn đầu của ứng dụng khá dễ dàng. Việc thay đổi này được diễn ra thuận lợi hơn là bởi chưa có mã hoặc triển khai nào ở giai đoạn này.
Thích hợp cho những dự án theo hướng đến mốc
Khi ứng dụng cấu trúc tuần tự của mô hình Waterfall, có những dự án rất phù hợp với những tổ chức, nhóm hoạt động tốt dựa vào yếu tố mốc thời gian cụ thể. Với các khung thời gian rõ ràng và cụ thể, các thành viên trong nhóm có thể dễ dàng hiểu, làm đúng theo tiến trình thời gian.
4. Nhược điểm của mô hình Waterfall
- Nó không phải là một mô hình lý tưởng cho một dự án kích thước lớn.
- Nếu yêu cầu không rõ ràng ngay từ đầu thì đó là phương pháp kém hiệu quả hơn.
- Rất khó di chuyển trở lại cái giai đoạn trước đó để thay đổi.
- Quá trình thử nghiệm bắt đầu khi quá trình phát triển kết thúc. Do đó, nó có nguy cơ cao của các lỗi được tìm thấy sau giai đoạn phát triển, và rất tốn kém để sửa các lỗi.
5. Khi nào nên áp dụng mô hình Waterfall
Việc áp dụng mô hình Waterfall được khuyến khích khi người thực hiện nắm rõ yêu cầu của dự án tốt nhất, đòi hỏi về tính rõ ràng và tính ổn định cao như:
- Nắm vững được công nghệ phát triển của công nghệ.
- Loại bỏ những yêu cầu mập mờ, không rõ ràng.
- Có lượng tài nguyên phát triển phong phú và trình độ chuyên môn, kỹ thuật cao.
- Có thể phù hợp cho dự án nhỏ, ngắn hạn.
Qua bài viết, PMA đã cung cấp những khái niệm cơ bản về mô hình Waterfall. Điều quan trọng của mô hình này là việc đi theo đúng các giai đoạn đã vạch ra. Đồng thời, mô hình Waterfall vẫn được áp dụng rất tốt tại các dự án quy mô nhỏ và ngắn hạn.