Saya telah melihat banyak posting baru-baru ini mengatakan bahwa salah satu alasan utama mengapa Agile digunakan adalah karena klien sering mengubah persyaratan.
Namun, misalkan klien tidak sering mengubah persyaratan . Sebenarnya, klien memiliki persyaratan yang tegas meskipun mungkin agak kabur (tapi tidak ada yang tidak masuk akal), tapi saya tetap menggunakan Agile.
Alasan mengapa saya menggunakan Agile adalah karena perangkat lunaknya cukup rumit sehingga ada detail, masalah yang tidak akan saya kenali sampai saya benar-benar menghadapinya. Saya bisa melakukan pendekatan perencanaan berat skala penuh seperti air terjun, tetapi kemudian akan butuh beberapa bulan untuk menyelesaikan semua desain tingkat tinggi dan tanda tangan pengkodean tingkat rendah. Ada desain arsitektur tetap yang sangat spesifik untuk sistem ini.
Pertanyaan saya adalah: Apakah ini dianggap buruk, pengkodean koboi, anti-pola, dll.? Haruskah kita menggunakan air terjun dan merencanakan sebanyak mungkin dengan sangat rinci sebelum kita mulai mengkode ketika persyaratan stabil alih-alih mentalitas 'mari kita lakukan' di Agile?
EDIT: Poin utama di sini adalah: kita TIDAK BISA menyalahkan klien untuk mengubah persyaratan. Asumsikan klien mengarahkan kami ke masalah yang sangat konkret, beri kami daftar keinginan dalam perincian yang sangat masuk akal dan tinggalkan kami sendiri (yaitu klien memiliki hal-hal produktif sendiri untuk dilakukan, jangan mengganggunya lagi. Hanya demo kepada mereka di dekat berakhir ketika Anda memiliki prototipe kerja minimum). Apakah salah menggunakan Agile dalam skenario ini?