Chương 6: Waterfall: đặc điểm, các giai đoạn tuần tự, ưu/nhược điểm

Mục tiêu học

6.1 Waterfall là gì?

Waterfall (mô hình thác nước) áp dụng đúng 6 giai đoạn SDLC (Chương 2) theo thứ tự tuần tự, hoàn thành hẳn giai đoạn trước mới sang giai đoạn sau, giống nước chảy từ bậc thang cao xuống thấp — không chảy ngược lại.

flowchart TD
    P["Planning<br/>(2-4 tuần)"] --> R["Requirements<br/>(3-6 tuần)"]
    R --> D["Design<br/>(3-6 tuần)"]
    D --> I["Implementation<br/>(nhiều tháng)"]
    I --> T["Testing<br/>(3-6 tuần)"]
    T --> M["Deployment<br/>(1-2 tuần)"]

Đặc điểm cốt lõi: tài liệu yêu cầu (SRS — Chương 20) được "chốt" (sign-off) trước khi bắt đầu Design, và Design được chốt trước khi bắt đầu code. Mọi thay đổi sau khi chốt phải đi qua quy trình Change Request chính thức (Chương 18) — thường tốn thời gian và cần phê duyệt lại từ Sponsor.

6.2 Ví dụ Waterfall áp dụng cho FoodNow

Nếu FoodNow chọn làm theo Waterfall:

  1. Planning: Ban giám đốc phê duyệt ngân sách và mục tiêu tổng thể (giảm phụ thuộc app bên thứ ba, xây dữ liệu khách hàng riêng).
  2. Requirements: BA phỏng vấn toàn bộ stakeholder (ban giám đốc, quản lý chi nhánh, nhân viên giao hàng), viết BRD và SRS đầy đủ cho toàn bộ phạm vi app (đặt hàng, thanh toán, theo dõi đơn, chương trình khách hàng thân thiết) — tài liệu này được review và ký duyệt trước khi sang bước tiếp theo.
  3. Design: kiến trúc sư thiết kế toàn bộ hệ thống, Designer thiết kế toàn bộ giao diện dựa trên SRS đã chốt.
  4. Implementation: Dev code toàn bộ tính năng trong nhiều tháng, không có tính năng nào ra mắt cho người dùng thật cho đến khi xong hết.
  5. Testing: QA kiểm thử toàn bộ hệ thống một lượt.
  6. Deployment: ra mắt app hoàn chỉnh một lần duy nhất.

Điểm quan trọng: nếu ở tháng thứ 4 (đang Implementation), ban giám đốc đổi ý muốn thêm tính năng đặt bàn tại quán (một nhu cầu không có trong SRS ban đầu) — yêu cầu này phải qua Change Request, có thể làm trễ toàn bộ tiến độ vì nhiều phần thiết kế/code đã dựa trên phạm vi cũ.

6.3 Ưu điểm

6.4 Nhược điểm

6.5 Khi nào Waterfall vẫn là lựa chọn hợp lý?

Trái với quan niệm phổ biến "Waterfall đã lỗi thời, Agile luôn tốt hơn", Waterfall vẫn phù hợp khi:

Chương 10 sẽ có bảng so sánh đầy đủ hơn giữa Waterfall và các mô hình Agile để giúp bạn (hoặc đội dự án) chọn mô hình phù hợp cho từng tình huống cụ thể.

Bài tập

  1. Với dự án FoodNow, giả sử ban giám đốc yêu cầu cam kết ngân sách và thời gian cố định trước khi ký hợp đồng với đội phát triển thuê ngoài. Waterfall có phù hợp trong tình huống này không? Giải thích bằng 2 lý do dựa trên mục 6.5.
  2. Liệt kê 2 rủi ro cụ thể nếu FoodNow chọn Waterfall nhưng thị trường giao đồ ăn thay đổi nhanh (đối thủ ra tính năng mới) trong lúc dự án đang ở giai đoạn Implementation.

Sai lầm thường gặp

Tóm tắt & tiếp theo

Waterfall làm tuần tự, hoàn thành hẳn từng giai đoạn SDLC trước khi sang giai đoạn tiếp theo — rõ ràng, dễ lập kế hoạch, nhưng phát hiện sai sót muộn và kém linh hoạt. Phù hợp khi yêu cầu ổn định hoặc cần cam kết phạm vi/chi phí cố định. Chương 7 sẽ giới thiệu triết lý hoàn toàn khác: Agile — ra đời chính là để giải quyết những nhược điểm của Waterfall.