TDD — это не инструмент, это метод проектирования, основанный на модульном тестировании ДО написания кода.

Техника также является инструментом в контексте разработки программного обеспечения. Существует множество методов решения различных проблем в различных обстоятельствах. Когда я говорю инструменты, я имею в виду методы, а не IDE, стул или стикер, которые тоже являются инструментами, хотя и менее важными в контексте этого разговора.

«TDD — это еще один инструмент в вашем арсенале». Вы, наверное, слышали это раньше.

Вся энергия, которую вы тратите на соблюдение принципов TDD, может быть использована более продуктивно, уделяя больше внимания предварительному проектированию.

TDD — это не серебряная пуля, и во многих случаях я бы не стал его использовать, например, когда я хочу рассуждать о всей системе в «достаточно достаточном» предварительном дизайне.

Это зависит от проблемы, которую вы пытаетесь решить. Если вы хотите решить проблему, в которой имеет смысл предварительный дизайн без TDD, сделайте это.

Опять же, пожалуйста, укажите, какая часть сообщения противоречит всему, что вы сказали в своем предыдущем комментарии. Кажется, вы спорите с соломенным человеком.