Metode Waterfall tentu saja layak dan secara filosofis terdengar seperti pendekatan lain. Ingat bahwa Waterfall telah ada jauh lebih lama daripada Agile, tetapi perhatikan bahwa ini bukan argumen untuk menyatakan apakah satu metodologi lebih baik dari yang lain.
Anda menggunakan metode Waterfall ketika memiliki pemahaman yang sangat jelas tentang seluruh domain masalah dan apa yang ingin dicapai pelanggan dalam paket perangkat lunak. Anda mungkin telah mengutip harga tetap ketika mengambil kontrak, dan pelanggan Anda memahami bahwa mereka tidak dapat menyimpang dari persyaratan yang disepakati. Proses Anda secara ketat adalah proses yang mengalir melalui serangkaian proses sign-off antara berbagai tahap pengembangan, dan sering kali setiap tahap diselesaikan oleh tim yang berbeda - terkadang bahkan perusahaan yang berbeda - yang masing-masing mungkin belum tentu dalam kontak dengan yang lain. Anda sering melihat Air Terjun diterapkan dengan efek yang baik dalam proyek militer dan pemerintah ketika mereka ditenderkan kepada kontraktor luar. Di mana Waterfall dan pendekatan serupa lainnya mendapatkan reputasi buruk adalah ketika pengembang mengalami masalah, seperti estimasi yang buruk, jadwal yang direncanakan tanpa waktu darurat, atau pemahaman domain masalah yang buruk atau tidak lengkap. Masalahnya tidak pernah benar-benar kesalahan metodologi, tetapi dalam penerapannya.
Perbandingan antara Agile dan metodologi apa pun adalah salah. Agile bukanlah metodologi, ini adalah filosofi, atau mungkin akan lebih baik untuk mengatakan bahwa itu adalah istilah umum yang mewakili cara berbeda untuk melihat bagaimana Anda mengembangkan perangkat lunak. Metodologi hanyalah alat, dan karena itu nilainya akan selalu kurang dari individu dan interaksi yang merupakan inti dari apa artinya menjadi Agile .
Adakah yang benar-benar berpikir bahwa meminimalkan perubahan pada perangkat lunak adalah pilihan yang layak bagi mereka yang ingin memberikan perangkat lunak yang berharga?
Setiap peluang untuk meminimalkan perubahan bermanfaat bagi pengembang dan pelanggan. Perubahan dapat menyebabkan jadwal untuk tergelincir, atau fitur yang ditinggalkan untuk memenuhi jadwal. Begitulah cara Anda mengelola efek perubahan yang berdampak pada nilai proyek Anda.
Atau apakah pertanyaannya benar-benar tentang praktik seperti apa yang paling berhasil dalam situasi kita untuk mengelola perubahan yang tak terhindarkan?
Praktik Anda dapat membantu dalam manajemen perubahan, atau mereka dapat mengabaikan perubahan sepenuhnya. Yang penting adalah kombinasi dari praktik pengembangan Anda, dan pengelolaan hubungan Anda dengan pelanggan Anda, dan apakah hal-hal ini bekerja bersama secara efektif untuk semua pihak yang terlibat.
Kita semua yang untuk semua maksud dan tujuan Agile mengerti bahwa Anda memilih metode yang cocok untuk Anda. Jika Anda menyukai pendekatan tertentu, ikuti itu. Jika tidak sesuai dengan kebutuhan Anda, ubahlah. Bagaimana Anda membuat perangkat lunak benar-benar bermuara pada upaya untuk memanfaatkan sumber daya yang Anda miliki sebaik mungkin, dan meminimalkan praktik-praktik yang dapat mengarahkan proyek Anda menuju kegagalan, dan Anda sering menemukan bahwa Anda perlu mengubah metode Anda agar sesuai dengan proyek tertentu yang sedang dihadapi.
Ini benar-benar satu hal untuk mengatakan "Ok, jadi sekarang kita Agile", dan benar-benar lain untuk benar-benar hidup dan bekerja dengan filosofi Agile. Apakah Anda menggunakan Waterfall, Incremental, Spiral, SCRUM, XP, FDD, atau metode lainnya, pada dasarnya Anda Agile tempat Anda menghargai:
- Individu dan interaksi atas proses dan alat
- Bekerja dengan perangkat lunak melalui dokumentasi yang komprehensif
- Kolaborasi pelanggan atas negosiasi kontrak
- Menanggapi perubahan setelah mengikuti rencana
dan di mana Anda membawa alat, metode, dan pengalaman Anda bersama-sama untuk menerapkan nilai-nilai ini dengan sukses.