Có khá nhiều, nhưng những ưu điểm vượt xa những nhược điểm.
Có một đường cong học tập dốc.
Nhiều nhà phát triển dường như mong đợi rằng họ có thể hiệu quả với lập trình thử nghiệm ngay từ ngày đầu tiên. Thật không may, phải mất rất nhiều thời gian để có được kinh nghiệm và chương trình với tốc độ như trước đây. Bạn không thể đi xung quanh nó.
Để cụ thể hơn, nó rất dễ bị sai. Bạn có thể rất dễ dàng (với ý định rất tốt) cuối cùng đã viết cả đống bài kiểm tra khó duy trì hoặc kiểm tra những thứ sai. Thật khó để đưa ra ví dụ ở đây - những loại vấn đề này chỉ đơn giản là cần kinh nghiệm để giải quyết. Bạn cần có một cảm giác tốt về việc tách các mối quan tâm và thiết kế để kiểm tra. Lời khuyên tốt nhất của tôi ở đây sẽ là lập trình cặp với một người hiểu rõ về TDD.
Bạn làm thêm mã hóa lên phía trước.
Thử nghiệm đầu tiên có nghĩa là bạn không thể bỏ qua các thử nghiệm (điều này tốt) và có nghĩa là bạn sẽ kết thúc việc viết thêm mã lên phía trước. Điều này có nghĩa là nhiều thời gian hơn. Một lần nữa, bạn không thể vượt qua nó. Bạn nhận được phần thưởng với mã dễ bảo trì, mở rộng và thường ít lỗi hơn, nhưng cần có thời gian.
Có thể là một bán khó khăn cho các nhà quản lý.
Các nhà quản lý phần mềm thường chỉ quan tâm đến các mốc thời gian. Nếu bạn chuyển sang lập trình thử nghiệm đầu tiên và bạn đột nhiên mất 2 tuần để hoàn thành một tính năng thay vì một tính năng, họ sẽ không thích nó. Đây chắc chắn là một trận chiến đáng để chiến đấu và nhiều nhà quản lý đã giác ngộ đủ để có được nó, nhưng nó có thể là một cuộc bán hàng khó khăn.
Có thể là một bán khó khăn cho các nhà phát triển đồng nghiệp.
Vì có một đường cong học tập dốc, không phải tất cả các nhà phát triển đều thích lập trình thử nghiệm đầu tiên. Trên thực tế, tôi đoán rằng hầu hết các nhà phát triển ban đầu không thích nó. Bạn có thể làm những việc như lập trình cặp để giúp họ tăng tốc, nhưng nó có thể là một việc khó khăn.
Cuối cùng, những lợi thế vượt trội hơn những nhược điểm, nhưng nó không có ích nếu bạn bỏ qua những nhược điểm. Biết những gì bạn đang giải quyết ngay từ đầu giúp bạn thương lượng một số, nếu không nói là tất cả, về những bất lợi.