Sebelum mengetahui mengapa agile penting dalam proyek pengembangan perangkat lunak, kita perlu mengetahui beberapa alasan mengapa banyak proyek yang tidak sukses. Seperti sudah disebutkan pada latar belakang masalah adalah alasan pertama yakni sedikitnya keterlibatan user atau customer dalam proyek. Dalam beberapa kasus yang menggunakan metode pengembangan waterfall, user hanya terlibat pada fase analisis dan testing saja. Sehingga, kebanyakan user terkadang menerima begitu saja hasil yang diberikan oleh developer dengan sedikit sekali testing terhadap perangkat lunaknya.

Alasan kedua yakni requirement yang ’buruk’. Beberapa hal yang mungkin perlu kita jadikan catatan bahwa mustahil untuk mengumpulkan requirement yang tepat di awal-awal project dan semua requirement yang telah berhasil dikumpulkan tidak bisa dijamin untuk tidak berubah. Alasan lain yang menyebabkan buruknya requirement adalah karena user atau customer kadang tidak tahu apa yang mereka butuhkan.

Alasan ketiga yakni schedule atau jadwal yang tidak realistis, terkadang jadwal tidak disepakati dari pihak-pihak yang terlibat dalam pengembangan, seperti tim yang menganalisa project terkadang memutuskan jadwal proyek akan selesai dalam waktu tertentu yang terkadang menjadi beban bagi tim yang mengembangkan perangkat lunaknya(tim developer). Tim developer terkadang tidak memiliki cukup waktu untuk mengembangkan perangkat lunak sehingga kadang membuat keterlambatan dalam penyerahan perangkat lunak yang jadi.

Alasan keempat yakni sedikitnya testing. Pada banyak metode klasik, testing dilakukan di akhir-akhir fase, sehingga sangat sedikit testing yang dilakukan. Sedikitnya testing ini bisa mengakibatkan kemungkinan ditemukannya bug dan perbaikan dalam sistem sangatlah kecil. Hal ini mungkin menguntungkan bagi Developer, akan tetapi bisa berakibat buruk pada masa perawatan system setelah system diproduksi.

Alasan kelima yakni minimnya adaptasi dengan perubahan requirement. Terkadang rencana bisa berubah di tengah jalan, rencana yang tadinya seharusnya lurus bisa jadi berliku-liku seiring dengan berubahnya permintaan customer. Apa yang seharunya dikerjakan nanti belakangan, terkadang ditemukan penyelesaiannya terlebih dahulu. Serta masih banyak lagi alasan-alasan lainnya yang sering membuat sebuah project mengalami kegagalan.