Çok az var, ancak avantajlar , dezavantajlardan çok daha ağır basıyor.
Dik bir öğrenme eğrisi var.
Pek çok geliştirici, ilk günden itibaren test-ilk programlama ile verimli olmalarını bekliyor gibi görünmektedir. Ne yazık ki, daha önce olduğu gibi aynı hızda deneyim ve program kazanmak için çok zaman alır. Etrafından geçemezsin.
Daha açık olmak gerekirse, yanlış anlaşmak çok kolaydır. Çok kolay bir şekilde (çok iyi niyetlerle) yanlış şeyleri korumak veya test etmek zor olan bir sürü test yazabilirsiniz. Burada örnekler vermek zor - bu tür sorunlar çözmek için tecrübe edinirler. Endişeleri ayırma ve test edilebilirlik için tasarım yapma konusunda iyi hissetmeniz gerekir. Buradaki en iyi tavsiyem TDD'yi gerçekten iyi bilen biriyle çift programlama yapmak.
Önde daha fazla kodlama yapıyorsun.
Test-ilk, testleri geçememeniz anlamına gelir (ki bu iyidir) ve daha fazla kod yazmadan önce bitireceğiniz anlamına gelir. Bu daha fazla zaman demektir. Yine, etrafından dolanamazsın. Bakımını kolaylaştıran, genişleten ve genel olarak daha az hata içeren kodla ödüllendirilirsiniz, ancak zaman alır.
Yöneticilere zorlu bir satış olabilir.
Yazılım yöneticileri genellikle yalnızca zaman çizelgeleriyle ilgilenir. Test-ilk programlamaya geçerseniz ve bir özelliği yerine bir özelliği tamamlamak için aniden 2 hafta harcarsanız, bundan hoşlanmayacaklardır. Bu kesinlikle savaşmaya değer bir savaş ve birçok yönetici onu alacak kadar aydınlandı, ancak zorlu bir satış olabilir.
Diğer geliştiriciler için zorlu bir satış olabilir.
Dik bir öğrenme eğrisi olduğundan, tüm geliştiriciler test-ilk programlama gibi değildir. Aslında, çoğu geliştiricinin ilk başta sevmediğini tahmin ediyorum . Hızlanmalarına yardımcı olmak için çift programlama gibi şeyler yapabilirsiniz, ancak zorlu bir satış olabilir.
Sonunda, avantajlar dezavantajlara göre daha fazladır, ancak sadece dezavantajları görmezden gelirseniz yardımcı olmaz. En başından beri neyle uğraştığınızı bilmek, dezavantajların tümü olmasa da bazılarını müzakere etmenize yardımcı olur.