มีค่อนข้างน้อย แต่ข้อดีไกลเกินดุลข้อเสีย
มีเส้นโค้งการเรียนรู้ที่สูงชัน
นักพัฒนาหลายคนคาดหวังว่าพวกเขาจะมีประสิทธิภาพด้วยการเขียนโปรแกรมทดสอบครั้งแรกตั้งแต่วันแรก น่าเสียดายที่มันใช้เวลานานมากในการรับประสบการณ์และโปรแกรมด้วยความเร็วเท่าเดิม คุณไม่สามารถหลีกเลี่ยงได้
จะเจาะจงมากขึ้นมันง่ายมากที่จะเข้าใจผิด คุณสามารถทดสอบได้อย่างง่ายดาย (ด้วยความตั้งใจดีมาก) ซึ่งอาจยากต่อการบำรุงรักษาหรือทดสอบสิ่งที่ผิด เป็นการยากที่จะยกตัวอย่างที่นี่ - ปัญหาประเภทนี้จะต้องใช้ประสบการณ์เพื่อแก้ไข คุณต้องมีความรู้สึกที่ดีในการแยกข้อกังวลและการออกแบบเพื่อการทดสอบ คำแนะนำที่ดีที่สุดของฉันที่นี่คือทำการจับคู่กับคนที่รู้จัก TDD ได้ดีจริงๆ
คุณเขียนโค้ดล่วงหน้ามากขึ้น
การทดสอบก่อนหมายความว่าคุณไม่สามารถข้ามการทดสอบ (ซึ่งดี) และหมายความว่าคุณจะจบการเขียนโค้ดล่วงหน้าเพิ่มเติม นี่หมายถึงเวลามากขึ้น คุณไม่สามารถหลีกเลี่ยงได้อีก คุณจะได้รับรางวัลด้วยรหัสที่ง่ายต่อการบำรุงรักษาขยายและลดข้อบกพร่องโดยทั่วไป แต่ใช้เวลา
สามารถขายยากให้กับผู้จัดการ
โดยทั่วไปผู้จัดการซอฟต์แวร์จะเกี่ยวข้องกับช่วงเวลาเท่านั้น หากคุณเปลี่ยนไปใช้การเขียนโปรแกรมทดสอบครั้งแรกและคุณใช้เวลา 2 สัปดาห์ในการกรอกคุณสมบัติแทนหนึ่งรายการพวกเขาจะไม่ชอบมัน นี่คือการต่อสู้ที่คุ้มค่าแน่นอนและผู้จัดการหลายคนรู้แจ้งเพียงพอที่จะได้รับ แต่มันอาจเป็นยอดขายที่ยากลำบาก
สามารถขายยากให้กับนักพัฒนาเพื่อน
เนื่องจากมีช่วงการเรียนรู้ที่สูงชันไม่ใช่นักพัฒนาทุกคนเช่นการเขียนโปรแกรมทดสอบครั้งแรก ในความเป็นจริงฉันเดาว่านักพัฒนาส่วนใหญ่ไม่ชอบในตอนแรก คุณสามารถทำสิ่งต่าง ๆ เช่นการเขียนโปรแกรมจับคู่เพื่อช่วยให้พวกเขาทำงานได้เร็วขึ้น แต่ก็สามารถขายได้ยาก
ในท้ายที่สุดข้อดีนั้นมีมากกว่าข้อเสีย แต่ก็ไม่ได้ช่วยอะไรคุณเพียงแค่เพิกเฉยต่อข้อเสีย การรู้ว่าคุณกำลังทำอะไรอยู่ตั้งแต่แรกเริ่มจะช่วยให้คุณสามารถเจรจาข้อเสียบางอย่างถ้าไม่ใช่ทั้งหมด