Mô hình thác nước là gì? Ưu nhược điểm của mô hình thác nước? Các giai đoạn trong mô hình thác nước? Dự án nào phù hợp với mô hình thác nước?
Mô hình thác nước được biết đến với vai trò đó là mô hình để quản lý các dự án thường xuyên được nhà phát triển phần mềm sử dụng, Cũng như các phương thức khác mô hình thác nước cũng có các ưu và nhược điểm khác nhau của nó.
Mục lục bài viết
1. Mô hình thác nước là gì?
Mô hình thác nước trong tiếng Anh là Waterfall Model.
Khi chúng ta nói tới mô hình thác nước có thể hiểu đơn giản đây là một trong những mô hình quản lí dự án dễ hiểu và dễ quản lí nhất hiện nay với mô hình thác nước là một phương pháp quản lí dự án dựa trên qui trình thiết kế tuần tự và liên tiếp và cụ thể trong mô hình thác nước, 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. Bên cạnh đó mô hình thác nước vốn được tạo với mục đích là một mô hình chu kì vòng đời phát triển phần mềm, nhưng cũng được ứng dụng trong các dự án có qui mô nhỏ và có mọi tiêu chuẩn được xác định rõ ràng từ ban đầu.
Mô hình thác nước là một mô hình có tính trình tự trong phát triển phần mềm mô hình nay chú trọng vào sự phát triển logic và lần lượt trong suốt vòng đời phát triển phần mềm trong đó những pha ở phía trước phải được hoàn thành trước khi những pha tiếp theo có thể bắt đầu. Mỗi pha trong mô hình thác nước có vai trò khác nhau trong SDLC.
Chúng ta đã từng biết đến mô hình thác nước khi mô hình này đã được giới thiệu trong một bài báo của Winston Royce năm 1970. Mặc dù mô hình này đã giảm mức độ trong vài năm trở lại đây khi các phương pháp linh hoạt xuất hiện, tuy nhiên mô hình thác nước vẫn đang được ưa chuộng bởi nhiều kỹ sư công nghệ thông tin vì tính logic và tuần tự của mô hình này.
2. Ưu nhược điểm của mô hình thác nước:
Ưu điểm:
– Thích hợp cho các dự án đơn giản hoặc nhỏ
– Nhóm dự án hiểu rõ các yêu cầu
– Dễ hiểu
– Dễ quản lí
– Không cần đề ra các mốc thực hiện
– Có nhiều tài liệu cung cấp thông tin cho khách hàng
Nhược điểm:
– Không cho phép thay đổi phạm vi dự án
– Không cho phép thay đổi yêu cầu của dự án
– Không có sản phẩm hoạt động được cho đến khi dự án gần hoàn thành
– Không dễ xử lí rủi ro bất ngờ
3. Các giai đoạn trong mô hình thác nước:
Một mô hình thác nước đơ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 và bảo trì.
+ Giai đoạn yêu cầu tại giai đoạn này thì nhóm thực hiện tìm kiếm các yêu cầu liên quan đến dự án, ví dụ như 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. Đây là giai đoạn nhóm phát triển phân tích yêu cầu của khách hàng một cách chi tiết để hiểu rõ mục đích cuối cùng của khách hàng là gì. Theo đó có thể tạo ra một tài liệu thiết kế chuẩn nêu rõ các chức năng, cách hoạt động, và ứng dụng như thế nào sau khi đưa vào sử dụng và khi làm tốt giai đoạn này, nhà quản lý sẽ giúp đội ngũ thực hiện trôi chảy các hạng mục công việc của nhóm mình.
+ Giai đoạn thiết kế tại giai đoạn này các hó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ế từ những yêu cầu được phân tích và thiết lập trong bước trên, nhóm thực hiện dự án tạo thiết kế cho sản phẩm bao gồm cả thiết kế phần cứng, phần mềm, ngôn ngữ lập trình, lưu trữ dữ liệu. Tại bước này nếu gặp vấn đề không thể thiết kế theo yêu cầu của khách hàng thì sẽ phải thực hiện lại bước xác định yêu cầu, đàm phán lại với khách hàng.
+ Giai đoạn thực hiện hay giai đoạn xây dựng tại giai đoạn này 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 và có thể xem đây là giai đoạn chính để xử lý các yêu cầu kỹ thuật nhằm đạt được mục đích của khách hàng.
Ví dụ như lựa chọn ngôn ngữ lập trình, môi trường phát triển, lựa chọn các dịch vụ tiện ích. Với dự án phát triển phần mềm, đây là lúc các lập trình viên xây dựng hệ thống theo thiết kế đã được lập ra một cách cụ thể, chi tiết, và đầy đủ các chức năng của sản phẩm.
+ Giai đoạn kiểm chứng: các bộ phận của sản phẩm được kiểm tra và nếu cần, sẽ được tích hợp lại với nhau để thử nghiệm và 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ế và chức năng người dùng yêu cầu đã được đáp ứng, và nhu cầu kinh doanh được giải quyết. Giai đoạn này là giai đoạn kiểm định sản phẩm, các thành viên QA và tester sẽ tiến hành test hoạt động của hệ thống, tìm ra các lỗi vận hành, lỗi hệ thống không đáp ứng đúng theo yêu cầu của khách hàng. Đây là giai đoạn quan trọng trước khi sản phẩm được triển khai thực tế tới tay khách hàng. Nếu phát hiện lỗi thì yêu cầu lại bên đội ngũ thực thi cụ thể là nhóm các lập trình viên sẽ phải sửa lại cho tới khi sản phẩm được hoàn thiện theo đúng thiết kế.
+ Giai đoạn triển khai: sản phẩm được thử nghiệm thực sự đi vào hoạt động và đố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 ở. Sản phẩm sau khi được tạo ra sẽ đưa vào môi trường thực tế để cho người dùng sử dụng và trải nghiệm đây chính là giai đoạn sản phẩm thực sự đi vào sử dụng và hoạt động theo yêu cầu. Tại đây nhóm thực thi dự án cần đảm bảo môi trường hoạt động đúng theo yêu cầu, không có lỗi trên server. Các tiêu chí test đã được đáp ứng hoàn toàn đảm bảo sản phẩm không gặp vấn đề gì và hoạt động theo đúng yêu cầu ban đầu của khách hàng.
+ Giai đoạn bảo trì: 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. Giai đoạn này là bước cuối của toàn bộ quy trình làm dự án. Nhóm phát triển sẽ nghe phản hồi ý kiến từ khách hàng, giải quyết các vấn đề phát sinh và duy trì ứng dụng luôn trong trạng thái hoạt động tốt nhất. Theo đó ta thấy trong các dự án phần mềm, thường sẽ là giai đoạn mà các bản update được phát hành để cập nhật và sửa lỗi.
4. Dự án nào phù hợp với mô hình thác nước:
Để tìm dự án phù hợp với mô hình thác nước là một câu hỏi thường được đặt ra, cụ thể mô hình này phù hợp với các dự án quy mô lớn lớn, yêu cầu duy trì các giai đoạn và thời hạn theo đúng kế hoạch đã lập ra hoặc các dự án đã được thực hiện nhiều lần mà ít xảy ra phát sinh trong quá trình thực thi đặc biệt phù hợp trong dự án sản xuất và xây dựng các sản phẩm vật lý và theo các đơn đặt hàng, có thể dễ dàng tham khảo áp dụng các quy trình quản lý từ các dự án trước đó vào công việc hiện tại với rất ít hoặc không cần điều chỉnh.
Tóm lại, từ các thông tin mà chúng tôi chia sẻ như trên ta thấy với mô hình thác nước (waterfall) nó là một phương thức quản lý dự án bao gồm các giai đoạn được sắp xếp logic và khi chúng ta áp dụng mô hình, tất cả thành viên tham gia dự án sẽ vai trò của mình nằm ở đâu, khi nào mình cần bắt đầu thực hiện vai trò đó. Bên cạnh đó cũng không phải dự án nào cũng có thể áp dụng waterfall mà thông thường chúng ta thấy với mô hình này phù hợp với kiểu dự án có yêu cầu cụ thể, chính xác ngay từ đầu và ít thay đổi và theo đó nên ngoài kiểu mô hình này, hãy tham khảo thêm những phương pháp quản lý dự án khác để sử dụng linh hoạt với từng khách hàng khác nhau.
Như vậy qua bài viết này ta thấy với mô hình thác nước này ta thấy có rất nhiều lợi ích đối vưới việc ứng dụng nên thông qua đó có thể xem xét kĩ lướng trước khi quyết định thực hiện theo mô hình này.