So sánh các mô hình phát triển phần mềm Thác nước và Scrum

1. Mô hình Thác nước 

Mô hình Thác nước (Waterfall model) là mô hình phát triển phần mềm cổ điển. Điểm đặc trưng của mô hình này là hoàn thành sản phẩm từ đầu đến cuối rồi mới giao cho khách hàng. Trong mô hình Thác nước, các giai đoạn được hoàn thành một cách tuần tự. Khi đã bước sang giai đoạn sau thì sẽ không thể quay lại giai đoạn trước đó. Output (đầu ra) của giai đoạn trước sẽ là input (đầu vào) của giai đoạn sau. 

Agile vs Iterative vs Waterfall models

Khi so sánh các mô hình phát triển phần mềm khác với mô hình Thác nước, nó vẫn có rất nhiều ưu thế. Đặc biệt là với các dự án ngắn hạn, quy mô nhỏ và ít thay đổi yêu cầu đặt ra. Ưu điểm lớn nhất của mô hình Thác nước là dễ tiếp cận, ứng dụng và quản lý. 

Mô hình Waterfall
Mô hình Waterfall

Nhược điểm chính của mô hình Thác nước chính là sự kém linh hoạt và gần như không thể điều chỉnh (do khi đã bước sang giai đoạn sau thì sẽ không thể quay lại giai đoạn trước đó). Thế nên, mô hình này không phù hợp với các dự án phức tạp, nhiều yêu cầu phát sinh trong quá trình phát triển phần mềm. 

2. Mô hình Scrum

Nếu như mô hình Thác nước thực hiện sản phẩm từ đầu tới cuối thì mô hình Scrum chia các yêu cầu ra thành nhiều giai đoạn. Đây chính là điểm khác biệt lớn nhất của Scrum khi so sánh với các mô hình khác. Mỗi giai đoạn sẽ hoàn thành một số tính năng nhất định (thường là những tính năng có cùng nhóm yêu cầu với nhau). Cuối mỗi giai đoạn, nhóm tính năng đã được code và test hoàn chỉnh, có thể lên demo và deliver luôn như một sản phẩm. Khách hàng sẽ được nhận phần mềm cuối cùng theo từng “gói” giai đoạn như vậy. 

 

Ưu điểm lớn nhất của mô hình Scrum chính là tính linh hoạt cao. Sản phẩm có thể được hoàn thiện những yêu cầu cơ bản trước. Những yêu cầu phát sinh hay cần điều chỉnh có thể làm sau. Do đó, mô hình Scrum phù hợp với những dự án phức tạp, có nhiều yêu cầu. Đặc biệt khi so sánh các mô hình phát triển phần mềm như Thác nước, càng thấy rõ ưu điểm của Scrum.

Ngoài mô hình Thác nước và Scrum còn có nhiều loại mô hình phát triển phần mềm khác cũng được ứng dụng rộng rãi. Có thể kể đến như mô hình xoắn ốc (Spiral model), mô hình tiếp cận lặp (Iterative model), mô hình tăng trưởng (Incremental model), mô hình chữ V (V model), mô hình RAD (RAD: Rapid Application Development),… 

3. So sánh các mô hình phát triển phần mềm Thác nước và Scrum

Khi so sánh các mô hình này với nhau, ta thấy mỗi loại đều có những ưu điểm và nhược điểm riêng. Có một số mô hình là sự kết hợp, cải tiến của một vài mô hình trước đó. Ví dụ như mô hình chữ V được cải thiện từ mô hình Thác nước, hay mô hình xoắn ốc là sự kết hợp giữa các tính năng căn bản của mô hình Thác nước với mô hình Prototyping. Những thay đổi này nhằm giúp các mô hình dễ dàng phù hợp với từng kiểu dự án khác nhau, giúp quá trình phát triển sản phẩm suôn sẻ hơn.

Waterfall được xem như dòng điện một chiều, muốn dự án đi nhanh thì giai đoạn đầu cần mô hình phát triển, phẳng, tuyến tính để đi "thẳng" một mạch đến mục tiêu ban đầu (không cần hoàn hảo, chỉ cần đủ tính năng tối thiểu MVP - Minimum Viable Product).


Scrum được ví như dòng điện xoay chiều, muốn đi xa hơn, chúng ta cần phát triển theo hướng xoáy ốc và liên tục.

Phạm Đình Trường: TIGO Solution CEO

Scrum là các lộ trình 2 chiều, không tuyến tính
Scrum là các lộ trình 2 chiều, không tuyến tính

Mô hình Thác nước và mô hình Scrum là hai trong số các mô hình phát triển phần mềm được ứng dụng rộng rãi nhất hiện nay. Với những ưu nhược điểm riêng biệt, developers cần nắm được đặc điểm riêng của từng dự án khi so sánh các mô hình phát triển phần mềm nhằm xác định được mô hình phù hợp nhất

Category