Phương pháp Waterfall chắc chắn là khả thi và có vẻ triết lý như bất kỳ phương pháp nào khác. Hãy nhớ rằng Waterfall đã tồn tại lâu hơn Agile rất nhiều, nhưng lưu ý rằng đây không phải là một đối số để nói rõ liệu một phương pháp này có tốt hơn phương pháp khác hay không.
Bạn sử dụng phương pháp Waterfall khi hiểu rất rõ về toàn bộ miền vấn đề và những gì khách hàng muốn đạt được trong gói phần mềm. Bạn có thể đã trích dẫn một mức giá cố định khi thực hiện hợp đồng và khách hàng của bạn hiểu rằng họ không thể đi chệch khỏi bất kỳ yêu cầu đã thỏa thuận nào. Quá trình của bạn hoàn toàn là một quy trình chuyển qua một loạt các lần đăng nhập giữa các giai đoạn phát triển khác nhau và thường là mỗi giai đoạn được hoàn thành bởi một nhóm khác nhau - đôi khi thậm chí là một công ty khác nhau - mỗi công ty có thể không nhất thiết phải ở liên lạc với những người khác. Bạn thường thấy Thác nước được áp dụng để có hiệu quả tốt trong các dự án quân sự và chính phủ khi chúng được đấu thầu cho các nhà thầu bên ngoài. Trường hợp Waterfall và các phương pháp tương tự khác bị mang tiếng xấu là khi các nhà phát triển gặp vấn đề, chẳng hạn như ước tính kém, lịch trình được lên kế hoạch mà không có thời gian dự phòng hoặc hiểu biết kém hoặc không đầy đủ về miền vấn đề. Vấn đề không bao giờ thực sự là một lỗi của phương pháp, nhưng trong việc áp dụng nó.
Sự so sánh giữa Agile và bất kỳ phương pháp nào là sai. Agile không phải là một phương pháp, đó là một triết lý, hoặc có lẽ sẽ tốt hơn khi nói rằng đó là một thuật ngữ ô đại diện cho một cách khác để xem xét cách bạn phát triển phần mềm. Một phương pháp chỉ đơn thuần là một công cụ và như vậy giá trị của nó sẽ luôn nhỏ hơn các cá nhân và tương tác là trung tâm của ý nghĩa của Agile .
Có ai thực sự nghĩ rằng giảm thiểu thay đổi trong phần mềm là một lựa chọn khả thi cho những người mong muốn cung cấp phần mềm có giá trị?
Mọi cơ hội để giảm thiểu thay đổi đều có giá trị cho cả nhà phát triển và khách hàng. Các thay đổi có thể khiến lịch biểu bị trượt hoặc các tính năng bị bỏ qua để đáp ứng lịch biểu. Đó là cách bạn quản lý các tác động của thay đổi ảnh hưởng đến giá trị của các dự án của bạn.
Hay là câu hỏi thực sự về loại thực hành nào hoạt động tốt nhất trong các tình huống của chúng ta để quản lý sự thay đổi không thể tránh khỏi?
Thực tiễn của bạn có thể hỗ trợ trong việc quản lý thay đổi hoặc họ có thể bỏ qua thay đổi hoàn toàn. Vấn đề là sự kết hợp giữa thực tiễn phát triển của bạn và quản lý mối quan hệ của bạn với khách hàng và liệu những điều này có phối hợp hiệu quả với tất cả các bên liên quan hay không.
Những người trong chúng ta, những người vì tất cả ý định và mục đích Agile hiểu rằng bạn chọn một phương pháp phù hợp với mình. Nếu bạn thích cách tiếp cận cụ thể, hãy làm theo nó. Nếu nó không phù hợp với nhu cầu của bạn, hãy thay đổi nó. Cách bạn tạo ra phần mềm chế tạo thực sự bắt nguồn từ việc cố gắng tận dụng tốt nhất các tài nguyên bạn có trong tay và giảm thiểu những thực tiễn có thể dẫn dự án của bạn đến thất bại, và bạn thường thấy rằng bạn cần thay đổi phương pháp của mình cho phù hợp với dự án cụ thể trong tầm tay.
Đó thực sự là một điều để nói "Ok, vậy bây giờ chúng ta là Agile", và hoàn toàn khác để thực sự sống và làm việc theo triết lý mà Agile đang có. Cho dù bạn sử dụng Waterfall, Tăng dần, Xoắn ốc, SCRUM, XP, FDD hoặc bất kỳ phương pháp nào khác, về cơ bản bạn đều Agile nơi bạn coi trọng:
- Các cá nhân và tương tác qua các quy trình và công cụ
- Phần mềm làm việc trên tài liệu toàn diện
- Hợp tác khách hàng qua đàm phán hợp đồng
- Đáp ứng để thay đổi theo kế hoạch
và nơi bạn mang các công cụ, phương pháp và kinh nghiệm của bạn cùng nhau để áp dụng các giá trị này thành công.