TDD ve Çevik uygulamalar optimum bir çözüm üretme sözü verebilir mi? (Ya da "iyi" bir çözüm?)
Tam olarak değil. Ancak bu onların amacı değil.
Bu yöntemler basitçe, bir durumdan diğerine "güvenli geçiş" sağlayarak değişikliklerin zaman alıcı, zor ve riskli olduğunu kabul eder. Her iki uygulamanın da amacı, uygulamanın ve kodun gereklilikleri daha hızlı ve daha düzenli bir şekilde yerine getirebildiğinden emin ve kanıtlanmış olmasını sağlamaktır.
... [TDD] gereksinimleri karşılamadığı kanıtlanmış bir yazılımın eklenmesine izin veren yazılım geliştirmeye karşı çıkıyor ... 2003'te TDD'nin basitçe teşvik ettiği bir teknik geliştirdi veya 'yeniden keşfediyor' olarak kabul edilen Kent Beck güven tasarlar ve ilham verir. ( Wikipedia )
TDD, kodun her bir öbeğinin gereksinimlerini karşıladığından emin olmaya odaklanır. Özellikle, gereksinimlerin zayıf kodlama tarafından yönlendirilmesine izin vermek yerine, önceden var olan gereksinimleri karşılayan kodun sağlanmasına yardımcı olur. Ancak, uygulamanın herhangi bir şekilde "optimal" olduğuna dair hiçbir söz vermemektedir.
Çevik süreçlere gelince:
Çalışan yazılım, ilerlemenin birincil ölçütüdür ... Her yinelemenin sonunda, paydaşlar ve müşteri temsilcisi yatırımın geri dönüşünü optimize etmek amacıyla ilerlemeyi gözden geçirir ve öncelikleri yeniden değerlendirir ( Wikipedia )
Çeviklik optimal bir çözüm aramıyor ; Sadece çalışan bir çözüm - YG'yi optimize etme niyetiyle . Bu bir çalışma çözüm vaat er ziyade sonra ; "optimal" bir değil.
Ancak, bu tamam, çünkü soru yanlış.
Yazılım geliştirmedeki en uygun olanlar bulanık ve hareketli hedeflerdir. İhtiyaçlar genellikle akıcıdır ve patronunuzun patronlarıyla dolu bir konferans odasında utanç duymanız için ortaya çıkan sırlarla doludur. Ve bir çözümün mimarisinin ve kodlamasının "içsel iyiliği", meslektaşlarınızın ve genel yönetimsel yöneticinizin ayrık ve öznel görüşleri ile derecelendirilir - hiçbiri iyi yazılım hakkında hiçbir şey bilemeyebilir.
En azından yılında TDD ve Çevik uygulamaları zorlukları kabul edip iki şey için optimize girişimi olan objektif ve ölçülebilir: . Çalışma v Değil-Çalışma ve Er v Sonra..
Ve nesnel ölçütler olarak "çalışıyor" ve "daha erken" olsa bile, onlar için optimize etme yeteneğiniz öncelikle bir ekibin becerisine ve deneyimine bağlıdır.
Bunu şeyler olabilir çabaları üretmek olarak kurmada en uygun çözümleri gibi şeyler şunlardır:
vb..
Bunların her birinin gerçekten en uygun çözümleri üretip üretmediği sorulacak başka bir soru olacaktır!