Son zamanlarda Agile'ın kullanılmasının en önemli nedenlerinden birinin müşterilerin genellikle gereksinimleri değiştirdiğini söyleyen birçok gönderi gördüm.
Ancak, müşterilerin gereksinimleri sık sık değiştirmediğini varsayalım . Aslında, müşterilerin biraz belirsiz (ama makul olmayan bir şekilde belirsiz bir şey) olsa da sağlam gereksinimleri var, ama yine de Agile kullanıyorum.
Çevik'i çalıştırmamın nedeni, yazılımın, gerçekte onlarla karşılaşana kadar tanıyamayacağım ayrıntılar, sorunlar olacak kadar karmaşık olmasıdır. Şelale gibi tam ölçekli bir ağır planlama yaklaşımı yapabilirdim, ancak daha sonra tüm üst düzey tasarım ve düşük seviye kodlama imzalarını tamamlamak birkaç ay sürecekti. Yine de sistem için çok özel, sabit bir mimari tasarım var.
Sorum şu: Bu kötü, kovboy kodlama, anti-desen vb. Agile'da bu 'hadi yapalım' zihninin yerine gereksinimler kararlı olduğunda kodlamaya başlamadan önce şelale kullanmalı ve mümkün olduğunca ayrıntılı bir şekilde planlamalıyız ?
EDIT: Buradaki en önemli nokta şudur: Değişen gereksinimler için müşterileri suçlayamayız. Müşterilerin bizi çok somut bir soruna işaret ettiğini, bize çok makul detaylarda bir dilek listesi verdiğini ve bizi yalnız bıraktıklarını varsayalım (yani müşterilerin yapacakları kendi üretken şeyleri var, onları daha fazla rahatsız etmeyin. minimum çalışma prototipiniz olduğunda sonlandırın). Bu senaryoda Agile kullanmak yanlış olur mu?