Son zamanlarda yazılım geliştirmedeki çevik uygulamalarla ilgilenmeye başladım ve o zamandan bu yana bu uygulamaların genel maliyetlerin azalmasına izin verdiğine işaret eden birçok makale gördüm.
Bunun arkasındaki mantık genellikle şu şekilde olur: gereksinimleriniz değişirse, bu değişikliği bir sonraki sprint birikimine yansıtabilirsiniz ve bu, maliyetin azalmasına neden olacaktır, çünkü yeni özelliği tasarlamak ve uygulamak zaman açısından birbirine yakındır, bu nedenle ünlü kurala göre maliyet azalır, daha sonra gereksinimlerinizde bir değişiklik yapmanız gerektiğinde, bu gereksinimi karşılamak daha pahalı olacaktır.
Ancak orta ila büyük yazılım projeleri karmaşıktır. Gereksinimlerdeki ani bir değişiklik, bu gereksinimi karşılamak için sisteminizin diğer bölümlerine dokunmanız gerekmeyeceği anlamına gelmez. Çoğu durumda mimarinin çok önemli ölçüde değiştirilmesi gerekecektir, bu da eski mimariye dayanan tüm özellikleri yeniden uygulamanız gerektiği anlamına gelir. Dolayısıyla, azaltılmış maliyetlerin bütün noktası burada ortadan kalkar. Tabii ki, yeni bir gereksinim sistemin yeni bir bağımsız parçasını gerektiriyorsa, bu bir sorun değil, eski mimari büyüyor, yeniden düşünülmesi ve yeniden uygulanması gerekmiyor.
Ve tam tersi. Şelale kullanıyorsanız ve birdenbire yeni bir gereksinimin ortaya çıkması gerektiğini fark ederseniz, tasarımınızı değiştirebilir ve değiştirebilirsiniz. Mevcut mimarinin değiştirilmesini gerektiriyorsa, yeniden tasarlarsınız. Gerçekten onunla uğraşmazsa, ancak sistemin yeni bir parçasını tanıtırsa, o zaman gidip tüm işi yaparsınız, burada sorun yok.
Bununla birlikte, bana çevik gelişimin sahip olduğu tek avantajı, sprintler arasında eksiksiz yapıların çalışması gibi görünüyor ve birçok insan ve öneri için bu kritik değil. Buna ek olarak, çeviklik genel olarak kötü yazılım mimarisi ile sonuçlanıyor gibi görünüyor, çünkü özellikler birbiri üzerine tokatlanır, çevik ekipler bir özelliğin nasıl çalıştığına değil, yalnızca bir özelliğin çalışmasına önem verir. Bu, sistemler zamanla karmaşık bir şekilde büyüdüğünde, çevik geliştirme uygulamaları aslında genel ürün mimarisinde kaosu arttırır, bu nedenle sonunda daha yüksek maliyetlerle sonuçlanır, çünkü şelale, mimarinizi mükemmelleştirmenize izin verir. bir şey bırakmadan önce.
Birisi beni burada yanlış yaptığım yere işaret edebilir mi, çünkü belli ki birçok insan üretim ortamlarında çevik kullanıyor, bu yüzden bir yerlerde yanılmalıyım.